AppManager: App installation status monitoring
Change-Id: I64f4ae0d27892b74f8827a275907cb75da09a758
diff --git a/apps/canvas/front/src/components/actions.tsx b/apps/canvas/front/src/components/actions.tsx
index 66235b3..dc3503f 100644
--- a/apps/canvas/front/src/components/actions.tsx
+++ b/apps/canvas/front/src/components/actions.tsx
@@ -19,7 +19,7 @@
setOk(!messages.some((m) => m.type === "FATAL"));
}, [messages, setOk]);
const monitor = useCallback(async () => {
- const m = async function() {
+ const m = async function () {
const resp = await fetch(`/api/project/${projectId}/status`, {
method: "GET",
headers: {
@@ -32,14 +32,19 @@
const data: { type: string, name: string, status: string }[] = await resp.json();
console.log(data);
for (const n of nodes) {
- console.log(nodeLabel(n));
- for (const d of data) {
- if (nodeLabel(n) === d.name) {
- store.updateNodeData(n.id, { state: d.status });
- }
+ if (n.type === "network") {
+ continue;
+ }
+ const d = data.find((d) => n.type === d.type && nodeLabel(n) === d.name);
+ if (d !== undefined) {
+ store.updateNodeData(n.id, {
+ state: d?.status,
+ });
}
}
- setTimeout(m, 1000);
+ if (data.find((d) => d.status !== "success" && d.status != "failure") !== undefined) {
+ setTimeout(m, 1000);
+ }
};
setTimeout(m, 100);
}, [projectId, nodes]);
@@ -74,7 +79,7 @@
title: "Deployment failed",
description: await resp.text(),
});
- }
+ }
} catch (e) {
console.log(e);
toast({
@@ -107,7 +112,7 @@
title: "Save failed",
description: await resp.text(),
});
- }
+ }
}, [projectId, instance, setSt]);
const restoreSaved = useCallback(async () => {
if (projectId == null) {
@@ -147,7 +152,7 @@
title: "Save failed",
description: await resp.text(),
});
- }
+ }
}, [store, clear]);
const [props, setProps] = useState({});
useEffect(() => {
@@ -168,4 +173,4 @@
<Button onClick={deleteProject} variant="destructive" disabled={projectId === undefined}>Delete</Button>
</>
)
-}
\ No newline at end of file
+}