From c8404c366f740468a67f353eb4b5dbba82be1538 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Mon, 1 Jul 2024 19:03:36 +0000 Subject: [PATCH] update readme with new permissions required for proxmox 8, improve handling of proxmox responses --- README.md | 1 + src/backends/pve.js | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f8939da..70d037f 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ In Proxmox VE, follow the following steps: - Datastore.Allocate, Datastore.AllocateSpace, Datastore.Audit - User.Modify - Pool.Audit + - SDN.Use (if instances use SDN networks) 4. Add a new API Token Permission with path: `/`, select the API token created previously, and role: `proxmoxaas-api` 5. Add a new User Permission with path: `/`, select the `proxmoxaas-api` user, and role: `proxmoxaas-api` diff --git a/src/backends/pve.js b/src/backends/pve.js index 84f3c84..0e0a84b 100644 --- a/src/backends/pve.js +++ b/src/backends/pve.js @@ -91,7 +91,11 @@ export default class PVE extends PVE_BACKEND { */ async handleResponse (node, result, res) { const waitFor = delay => new Promise(resolve => setTimeout(resolve, delay)); - if (result.data.data && typeof (result.data.data) === "string" && result.data.data.startsWith("UPID:")) { + if (result.status !== 200) { + res.status(result.status).send({error: result.statusText}); + res.end(); + } + else if (result.data.data && typeof (result.data.data) === "string" && result.data.data.startsWith("UPID:")) { const upid = result.data.data; let taskStatus = await this.requestPVE(`/nodes/${node}/tasks/${upid}/status`, "GET", { token: true }); while (taskStatus.data.data.status !== "stopped") {