mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Entity Physical discovery: Rewrite to modern style (#16289)
* Initial entity-physical code * Split out Entity-MIB trait * Cisco Cellular inventory * Fix bad test data * alfo80hd - we now include all entPhysical entries * Correct aos7 test data * Add entPhysicalClass as last resort for label in ui * aos add previously filtered data * Fixup arista-eos data * Update ariast_eos data * Arris, clean garbage in Rev fields * Aruba Instant custom inventory ported * ArubaOS CX add vendor type mib * aviat-wtm test data refresh * axos add shelf fix data fields a bit * ciena-rls * ciena-sds * Skip cimc for now... no test data * Cisco updates * Comware data update * Update dnos * Clean Edgeos garbage, make code from Arris shareable * Relaxed ifIndex match, some devices cheat and send back static strings instead of formatted OIDs * Regex refinement and updated edgeos with new clean data * Update edgeswitch data * Update eltex-mes21xx data * eltex-mes23xx * Guess at eltex-mes24xx since there is no test data * Update eurostor, fix firmware version * Apply fixes from StyleCI * fixes * Update fortigate data * Update fortiweb, ftd, and fusion * Update linux LSI * Fix hexToAscii null removal with different seperator handling * icotera add final snmprec data to avoid snmpsim bug * Update IOS data * Update mrv-od * Add junos translation * Generic data updates n-r * ruijie workaround snmpsim bug * Port saf-cfm * Recode Schleifenbauer, and fix entPhysicalIndex values * SmartAX fixes * sm-os and tait-infra93 * timos inventory was not right, fix it up * ubiquoss-pon * VRP, has custom data collection on top of normal adapt port ifIndex lookup to handle it * VRP exceeded the string length specified in ENTITY-MIB... * data updates * Final data update and code cleanup * Apply fixes from StyleCI * Lint fixes * Add missing SnmpResponse->pluck() code * Update db_schema.yaml * Fix bad test data * Another instant-on update * oops * Remove some unused code # Conflicts: # includes/html/pages/device/overview.inc.php --------- Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
This commit is contained in:
@@ -173,6 +173,26 @@ class SnmpResponse
|
||||
return $this->values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a key to value pair for an OID
|
||||
* Only works for single indexed tables
|
||||
* You may omit $oid if there is only one $oid in the walk
|
||||
*/
|
||||
public function pluck(?string $oid = null): array
|
||||
{
|
||||
$output = [];
|
||||
$oid = $oid ?? '[a-zA-Z0-9:.-]+';
|
||||
$regex = "/^{$oid}[[.](\d+)]?$/";
|
||||
|
||||
foreach ($this->values() as $key => $value) {
|
||||
if (preg_match($regex, $key, $matches)) {
|
||||
$output[$matches[1]] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function valuesByIndex(array &$array = []): array
|
||||
{
|
||||
foreach ($this->values() as $oid => $value) {
|
||||
|
Reference in New Issue
Block a user