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 (
<Container service={service}>

View File

@ -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" })

View File

@ -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: