From 8b1dc95d834a11e5bf344c1ab7274caef3f3a5ff Mon Sep 17 00:00:00 2001 From: Rick Hodger Date: Fri, 20 Nov 2015 10:47:47 +0000 Subject: [PATCH] Issue 1865, Juniper hardware inventory fix --- includes/discovery/entity-physical.inc.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/includes/discovery/entity-physical.inc.php b/includes/discovery/entity-physical.inc.php index 812be65ff..e8e1f8d8b 100644 --- a/includes/discovery/entity-physical.inc.php +++ b/includes/discovery/entity-physical.inc.php @@ -37,6 +37,9 @@ if ($config['enable_inventory']) { $entPhysicalIsFRU = $entry['jnxFruType']; $entPhysicalAlias = $entry['entPhysicalAlias']; $entPhysicalAssetID = $entry['entPhysicalAssetID']; + // fix for issue 1865, $entPhysicalIndex, as it contains a quad dotted number on newer Junipers + // using str_replace to remove all dots should fix this even if it changes in future + $entPhysicalIndex = str_replace('.','',$entPhysicalIndex); } else { $entPhysicalDescr = $entry['entPhysicalDescr']; @@ -127,18 +130,19 @@ if ($config['enable_inventory']) { echo '+'; }//end if - if ($device['os'] == 'junos') { + // This entire if/else statement is no longer necessary as we fix $entPhysicalIndex at the start of the loop + //if ($device['os'] == 'junos') { // $entPhysicalIndex appears as a numeric OID fragment // (string), so convert it to an "integer" for the // validation step below since it is stored in the DB as // an integer. This should be fixed. - list($first,$second) = explode('.', $entPhysicalIndex); - $entPhysicalIndexNoDots = $first.$second; - $valid[$entPhysicalIndexNoDots] = 1; - } - else { + //list($first,$second) = explode('.', $entPhysicalIndex); + //$entPhysicalIndexNoDots = $first.$second; + //$valid[$entPhysicalIndexNoDots] = 1; + //} + //else { $valid[$entPhysicalIndex] = 1; - } + //} }//end if }//end foreach }