mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
refactor: Add type annotations for functions in SnmpOidEditor and SnmpMonitor
This commit is contained in:
@@ -34,7 +34,7 @@ const SnmpOidEditor: FunctionComponent<ComponentProps> = (
|
||||
setOids(props.value || []);
|
||||
}, [props.value]);
|
||||
|
||||
const addOid = (): void => {
|
||||
const addOid: () => void = (): void => {
|
||||
const newOids: Array<SnmpOid> = [
|
||||
...oids,
|
||||
{ oid: "", name: "", description: "" },
|
||||
@@ -43,26 +43,28 @@ const SnmpOidEditor: FunctionComponent<ComponentProps> = (
|
||||
props.onChange(newOids);
|
||||
};
|
||||
|
||||
const removeOid = (index: number): void => {
|
||||
const newOids: Array<SnmpOid> = oids.filter((_, i) => {
|
||||
const removeOid: (index: number) => void = (index: number): void => {
|
||||
const newOids: Array<SnmpOid> = oids.filter((_: SnmpOid, i: number) => {
|
||||
return i !== index;
|
||||
});
|
||||
setOids(newOids);
|
||||
props.onChange(newOids);
|
||||
};
|
||||
|
||||
const updateOid = (
|
||||
const updateOid: (
|
||||
index: number,
|
||||
field: keyof SnmpOid,
|
||||
value: string,
|
||||
): void => {
|
||||
) => void = (index: number, field: keyof SnmpOid, value: string): void => {
|
||||
const newOids: Array<SnmpOid> = [...oids];
|
||||
newOids[index] = { ...newOids[index]!, [field]: value };
|
||||
setOids(newOids);
|
||||
props.onChange(newOids);
|
||||
};
|
||||
|
||||
const addTemplate = (template: SnmpOid): void => {
|
||||
const addTemplate: (template: SnmpOid) => void = (
|
||||
template: SnmpOid,
|
||||
): void => {
|
||||
const newOids: Array<SnmpOid> = [...oids, template];
|
||||
setOids(newOids);
|
||||
props.onChange(newOids);
|
||||
|
||||
@@ -12,6 +12,7 @@ import WebsiteMonitor, {
|
||||
} from "./MonitorTypes/WebsiteMonitor";
|
||||
import SnmpMonitor from "./MonitorTypes/SnmpMonitor";
|
||||
import SnmpMonitorResponse from "Common/Types/Monitor/SnmpMonitor/SnmpMonitorResponse";
|
||||
import MonitorStepSnmpMonitor from "Common/Types/Monitor/MonitorStepSnmpMonitor";
|
||||
import HTTPMethod from "Common/Types/API/HTTPMethod";
|
||||
import URL from "Common/Types/API/URL";
|
||||
import OneUptimeDate from "Common/Types/Date";
|
||||
@@ -452,7 +453,7 @@ export default class MonitorUtil {
|
||||
return result;
|
||||
}
|
||||
|
||||
const snmpConfig = monitorStep.data.snmpMonitor;
|
||||
const snmpConfig: MonitorStepSnmpMonitor = monitorStep.data.snmpMonitor;
|
||||
|
||||
if (!snmpConfig.hostname) {
|
||||
result.failureCause = "SNMP hostname not specified";
|
||||
|
||||
@@ -11,6 +11,8 @@ import SnmpDataType from "Common/Types/Monitor/SnmpMonitor/SnmpDataType";
|
||||
import SnmpSecurityLevel from "Common/Types/Monitor/SnmpMonitor/SnmpSecurityLevel";
|
||||
import SnmpAuthProtocol from "Common/Types/Monitor/SnmpMonitor/SnmpAuthProtocol";
|
||||
import SnmpPrivProtocol from "Common/Types/Monitor/SnmpMonitor/SnmpPrivProtocol";
|
||||
import SnmpOid from "Common/Types/Monitor/SnmpMonitor/SnmpOid";
|
||||
import SnmpV3Auth from "Common/Types/Monitor/SnmpMonitor/SnmpV3Auth";
|
||||
import snmp from "net-snmp";
|
||||
|
||||
export interface SnmpQueryOptions {
|
||||
@@ -164,7 +166,7 @@ export default class SnmpMonitor {
|
||||
);
|
||||
}
|
||||
|
||||
const oids: Array<string> = config.oids.map((oid) => {
|
||||
const oids: Array<string> = config.oids.map((oid: SnmpOid) => {
|
||||
return oid.oid;
|
||||
});
|
||||
|
||||
@@ -174,39 +176,45 @@ export default class SnmpMonitor {
|
||||
return;
|
||||
}
|
||||
|
||||
session.get(oids, (error, varbinds) => {
|
||||
if (error || !varbinds) {
|
||||
session.close();
|
||||
reject(error || new Error("No varbinds returned"));
|
||||
return;
|
||||
}
|
||||
|
||||
const oidResponses: Array<SnmpOidResponse> = [];
|
||||
|
||||
for (let i = 0; i < varbinds.length; i++) {
|
||||
const varbind: snmp.Varbind = varbinds[i]!;
|
||||
const configOid = config.oids[i];
|
||||
|
||||
if (snmp.isVarbindError(varbind)) {
|
||||
oidResponses.push({
|
||||
oid: varbind.oid,
|
||||
name: configOid?.name,
|
||||
value: null,
|
||||
type: SnmpMonitor.mapSnmpErrorType(varbind.type),
|
||||
});
|
||||
} else {
|
||||
oidResponses.push({
|
||||
oid: varbind.oid,
|
||||
name: configOid?.name,
|
||||
value: SnmpMonitor.parseVarbindValue(varbind),
|
||||
type: SnmpMonitor.mapSnmpDataType(varbind.type),
|
||||
});
|
||||
session.get(
|
||||
oids,
|
||||
(
|
||||
error: Error | null,
|
||||
varbinds: Array<snmp.Varbind> | undefined,
|
||||
) => {
|
||||
if (error || !varbinds) {
|
||||
session.close();
|
||||
reject(error || new Error("No varbinds returned"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
session.close();
|
||||
resolve(oidResponses);
|
||||
});
|
||||
const oidResponses: Array<SnmpOidResponse> = [];
|
||||
|
||||
for (let i: number = 0; i < varbinds.length; i++) {
|
||||
const varbind: snmp.Varbind = varbinds[i]!;
|
||||
const configOid: SnmpOid | undefined = config.oids[i];
|
||||
|
||||
if (snmp.isVarbindError(varbind)) {
|
||||
oidResponses.push({
|
||||
oid: varbind.oid,
|
||||
name: configOid?.name,
|
||||
value: null,
|
||||
type: SnmpMonitor.mapSnmpErrorType(varbind.type),
|
||||
});
|
||||
} else {
|
||||
oidResponses.push({
|
||||
oid: varbind.oid,
|
||||
name: configOid?.name,
|
||||
value: SnmpMonitor.parseVarbindValue(varbind),
|
||||
type: SnmpMonitor.mapSnmpDataType(varbind.type),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
session.close();
|
||||
resolve(oidResponses);
|
||||
},
|
||||
);
|
||||
} catch (err) {
|
||||
reject(err as Error);
|
||||
}
|
||||
@@ -215,7 +223,7 @@ export default class SnmpMonitor {
|
||||
}
|
||||
|
||||
private static buildV3User(config: MonitorStepSnmpMonitor): snmp.User {
|
||||
const v3Auth = config.snmpV3Auth!;
|
||||
const v3Auth: SnmpV3Auth = config.snmpV3Auth!;
|
||||
const user: snmp.User = {
|
||||
name: v3Auth.username,
|
||||
level: SnmpMonitor.mapSecurityLevel(v3Auth.securityLevel),
|
||||
|
||||
Reference in New Issue
Block a user