refactor information widgets

This commit is contained in:
Ben Phelps 2022-08-27 00:55:13 +03:00
parent 1124f55361
commit b61ec9836e
10 changed files with 208 additions and 120 deletions

View file

@ -14,7 +14,9 @@ export default async function handler(req, res) {
try {
const docker = new Docker(await getDockerArguments(containerServer));
const containers = await docker.listContainers();
const containers = await docker.listContainers({
all: true,
});
// bad docker connections can result in a <Buffer ...> object?
// in any case, this ensures the result is the expected array
@ -30,7 +32,7 @@ export default async function handler(req, res) {
const containerExists = containerNames.includes(containerName);
if (!containerExists) {
return res.status(404).send({
return res.status(200).send({
error: "not found",
});
}

View file

@ -13,7 +13,9 @@ export default async function handler(req, res) {
try {
const docker = new Docker(await getDockerArguments(containerServer));
const containers = await docker.listContainers();
const containers = await docker.listContainers({
all: true,
});
// bad docker connections can result in a <Buffer ...> object?
// in any case, this ensures the result is the expected array
@ -29,7 +31,7 @@ export default async function handler(req, res) {
const containerExists = containerNames.includes(containerName);
if (!containerExists) {
return res.status(404).send({
return res.status(200).send({
error: "not found",
});
}

View file

@ -1,14 +1,26 @@
import { cpu, drive, mem, netstat } from "node-os-utils";
export default async function handler(req, res) {
const { disk } = req.query;
const { type, target } = req.query;
res.send({
cpu: {
usage: await cpu.usage(),
load: cpu.loadavgTime(5),
},
drive: await drive.info(disk || "/"),
memory: await mem.info(),
});
if (type == "cpu") {
return res.status(200).json({
cpu: {
usage: await cpu.usage(1000),
load: cpu.loadavgTime(5),
},
});
} else if (type == "disk") {
return res.status(200).json({
drive: await drive.info(target || "/"),
});
} else if (type == "memory") {
return res.status(200).json({
memory: await mem.info(),
});
} else {
return res.status(400).json({
error: "invalid type",
});
}
}