Commit 05b81152 authored by Ryo Yamashita's avatar Ryo Yamashita Committed by Yas Naoi
Browse files

Issue #3273418 by Ryo Yamashita, yas: Add the function to edit VMware VM in the SPA

parent 64732c3d
Loading
Loading
Loading
Loading
+1 −1
Changes for cloud.routing.yml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ entity.cloud_store.list_update:

# Clour Store REST API.
entity.cloud_store.count:
  path: '/cloud_dashboard/cloud_store/{bundle_id}/count'
  path: '/cloud_dashboard/cloud_store/{bundle}/count'
  defaults:
    _controller: '\Drupal\cloud\Controller\CloudStoreController::getEntityCount'
  methods: [GET]
+1 −1
Changes for modules/cloud_dashboard/cloud_dashboard.info.yml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ type: module
description: 'Allows users to manage Cloud module by SPA Form.'
package: Cloud
configure: cloud_dashboard.settings
core_version_requirement: ^9.2
core_version_requirement: ^9.3
dependencies:
  - drupal:simple_oauth
  - drupal:jsonapi
+27 −128
Changes for modules/cloud_dashboard/cloud_dashboard.routing.yml: 27 added lines, 128 removed lines.
Original line number Diff line number Diff line
# Cloud Dashboard Login Form
cloud_dashboard.login:
  path: '/clouds/dashboard'
  defaults:
@@ -7,157 +6,57 @@ cloud_dashboard.login:
  requirements:
    _access: 'TRUE'

# Callback endpoint
cloud_dashboard.callback:
  path: '/clouds/dashboard/callback'
# Ex.
# * /clouds/dashboard/callback
# * /clouds/dashboard/providers
# * /clouds/dashboard/k8s_cost_store
cloud_dashboard.endpoint1:
  path: '/clouds/dashboard/{parameter}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# List view of provider
cloud_dashboard.cloud_service_provider.list:
  path: '/clouds/dashboard/providers'
# Ex.
# * /clouds/dashboard/aws_cloud/instance
# * /clouds/dashboard/k8s/pod
# * /clouds/dashboard/openstack/server_template
cloud_dashboard.endpoint2:
  path: '/clouds/dashboard/{parameter1}/{parameter2}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# form for AWS
cloud_dashboard.aws_cloud.form:
  path: '/clouds/dashboard/aws_cloud/{parameter}'
# Ex.
# * /clouds/dashboard/aws_cloud/sample_client1/instance
# * /clouds/dashboard/k8s/sample_client2/pod
cloud_dashboard.endpoint3:
  path: '/clouds/dashboard/{parameter1}/{parameter2}/{parameter3}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# info for AWS entity
cloud_dashboard.aws_cloud.info:
  path: '/clouds/dashboard/aws_cloud/{parameter}/{parameter2}'
# Ex.
# * /clouds/dashboard/aws_cloud/sample_client1/instance/1
# * /clouds/dashboard/k8s/sample_client2/pod/5
cloud_dashboard.endpoint4:
  path: '/clouds/dashboard/{parameter1}/{parameter2}/{parameter3}/{parameter4}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# form for K8s
cloud_dashboard.k8s.form:
  path: '/clouds/dashboard/k8s/{parameter}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# info for K8s entity
cloud_dashboard.k8s.info:
  path: '/clouds/dashboard/k8s/{parameter}/{parameter2}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# form for OpenStack
cloud_dashboard.openstack.form:
  path: '/clouds/dashboard/openstack/{parameter}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# info for OpenStack entity
cloud_dashboard.openstack.info:
  path: '/clouds/dashboard/openstack/{parameter}/{parameter2}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# form for VMware
cloud_dashboard.vmware.form:
  path: '/clouds/dashboard/vmware/{parameter}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# info for VMware entity
cloud_dashboard.vmware.info:
  path: '/clouds/dashboard/vmware/{parameter}/{parameter2}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# launch template
cloud_dashboard.launch_template:
  path: '/clouds/dashboard/server_template/{parameter1}/{parameter2}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

cloud_dashboard.launch_template_all:
  path: '/clouds/dashboard/{parameter}/server_template'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# project view
cloud_dashboard.project_view:
  path: '/clouds/dashboard/{parameter}/project'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

cloud_dashboard.project_view_all:
  path: '/clouds/dashboard/project/{parameter}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

# resource_store_template
cloud_dashboard.resource_store_template.cost:
  path: '/clouds/dashboard/k8s_cost_store'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

cloud_dashboard.resource_store_template.namespace:
  path: '/clouds/dashboard/k8s_namespace_resource_store'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

cloud_dashboard.resource_store_template.node:
  path: '/clouds/dashboard/k8s_node_resource_store'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
  requirements:
    _permission: 'administer'

cloud_dashboard.resource_store_template.pod:
  path: '/clouds/dashboard/k8s_pod_resource_store'
# Ex.
# * /clouds/dashboard/aws_cloud/sample_client1/instance/1/edit
# * /clouds/dashboard/k8s/sample_client2/pod/5/delete
cloud_dashboard.endpoint5:
  path: '/clouds/dashboard/{parameter1}/{parameter2}/{parameter3}/{parameter4}/{parameter5}'
  defaults:
    _title: Cloud Dashboard
    _form: '\Drupal\cloud_dashboard\Form\React\CloudDashboardForm'
