Given that above throws, the else case is not nessesary

Co-Authored-By: Frank Elsinga <frank.elsinga@tum.de>
pull/4717/head
Matt Visnovsky 7 months ago
parent 997791bc78
commit 1fe1bb5864

@ -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. // We restrict querying to one OID per monitor, therefore `varbinds[0]` will always contain the value we're interested in.
let snmpValue = isNaN(value) ? value.toString() : parseFloat(value); const value = varbinds[0].value;
let snmpControlValue = isNaN(monitor.snmpControlValue) ? monitor.snmpControlValue.toString() : parseFloat(monitor.snmpControlValue);
switch (monitor.snmpCondition) { // Check if inputs are numeric. If not, re-parse as strings. This ensures comparisons are handled correctly.
case ">": let snmpValue = isNaN(value) ? value.toString() : parseFloat(value);
heartbeat.status = snmpValue > snmpControlValue ? UP : DOWN; let snmpControlValue = isNaN(monitor.snmpControlValue) ? monitor.snmpControlValue.toString() : parseFloat(monitor.snmpControlValue);
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}`;
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…
Cancel
Save