From 8a8a4c0df67688d1d41afa0a45243360a4f4086f Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Fri, 23 Jun 2023 03:37:15 +0000 Subject: [PATCH] check storage on disk create only when disk is not ide --- src/main.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main.js b/src/main.js index 8de2517..d571d8c 100644 --- a/src/main.js +++ b/src/main.js @@ -409,6 +409,7 @@ app.delete("/api/instance/disk/delete", async (req, res) => { * - disk: String - disk id (sata0, ide0) * - storage: String - storage to hold disk * - size: Number - size of disk in GiB + * - iso: String - file name to mount as cdrom * responses: * - 200: PVE Task Object * - 401: {auth: false, path: String} @@ -431,20 +432,21 @@ app.post("/api/instance/disk/create", async (req, res) => { // setup request let request = {}; if (!req.body.disk.includes("ide")) { - request[req.body.storage] = Number(req.body.size * 1024 ** 3); // setup request object + // setup request + request[req.body.storage] = Number(req.body.size * 1024 ** 3); // check request approval if (!await approveResources(req, req.cookies.username, request)) { res.status(500).send({ request: request, error: `Storage ${req.body.storage} could not fulfill request of size ${req.body.size}G.` }); res.end(); return; } - } - // target disk must be allowed according to storage options - let resourceConfig = db.getResourceConfig(); - if (!resourceConfig[req.body.storage].disks.some(diskPrefix => req.body.disk.startsWith(diskPrefix))) { - res.status(500).send({ error: `Requested target ${req.body.disk} is not in allowed list [${resourceConfig[req.body.storage].disks}].` }); - res.end(); - return; + // target disk must be allowed according to storage options + let resourceConfig = db.getResourceConfig(); + if (!resourceConfig[req.body.storage].disks.some(diskPrefix => req.body.disk.startsWith(diskPrefix))) { + res.status(500).send({ error: `Requested target ${req.body.disk} is not in allowed list [${resourceConfig[req.body.storage].disks}].` }); + res.end(); + return; + } } // setup action let action = {};