Commit 8be35087 authored by Masami  Suzuki's avatar Masami Suzuki Committed by Yas Naoi
Browse files

Issue #3326759 by Masami, yas, Ryo Yamashita: Add the functions for OpenStack...

Issue #3326759 by Masami, yas, Ryo Yamashita: Add the functions for OpenStack Port in the SPA (CRUD)
parent 295fd9c1
Loading
Loading
Loading
Loading
+2 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/templates/entity/entity_info_template.ts: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import OPENSTACK_SNAPSHOT_TEMPLATE from 'constant/templates/entity/openstack/sna
import OPENSTACK_VOLUME_TEMPLATE from 'constant/templates/entity/openstack/volume';
import OPENSTACK_NETWORK_TEMPLATE from 'constant/templates/entity/openstack/network';
import OPENSTACK_SUBNET_TEMPLATE from 'constant/templates/entity/openstack/subnet';
import OPENSTACK_PORT_TEMPLATE from 'constant/templates/entity/openstack/port';
import OPENSTACK_ROUTER_TEMPLATE from 'constant/templates/entity/openstack/router';
import VMWARE_HOST_TEMPLATE from 'constant/templates/entity/vmware/host';
import VMWARE_VM_TEMPLATE from 'constant/templates/entity/vmware/vm';
@@ -109,6 +110,7 @@ const ENTITY_INFO_LIST = [
  OPENSTACK_SNAPSHOT_TEMPLATE,
  OPENSTACK_NETWORK_TEMPLATE,
  OPENSTACK_SUBNET_TEMPLATE,
  OPENSTACK_PORT_TEMPLATE,
  OPENSTACK_ROUTER_TEMPLATE,
  VMWARE_HOST_TEMPLATE,
  VMWARE_VM_TEMPLATE,
+47 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/templates/entity/openstack/port.ts: 47 added lines, 0 removed lines.
Original line number Diff line number Diff line
import EntityInfoTemplate from 'model/EntityInfoTemplate';

// Template for displaying detailed information about entities in OpenStack.
const OPENSTACK_PORT_TEMPLATE: EntityInfoTemplate = {
  cloudServiceProvider: 'openstack',
  entityName: 'port',
  entityRecords: [
    {
      panelName: 'Port',
      tableRecordList: ['allowed_address_pairs', 'binding_vif_details'],
      keyValueRecords: [
        { labelName: 'Name', name: 'name', type: 'default' },
        { labelName: 'Port ID', name: 'port_id', type: 'default' },
        { labelName: 'Project ID', name: 'project_id', type: 'default' },
        { labelName: 'Network', name: 'network_id', type: 'join', info: {
          entityTypeId: 'openstack_network', keyColumn: 'network_id', valueColumn: 'name' } },
        { labelName: 'MAC Address', name: 'mac_address', type: 'default' },
        { labelName: 'Status', name: 'status', type: 'default' },
        { labelName: 'Admin State', name: 'admin_stateup', type: 'boolean', value: ['up', 'down']  },
        { labelName: 'Port Security', name: 'port_security_enabled', type: 'boolean', value: ['enabled', 'disabled'] },
        { labelName: 'DNS Name', name: 'dns_name', type: 'default' },
        { labelName: 'Dns Assignment', name: 'dns_assignment', type: 'default' },
        { labelName: 'Fixed IPs', name: 'fixed_ips', type: 'default' },
        { labelName: 'Allowed Address Pairs', name: 'allowed_address_pairs', type: 'default' },
        { labelName: 'Device Owner', name: 'device_owner', type: 'default' },
        { labelName: 'Device ID', name: 'device_id', type: 'default' },
        { labelName: 'Security Groups', name: 'security_groups',  type: 'join', info: {
          entityTypeId: 'openstack_security_group', keyColumn: 'security_groups', valueColumn: 'name' } },
        { labelName: 'VNIC Type', name: 'binding_vnic_type', type: 'default' },
        { labelName: 'Host', name: 'binding_host_id', type: 'default' },
        { labelName: 'Profile', name: 'binding_profile', type: 'default' },
        { labelName: 'VIF Type', name: 'binding_vif_type', type: 'default' },
        { labelName: 'VIF Details', name: 'binding_vif_details', type: 'default' },
        { labelName: 'Created', name: 'created', type: 'datetime' },
      ]
    },
    {
      panelName: 'Others',
      tableRecordList: [],
      keyValueRecords: [
        { labelName: 'Cloud service provider ID', name: 'cloud_context', type: 'default' },
      ]
    },
  ]
};

export default OPENSTACK_PORT_TEMPLATE;
+2 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/templates/form/entity_form_template.ts: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import OPENSTACK_SNAPSHOT_TEMPLATE from 'constant/templates/form/openstack/snaps
import OPENSTACK_VOLUME_TEMPLATE from 'constant/templates/form/openstack/volume';
import OPENSTACK_NETWORK_TEMPLATE from 'constant/templates/form/openstack/network';
import OPENSTACK_SUBNET_TEMPLATE from 'constant/templates/form/openstack/subnet';
import OPENSTACK_PORT_TEMPLATE from 'constant/templates/form/openstack/port';
import OPENSTACK_ROUTER_TEMPLATE from 'constant/templates/form/openstack/router';
import VMWARE_VM_TEMPLATE from 'constant/templates/form/vmware/vm';

@@ -63,6 +64,7 @@ const ENTITY_FORM_LIST = [
  ...OPENSTACK_VOLUME_TEMPLATE,
  ...OPENSTACK_NETWORK_TEMPLATE,
  ...OPENSTACK_SUBNET_TEMPLATE,
  ...OPENSTACK_PORT_TEMPLATE,
  ...OPENSTACK_ROUTER_TEMPLATE,
  ...OPENSTACK_CLOUD_LAUNCH_TEMPLATE,
  ...VMWARE_VM_TEMPLATE,
+112 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/templates/form/openstack/port.ts: 112 added lines, 0 removed lines.
Original line number Diff line number Diff line
import EntityFormTemplate from 'model/EntityFormTemplate';

const OPENSTACK_PORT_TEMPLATE: EntityFormTemplate[] = [
  {
    cloudServiceProvider: 'openstack',
    entityName: 'port',
    actionType: 'create',
    entityRecords: [
      {
        type: 'panel',
        panelName: 'Port',
        keyValueRecords: [
          { type: 'default', labelName: 'Name', name: 'name', defaultValue: '', required: true },
          {
            type: 'select', labelName: 'Network', name: 'network_id',
            url: '/cloud_dashboard/openstack/{cloud_context}/networks',
            defaultValue: '',
            required: true,
          },
          { type: 'default', labelName: 'Device ID', name: 'device_id', defaultValue: '' },
          { type: 'default', labelName: 'Device Owner', name: 'device_owner', defaultValue: '' },
          { type: 'select-local', name: 'ip_address_or_subnet', labelName: 'Specify IP address or subnet', defaultValue: '', required: true, value: [
            { name: 'unspecified', labelName: 'Unspecified' },
            { name: 'subnet', labelName: 'Subnet' },
            { name: 'fixed_ip', labelName: 'Fixed IP Address' },
          ] },
          {
            type: 'select', labelName: 'Subnet', name: 'subnet',
            url: '/cloud_dashboard/openstack/{cloud_context}/subnets/{network_id}',
            defaultValue: '',
          },
          { type: 'default', labelName: 'Fixed IP Address', name: 'fixed_ips', defaultValue: '' },
          { type: 'default', labelName: 'MAC Address', name: 'mac_address', defaultValue: '' },
          {
            type: 'boolean', labelName: 'Port Security', name: 'port_security_enabled',
            defaultValue: true
          },
          {
            type: 'multi-select', labelName: 'Security Group', name: 'security_groups',
            url: '/cloud_dashboard/openstack/{cloud_context}/security_groups',
            defaultValue: [],
          },
          { type: 'select-local', name: 'binding_vnic_type', labelName: 'VNIC Type', defaultValue: '', required: true, value: [
            { name: 'normal', labelName: 'Normal' },
            { name: 'direct', labelName: 'Direct' },
            { name: 'macvtap', labelName: 'MacVTap' },
            { name: 'baremetal', labelName: 'Bare Metal' },
            { name: 'virtio-forwarder', labelName: 'Virtio Forwarder' },
          ] },
        ]
      }
    ]
  },
  {
    cloudServiceProvider: 'openstack',
    entityName: 'port',
    actionType: 'edit',
    entityRecords: [
      {
        type: 'panel',
        panelName: 'Port',
        keyValueRecords: [
          { type: 'default', labelName: 'Name', name: 'name', defaultValue: '', required: true },
          {
            type: 'boolean', labelName: 'Enable Admin State', name: 'admin_state_up',
            defaultValue: false
          },
          {
            type: 'join', labelName: 'Network', name: 'network_id', info: {
              entityTypeId: 'openstack_network',
              keyColumn: 'network_id',
            }, defaultValue: '', readOnly: true
          },
          { type: 'select-local', name: 'binding_vnic_type', labelName: 'VNIC Type', defaultValue: '', required: true, value: [
            { name: 'normal', labelName: 'Normal' },
            { name: 'direct', labelName: 'Direct' },
            { name: 'macvtap', labelName: 'MacVTap' },
            { name: 'baremetal', labelName: 'Bare Metal' },
            { name: 'virtio-forwarder', labelName: 'Virtio Forwarder' },
          ] },
          {
            type: 'boolean', labelName: 'Port Security', name: 'port_security_enabled',
            defaultValue: true
          },
          {
            type: 'multi-select', labelName: 'Security Group', name: 'security_groups',
            url: '/cloud_dashboard/openstack/{cloud_context}/security_groups',
            defaultValue: [],
          },
          { type: 'item-array', labelName: 'Allowed Address Pairs', name: 'allowed_address_pairs', defaultValue: [], info: [
            { labelName: 'IP Address or CIDR', name: 'item_key' },
            { labelName: 'MAC Address', name: 'item_value' },
          ] },
        ]
      }
    ]
  },
  {
    cloudServiceProvider: 'openstack',
    entityName: 'port',
    actionType: 'delete',
    entityRecords: [
      {
        type: 'label',
        text: 'Are you sure you want to delete the {{entityName}} {{name}}?'
      },
    ],
    submitButtonLabel: 'Delete'
  },
]

export default OPENSTACK_PORT_TEMPLATE;
+57 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/templates/menu/menu_template.json: 57 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -1941,7 +1941,12 @@
        {
          "labelName": "Network",
          "name": "network_id",
          "type": "default"
          "type": "join",
          "info": {
            "entityTypeId": "openstack_network",
            "keyColumn": "network_id",
            "valueColumn": "name"
          }
        },
        {
          "labelName": "CIDR",
@@ -1960,6 +1965,57 @@
        }
      ]
    },
    {
      "cloudServiceProvider": "openstack",
      "labelName": "Ports",
      "entityName": "port",
      "entityColumn": [
        {
          "labelName": "Name",
          "name": "name",
          "type": "default"
        },
        {
          "labelName": "Network",
          "name": "network_id",
          "type": "join",
          "info": {
            "entityTypeId": "openstack_network",
            "keyColumn": "network_id",
            "valueColumn": "name"
          }
        },
        {
          "labelName": "Fixed IPs",
          "name": "fixed_ips",
          "type": "default"
        },
        {
          "labelName": "MAC Address",
          "name": "mac_address",
          "type": "default"
        },
        {
          "labelName": "Attached Device",
          "name": "device_owner",
          "type": "default"
        },
        {
          "labelName": "Status",
          "name": "status",
          "type": "default"
        },
        {
          "labelName": "Admin state",
          "name": "admin_state_up",
          "type": "boolean",
          "value": [
            "up",
            "down"
          ]
        }
      ]
    },
    {
      "cloudServiceProvider": "openstack",
      "labelName": "Routers",
Loading