community/front-end/ofe/website/ghpcfe/urls.py (488 lines of code) (raw):

# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ urls.py """ # They actually make sense here because we really do want almost all # pylint: disable=wildcard-import,unused-wildcard-import from django.urls import path, re_path, include from django.views.generic import TemplateView from rest_framework import routers from . import views from .views.credentials import * from .views.images import * from .views.clusters import * from .views.applications import * from .views.jobs import * from .views.benchmarks import * from .views.workbench import * from .views.users import * from .views.vpc import * from .views.filesystems import * from .views.gcpfilestore import * from .views.grafana import GrafanaProxyView, GrafanaView from .views.asyncview import RunningTasksViewSet handler403 = "ghpcfe.views.error_pages.custom_error_403" urlpatterns = [ path("", views.index, name="index"), path( "document/", TemplateView.as_view(template_name="document.html"), name="document", ), path("credentials/", CredentialListView.as_view(), name="credentials"), path("clusters/", ClusterListView.as_view(), name="clusters"), path("vpc/", VPCListView.as_view(), name="vpcs"), path("applications/", ApplicationListView.as_view(), name="applications"), path("jobs/", JobListView.as_view(), name="jobs"), path("benchmarks/", BenchmarkListView.as_view(), name="benchmarks"), path( "credential/<int:pk>", CredentialDetailView.as_view(), name="credential-detail", ), path( "cluster/<int:pk>", ClusterDetailView.as_view(), name="cluster-detail" ), path( "clusters/partition-delete/<int:partition_id>", ClusterPartitionDeleteView.as_view(), name='partition-delete' ), path("vpc/<int:pk>", VPCDetailView.as_view(), name="vpc-detail"), path( "application/<int:pk>", ApplicationDetailView.as_view(), name="application-detail", ), path("job/<int:pk>", JobDetailView.as_view(), name="job-detail"), path( "benchmark/<int:pk>", BenchmarkDetailView.as_view(), name="benchmark-detail", ), path("account/", AccountUpdateView.as_view(), name="account"), path("workbench/", WorkbenchListView.as_view(), name="workbench"), path( "workbench/<int:pk>", WorkbenchDetailView.as_view(), name="workbench-detail", ), re_path( "^grafana/(?P<path>.*)$", GrafanaProxyView.as_view(), name="grafana-proxy" ), path("graphs", GrafanaView.as_view(), name="grafana"), ] urlpatterns += [ path( "credential/create/", CredentialCreateView.as_view(), name="credential-create", ), path("vpc/create/", VPCCreateView1.as_view(), name="vpc-create"), path( "vpc/create2/?credential=<int:credential>", VPCCreateView2.as_view(), name="vpc-create2", ), path("vpc/import/", VPCImportView1.as_view(), name="vpc-import"), path( "vpc/import2/?credential=<int:credential>", VPCImportView2.as_view(), name="vpc-import2", ), path( "cluster/create/", ClusterCreateView.as_view(), name="cluster-create" ), path( "application/create1", ApplicationCreateSelectView.as_view(), name="application-create-select", ), path( "application/create/<int:cluster>", ApplicationCreateView.as_view(), name="application-create", ), path( "application/create_install/<int:cluster>", CustomInstallationApplicationCreateView.as_view(), name="application-create-install", ), path( "application/create_spack/<int:cluster>", SpackApplicationCreateView.as_view(), name="application-create-spack-cluster", ), path("job/create/<int:app>", JobCreateView.as_view(), name="job-create"), path( "job/create2/<int:app>/<int:cluster>", JobCreateView2.as_view(), name="job-create-2", ), path("job/rerun/<int:job>", JobRerunView.as_view(), name="job-rerun"), path( "benchmark/create/", BenchmarkCreateView.as_view(), name="benchmark-create", ), path( "credential/update/<int:pk>", CredentialUpdateView.as_view(), name="credential-update", ), path("vpc/update/<int:pk>", VPCUpdateView.as_view(), name="vpc-update"), path( "cluster/update/<int:pk>", ClusterUpdateView.as_view(), name="cluster-update", ), path( "application/update/<int:pk>", ApplicationUpdateView.as_view(), name="application-update", ), path("job/update/<int:pk>", JobUpdateView.as_view(), name="job-update"), path( "credential/delete/<int:pk>", CredentialDeleteView.as_view(), name="credential-delete", ), path("vpc/delete/<int:pk>", VPCDeleteView.as_view(), name="vpc-delete"), path( "cluster/delete/<int:pk>", ClusterDeleteView.as_view(), name="cluster-delete", ), path( "application/delete/<int:pk>", ApplicationDeleteView.as_view(), name="application-delete", ), path("job/delete/<int:pk>", JobDeleteView.as_view(), name="job-delete"), path( "workbench/create/", WorkbenchCreateView1.as_view(), name="workbench-create", ), path( "workbench/create2/?credential=<int:credential>", WorkbenchCreateView2.as_view(), name="workbench-create2", ), path( "workbench/update/<int:pk>", WorkbenchUpdate.as_view(), name="workbench-update", ), path( "workbench/delete/<int:pk>", WorkbenchDeleteView.as_view(), name="workbench-delete", ), ] urlpatterns += [ path( "application/<int:pk>/logs/", ApplicationLogView.as_view(), name="application-log", ), path( "application/<int:pk>/logs/<int:logid>", ApplicationLogFileView.as_view(), name="application-log-file", ), path("job/<int:pk>/logs/", JobLogView.as_view(), name="job-log"), path( "job/<int:pk>/logs/<int:logid>", JobLogFileView.as_view(), name="job-log-file", ), path( "cluster/<int:pk>/logs/", ClusterLogView.as_view(), name="cluster-log" ), path( "cluster/<int:pk>/logs/<int:logid>", ClusterLogFileView.as_view(), name="cluster-log-file", ), ] urlpatterns += [ path("vpc/destroy/<int:pk>", VPCDestroyView.as_view(), name="vpc-destroy"), path( "cluster/destroy/<int:pk>", ClusterDestroyView.as_view(), name="cluster-destroy", ), path( "workbench/destroy/<int:pk>", WorkbenchDestroyView.as_view(), name="workbench-destroy", ), path( "cluster/cost/<int:pk>", ClusterCostView.as_view(), name="cluster-cost" ), path( "cluster/costexport/<int:pk>", ClusterCostExportView.as_view(), name="cluster-cost-export", ), ] urlpatterns += [ re_path( r"^vpc/(?P<vpc_id>\d+)/subnets/$", VirtualSubnetView.as_view(), name="vpc-subnets", ), ] urlpatterns += [ path("filesystem/", FilesystemListView.as_view(), name="filesystems"), path( "filesystem/create/", FilesystemCreateView1.as_view(), name="fs-create" ), path( "filesystem/create2/?credential=<int:credential>", FilesystemCreateView2.as_view(), name="fs-create2", ), path( "filesystem/detail/<int:pk>", FilesystemRedirectView.as_view(target="detail"), name="fs-detail", ), path( "filesystem/edit/<int:pk>", FilesystemRedirectView.as_view(target="update"), name="fs-update", ), path( "filesystem/destroy/<int:pk>", FilesystemDestroyView.as_view(), name="fs-destroy", ), path( "filesystem/delete/<int:pk>", FilesystemDeleteView.as_view(), name="fs-delete", ), path( "filesystem/log/<int:pk>", FilesystemTFLogView.as_view(), name="fs-log" ), path( "filesystem/import/?credential=<int:credential>", FilesystemImportView.as_view(), name="import-fs-create", ), path( "filesystem/import/<int:pk>/detail", FilesystemImportDetailView.as_view(), name="import-fs-detail", ), path( "filesystem/import/<int:pk>/edit", FilesystemImportUpdateView.as_view(), name="import-fs-update", ), path( "backend/filesystem/create-files/<int:pk>", BackendCreateFilesystem.as_view(), name="backend-filesystem-create-files", ), path( "backend/filesystem/update-files/<int:pk>", BackendUpdateFilesystem.as_view(), name="backend-filesystem-update-files", ), path( "backend/filesystem/start/<int:pk>", BackendStartFilesystem.as_view(), name="backend-filesystem-start", ), path( "backend/filesystem/destroy/<int:pk>", BackendDestroyFilesystem.as_view(), name="backend-filesystem-destroy", ), path( "filesystem/filestore/create/?credential=<int:credential>", GCPFilestoreFilesystemCreateView.as_view(), name="filestore-create", ), path( "filesystem/filestore/detail/<int:pk>", GCPFilestoreFilesystemDetailView.as_view(), name="filestore-detail", ), path( "filesystem/filestore/edit/<int:pk>", GCPFilestoreFilesystemUpdateView.as_view(), name="filestore-update", ), ] urlpatterns += [ path("users/", UserListView.as_view(), name="users"), path("user/detail/<int:pk>", UserDetailView.as_view(), name="user-detail"), path( "user/admin/<int:pk>", UserAdminUpdateView.as_view(), name="user-admin" ), ] # For APIs router = routers.DefaultRouter() router.register( r"api/applications", ApplicationViewSet, basename="api-application" ) router.register(r"api/clusters", ClusterViewSet, basename="api-cluster") router.register( r"api/credentials", CredentialViewSet, basename="api-credential" ) router.register(r"api/jobs", JobViewSet, basename="api-job") router.register(r"api/users", UserViewSet, basename="api-user") router.register( r"api/spack_packages", SpackPackageViewSet, basename="api-spack" ) router.register(r"api/tasks", RunningTasksViewSet, basename="api-tasks") router.register( r"api/instance_pricing", InstancePricingViewSet, basename="api-pricing" ) # Specify pk=ClusterPartition router.register( r"api/instance_available", InstanceAvailabilityViewSet, basename="api-instancetype", ) # Specify pk=ClusterID, zone, region router.register( r"api/disks_available", DiskAvailabilityViewSet, basename="api-disktype", ) # Specify pk=ClusterID, zone, region router.register(r"api/vpcs", VPCViewSet, basename="api-vpcs") router.register(r"api/subnets", VirtualSubnetViewSet, basename="api-subnets") urlpatterns += [ path("", include(router.urls)), path( "api-auth/", include("rest_framework.urls", namespace="rest_framework") ), path(r"api/credential-validate", CredentialValidateAPIView.as_view()), ] # Views for backend functions urlpatterns += [ path( "backend/vpc-create/<int:pk>", BackendCreateVPC.as_view(), name="backend-create-vpc", ), path( "backend/vpc-start/<int:pk>", BackendStartVPC.as_view(), name="backend-start-vpc", ), path( "backend/vpc-destroy/<int:pk>", BackendDestroyVPC.as_view(), name="backend-destroy-vpc", ), path( "backend/cluster-create/<int:pk>", BackendCreateCluster.as_view(), name="backend-create-cluster", ), path( "backend/cluster-reconfigure/<int:pk>", BackendReconfigureCluster.as_view(), name="backend-reconfigure-cluster", ), path( "backend/cluster-start/<int:pk>", BackendStartCluster.as_view(), name="backend-start-cluster", ), path( "backend/cluster-status/<int:pk>", BackendClusterStatus.as_view(), name="backend-cluster-status", ), path( "backend/cluster_destroy/<int:pk>", BackendDestroyCluster.as_view(), name="backend-destroy-cluster", ), path( "backend/cluster-sync/<int:pk>", BackendSyncCluster.as_view(), name="backend-sync-cluster", ), path( "backend/spack-install/<int:pk>", BackendSpackInstall.as_view(), name="backend-spack-install", ), path( "backend/custom-app-install/<int:pk>", BackendCustomAppInstall.as_view(), name="backend-custom-app-install", ), path( "backend/job-run/<int:pk>", BackendJobRun.as_view(), name="backend-job-run", ), path( "backend/user-gcp-auth/<int:pk>", BackendAuthUserGCP.as_view(), name="backend-user-gcp-auth", ), path( "clusters/gcp-auth/<int:pk>", AuthUserGCP.as_view(), name="user-gcp-auth", ), path( "backend/workbench-create/<int:pk>", BackendCreateWorkbench.as_view(), name="backend-create-workbench", ), path( "backend/workbench-start/<int:pk>", BackendStartWorkbench.as_view(), name="backend-start-workbench", ), path( "backend/workbench-destroy/<int:pk>", BackendDestroyWorkbench.as_view(), name="backend-destroy-workbench", ), path( "backend/workbench-update/<int:pk>", BackendUpdateWorkbench.as_view(), name="backend-update-workbench", ), path( "backend/image-create/<int:pk>", BackendCreateImage.as_view(), name="backend-create-image", ), path( "backend/get-regions/<int:pk>", BackendListRegions.as_view(), name="backend-list-regions", ), ] # Url paths that handle custom image views urlpatterns += [ path("images/", ImagesListView.as_view(), name="images"), path( "images/create/startup-script", StartupScriptCreateView.as_view(), name="startup-script-create" ), path( "images/startup-script-view/<int:pk>", StartupScriptDetailView.as_view(), name="startup-script-view" ), path( "images/startup-script-delete/<int:pk>", StartupScriptDeleteView.as_view(), name="startup-script-delete" ), path( "images/create/image", ImageCreateView.as_view(), name="image-create" ), path( "images/import", ImageImportView.as_view(), name="image-import" ), path( "images/image-view/<int:pk>", ImageDetailView.as_view(), name="image-view" ), path( "images/image-delete/<int:pk>", ImageDeleteView.as_view(), name="image-delete" ), path( "images/image-status/<int:pk>", ImageStatusView.as_view(), name="image-status" ), ]