How syu-cloud/su-cloud-portal-phase-1 works
This repository implements a web portal for authenticated users to browse images and request, monitor, and reclaim virtual machines. The frontend calls a Django REST API; its application service validates requests and delegates catalog queries and VM reservation/reclaim policy to backend services. A worker claims queued VM records and provisions or deprovisions OpenStack resources, including Warpgate access. The README is empty, so capability coverage is based on the supplied source and index; backend URL routing and some frontend components were not sampled, and those links are omitted or marked unverified.
Main entry points: VmDashboard.tsx VM dashboard · App.tsx App and session · api/services.py API application service · provisioning/services.py Reservation and lifecycle
Components 27
Portal UI
- App and session
frontend/src/App.tsx - Login form
frontend/src/components/LoginForm.tsx - Portal header
frontend/src/components/PortalHeader.tsx - VM dashboard
frontend/src/components/VmDashboard.tsx - VM creation panel
frontend/src/components/VmCreatePanel.tsx - VM list
frontend/src/components/VmList.tsx - Reclaim confirmation
frontend/src/components/ReclaimConfirmDialog.tsx - Modal dialog
frontend/src/components/ModalDialog.tsx - Progress strip
frontend/src/components/VmProgressStrip.tsx - Status badge
frontend/src/components/VmStatusBadge.tsx
API and Catalog
- Session API client
frontend/src/api/auth.ts - VM API client
frontend/src/api/vms.ts - Catalog API client
frontend/src/api/catalog.ts - HTTP client
frontend/src/api/client.ts - REST views
api/views.py - API application service
api/services.py - Image and flavor catalog
catalog/services.py
VM Lifecycle
- Lifecycle worker
provisioning/management/commands/worker.py - Reservation and lifecycle
provisioning/services.py - Failure descriptions
provisioning/failures.py
Infrastructure Integrations
- VM operations
osclient/vm.py - OpenStack catalog adapters
osclient - Warpgate client
wgclient/__init__.py
Lifecycle State
- VM and slot records
provisioning/models.py
Other components
- Portal user
- OpenStack
- Warpgate service
Connections 34
- Portal user → App and session: uses
- App and session → Session API client: checks session
frontend/src/App.tsx - App and session → Login form: renders
frontend/src/App.tsx - App and session → Portal header: renders
frontend/src/App.tsx - App and session → VM dashboard: renders
frontend/src/App.tsx - VM dashboard → VM API client: loads and updates
frontend/src/components/VmDashboard.tsx - VM dashboard → Catalog API client: loads catalog
frontend/src/components/VmDashboard.tsx - VM dashboard → VM creation panel: renders
frontend/src/components/VmDashboard.tsx - VM dashboard → VM list: renders
frontend/src/components/VmDashboard.tsx - VM dashboard → Progress strip: renders
frontend/src/components/VmDashboard.tsx - VM creation panel → VM API client: creates VMs
frontend/src/components/VmCreatePanel.tsx - VM creation panel → Catalog API client: loads choices
frontend/src/components/VmCreatePanel.tsx - VM creation panel → Modal dialog: uses
frontend/src/components/VmCreatePanel.tsx - VM list → VM API client: loads and reclaims
frontend/src/components/VmList.tsx - VM list → Reclaim confirmation: renders
frontend/src/components/VmList.tsx - VM list → Status badge: renders
frontend/src/components/VmList.tsx - Reclaim confirmation → Modal dialog: uses
frontend/src/components/ReclaimConfirmDialog.tsx - Session API client → HTTP client: requests
frontend/src/api/auth.ts - VM API client → HTTP client: requests
frontend/src/api/vms.ts - VM API client → REST views: calls REST endpoints
- Catalog API client → REST views: calls REST endpoints
- REST views → API application service: delegates
api/views.py - API application service → Image and flavor catalog: validates image; lists catalog
api/services.py - API application service → Reservation and lifecycle: reserves; reclaims; lists
api/services.py - API application service → VM operations: formats VM data
api/services.py - API application service → Failure descriptions: formats failures
api/services.py - Image and flavor catalog → OpenStack catalog adapters: queries images and flavor
catalog/services.py - Lifecycle worker → Reservation and lifecycle: claims and dispatches
provisioning/management/commands/worker.py - Reservation and lifecycle → VM and slot records: reads and updates
provisioning/services.py - Reservation and lifecycle → VM operations: creates and deletes VMs
provisioning/services.py - Reservation and lifecycle → Warpgate client: provisions access
provisioning/services.py - VM operations → OpenStack: manages compute and networking
osclient/vm.py - OpenStack catalog adapters → OpenStack: queries catalog
- Warpgate client → Warpgate service: administers access
wgclient/__init__.py