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

Issue #3307933 by Ryo Yamashita, yas: Add the function to list AWS Cloud launch template in the SPA

parent 448155a6
Loading
Loading
Loading
Loading
+2 −0
Changes for modules/cloud_dashboard/cloud_dashboard/build.sh: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Build cloud_dashboard
export YARN='yarn'
if [ -e /etc/issue ]; then
  if [ "$(cat /etc/issue | grep -e Debian -e Ubuntu)" ]; then
    export YARN='yarnpkg'
  fi
fi

"${YARN}" react-scripts build

+12 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/launch_template.ts: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,18 @@ const AWS_LAUNCH_TEMPLATE_LIST: EntityColumn[] = [
  { labelName: 'Name', 'name': 'name', type: 'default' },
  { labelName: 'AMI Name', 'name': 'field_image_id', type: 'default' },
  { labelName: 'Instance type', 'name': 'field_instance_type', type: 'default' },
  { labelName: 'Security group', 'name': 'field_security_group', type: 'relationship', info: {
    entityTypeId: 'aws_cloud_security_group',
    keyColumn1: 'drupal_internal__target_id',
    keyColumn2: 'drupal_internal__id',
    valueColumn: 'name',
  } },
  { labelName: 'Key pair', 'name': 'field_ssh_key', type: 'relationship', info: {
    entityTypeId: 'aws_cloud_key_pair',
    keyColumn1: 'drupal_internal__target_id',
    keyColumn2: 'drupal_internal__id',
    valueColumn: 'key_pair_name',
  } },
  {
    labelName: 'VPC', 'name': 'field_vpc', type: 'join', info: {
      entityTypeId: 'aws_cloud_vpc',
+10 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/model/EntityColumn.ts: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -58,6 +58,16 @@ type EntityColumn = {
  url: string;
  label: string;
  readOnly?: boolean;
} | {
  labelName: string;
  name: string;
  type: 'relationship';
  info: {
    entityTypeId: string;
    keyColumn1: string;
    keyColumn2: string;
    valueColumn: string;
  }
};

export default EntityColumn;
+29 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/model/EntityData.ts: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line
interface EntityRelationshipsData {
  id: string;
  type: string;
  meta: {
    [key: string]: any;
  }
}

/**
 * Entity data of JSON:API.
 * 
 * Note: Originally, in the relationships property,
 * the "type" key has a value of type `string` and
 * the "[key: string]" key has a value of type `object`.
 * However, according to the TypeScript specification,
 * the two cannot be used together (the value types must be aligned).
 * Therefore, the "[key: string]" key is defined as
 * having a value of type `object | string`.
 */
interface EntityData {
  attributes: {
    [key: string]: any;
  };
  relationships: {
    [key: string]: {
      data: EntityRelationshipsData | EntityRelationshipsData[];
      links: {
        related: {
          href: string;
        };
        self: {
          href: string;
        };
      }
    };
  } | string;
  id: string;
}

+1 −0
Changes for modules/cloud_dashboard/cloud_dashboard/src/organisms/CloudServiceProviderTable.tsx: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ const CloudServiceProviderTable = () => {
          sortInfo={sortInfo}
          setSortInfo={setSortInfo}
          hasOperationLinks={false}
          operationLinksName="Operations"
        />
    }
  </Form>;
Loading