Add EdgeCore ECS4110-28T Support (#10525)

* Add ECS4110 cpu usage

* Add cpu usage oid for ECS4110
* TESTED

* Fix EdgeCore ifOperStatus does not follow the Cisco convention
* Since EdgeCore use "lowerLayerDown" in ifOperStatus when port is unplugged
* On the other way, Cisco use briefly "down".
* So change "lowerLayerDown" to "down" to workaround the bug that will make port always show as up/up

* Refactor Edgecos cpu usage oid
* Codeclimate is unhappy about it maybe the refactor will make it happy.

* Add EgdeCore ECS4110 MIB

Just got MIB from EdgeCore

* Refactor Egdecos Mempool

* a bit refactor of Mempool discover and polling
* add support for ECS4110 via MIB

* Modify ECS-4110 MIB

* MODULE-IDENTITY change from ECS4110-52P-MIB to ECS4110-MIB
* strip off syntax error part(time range)

* Add EdgeCore ECS-4110 OS polling

* polling OS and Hardware via MIBs

* Fix typo

* Sorry that I am dazzled

* Fix Syntax Check

* Codeclimate is a bit aggressive

* Update edgecos.inc.php

* Update edgecos.inc.php

* Revert "Fix EdgeCore ifOperStatus does not follow the Cisco convention"

This reverts commit 27971b34a8.

* Add snmprec file for unit testing.

* Create edgecos_ecs4110-28t.json
This commit is contained in:
soto2080
2019-09-28 11:18:24 +08:00
committed by Tony Murray
parent c69643056f
commit 2139eed306
8 changed files with 30155 additions and 62 deletions

View File

@@ -43,25 +43,17 @@ class Edgecos extends OS implements ProcessorDiscovery
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510 if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510
$oid = '.1.3.6.1.4.1.259.10.1.24.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.10.1.24.1.39.2.1.0';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
$oid = '.1.3.6.1.4.1.259.10.1.22.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.10.1.22.1.39.2.1.0';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.39.')) { //ECS4110
$oid = '.1.3.6.1.4.1.259.10.1.39.1.39.2.1.0';
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120 } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120
$oid = '.1.3.6.1.4.1.259.10.1.45.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.10.1.45.1.39.2.1.0';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
$oid = '.1.3.6.1.4.1.259.10.1.42.101.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.10.1.42.101.1.39.2.1.0';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
$oid = '.1.3.6.1.4.1.259.10.1.27.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.10.1.27.1.39.2.1.0';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11.')) { //ES3510MA
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11.')) { //ES3510MA
$oid = '.1.3.6.1.4.1.259.8.1.11.1.39.2.1.0'; $oid = '.1.3.6.1.4.1.259.8.1.11.1.39.2.1.0';
}; };

View File

@@ -18,3 +18,4 @@ discovery:
- .1.3.6.1.4.1.259.10.1.42.101 - .1.3.6.1.4.1.259.10.1.42.101
- .1.3.6.1.4.1.259.10.1.27.102 - .1.3.6.1.4.1.259.10.1.27.102
- .1.3.6.1.4.1.259.10.1.45.101 - .1.3.6.1.4.1.259.10.1.45.101
- .1.3.6.1.4.1.259.10.1.39

View File

@@ -14,38 +14,26 @@
if ($device['os'] == 'edgecos') { if ($device['os'] == 'edgecos') {
d_echo('EdgeCore Memory:'); d_echo('EdgeCore Memory:');
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510 if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510
$temp_mibs = 'ECS4510-MIB'; $temp_mibs = 'ECS4510-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
$temp_mibs = 'ES3528MV2-MIB'; $temp_mibs = 'ES3528MV2-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.39.')) { //ECS4110
$temp_mibs = 'ECS4110-MIB';
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120 } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120
$temp_mibs = 'ECS4120-MIB'; $temp_mibs = 'ECS4120-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
$temp_mibs = 'ECS4210-MIB'; $temp_mibs = 'ECS4210-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
$temp_mibs = 'ECS3510-MIB'; $temp_mibs = 'ECS3510-MIB';
}; };
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11.')) { //ES3510MA $temp_data = snmp_get_multi_oid($device, ['memoryTotal.0', 'memoryFreed.0','memoryAllocated.0'], '-OUQs', $temp_mibs);
$temp_mibs = 'ES3510MA-MIB';
};
$temp_data = snmp_get_multi_oid($device, ['memoryTotal.0', 'memoryFreed.0'], '-OUQs', $temp_mibs);
$total = $temp_data['memoryTotal.0']; $total = $temp_data['memoryTotal.0'];
$avail = $temp_data['memoryFreed.0']; $avail = $temp_data['memoryFreed.0'];
$used = $total - $avail; $used = $temp_data['memoryAllocated.0'] ?? ($total - $avail);
$percent = ($used / $total * 100);
if ((is_numeric($total)) && (is_numeric($avail))) { if ((is_numeric($total)) && (is_numeric($avail)) && (is_numeric($used) )) {
discover_mempool($valid_mempool, $device, 0, 'edgecos', 'Memory', '1', null, null); discover_mempool($valid_mempool, $device, 0, 'edgecos', 'Memory', '1', null, null);
} }
unset($temp_id, $temp_data, $tmep_mibs); unset($temp_id, $temp_data, $tmep_mibs);

