Explorar o código

Update Minion Pool Details page transfer list.

Signed-off-by: Nashwan Azhari <nazhari@cloudbasesolutions.com>
Nashwan Azhari hai 1 ano
pai
achega
bc0ff11069

+ 4 - 4
src/components/modules/MinionModule/MinionPoolDetailsContent/MinionPoolDetailsContent.tsx

@@ -20,7 +20,7 @@ import Button from "@src/components/ui/Button";
 import DetailsNavigation from "@src/components/modules/NavigationModule/DetailsNavigation";
 import type { Endpoint } from "@src/@types/Endpoint";
 import type { Field } from "@src/@types/Field";
-import { ReplicaItem, MigrationItem } from "@src/@types/MainItem";
+import { ReplicaItem, DeploymentItem } from "@src/@types/MainItem";
 import { MinionPoolDetails } from "@src/@types/MinionPool";
 import StatusImage from "@src/components/ui/StatusComponents/StatusImage";
 import { ThemeProps } from "@src/components/Theme";
@@ -76,7 +76,7 @@ type Props = {
   item?: MinionPoolDetails | null;
   itemId: string;
   replicas: ReplicaItem[];
-  migrations: MigrationItem[];
+  deployments: DeploymentItem[];
   endpoints: Endpoint[];
   schema: Field[];
   schemaLoading: boolean;
@@ -145,7 +145,7 @@ class MinionPoolDetailsContent extends React.Component<Props> {
       <MinionPoolMachines
         item={this.props.item}
         replicas={this.props.replicas}
-        migrations={this.props.migrations}
+        deployments={this.props.deployments}
       />
     );
   }
