improve return message when requests do not pass resource approval
This commit is contained in:
1 parent
f2f4f45097
commit
07c48db808
5 files changed
+51
-27
No files matched your search
@@ -98,7 +98,7 @@ router.get(`/:node(${nodeRegexP})/pci`, async (req, res) => {
|
||||
|
||||
// get remaining user resources
|
||||
const userAvailPci = (await getUserResources(req, userObj)).pci.nodes[params.node]; // we assume that the node list is used. TODO support global lists
|
||||
if (userAvailPci === undefined) { // user has no avaliable devices on this node, so send an empty list
|
||||
if (userAvailPci === undefined) { // user has no available devices on this node, so send an empty list
|
||||
res.status(200).send([]);
|
||||
res.end();
|
||||
}
|
||||
@@ -164,8 +164,8 @@ router.get(`${basePath}`, async (req, res) => {
|
||||
* - swap: number, optional - new amount of swap for instance
|
||||
* responses:
|
||||
* - 200: PVE Task Object
|
||||
* - 400: {request; Object, error: string, reason: Object}
|
||||
* - 401: {auth: false, path: string}
|
||||
* - 500: {request: Object, error: string}
|
||||
* - 500: PVE Task Object
|
||||
*/
|
||||
router.post(`${basePath}/resources`, async (req, res) => {
|
||||
@@ -201,8 +201,9 @@ router.post(`${basePath}/resources`, async (req, res) => {
|
||||
request.cpu = params.proctype;
|
||||
}
|
||||
// check resource approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
res.status(500).send({ request, error: "Could not fulfil request." });
|
||||
const { approved, reason } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(400).send({ request, error: "Not enough resources to satisfy request.", reason });
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
@@ -239,9 +240,9 @@ router.post(`${basePath}/resources`, async (req, res) => {
|
||||
* - rootfssize: number, optional, - size of lxc instance rootfs
|
||||
* responses:
|
||||
* - 200: PVE Task Object
|
||||
* - 400: {request: Object, error: string, reason: Object}
|
||||
* - 401: {auth: false, path: string}
|
||||
* - 500: {error: string}
|
||||
* - 500: {request: Object, error: string}
|
||||
* - 500: PVE Task Object
|
||||
*/
|
||||
router.post(`${basePath}/create`, async (req, res) => {
|
||||
@@ -312,8 +313,9 @@ router.post(`${basePath}/create`, async (req, res) => {
|
||||
}
|
||||
}
|
||||
// check resource approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) { // check resource approval
|
||||
res.status(500).send({ request, error: "Not enough resources to satisfy request." });
|
||||
const { approved, reason } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(400).send({ request, error: "Not enough resources to satisfy request.", reason });
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -157,7 +157,8 @@ router.post("/:disk/resize", async (req, res) => {
|
||||
const request = {};
|
||||
request[storage] = Number(params.size * 1024 ** 3); // setup request object
|
||||
// check request approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Storage ${storage} could not fulfill request of size ${params.size}G.` });
|
||||
res.end();
|
||||
return;
|
||||
@@ -219,7 +220,8 @@ router.post("/:disk/move", async (req, res) => {
|
||||
request[dstStorage] = Number(size); // always decrease destination storage by size
|
||||
}
|
||||
// check request approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Storage ${params.storage} could not fulfill request of size ${params.size}G.` });
|
||||
res.end();
|
||||
return;
|
||||
@@ -335,7 +337,8 @@ router.post("/:disk/create", async (req, res) => {
|
||||
// setup request
|
||||
request[params.storage] = Number(params.size * 1024 ** 3);
|
||||
// check request approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Storage ${params.storage} could not fulfill request of size ${params.size}G.` });
|
||||
res.end();
|
||||
return;
|
||||
|
||||
@@ -53,7 +53,8 @@ router.post("/:netid/create", async (req, res) => {
|
||||
};
|
||||
// check resource approval
|
||||
const userObj = global.utils.getUserObjFromUsername(req.cookies.username);
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Could not fulfil network request of ${params.rate}MB/s.` });
|
||||
res.end();
|
||||
return;
|
||||
@@ -116,7 +117,8 @@ router.post("/:netid/modify", async (req, res) => {
|
||||
};
|
||||
// check resource approval
|
||||
const userObj = global.utils.getUserObjFromUsername(req.cookies.username);
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Could not fulfil network request of ${params.rate}MB/s.` });
|
||||
res.end();
|
||||
return;
|
||||
|
||||
@@ -100,7 +100,8 @@ router.post("/:hostpci/modify", async (req, res) => {
|
||||
return;
|
||||
}
|
||||
// check resource approval
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Could not fulfil request for ${requestedDevice.device_name}.` });
|
||||
res.end();
|
||||
return;
|
||||
@@ -172,7 +173,8 @@ router.post("/:hostpci/create", async (req, res) => {
|
||||
const request = { pci: requestedDevice.device_name };
|
||||
// check resource approval
|
||||
const userObj = global.utils.getUserObjFromUsername(req.cookies.username);
|
||||
if (!await approveResources(req, userObj, request, params.node)) {
|
||||
const { approved } = await approveResources(req, userObj, request, params.node);
|
||||
if (!approved) {
|
||||
res.status(500).send({ request, error: `Could not fulfil request for ${requestedDevice.device_name}.` });
|
||||
res.end();
|
||||
return;
|
||||
|
||||
Reference in new issue
Block a user