Add support for reporting total disk usage

This commit is contained in:
Stephen Donchez 2023-07-28 16:20:49 -04:00
parent ba54f11eb0
commit 08f40ba204
4 changed files with 25 additions and 7 deletions

View File

@ -686,7 +686,8 @@
}, },
"urbackup": { "urbackup": {
"ok" : "Ok", "ok" : "Ok",
"errored": "Errored", "errored": "Errors",
"noRecent": "Out of Date" "noRecent": "Out of Date",
"totalUsed": "Used Storage"
} }
} }

View File

@ -34,6 +34,7 @@ export default function Component({ service }) {
<Block label="urbackup.ok" value={t("common.number", { value: parseInt(statusData.ok, 10) })} /> <Block label="urbackup.ok" value={t("common.number", { value: parseInt(statusData.ok, 10) })} />
<Block label="urbackup.errored" value={t("common.number", { value: parseInt(statusData.errored, 10) })} /> <Block label="urbackup.errored" value={t("common.number", { value: parseInt(statusData.errored, 10) })} />
<Block label="urbackup.noRecent" value={t("common.number", { value: parseInt(statusData.noRecent, 10) })} /> <Block label="urbackup.noRecent" value={t("common.number", { value: parseInt(statusData.noRecent, 10) })} />
{urbackupData.diskUsage && <Block label="urbackup.totalUsed" value={t("common.bbytes", {value: parseFloat(statusData.totalUsage, 10)})} />}
</Container> </Container>
); );
} }

View File

@ -17,8 +17,14 @@ export default async function urbackupProxyHandler(req, res) {
await (async () => { await (async () => {
try { try {
const allClients = await server.getStatus({includeRemoved: false}); const allClients = await server.getStatus({includeRemoved: false});
let diskUsage = false
if(serviceWidget.diskUsage)
{
diskUsage = await server.getUsage();
}
res.status(200).send({ res.status(200).send({
data: allClients, clientStatuses: allClients,
diskUsage,
maxDays: serviceWidget.maxDays maxDays: serviceWidget.maxDays
}); });
} catch (error) { } catch (error) {

View File

@ -37,13 +37,13 @@ function determineClientStatus(client, maxDays){
return status; return status;
} }
export default function determineStatuses(clientStatuses) { export default function determineStatuses(urbackupData) {
let ok = 0; let ok = 0;
let errored = 0; let errored = 0;
let noRecent = 0; let noRecent = 0;
let result; let result;
clientStatuses.data.forEach((client) => { urbackupData.clientStatuses.forEach((client) => {
result = determineClientStatus(client, clientStatuses.maxDays); result = determineClientStatus(client, urbackupData.maxDays);
switch (result) switch (result)
{ {
case Status.ok: case Status.ok:
@ -60,7 +60,17 @@ export default function determineStatuses(clientStatuses) {
} }
}); });
return {ok, errored, noRecent}; let totalUsage = false;
// calculate total disk space if provided
if (urbackupData.diskUsage){
totalUsage = 0.0;
urbackupData.diskUsage.forEach((client) => {
totalUsage += client.used;
});
}
return {ok, errored, noRecent, totalUsage};
} }