Просмотр исходного кода

Fixed minor issues and added detailed error on button when timeout

jnfrati 4 лет назад
Родитель
Сommit
d35907a5ff

+ 4 - 1
dashboard/src/main/home/onboarding/steps/ProvisionResources/ProvisionResources.tsx

@@ -74,7 +74,10 @@ const ProvisionResources: React.FC<Props> = () => {
           <Br height="15px" />
           <SaveButton
             text="Resolve Errors"
-            status="Encountered errors while provisioning."
+            status={
+              infraStatus?.description ||
+              "Encountered errors while provisioning."
+            }
             disabled={false}
             onClick={() => handleGoBack(infraStatus.description)}
             makeFlush={true}

+ 23 - 17
dashboard/src/main/home/onboarding/steps/ProvisionResources/forms/StatusPage.tsx

@@ -287,11 +287,15 @@ export const StatusPage = ({
     );
 
     const hasModuleWithTimerElapsed = moduleStatuses.find(
-      (module) => module.status === "failed"
+      (module) => module.status === "timed_out"
     );
 
     if (hasModuleWithTimerElapsed) {
-      setInfraStatus({ hasError: true });
+      setInfraStatus({
+        hasError: true,
+        description:
+          "We weren't able to provision after 45 minutes, please try again.",
+      });
       return;
     }
 
@@ -491,7 +495,7 @@ const useModuleChecker = (modules: TFModule[]) => {
   }>({});
 
   const [moduleStatuses, setModuleStatus] = useState<{
-    [timerModuleId: number]: "failed" | "creating" | "success";
+    [timerModuleId: number]: "timed_out" | "creating" | "success";
   }>({});
 
   const didModuleTimedOut = (infra: TFModule) => {
@@ -516,7 +520,8 @@ const useModuleChecker = (modules: TFModule[]) => {
     if (
       module.resources.every(
         (resource) => resource.provisioned || resource.errored?.errored_out
-      )
+      ) ||
+      module.global_errors.find((resourceError) => resourceError.errored_out)
     ) {
       return true;
     }
@@ -542,23 +547,25 @@ const useModuleChecker = (modules: TFModule[]) => {
         return;
       }
 
+      if (hasModuleBeenSuccessfullyProvisioned(module)) {
+        setModuleStatus((modulesStatus) => ({
+          ...modulesStatus,
+          [module.id]: "success",
+        }));
+        clearCheckerTimeout(module.id);
+        return;
+      }
+
       if (!hasModuleAnyResourcesProvisionedOrErrored(module)) {
         setModuleStatus((modulesStatus) => ({
           ...modulesStatus,
-          [module.id]: "failed",
+          [module.id]: "timed_out",
         }));
       } else {
-        if (hasModuleBeenSuccessfullyProvisioned(module)) {
-          setModuleStatus((modulesStatus) => ({
-            ...modulesStatus,
-            [module.id]: "success",
-          }));
-        } else {
-          setModuleStatus((modulesStatus) => ({
-            ...modulesStatus,
-            [module.id]: "creating",
-          }));
-        }
+        setModuleStatus((modulesStatus) => ({
+          ...modulesStatus,
+          [module.id]: "creating",
+        }));
       }
       clearCheckerTimeout(module.id);
     }, 1000);
@@ -598,7 +605,6 @@ const useModuleChecker = (modules: TFModule[]) => {
         moduleStatuses[module.id] &&
         moduleStatuses[module.id] !== "creating"
       ) {
-        console.log("Module failed or created", module.id);
         clearCheckerTimeout(module.id);
         return;
       }