diff --git a/html/pages/device/health/mempool.inc.php b/html/pages/device/health/mempool.inc.php
index c53189caf7..b21c0fc29e 100644
--- a/html/pages/device/health/mempool.inc.php
+++ b/html/pages/device/health/mempool.inc.php
@@ -4,8 +4,16 @@ $graph_type = 'mempool_usage';
$i = '1';
+if (count_mib_mempools($device) > 0) {
+ $mempools = get_mib_mempools($device);
+ $graph_type = 'device_mempool';
+}
+else {
+ $mempools = dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($device['device_id']));
+}
+
// FIXME css alternating colours
-foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($device['device_id'])) as $mempool) {
+foreach ($mempools as $mempool) {
if (!is_integer($i / 2)) {
$row_colour = $list_colour_a;
}
@@ -15,30 +23,49 @@ foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($devi
$text_descr = rewrite_entity_descr($mempool['mempool_descr']);
- $mempool_url = 'graphs/id='.$mempool['mempool_id'].'/type=mempool_usage/';
- $mini_url = 'graph.php?id='.$mempool['mempool_id'].'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
+ if ($graph_type == 'device_mempool') {
+ $id = 'device';
+ $val = $device['device_id'];
+ }
+ else {
+ $id = 'id';
+ $val = $mempool['mempool_id'];
+ }
+ $mempool_url = 'graphs/'.$id.'='.$val.'/type='.$graph_type.'/';
+ $mini_url = 'graph.php?'.$id.'='.$val.'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
$mempool_popup = "onmouseover=\"return overlib('
".$device['hostname'].' - '.$text_descr;
- $mempool_popup .= "
";
+ $mempool_popup .= "
";
$mempool_popup .= "', RIGHT".$config['overlib_defaults'].');" onmouseout="return nd();"';
$total = formatStorage($mempool['mempool_total']);
$used = formatStorage($mempool['mempool_used']);
$free = formatStorage($mempool['mempool_free']);
- $perc = round(($mempool['mempool_used'] / $mempool['mempool_total'] * 100));
+ // don't bother recalculating if mempools use percentage
+ if ($mempool['percentage'] === true) {
+ $perc = round($mempool['mempool_used']);
+ }
+ else {
+ $perc = round(($mempool['mempool_used'] / $mempool['mempool_total'] * 100));
+ }
$background = get_percentage_colours($percent);
$right_background = $background['right'];
$left_background = $background['left'];
- $graph_array['id'] = $mempool['mempool_id'];
+ $graph_array[$id] = $val;
$graph_array['type'] = $graph_type;
echo "
-
-
$text_descr
$used/$total - $perc% used
-
";
+
";
+ if ($mempool['percentage'] === true) {
+ echo "
$text_descr
$perc% used
";
+ }
+ else {
+ echo "
$text_descr
$used/$total - $perc% used
";
+ }
+ echo "
";
echo "
";
include 'includes/print-graphrow.inc.php';
echo "
";
diff --git a/html/pages/device/health/processor.inc.php b/html/pages/device/health/processor.inc.php
index dd60448a3b..1ffdc2a6bb 100644
--- a/html/pages/device/health/processor.inc.php
+++ b/html/pages/device/health/processor.inc.php
@@ -3,21 +3,36 @@
$graph_type = 'processor_usage';
$i = '1';
-foreach (dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($device['device_id'])) as $proc) {
- $proc_url = 'graphs/id='.$proc['processor_id'].'/type=processor_usage/';
- $mini_url = 'graph.php?id='.$proc['processor_id'].'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
+if (count_mib_processors($device) > 0) {
+ $processors = get_mib_processors($device);
+ $graph_type = 'device_processor';
+}
+else {
+ $processors = dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($device['device_id']));
+}
- $text_descr = $proc['processor_descr'];
+foreach ($processors as $proc) {
+ if ($graph_type == 'device_processor') {
+ $id = 'device';
+ $val = $device['device_id'];
+ }
+ else {
+ $id = 'id';
+ $val = $proc['processor_id'];
+ }
+ $proc_url = 'graphs/'.$id.'='.$val.'/type='.$graph_type.'/';
+ $base_url = 'graph.php?'.$id.'='.$val.'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'];
+ $mini_url = $base_url.'&width=80&height=20&bg=f4f4f4';
- $text_descr = rewrite_entity_descr($text_descr);
+ $text_descr = rewrite_entity_descr($proc['processor_descr']);
$proc_popup = "onmouseover=\"return overlib('".$device['hostname'].' - '.$text_descr;
- $proc_popup .= "
";
+ $proc_popup .= "
";
$proc_popup .= "', RIGHT".$config['overlib_defaults'].');" onmouseout="return nd();"';
$percent = round($proc['processor_usage']);
- $graph_array['id'] = $proc['processor_id'];
+ $graph_array[$id] = $val;
$graph_array['type'] = $graph_type;
echo "
@@ -27,4 +42,4 @@ foreach (dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($de
echo "
";
include 'includes/print-graphrow.inc.php';
echo "
";
-}//end foreach
\ No newline at end of file
+}//end foreach
diff --git a/includes/common.php b/includes/common.php
index d11e101296..bf5b76d019 100644
--- a/includes/common.php
+++ b/includes/common.php
@@ -767,8 +767,54 @@ function count_mib_health($device)
} // count_mib_health
+function get_mibval($device, $oid)
+{
+ $sql = 'SELECT * FROM `device_oids` WHERE `device_id` = ? AND `oid` = ?';
+ return dbFetchRow($sql, array($device['device_id'], $oid));
+} // get_mibval
+
+
/*
- * FIXME: Dummy implementation
+ * FIXME: Dummy implementation - needs an abstraction for each device
+ */
+function get_mib_mempools($device)
+{
+ $mempools = array();
+ if ($device['os'] == 'ruckuswireless') {
+ $mempool = array();
+ $mibvals = get_mibval($device, '.1.3.6.1.4.1.25053.1.2.1.1.1.15.14.0');
+ $mempool['mempool_descr'] = $mibvals['object_type'];
+ $mempool['mempool_id'] = 0;
+ $mempool['mempool_total'] = 100;
+ $mempool['mempool_used'] = $mibvals['numvalue'];
+ $mempool['mempool_free'] = 100 - $mibvals['numvalue'];
+ $mempool['percentage'] = true;
+ $mempools[] = $mempool;
+ }
+ return $mempools;
+} // get_mib_mempools
+
+
+/*
+ * FIXME: Dummy implementation - needs an abstraction for each device
+ */
+function get_mib_processors($device)
+{
+ $processors = array();
+ if ($device['os'] == 'ruckuswireless') {
+ $proc = array();
+ $mibvals = get_mibval($device, '.1.3.6.1.4.1.25053.1.2.1.1.1.15.13.0');
+ $proc['processor_descr'] = $mibvals['object_type'];
+ $proc['processor_id'] = 0;
+ $proc['processor_usage'] = $mibvals['numvalue'];
+ $processors[] = $proc;
+ }
+ return $processors;
+} // get_mib_processors
+
+
+/*
+ * FIXME: Dummy implementation - needs an abstraction for each device
* @return true if there is a custom graph defined for this type, subtype, and device
*/
function is_custom_graph($type, $subtype, $device)