Consolidate urbackup code, syntax changes

This commit is contained in:
shamoon 2023-07-29 22:10:48 -07:00
parent 1eb4939cf1
commit 0a2322a718
2 changed files with 52 additions and 78 deletions

View File

@ -1,11 +1,61 @@
import { useTranslation } from "next-i18next"; import { useTranslation } from "next-i18next";
import determineStatuses from "./stats-helper";
import Container from "components/services/widget/container"; import Container from "components/services/widget/container";
import Block from "components/services/widget/block"; import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
const Status = Object.freeze({
ok: Symbol("Ok"),
errored: Symbol("Errored"),
noRecent: Symbol("No Recent Backups")
});
function hasRecentBackups(client, maxDays){
const days = maxDays || 3;
const diffTime = days*24*60*60 // 7 days
const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime));
const recentImage = ((client.lastbackup_image > (Date.now() / 1000 - diffTime)||client.image_not_supported));
return (recentFile && recentImage);
}
function determineStatuses(urbackupData) {
let ok = 0;
let errored = 0;
let noRecent = 0;
let status;
urbackupData.clientStatuses.forEach((client) => {
status = Status.noRecent;
if (hasRecentBackups(client, urbackupData.maxDays)) {
status = (client.file_ok && (client.image_ok || client.image_not_supported)) ? Status.ok : Status.errored;
}
switch (status) {
case Status.ok:
ok += 1;
break;
case Status.errored:
errored += 1;
break;
case Status.noRecent:
noRecent += 1;
break;
default:
break;
}
});
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 };
}
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();

View File

@ -1,76 +0,0 @@
const Status = Object.freeze({
ok: Symbol("Ok"),
errored: Symbol("Errored"),
noRecent: Symbol("No Recent Backups")
});
function hasRecentBackups(client, maxDays){
const days = maxDays || 3;
const diffTime = days*24*60*60 // 7 days
const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime));
const recentImage = ((client.lastbackup_image > (Date.now() / 1000 - diffTime)||client.image_not_supported));
return (recentFile && recentImage);
}
function recentBackupsOk(client){
return (client.file_ok && (client.image_ok || client.image_not_supported));
}
function determineClientStatus(client, maxDays){
let status;
if (hasRecentBackups(client, maxDays))
{
if (recentBackupsOk(client))
{
status = Status.ok
}
else
{
status = Status.errored
}
}
else
{
status = Status.noRecent
}
return status;
}
export default function determineStatuses(urbackupData) {
let ok = 0;
let errored = 0;
let noRecent = 0;
let result;
urbackupData.clientStatuses.forEach((client) => {
result = determineClientStatus(client, urbackupData.maxDays);
switch (result)
{
case Status.ok:
ok +=1;
break;
case Status.errored:
errored += 1;
break;
case Status.noRecent:
noRecent += 1;
break;
default:
break;
}
});
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};
}