Add configurable number of days since last backup before a client is considered out-of-date

This commit is contained in:
Stephen Donchez 2023-07-28 13:54:10 -04:00
parent f0a2e8c847
commit c64a641962
3 changed files with 9 additions and 7 deletions

View File

@ -27,7 +27,7 @@ export default function Component({ service }) {
); );
} }
const statusData = determineStatuses(urbackupData); const statusData = determineStatuses(urbackupData, widget);
return ( return (
<Container service={service}> <Container service={service}>

View File

@ -18,7 +18,8 @@ await (async () => {
try { try {
const allClients = await server.getStatus({includeRemoved: false}); const allClients = await server.getStatus({includeRemoved: false});
res.status(200).send({ res.status(200).send({
data: allClients data: allClients,
maxDays: serviceWidget.maxDays
}); });
} catch (error) { } catch (error) {
res.status(500).json({ error: "Something Broke" }) res.status(500).json({ error: "Something Broke" })

View File

@ -4,8 +4,9 @@ const Status = Object.freeze({
noRecent: Symbol("No Recent Backups") noRecent: Symbol("No Recent Backups")
}); });
function hasRecentBackups(client){ function hasRecentBackups(client, maxDays){
const diffTime = 7*24*60*60 // 7 days const days = maxDays || 3;
const diffTime = days*24*60*60 // 7 days
const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime)); const recentFile = (client.lastbackup > (Date.now() / 1000 - diffTime));
const recentImage = (client.lastbackup_image > (Date.now() / 1000 - diffTime)); const recentImage = (client.lastbackup_image > (Date.now() / 1000 - diffTime));
return (recentFile && recentImage); return (recentFile && recentImage);
@ -15,9 +16,9 @@ function recentBackupsOk(client){
return (client.file_ok && client.image_ok); return (client.file_ok && client.image_ok);
} }
function determineClientStatus(client){ function determineClientStatus(client, maxDays){
let status; let status;
if (hasRecentBackups(client)) if (hasRecentBackups(client, maxDays))
{ {
if (recentBackupsOk(client)) if (recentBackupsOk(client))
{ {
@ -42,7 +43,7 @@ export default function determineStatuses(clientStatuses) {
let noRecent = 0; let noRecent = 0;
let result; let result;
clientStatuses.data.forEach((client) => { clientStatuses.data.forEach((client) => {
result = determineClientStatus(client); result = determineClientStatus(client, clientStatuses.maxDays);
switch (result) switch (result)
{ {
case Status.ok: case Status.ok: