Commit 3f212ab2 authored by Ryo Yamashita's avatar Ryo Yamashita Committed by Yas Naoi
Browse files

Issue #3285730 by Ryo Yamashita, yas: Add the function to edit AWS Cloud Instance in the SPA

parent 12662cf2
Loading
Loading
Loading
Loading
+119 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/aws_cloud/instance.ts: 119 added lines, 0 removed lines.
Original line number Diff line number Diff line
import EntityFormTemplate from 'model/EntityFormTemplate';

const AWS_CLOUD_INSTANCE_TEMPLATE: EntityFormTemplate[] = [
  {
    cloudServiceProvider: 'aws_cloud',
    entityName: 'instance',
    actionType: 'edit',
    entityRecords: [
      {
        type: 'panel',
        panelName: 'Instance',
        keyValueRecords: [
          { labelName: 'Name', name: 'name', type: 'default', defaultValue: '', required: true },
          { labelName: 'Instance ID', name: 'instance_id', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Instance State', name: 'instance_state', type: 'default', defaultValue: '', readOnly: true },
          {
            type: 'select', labelName: 'Instance type', name: 'instance_type',
            url: '/cloud_dashboard/aws_cloud/{cloud_context}/instance_types',
            defaultValue: '', readOnly: true
          },
          { labelName: 'Cost', name: 'cost', type: 'cost' },
          {
            type: 'select', labelName: 'IAM role', name: 'iam_role',
            url: '/cloud_dashboard/aws_cloud/{cloud_context}/iam_role_options',
            defaultValue: ''
          },
          { labelName: 'AMI Image', name: 'image_id', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Kernel Image', name: 'kernel_id', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Ramdisk Image', name: 'ramdisk_id', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Virtualization', name: 'virtualization', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Reservation', name: 'reservation', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'AWS account ID', name: 'account_id', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Launch Time', name: 'launch_time', type: 'datetime', defaultValue: 0, readOnly: true },
          { labelName: 'Created', name: 'created', type: 'datetime', defaultValue: 0, readOnly: true },
        ]
      },
      {
        type: 'panel',
        panelName: 'Network',
        keyValueRecords: [
          {
            labelName: 'Elastic IP', name: 'public_ip', type: 'join', info: {
              entityTypeId: 'aws_cloud_elastic_ip',
              keyColumn: 'public_ip',
            }, defaultValue: '', readOnly: true
          },
          { labelName: 'Private IPs', name: 'private_ips', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Public DNS', name: 'public_dns', type: 'default', defaultValue: '', readOnly: true },
          {
            url: '/cloud_dashboard/aws_cloud/aws_cloud_instance/{entity_id}/security_groups_options',
            type: 'multi-select', labelName: 'Security groups', name: 'security_groups',
            defaultValue: []
          },
          {
            labelName: 'Key pair name', name: 'key_pair_name', type: 'join', info: {
              entityTypeId: 'aws_cloud_key_pair',
              keyColumn: 'key_pair_name',
            }, defaultValue: '', readOnly: true
          },
          {
            labelName: 'VPC ID', name: 'vpc_id', type: 'join', info: {
              entityTypeId: 'aws_cloud_vpc',
              keyColumn: 'vpc_id',
            }, defaultValue: '', readOnly: true
          },
          {
            labelName: 'Subnet ID', name: 'subnet_id', type: 'join', info: {
              entityTypeId: 'aws_cloud_subnet',
              keyColumn: 'subnet_id',
            }, defaultValue: '', readOnly: true
          },
          { labelName: 'Network interfaces', name: 'network_interfaces', type: 'array', defaultValue: [], readOnly: true },
          { labelName: 'Availability Zone', name: 'availability_zone', type: 'default', defaultValue: '', readOnly: true },
        ]
      },
      {
        type: 'panel',
        panelName: 'Storage',
        keyValueRecords: [
          { labelName: 'Root Device Type', name: 'root_device_type', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Root Device', name: 'root_device', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'EBS Optimized', name: 'ebs_optimized', type: 'boolean', defaultValue: false, labels: ['On', 'Off'], readOnly: true },
          { labelName: 'Volume', name: 'block_devices', type: 'default', defaultValue: '', readOnly: true },
        ]
      },
      {
        type: 'panel',
        panelName: 'Tags',
        keyValueRecords: [
          {
            type: 'key-value', labelName: 'Tags', name: 'tags',
            defaultValue: []
          },
        ]
      },
      {
        type: 'panel',
        panelName: 'Option',
        keyValueRecords: [
          { labelName: 'Termination Date', name: 'termination_timestamp', type: 'datetime', defaultValue: 0 },
          { labelName: 'User data', name: 'user_data', type: 'textarea', defaultValue: '' },
          { labelName: 'User data is base64 encoded', name: 'is_user_data_binary', type: 'boolean', defaultValue: false },
          { labelName: 'Termination protection', name: 'termination_protection', type: 'boolean', defaultValue: false },
          { labelName: 'Monitoring Enabled', name: 'monitoring', type: 'boolean', defaultValue: false, labels: ['Enabled', 'Disabled'], readOnly: true },
          { labelName: 'AMI Launch Index', name: 'ami_launch_index', type: 'default', defaultValue: '', readOnly: true },
          { labelName: 'Tenancy', name: 'tenancy', type: 'default', defaultValue: '', readOnly: true },
          {
            type: 'select', labelName: 'Schedule', name: 'schedule',
            url: '/cloud_dashboard/schedule_options',
            defaultValue: ''
          },
          { labelName: 'Login Username', name: 'login_username', type: 'default', defaultValue: '', readOnly: true },
        ]
      }
    ]
  }
]

export default AWS_CLOUD_INSTANCE_TEMPLATE;
+3 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/entity_form_template.ts: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
import AWS_CLOUD_INSTANCE_TEMPLATE from 'constant/form_template/aws_cloud/instance';
import K8S_DEPLOYMENT_TEMPLATE from 'constant/form_template/k8s/deployment';
import K8S_NAMESPACE_TEMPLATE from 'constant/form_template/k8s/namespace';
import K8S_OTHER_TEMPLATE from 'constant/form_template/k8s/other';
import K8S_POD_TEMPLATE from 'constant/form_template/k8s/pod';
import K8S_SCHEDULE_TEMPLATE from 'constant/form_template/k8s/schedule';
import OPENSTACK_FLOATING_IP_TEMPLATE from 'constant/form_template/openstack/floating_ip';
import OPENSTACK_IMAGE_TEMPLATE from 'constant/form_template/openstack/image';
import OPENSTACK_INSTANCE_TEMPLATE from 'constant/form_template/openstack/instance';
import OPENSTACK_FLOATING_IP_TEMPLATE from 'constant/form_template/openstack/floating_ip';
import OPENSTACK_KEY_PAIR_TEMPLATE from 'constant/form_template/openstack/key_pair';
import OPENSTACK_NETWORK_INTERFACE_TEMPLATE from 'constant/form_template/openstack/network_interface';
import OPENSTACK_SECURITY_GROUP_TEMPLATE from 'constant/form_template/openstack/security_group';
import VMWARE_VM_TEMPLATE from 'constant/form_template/vmware/vm';

const ENTITY_FORM_LIST = [
  ...AWS_CLOUD_INSTANCE_TEMPLATE,
  ...K8S_DEPLOYMENT_TEMPLATE,
  ...K8S_NAMESPACE_TEMPLATE,
  ...K8S_POD_TEMPLATE,
+1 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/k8s/deployment.ts: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ const K8S_DEPLOYMENT_TEMPLATE: EntityFormTemplate[] = [
        panelName: 'Time scheduler',
        keyValueRecords: [
          {
            type: 'check', labelName: 'Enable time scheduler', name: 'enableTimeScheduler',
            type: 'boolean', labelName: 'Enable time scheduler', name: 'enableTimeScheduler',
            defaultValue: false
          },
          {
+1 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/k8s/pod.ts: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ const K8S_POD_TEMPLATE: EntityFormTemplate[] = [
        panelName: 'Time scheduler',
        keyValueRecords: [
          {
            type: 'check', labelName: 'Enable time scheduler', name: 'enableTimeScheduler',
            type: 'boolean', labelName: 'Enable time scheduler', name: 'enableTimeScheduler',
            defaultValue: false
          },
          {
+1 −1
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/openstack/floating_ip.ts: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ const OPENSTACK_FLOATING_IP_TEMPLATE: EntityFormTemplate[] = [
          { type: 'default', labelName: 'Type', name: 'elastic_ip_type', defaultValue: '', readOnly: true },
          { type: 'default', labelName: 'Floating IP', name: 'public_ip', defaultValue: '', readOnly: true },
          { type: 'default', labelName: 'Private IP Address', name: 'private_ip_address', defaultValue: '', readOnly: true },
          { type: 'datetime', labelName: 'Created', name: 'created' },
          { type: 'datetime', labelName: 'Created', name: 'created', defaultValue: 0, readOnly: true },
        ]
      },
      {
Loading