@@ -167,7 +167,7 @@ class MinionPoolDetailsContent extends React.Component<Props> {
       <MinionPoolMainDetails
         item={this.props.item}
         replicas={this.props.replicas}
-        migrations={this.props.migrations}
+        deployments={this.props.deployments}
         schema={this.props.schema}
         schemaLoading={this.props.schemaLoading}
         endpoints={this.props.endpoints}

+ 3 - 3
src/components/modules/MinionModule/MinionPoolDetailsContent/MinionPoolMachines.tsx

@@ -17,7 +17,7 @@ import { Collapse } from "react-collapse";
 import { Link } from "react-router-dom";
 import styled, { createGlobalStyle, css } from "styled-components";
 
-import { MigrationItem, ReplicaItem, TransferItem } from "@src/@types/MainItem";
+import { DeploymentItem, ReplicaItem, TransferItem } from "@src/@types/MainItem";
 import { MinionMachine, MinionPool } from "@src/@types/MinionPool";
 import { ThemePalette, ThemeProps } from "@src/components/Theme";
 import Arrow from "@src/components/ui/Arrow";
@@ -145,7 +145,7 @@ type FilterType = "all" | "allocated" | "not-allocated";
 type Props = {
   item?: MinionPool | null;
   replicas: ReplicaItem[];
-  migrations: MigrationItem[];
+  deployments: DeploymentItem[];
 };
 type State = {
   filterStatus: FilterType;
@@ -282,7 +282,7 @@ class MinionPoolMachines extends React.Component<Props, State> {
             transferItems.find(i => i.id === machine.allocated_action);
           const allocatedAction = machine.allocated_action
             ? findTransferItem(this.props.replicas) ||
-              findTransferItem(this.props.migrations)
+              findTransferItem(this.props.deployments)
             : null;
           return (
             <MachineWrapper key={machine.id}>

+ 8 - 8
src/components/modules/MinionModule/MinionPoolDetailsContent/MinionPoolMainDetails.tsx

@@ -18,7 +18,7 @@ import { Link } from "react-router-dom";
 import styled, { css } from "styled-components";
 
 import fieldHelper from "@src/@types/Field";
-import { MigrationItem, ReplicaItem, TransferItem } from "@src/@types/MainItem";
+import { DeploymentItem, ReplicaItem, TransferItem } from "@src/@types/MainItem";
 import { MinionPool } from "@src/@types/MinionPool";
 import EndpointLogos from "@src/components/modules/EndpointModule/EndpointLogos";
 import { ThemePalette, ThemeProps } from "@src/components/Theme";
@@ -102,7 +102,7 @@ const PropertyValue = styled.div<any>`
 type Props = {
   item?: MinionPool | null;
   replicas: ReplicaItem[];
-  migrations: MigrationItem[];
+  deployments: DeploymentItem[];
   schema: FieldType[];
   schemaLoading: boolean;
   endpoints: Endpoint[];
@@ -178,8 +178,8 @@ class MinionPoolMainDetails extends React.Component<Props> {
 
     let properties: any[] = [];
     const plugin = endpoint && OptionsSchemaPlugin.for(endpoint.type);
-    const migrationImageMapFieldName =
-      plugin && plugin.migrationImageMapFieldName;
+    const deploymentImageMapFieldName =
+      plugin && plugin.deploymentImageMapFieldName;
     let dictionaryKey = "";
     if (endpoint) {
       dictionaryKey = `${endpoint.type}-minion-pool`;
@@ -202,8 +202,8 @@ class MinionPoolMainDetails extends React.Component<Props> {
             }
             let fieldName = pn;
             if (
-              migrationImageMapFieldName &&
-              fieldName === migrationImageMapFieldName
+              deploymentImageMapFieldName &&
+              fieldName === deploymentImageMapFieldName
             ) {
               fieldName = p;
             }
@@ -264,7 +264,7 @@ class MinionPoolMainDetails extends React.Component<Props> {
     };
 
     const usage: TransferItem[] = this.props.replicas.concat(
-      this.props.migrations as any[]
+      this.props.deployments as any[]
     );
 
     return (
@@ -329,7 +329,7 @@ class MinionPoolMainDetails extends React.Component<Props> {
           ) : null}
           <Row>
             <Field>
-              <Label>Used in Replicas/Migrations ({usage.length})</Label>
+              <Label>Used in Transfers ({usage.length})</Label>
               {usage.length > 0 ? this.renderUsage(usage) : <Value>-</Value>}
             </Field>
           </Row>

+ 14 - 13
src/components/smart/MinionPoolDetailsPage/MinionPoolDetailsPage.tsx

@@ -35,10 +35,11 @@ import minionPoolStore from "@src/stores/MinionPoolStore";
 import MinionPoolModal from "@src/components/modules/MinionModule/MinionPoolModal";
 import MinionPoolDetailsContent from "@src/components/modules/MinionModule/MinionPoolDetailsContent";
 import replicaStore from "@src/stores/ReplicaStore";
-import migrationStore from "@src/stores/MigrationStore";
+import deploymentStore from "@src/stores/DeploymentStore";
 import MinionPoolConfirmationModal from "@src/components/modules/MinionModule/MinionPoolConfirmationModal";
 import providerStore from "@src/stores/ProviderStore";
 import { Field } from "@src/@types/Field";
+import { TransferItem } from "@src/@types/MainItem";
 import minionPoolImage from "./images/minion-pool.svg";
 
 const Wrapper = styled.div<any>``;
@@ -135,7 +136,7 @@ class MinionPoolDetailsPage extends React.Component<Props, State> {
         showLoading: true,
       }),
       replicaStore.getReplicas(),
-      migrationStore.getMigrations(),
+      deploymentStore.getDeployments(),
     ]);
     const minionPool = this.minionPool;
     if (!minionPool) {
@@ -204,7 +205,7 @@ class MinionPoolDetailsPage extends React.Component<Props, State> {
         skipLog: true,
       }),
       replicaStore.getReplicas(),
-      migrationStore.getMigrations(),
+      deploymentStore.getDeployments(),
     ]);
 
     setTimeout(() => {
@@ -353,6 +354,14 @@ class MinionPoolDetailsPage extends React.Component<Props, State> {
       },
     ];
 
+    const checkPoolUsed = (i: TransferItem): Boolean|undefined => {
+      return i.origin_minion_pool_id === this.minionPool?.id
+        || i.destination_minion_pool_id === this.minionPool?.id
+        || (i.instance_osmorphing_minion_pool_mappings
+            && Object.values(i.instance_osmorphing_minion_pool_mappings).includes(
+              this.minionPool?.id));
+    }
+
     return (
       <Wrapper>
         <DetailsTemplate
@@ -379,16 +388,8 @@ class MinionPoolDetailsPage extends React.Component<Props, State> {
             <MinionPoolDetailsContent
               item={this.minionPool}
               itemId={this.minionPoolId}
-              replicas={replicaStore.replicas.filter(
-                r =>
-                  r.origin_minion_pool_id === this.minionPool?.id ||
-                  r.destination_minion_pool_id === this.minionPool?.id
-              )}
-              migrations={migrationStore.migrations.filter(
-                r =>
-                  r.origin_minion_pool_id === this.minionPool?.id ||
-                  r.destination_minion_pool_id === this.minionPool?.id
-              )}
+              replicas={replicaStore.replicas.filter(checkPoolUsed)}
+              deployments={deploymentStore.deployments.filter(checkPoolUsed)}
               endpoints={endpointStore.endpoints}
               schema={minionPoolStore.minionPoolCombinedSchema}
               schemaLoading={