add api package cli arg,
fix comments
This commit is contained in:
parent
221c854d50
commit
0232b2208e
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
**/package-lock.json
|
||||
**/node_modules
|
||||
**/localdb.json
|
||||
**/localdb.json
|
||||
**/docs
|
@ -12,11 +12,12 @@ import LocalDB from "./db.js";
|
||||
import parseArgs from "minimist";
|
||||
global.argv = parseArgs(process.argv.slice(2), {
|
||||
default: {
|
||||
package: "package.json",
|
||||
localdb: "config/localdb.json"
|
||||
}
|
||||
});
|
||||
|
||||
global.api = api;
|
||||
global.api = api(global.argv.package);
|
||||
global.pve = pve;
|
||||
global.utils = utils;
|
||||
global.db = new LocalDB(global.argv.localdb);
|
||||
@ -29,7 +30,7 @@ app.use(cors({ origin: global.db.hostname }));
|
||||
app.use(morgan("combined"));
|
||||
|
||||
global.server = app.listen(global.db.listenPort, () => {
|
||||
console.log(`proxmoxaas-api v${api.version} listening on port ${global.db.listenPort}`);
|
||||
console.log(`proxmoxaas-api v${global.api.version} listening on port ${global.db.listenPort}`);
|
||||
});
|
||||
|
||||
import("./routes/auth.js").then((module) => {
|
||||
@ -62,7 +63,7 @@ import("./routes/user.js").then((module) => {
|
||||
* - 200: {version: string}
|
||||
*/
|
||||
app.get("/api/version", (req, res) => {
|
||||
res.status(200).send({ version: api.version });
|
||||
res.status(200).send({ version: global.api.version });
|
||||
});
|
||||
|
||||
/**
|
||||
|
@ -1,2 +1,4 @@
|
||||
import { readFileSync } from "fs";
|
||||
export default JSON.parse(readFileSync("package.json"));
|
||||
export default (path) => {
|
||||
return JSON.parse(readFileSync(path));
|
||||
};
|
||||
|
@ -7,7 +7,7 @@ import axios from "axios";
|
||||
* @param {Object} cookies user cookies for authorization if an API token is not used. Safest option for authentication.
|
||||
* @param {string} body body parameters and data to be sent. Optional.
|
||||
* @param {string} token proxmox API token to be used for controled priviledge elevation, allows user requests to perform admin actions safely. Optional
|
||||
* @returns {Obejct} HTTP response object or HTTP error object
|
||||
* @returns {Object} HTTP response object or HTTP error object
|
||||
*/
|
||||
export async function requestPVE (path, method, cookies, body = null, token = null) {
|
||||
const pveAPI = global.db.pveAPI;
|
||||
|
@ -13,7 +13,7 @@ const pveAPIToken = global.db.pveAPIToken;
|
||||
* POST - detach mounted disk from instance
|
||||
* request:
|
||||
* - node: string - vm host node id
|
||||
* -y tpe: string - vm type (lxc, qemu)
|
||||
* - type: string - vm type (lxc, qemu)
|
||||
* - vmid: number - vm id number
|
||||
* - disk: string - disk id (sata0, NOT unused)
|
||||
* responses:
|
||||
|
12
src/utils.js
12
src/utils.js
@ -95,12 +95,24 @@ export async function approveResources (req, username, request) {
|
||||
return approved; // if all requested resources pass, allow
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hash value of an object with data values.
|
||||
* @param {Object} object to be hashed.
|
||||
* @param {string} alg algorithm used to get digest.
|
||||
* @param {string} format format of digest.
|
||||
* @returns {string} digest of hash function.
|
||||
*/
|
||||
export function getObjectHash (object, alg = "sha256", format = "hex") {
|
||||
const hash = createHash(alg);
|
||||
hash.update(JSON.stringify(object, Object.keys(object).sort()));
|
||||
return hash.digest(format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the time remaining of scheduler timeout object.
|
||||
* @param {Object} timeout object to get time reamining.
|
||||
* @returns {number} milliseconds remaining until next event.
|
||||
*/
|
||||
export function getTimeLeft (timeout) {
|
||||
return Math.ceil((timeout._idleStart + timeout._idleTimeout - (global.process.uptime() * 1000)));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user