From c64a641962c444d0926867c237171abca27b3c5f Mon Sep 17 00:00:00 2001 From: Stephen Donchez Date: Fri, 28 Jul 2023 13:54:10 -0400 Subject: [PATCH] Add configurable number of days since last backup before a client is considered out-of-date --- src/widgets/urbackup/component.jsx | 2 +- src/widgets/urbackup/proxy.js | 3 ++- src/widgets/urbackup/stats-helper.js | 11 ++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/widgets/urbackup/component.jsx b/src/widgets/urbackup/component.jsx index a365cb59..e1ad3fa7 100644 --- a/src/widgets/urbackup/component.jsx +++ b/src/widgets/urbackup/component.jsx @@ -27,7 +27,7 @@ export default function Component({ service }) { ); } - const statusData = determineStatuses(urbackupData); + const statusData = determineStatuses(urbackupData, widget); return ( diff --git a/src/widgets/urbackup/proxy.js b/src/widgets/urbackup/proxy.js index b1be0703..a04ff11e 100644 --- a/src/widgets/urbackup/proxy.js +++ b/src/widgets/urbackup/proxy.js @@ -18,7 +18,8 @@ await (async () => { try { const allClients = await server.getStatus({includeRemoved: false}); res.status(200).send({ - data: allClients + data: allClients, + maxDays: serviceWidget.maxDays }); } catch (error) { res.status(500).json({ error: "Something Broke" }) diff --git a/src/widgets/urbackup/stats-helper.js b/src/widgets/urbackup/stats-helper.js index 9db6738b..9b44f5a7 100644 --- a/src/widgets/urbackup/stats-helper.js +++ b/src/widgets/urbackup/stats-helper.js @@ -4,8 +4,9 @@ const Status = Object.freeze({ noRecent: Symbol("No Recent Backups") }); -function hasRecentBackups(client){ - const diffTime = 7*24*60*60 // 7 days +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)); return (recentFile && recentImage); @@ -15,9 +16,9 @@ function recentBackupsOk(client){ return (client.file_ok && client.image_ok); } -function determineClientStatus(client){ +function determineClientStatus(client, maxDays){ let status; - if (hasRecentBackups(client)) + if (hasRecentBackups(client, maxDays)) { if (recentBackupsOk(client)) { @@ -42,7 +43,7 @@ export default function determineStatuses(clientStatuses) { let noRecent = 0; let result; clientStatuses.data.forEach((client) => { - result = determineClientStatus(client); + result = determineClientStatus(client, clientStatuses.maxDays); switch (result) { case Status.ok: