From 469a06ae93f6a35dfdcde5436e12908575abc6a6 Mon Sep 17 00:00:00 2001 From: mchasteen Date: Mon, 16 Feb 2015 14:14:49 -0700 Subject: [PATCH] Fixed processor discovery. SQL correctly inserts and updates now. Also fixed usage field for cisco devices. --- includes/discovery/functions.inc.php | 30 ++++++++++++++++++++--- includes/discovery/processors/ios.inc.php | 4 ++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/includes/discovery/functions.inc.php b/includes/discovery/functions.inc.php index 103a7eebe..166b7f89e 100644 --- a/includes/discovery/functions.inc.php +++ b/includes/discovery/functions.inc.php @@ -428,20 +428,44 @@ function discover_processor(&$valid, $device, $oid, $index, $type, $descr, $prec { global $config, $debug; - if ($debug) { echo("$device, $oid, $index, $type, $descr, $precision, $current, $entPhysicalIndex, $hrDeviceIndex\n"); } + if ($debug) { + echo("\n"); + var_dump($device, $oid, $index, $type, $descr, $precision, $current, $entPhysicalIndex, $hrDeviceIndex); + } + if ($descr) { $descr = trim(str_replace("\"", "", $descr)); if (dbFetchCell("SELECT COUNT(processor_id) FROM `processors` WHERE `processor_index` = ? AND `device_id` = ? AND `processor_type` = ?",array($index,$device['device_id'], $type)) == '0') { - $inserted = dbInsert(array('entPhysicalIndex' => $entPhysicalIndex, 'hrDeviceIndex' => $hrDeviceIndex, 'device_id' => $device['device_id'],'processor_descr' => $descr, 'processor_index' => $index, 'processor_oid' => $oid, 'processor_usage' => $current, 'processor_type' => $type, 'processor_precision' => $precision), 'processors'); + $insert_data = array( + 'entPhysicalIndex' => $entPhysicalIndex, + 'device_id' => $device['device_id'], + 'processor_descr' => $descr, + 'processor_index' => $index, + 'processor_oid' => $oid, + 'processor_usage' => $current, + 'processor_type' => $type, + 'processor_precision' => $precision + ); + if (!empty($hrDeviceIndex)) { + $insert_data['hrDeviceIndex'] = $hrDeviceIndex; + } + + $inserted = dbInsert($insert_data, 'processors'); echo("+"); log_event("Processor added: type ".mres($type)." index ".mres($index)." descr ". mres($descr), $device, 'processor', $inserted); } else { echo("."); - dbUpdate(array('processor_descr' => $descr, 'processor_oid' => $oid, 'processor_precision' => $precision), 'processors', '`device_id`=? AND `processor_index`=? AND `processor_type`=?',array($device['device_id'],$index,$type)); + $update_data = array( + 'processor_descr' => $descr, + 'processor_oid' => $oid, + 'processor_usage' => $current, + 'processor_precision' => $precision + ); + dbUpdate($update_data, 'processors', '`device_id`=? AND `processor_index`=? AND `processor_type`=?',array($device['device_id'],$index,$type)); if ($debug) { print $query . "\n"; } } $valid[$type][$index] = 1; diff --git a/includes/discovery/processors/ios.inc.php b/includes/discovery/processors/ios.inc.php index b186b602d..71c98b67f 100755 --- a/includes/discovery/processors/ios.inc.php +++ b/includes/discovery/processors/ios.inc.php @@ -39,7 +39,8 @@ if ($device['os_group'] == "cisco" || $device['os'] == "acsw") if (!strstr($descr, "No") && !strstr($usage, "No") && $descr != "") { - discover_processor($valid['processor'], $device, $usage_oid, $index, "cpm", $descr, "1", $entry['juniSystemModuleCpuUtilPct'], $entPhysicalIndex, NULL); + //discover_processor($valid['processor'], $device, $usage_oid, $index, "cpm", $descr, "1", $entry['juniSystemModuleCpuUtilPct'], $entPhysicalIndex, NULL); + discover_processor($valid['processor'], $device, $usage_oid, $index, "cpm", $descr, "1", $usage, $entPhysicalIndex, NULL); } } } @@ -47,6 +48,7 @@ if ($device['os_group'] == "cisco" || $device['os'] == "acsw") if (!is_array($valid['processor']['cpm'])) { $avgBusy5 = snmp_get($device, ".1.3.6.1.4.1.9.2.1.58.0", "-Oqv"); + if (is_numeric($avgBusy5)) { discover_processor($valid['processor'], $device, ".1.3.6.1.4.1.9.2.1.58.0", "0", "ios", "Processor", "1", $avgBusy5, NULL, NULL);