+49 −57
Changes for modules/cloud_dashboard/cloud_dashboard/src/App.tsx: 49 added lines, 57 removed lines.
Original line number Diff line number Diff line
@@ -2,23 +2,18 @@ import 'leaflet/dist/leaflet.css';
import 'react-loader-spinner/dist/loader/css/react-spinner-loader.css';
import 'App.css';

import ENTITY_INFO_LIST from 'constant/entity_info_template/entity_info_template';
import { MENU_TEMPLATE_LIST } from 'constant/menu_template';
import { ROUTE_URL } from 'constant/other';
import RESOURCE_STORE_LIST from 'constant/resource_store_template';
import CallbackPage from 'pages/CallbackPage';
import EntityInfoPage from 'pages/EntityInfoPage';
import EntityPage from 'pages/EntityPage';
import LaunchTemplatePage from 'pages/LaunchTemplatePage';
import CloudProjectPage from 'pages/CloudProjectPage';
import CloudResourceStorePage from 'pages/CloudResourceStorePage';
import CloudServerTemplatePage from 'pages/CloudServerTemplatePage';
import EntityCxudPage from 'pages/EntityCxudPage';
import EntityDetailPage from 'pages/EntityDetailPage';
import EntityViewPage from 'pages/EntityViewPage';
import LoginPage from 'pages/LoginPage';
import ProjectPage from 'pages/ProjectPage';
import ProviderPage from 'pages/ProviderPage';
import ResourceStorePage from 'pages/ResourceStorePage';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import { AppContext, useAppState } from 'service/state';
import {
  getEntityListViewUrl, getEntityTypeId, getLaunchTemplateViewUrl, getProjectViewUrl
} from 'service/utility';

/**
 * Component for application route.
@@ -39,52 +34,49 @@ const App = () => {
        <Route path="/providers">
          <ProviderPage />
        </Route>
        {
          ENTITY_INFO_LIST.map((record) => {
            return <Route exact
              path={`/${record.cloudServiceProvider}/${record.entityName}/:uuid`}
              key={`/${record.cloudServiceProvider}/${record.entityName}`}>
              <EntityInfoPage entityInfoTemplate={record} />
            </Route>;
          })
        }
        {
          MENU_TEMPLATE_LIST.map((record) => {
            return <Route exact
              path={getEntityListViewUrl(record)}
              key={getEntityTypeId(record)}
            >
              <EntityPage menuTemplate={record} />
            </Route>;
          })
        }
        {
          appState.cloudContextList.map((cloudContext) => {
            return <Route
              path={getLaunchTemplateViewUrl(cloudContext)}
              key={cloudContext.labelName}
            >
              <LaunchTemplatePage cloudContext={cloudContext} />
            </Route>;
          })
        }
        {
          appState.cloudContextList.map((cloudContext) => {
            return <Route
              path={getProjectViewUrl(cloudContext)}
              key={cloudContext.labelName}
            >
              <ProjectPage cloudContext={cloudContext} />
            </Route>;
          })
        }
        {
          RESOURCE_STORE_LIST.map((template) => {
            return <Route path={`/${template.bundleId}`} key={template.bundleId}>
              <ResourceStorePage template={template} />
            </Route>;
          })
        }
        <Route path="/k8s_cost_store">
          <CloudResourceStorePage bundleId="k8s_cost_store" />
        </Route>
        <Route path="/k8s_namespace_resource_store">
          <CloudResourceStorePage bundleId="k8s_namespace_resource_store" />
        </Route>
        <Route path="/k8s_node_resource_store">
          <CloudResourceStorePage bundleId="k8s_node_resource_store" />
        </Route>
        <Route path="/k8s_pod_resource_store">
          <CloudResourceStorePage bundleId="k8s_pod_resource_store" />
        </Route>
        <Switch>
          <Route path="/:cloudServiceProvider/project">
            <CloudProjectPage />
          </Route>
          <Route path="/:cloudServiceProvider/server_template">
            <CloudServerTemplatePage />
          </Route>
          <Switch>
            <Route path="/:cloudServiceProvider/:cloudContext/project">
              <CloudProjectPage />
            </Route>
            <Route path="/:cloudServiceProvider/:cloudContext/server_template">
              <CloudServerTemplatePage />
            </Route>
            <Route path="/:cloudServiceProvider/:cloudContext/:entityName/:entityId/:action">
              <EntityCxudPage />
            </Route>
            <Route exact path="/:cloudServiceProvider/:cloudContext/:entityName/create">
              <EntityCxudPage action="create" />
            </Route>
            <Route path="/:cloudServiceProvider/:cloudContext/:entityName/:entityId">
              <EntityDetailPage />
            </Route>
            <Route path="/:cloudServiceProvider/:cloudContext/:entityName">
              <EntityViewPage />
            </Route>
            <Route path="/:cloudServiceProvider/:entityName">
              <EntityViewPage />
            </Route>
          </Switch>
        </Switch>
      </AppContext.Provider>
    </Switch>
  </BrowserRouter>;
+1 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/entity_form_template.ts: 1 added line, 1 removed line.
Original line number Diff line number Diff line
import VMWARE_VM_TEMPLATE from 'constant/form_template/vmware/vm';

const ENTITY_FORM_LIST = [
  VMWARE_VM_TEMPLATE,
  ...VMWARE_VM_TEMPLATE,
];

export default ENTITY_FORM_LIST;
Loading