Add configurable number of days since last backup before a client is considered out-of-date
This commit is contained in:
parent
f0a2e8c847
commit
c64a641962
@ -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}>
|
||||||
|
|||||||
@ -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" })
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user