소스 검색

move logic for desired state update

Alexander Belanger 4 년 전
부모
커밋
f5d9761f1d
1개의 변경된 파일14개의 추가작업 그리고 10개의 파일을 삭제
  1. 14 10
      dashboard/src/main/home/onboarding/steps/ProvisionResources/forms/SharedStatus.tsx

+ 14 - 10
dashboard/src/main/home/onboarding/steps/ProvisionResources/forms/SharedStatus.tsx

@@ -48,6 +48,8 @@ export const SharedStatus: React.FC<{
     for (let addedResource of addedResources) {
     for (let addedResource of addedResources) {
       // if exists, update state to provisioned
       // if exists, update state to provisioned
       if (resourceAddrMap.has(addedResource.addr)) {
       if (resourceAddrMap.has(addedResource.addr)) {
+        let currResource = resources[resourceAddrMap.get(addedResource.addr)]
+        addedResource.errored = currResource.errored
         resources[resourceAddrMap.get(addedResource.addr)] = addedResource;
         resources[resourceAddrMap.get(addedResource.addr)] = addedResource;
       } else {
       } else {
         resources.push(addedResource);
         resources.push(addedResource);
@@ -181,19 +183,25 @@ export const SharedStatus: React.FC<{
           created_at: infra.created_at,
           created_at: infra.created_at,
         };
         };
 
 
-        if (infra?.status != "created" && infra?.status != "destroyed") {
+        tfModules.push(module);
+      });
+
+      setTFModules([...tfModules]);
+
+      tfModules.forEach((val, index) => {
+        if (val?.status != "created" && val?.status != "destroyed") {
           api
           api
             .getInfraDesired(
             .getInfraDesired(
               "<token>",
               "<token>",
               {},
               {},
-              { project_id: project_id, infra_id: infra?.id }
+              { project_id: project_id, infra_id: val?.id }
             )
             )
             .then((resDesired) => {
             .then((resDesired) => {
               api
               api
                 .getInfraCurrent(
                 .getInfraCurrent(
                   "<token>",
                   "<token>",
                   {},
                   {},
-                  { project_id: project_id, infra_id: infra?.id }
+                  { project_id: project_id, infra_id: val?.id }
                 )
                 )
                 .then((resCurrent) => {
                 .then((resCurrent) => {
                   var desired = resDesired.data;
                   var desired = resDesired.data;
@@ -207,7 +215,7 @@ export const SharedStatus: React.FC<{
                   });
                   });
 
 
                   // map desired state to list of resources
                   // map desired state to list of resources
-                  var resources: TFResource[] = desired?.map((val: any) => {
+                  var addedResources: TFResource[] = desired?.map((val: any) => {
                     return {
                     return {
                       addr: val?.addr,
                       addr: val?.addr,
                       provisioned: currentMap.has(val?.addr),
                       provisioned: currentMap.has(val?.addr),
@@ -218,17 +226,13 @@ export const SharedStatus: React.FC<{
                     };
                     };
                   });
                   });
 
 
-                  module.resources = resources;
+                  updateTFModules(index, addedResources, [], [])
                 })
                 })
                 .catch((err) => console.log(err));
                 .catch((err) => console.log(err));
             })
             })
             .catch((err) => console.log(err));
             .catch((err) => console.log(err));
         }
         }
-
-        tfModules.push(module);
-      });
-
-      setTFModules([...tfModules]);
+      })
 
 
       tfModules.forEach((val, index) => {
       tfModules.forEach((val, index) => {
         setupInfraWebsocket(val.id + "", val, index);
         setupInfraWebsocket(val.id + "", val, index);