View File

@@ -12,30 +12,23 @@
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510 if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510
$temp_mibs = 'ECS4510-MIB'; $temp_mibs = 'ECS4510-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ECS3528
$temp_mibs = 'ES3528MV2-MIB'; $temp_mibs = 'ES3528MV2-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.39.')) { //ECS4110
$temp_mibs = 'ECS4110-MIB';
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120 } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.45.')) { //ECS4120
$temp_mibs = 'ECS4120-MIB'; $temp_mibs = 'ECS4120-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
$temp_mibs = 'ECS4210-MIB'; $temp_mibs = 'ECS4210-MIB';
}; } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
$temp_mibs = 'ECS3510-MIB'; $temp_mibs = 'ECS3510-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11.')) { //ECS3510MA
$temp_mibs = 'ES3510MA-MIB';
}; };
$temp_data = snmp_get_multi_oid($device, ['memoryTotal.0', 'memoryFreed.0'], '-OUQs', $temp_mibs); $temp_data = snmp_get_multi_oid($device, ['memoryTotal.0', 'memoryFreed.0','memoryAllocated.0'], '-OUQs', $temp_mibs);
$total = $temp_data['memoryTotal.0']; $mempool['total'] = $temp_data['memoryTotal.0'];
$avail = $temp_data['memoryFreed.0']; $mempool['free'] = $temp_data['memoryFreed.0'];
$mempool['used'] = $temp_data['memoryAllocated.0'] ?? ($mempool['total'] - $mempool['free']);
$mempool['total'] = $total;
$mempool['free'] = $avail;
$mempool['used'] = $total - $avail;
unset($temp_mibs, $temp_data); unset($temp_mibs, $temp_data);

View File

@@ -1,18 +1,20 @@
<?php <?php
if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.6.')) { if (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.6.')) { //ES3528M0
$tmp_mib = 'ES3528MO-MIB'; $tmp_mib = 'ES3528MO-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.22.')) { //ES3528MV2
$tmp_mib = 'ES3528MV2-MIB'; $tmp_mib = 'ES3528MV2-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.24.')) { //ECS4510
$tmp_mib = 'ECS4510-MIB'; $tmp_mib = 'ECS4510-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.39.')) { //ECS4110
$tmp_mib = 'ECS4110-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.42.')) { //ECS4210
$tmp_mib = 'ECS4210-MIB'; $tmp_mib = 'ECS4210-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.1.27.')) { //ECS3510
$tmp_mib = 'ECS3510-MIB'; $tmp_mib = 'ECS3510-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.10.')) { //ECS4120
$tmp_mib = 'ECS4120-MIB'; $tmp_mib = 'ECS4120-MIB';
} elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11')) { } elseif (starts_with($device['sysObjectID'], '.1.3.6.1.4.1.259.8.1.11')) { //ES3510MA
$tmp_mib = 'ES3510MA-MIB'; $tmp_mib = 'ES3510MA-MIB';
} }
@@ -21,3 +23,5 @@ $tmp_edgecos = snmp_get_multi($device, ['swOpCodeVer.1', 'swProdName.0', 'swSeri
$version = trim($tmp_edgecos[1]['swHardwareVer'], '"') . ' ' . trim($tmp_edgecos[1]['swOpCodeVer'], '"'); $version = trim($tmp_edgecos[1]['swHardwareVer'], '"') . ' ' . trim($tmp_edgecos[1]['swOpCodeVer'], '"');
$hardware = trim($tmp_edgecos[0]['swProdName'], '"'); $hardware = trim($tmp_edgecos[0]['swProdName'], '"');
$serial = trim($tmp_edgecos[1]['swSerialNumber'], '"'); $serial = trim($tmp_edgecos[1]['swSerialNumber'], '"');
unset($temp_mibs, $tmp_edgecos);

21249
mibs/edgecos/ECS4110-MIB Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff