diff --git a/html/pages/device/overview/generic/sensor.inc.php b/html/pages/device/overview/generic/sensor.inc.php index 3dcae4da18..e3dea810b1 100644 --- a/html/pages/device/overview/generic/sensor.inc.php +++ b/html/pages/device/overview/generic/sensor.inc.php @@ -3,7 +3,7 @@ $sensors = dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND device_id = ? ORDER BY `poller_type`, `sensor_oid`, `sensor_index`', array($sensor_class, $device['device_id'])); if ($sensor_class == 'state') { - $sensors = dbFetchRows('SELECT * FROM `sensors` LEFT JOIN `sensors_to_state_indexes` ON sensors_to_state_indexes.sensor_id = sensors.sensor_id LEFT JOIN state_indexes ON state_indexes.state_index_id = sensors_to_state_indexes.state_index_id WHERE `sensor_class` = ? AND device_id = ? ORDER BY `poller_type`, `sensor_index` ', array($sensor_class, $device['device_id'])); + $sensors = dbFetchRows('SELECT * FROM `sensors` LEFT JOIN `sensors_to_state_indexes` ON sensors_to_state_indexes.sensor_id = sensors.sensor_id LEFT JOIN state_indexes ON state_indexes.state_index_id = sensors_to_state_indexes.state_index_id WHERE `sensor_class` = ? AND device_id = ? ORDER BY `poller_type`, `sensor_descr` ', array($sensor_class, $device['device_id'])); } if (count($sensors)) { diff --git a/includes/discovery/sensors/states/cisco.inc.php b/includes/discovery/sensors/states/cisco.inc.php index 1299a2bc9a..8f61400b3d 100644 --- a/includes/discovery/sensors/states/cisco.inc.php +++ b/includes/discovery/sensors/states/cisco.inc.php @@ -11,43 +11,53 @@ */ if ($device['os_group'] == 'cisco') { - $temp = snmpwalk_cache_multi_oid($device, 'ciscoEnvMonSupplyStatusTable', array(), 'CISCO-ENVMON-MIB'); - $cur_oid = '.1.3.6.1.4.1.9.9.13.1.5.1.3.'; - if (is_array($temp)) { + $tables = array( + array('ciscoEnvMonVoltageStatusTable','.1.3.6.1.4.1.9.9.13.1.2.1.7.','ciscoEnvMonVoltageState','ciscoEnvMonVoltageStatusDescr') , + array('ciscoEnvMonTemperatureStatusTable','.1.3.6.1.4.1.9.9.13.1.3.1.6.','ciscoEnvMonTemperatureState','ciscoEnvMonTemperatureStatusDescr') , + array('ciscoEnvMonFanStatusTable','.1.3.6.1.4.1.9.9.13.1.4.1.3.','ciscoEnvMonFanState','ciscoEnvMonFanStatusDescr') , + array('ciscoEnvMonSupplyStatusTable','.1.3.6.1.4.1.9.9.13.1.5.1.3.','ciscoEnvMonSupplyState','ciscoEnvMonSupplyStatusDescr') + ); - //Create State Index - $state_name = 'ciscoEnvMonSupplyState'; - $state_index_id = create_state_index($state_name); + foreach($tables as $tablevalue){ + $temp = snmpwalk_cache_multi_oid($device, $tablevalue[0], array(), 'CISCO-ENVMON-MIB'); + $cur_oid = $tablevalue[1]; - //Create State Translation - if ($state_index_id) { - $states = array( - array($state_index_id,'normal',0,1,0) , - array($state_index_id,'warning',0,2,1) , - array($state_index_id,'critical',0,3,2) , - array($state_index_id,'shutdown',0,4,3) , - array($state_index_id,'notPresent',0,5,3) , - array($state_index_id,'notFunctioning',0,6,2) - ); - foreach($states as $value){ - $insert = array( - 'state_index_id' => $value[0], - 'state_descr' => $value[1], - 'state_draw_graph' => $value[2], - 'state_value' => $value[3], - 'state_generic_value' => $value[4] - ); - dbInsert($insert, 'state_translations'); + if (is_array($temp)) { + + //Create State Index + $state_name = $tablevalue[2]; + $state_index_id = create_state_index($state_name); + + //Create State Translation + if ($state_index_id) { + $states = array( + array($state_index_id,'normal',0,1,0) , + array($state_index_id,'warning',0,2,1) , + array($state_index_id,'critical',0,3,2) , + array($state_index_id,'shutdown',0,4,3) , + array($state_index_id,'notPresent',0,5,3) , + array($state_index_id,'notFunctioning',0,6,2) + ); + foreach($states as $value){ + $insert = array( + 'state_index_id' => $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } } - } - foreach ($temp as $index => $entry) { - //Discover Sensors - discover_sensor($valid['sensor'], 'state', $device, $cur_oid.$index, $index, $state_name, $temp[$index]['ciscoEnvMonSupplyStatusDescr'], '1', '1', null, null, null, null, $temp[$index]['ciscoEnvMonSupplyState'], 'snmp', $index); + foreach ($temp as $index => $entry) { + //Discover Sensors + discover_sensor($valid['sensor'], 'state', $device, $cur_oid.$index, $index, $state_name, $temp[$index][$tablevalue[3]], '1', '1', null, null, null, null, $temp[$index][$tablevalue[2]], 'snmp', $index); - //Create Sensor To State Index - create_sensor_to_state_index($device, $state_name, $index); + //Create Sensor To State Index + create_sensor_to_state_index($device, $state_name, $index); + } } } }