From f34c13827bc2fa75157eb9ffda652ae36bb0961f Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Wed, 16 Apr 2025 20:09:19 +0000 Subject: [PATCH] add error handling in vm-isos and ct-templates when configured node is unreachable, update disk attach logic for new fabric changes --- src/routes/cluster/disk.js | 2 +- src/routes/user.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/routes/cluster/disk.js b/src/routes/cluster/disk.js index 5c5ba65..2479af3 100644 --- a/src/routes/cluster/disk.js +++ b/src/routes/cluster/disk.js @@ -97,7 +97,7 @@ router.post("/:disk/attach", async (req, res) => { } // setup action using source disk info from vm config const action = {}; - action[params.disk] = disk.volid; + action[params.disk] = disk.file; const method = params.type === "qemu" ? "POST" : "PUT"; // commit action diff --git a/src/routes/user.js b/src/routes/user.js index 986fca4..f1a2e21 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -73,7 +73,12 @@ router.get("/vm-isos", async (req, res) => { // get user iso config const userIsoConfig = config.useriso; // get all isos - const isos = (await global.pve.requestPVE(`/nodes/${userIsoConfig.node}/storage/${userIsoConfig.storage}/content?content=iso`, "GET", { token: true })).data.data; + const content = await global.pve.requestPVE(`/nodes/${userIsoConfig.node}/storage/${userIsoConfig.storage}/content?content=iso`, "GET", { token: true }) + if (content.status !== 200) { + res.status(content.status).send({error: content.statusText}) + return + } + const isos = content.data.data; const userIsos = []; isos.forEach((iso) => { iso.name = iso.volid.replace(`${userIsoConfig.storage}:iso/`, ""); @@ -98,7 +103,12 @@ router.get("/ct-templates", async (req, res) => { // get user iso config const userIsoConfig = config.useriso; // get all isos - const isos = (await global.pve.requestPVE(`/nodes/${userIsoConfig.node}/storage/${userIsoConfig.storage}/content?content=vztmpl`, "GET", { token: true })).data.data; + const content = await global.pve.requestPVE(`/nodes/${userIsoConfig.node}/storage/${userIsoConfig.storage}/content?content=iso`, "GET", { token: true }) + if (content.status !== 200) { + res.status(content.status).send({error: content.statusText}) + return + } + const isos = content.data.data; const userIsos = []; isos.forEach((iso) => { iso.name = iso.volid.replace(`${userIsoConfig.storage}:vztmpl/`, "");