From ba3b406407e873c5722d7756378e4d8a9368e81d Mon Sep 17 00:00:00 2001 From: Marsell Kukuljevic Date: Thu, 28 May 2026 11:30:14 +0200 Subject: [PATCH] Change VSPC plugin to work a bit better with certain attribute changes. --- .../libexec/agent_vspc_backup_checks | 45 ++++++++---------- .../2.3/vspc_backup_checks-0.2.0.mkp | Bin 4951 -> 0 bytes .../2.3/vspc_backup_checks-0.2.1.mkp | Bin 0 -> 4929 bytes 3 files changed, 21 insertions(+), 24 deletions(-) delete mode 100755 vspc_backup_checks/2.3/vspc_backup_checks-0.2.0.mkp create mode 100755 vspc_backup_checks/2.3/vspc_backup_checks-0.2.1.mkp diff --git a/vspc_backup_checks/2.3/local/lib/python3/cmk_addons/plugins/vspc_backup_checks/libexec/agent_vspc_backup_checks b/vspc_backup_checks/2.3/local/lib/python3/cmk_addons/plugins/vspc_backup_checks/libexec/agent_vspc_backup_checks index d3aa112..dd96a85 100755 --- a/vspc_backup_checks/2.3/local/lib/python3/cmk_addons/plugins/vspc_backup_checks/libexec/agent_vspc_backup_checks +++ b/vspc_backup_checks/2.3/local/lib/python3/cmk_addons/plugins/vspc_backup_checks/libexec/agent_vspc_backup_checks @@ -196,6 +196,9 @@ def process(mAgents, bAgents, jobs, managed): if failureMessage: # We use 2.2 here to give wiggle room for jobs to complete if # they take longer than expected. + # + # NB: we assume here that lastEndTime was set if there's a + # failureMessage. results[host].append({ "status": CRIT if daysSinceLastRun > 2.2 else WARN, "message": f"Backup agent {bAgentId} job {jobId} failed {daysSinceLastRun:.1f} days ago: {failureMessage}" @@ -209,30 +212,24 @@ def process(mAgents, bAgents, jobs, managed): }) continue - if not daysSinceLastRun: - results[host].append({ - "status": OK, - "message": f"Backup agent {bAgentId} is healthy; no backups yet." - }) - continue - - # We use 1.2 & 2.2 here to give wiggle room for jobs to complete if - # they take longer than expected. - if daysSinceLastRun > 2.2: - results[host].append({ - "status": CRIT, - "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." - }) - elif daysSinceLastRun > 1.2: - results[host].append({ - "status": WARN, - "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." - }) - else: - results[host].append({ - "status": OK, - "message": f"Backup agent {bAgentId} job {jobId} is healthy; last backup ran {daysSinceLastRun:.1f} days ago." - }) + if daysSinceLastRun is not None: + # We use 1.2 & 2.2 here to give wiggle room for jobs to complete if + # they take longer than expected. + if daysSinceLastRun > 2.2: + results[host].append({ + "status": CRIT, + "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." + }) + elif daysSinceLastRun > 1.2: + results[host].append({ + "status": WARN, + "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." + }) + else: + results[host].append({ + "status": OK, + "message": f"Backup agent {bAgentId} job {jobId} is healthy; last backup ran {daysSinceLastRun:.1f} days ago." + }) if not mEntry: continue diff --git a/vspc_backup_checks/2.3/vspc_backup_checks-0.2.0.mkp b/vspc_backup_checks/2.3/vspc_backup_checks-0.2.0.mkp deleted file mode 100755 index d333e572ea91184580a2314f963329da8fac2d7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4951 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 literal 0 HcmV?d00001