mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-27 16:54:04 +00:00
Given that above throws, the else case is not nessesary
Co-Authored-By: Frank Elsinga <frank.elsinga@tum.de>
This commit is contained in:
parent
997791bc78
commit
1fe1bb5864
1 changed files with 32 additions and 34 deletions
|
@ -40,41 +40,39 @@ class SNMPMonitorType extends MonitorType {
|
||||||
if (varbinds.length === 0 || varbinds[0].type === snmp.ObjectType.NoSuchInstance) {
|
if (varbinds.length === 0 || varbinds[0].type === snmp.ObjectType.NoSuchInstance) {
|
||||||
throw new Error(`No varbinds returned from SNMP session (OID: ${monitor.snmpOid})`);
|
throw new Error(`No varbinds returned from SNMP session (OID: ${monitor.snmpOid})`);
|
||||||
|
|
||||||
// Varbinds succesfully returned
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// We restrict querying to one OID per monitor, therefore `varbinds[0]` will always contain the value we're interested in.
|
|
||||||
const value = varbinds[0].value;
|
|
||||||
|
|
||||||
// Check if inputs are numeric. If not, re-parse as strings. This ensures comparisons are handled correctly.
|
|
||||||
let snmpValue = isNaN(value) ? value.toString() : parseFloat(value);
|
|
||||||
let snmpControlValue = isNaN(monitor.snmpControlValue) ? monitor.snmpControlValue.toString() : parseFloat(monitor.snmpControlValue);
|
|
||||||
|
|
||||||
switch (monitor.snmpCondition) {
|
|
||||||
case ">":
|
|
||||||
heartbeat.status = snmpValue > snmpControlValue ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
case ">=":
|
|
||||||
heartbeat.status = snmpValue >= snmpControlValue ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
case "<":
|
|
||||||
heartbeat.status = snmpValue < snmpControlValue ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
case "<=":
|
|
||||||
heartbeat.status = snmpValue <= snmpControlValue ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
case "==":
|
|
||||||
heartbeat.status = snmpValue.toString() === snmpControlValue.toString() ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
case "contains":
|
|
||||||
heartbeat.status = snmpValue.toString().includes(snmpControlValue.toString()) ? UP : DOWN;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new Error(`Invalid condition ${monitor.snmpCondition}`);
|
|
||||||
}
|
|
||||||
heartbeat.msg = "SNMP value " + (heartbeat.status ? "passes" : "does not pass") + ` comparison: ${value.toString()} ${monitor.snmpCondition} ${snmpControlValue}`;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We restrict querying to one OID per monitor, therefore `varbinds[0]` will always contain the value we're interested in.
|
||||||
|
const value = varbinds[0].value;
|
||||||
|
|
||||||
|
// Check if inputs are numeric. If not, re-parse as strings. This ensures comparisons are handled correctly.
|
||||||
|
let snmpValue = isNaN(value) ? value.toString() : parseFloat(value);
|
||||||
|
let snmpControlValue = isNaN(monitor.snmpControlValue) ? monitor.snmpControlValue.toString() : parseFloat(monitor.snmpControlValue);
|
||||||
|
|
||||||
|
switch (monitor.snmpCondition) {
|
||||||
|
case ">":
|
||||||
|
heartbeat.status = snmpValue > snmpControlValue ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
case ">=":
|
||||||
|
heartbeat.status = snmpValue >= snmpControlValue ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
case "<":
|
||||||
|
heartbeat.status = snmpValue < snmpControlValue ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
case "<=":
|
||||||
|
heartbeat.status = snmpValue <= snmpControlValue ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
case "==":
|
||||||
|
heartbeat.status = snmpValue.toString() === snmpControlValue.toString() ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
case "contains":
|
||||||
|
heartbeat.status = snmpValue.toString().includes(snmpControlValue.toString()) ? UP : DOWN;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Error(`Invalid condition ${monitor.snmpCondition}`);
|
||||||
|
}
|
||||||
|
heartbeat.msg = "SNMP value " + (heartbeat.status ? "passes" : "does not pass") + ` comparison: ${value.toString()} ${monitor.snmpCondition} ${snmpControlValue}`;
|
||||||
|
|
||||||
session.close();
|
session.close();
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
Loading…
Reference in a new issue