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": {
"ok" : "Ok",
"errored": "Errored",
"noRecent": "Out of Date"
"errored": "Errors",
"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.errored" value={t("common.number", { value: parseInt(statusData.errored, 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>
);
}

View File

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

View File

@ -37,13 +37,13 @@ function determineClientStatus(client, maxDays){
return status;
}
export default function determineStatuses(clientStatuses) {
export default function determineStatuses(urbackupData) {
let ok = 0;
let errored = 0;
let noRecent = 0;
let result;
clientStatuses.data.forEach((client) => {
result = determineClientStatus(client, clientStatuses.maxDays);
urbackupData.clientStatuses.forEach((client) => {
result = determineClientStatus(client, urbackupData.maxDays);
switch (result)
{
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};
}