show toner on device overview (beta), minor fixes

git-svn-id: http://www.observium.org/svn/observer/trunk@3014 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Tom Laermans
2012-04-09 23:00:31 +00:00
parent cc5ec6c1e6
commit 08952e40c6
8 changed files with 129 additions and 53 deletions

View File

@ -1,5 +1,20 @@
<?php <?php
function toner2colour($descr)
{
$colour = NULL;
if (substr($descr,-1) == 'C' || stripos($descr,"cyan" ) !== false) { $colour = "55D6D3"; }
if (substr($descr,-1) == 'M' || stripos($descr,"magenta") !== false) { $colour = "F24AC8"; }
if (substr($descr,-1) == 'Y' || stripos($descr,"yellow" ) !== false
|| stripos($descr,"giallo" ) !== false
|| stripos($descr,"gul" ) !== false) { $colour = "FFF200"; }
if (substr($descr,-1) == 'K' || stripos($descr,"black" ) !== false
|| stripos($descr,"nero" ) !== false) { $colour = "000000"; }
return $colour;
}
function generate_link($text, $vars, $new_vars = array()) function generate_link($text, $vars, $new_vars = array())
{ {
return '<a href="'.generate_url($vars, $new_vars).'">'.$text.'</a>'; return '<a href="'.generate_url($vars, $new_vars).'">'.$text.'</a>';

View File

@ -9,6 +9,10 @@ $rrd_options .= " -l 0 -E ";
$iter = "1"; $iter = "1";
$rrd_options .= " COMMENT:'Toner level Cur Min Max\\n'"; $rrd_options .= " COMMENT:'Toner level Cur Min Max\\n'";
foreach (dbFetchRows("SELECT * FROM toner where device_id = ?", array($id)) as $toner) foreach (dbFetchRows("SELECT * FROM toner where device_id = ?", array($id)) as $toner)
{
$colour = toner2colour($toner['toner_descr']);
if ($colour == NULL)
{ {
# FIXME generic colour function # FIXME generic colour function
switch ($iter) switch ($iter)
@ -37,12 +41,7 @@ foreach (dbFetchRows("SELECT * FROM toner where device_id = ?", array($id)) as $
unset($iter); unset($iter);
break; break;
} }
}
if (stripos($toner['toner_descr'],"cyan" ) !== false || substr($toner['toner_descr'],-1) == 'C') { $colour = "55D6D3"; }
if (stripos($toner['toner_descr'],"magenta") !== false || substr($toner['toner_descr'],-1) == 'M') { $colour = "F24AC8"; }
if (stripos($toner['toner_descr'],"yellow" ) !== false || substr($toner['toner_descr'],-1) == 'Y' || stripos($toner['toner_descr'],"giallo" ) !== false) { $colour = "FFF200"; }
if (stripos($toner['toner_descr'],"black" ) !== false || substr($toner['toner_descr'],-1) == 'K' || stripos($toner['toner_descr'],"nero" ) !== false) { $colour = "000000"; }
$hostname = gethostbyid($toner['device_id']); $hostname = gethostbyid($toner['device_id']);

View File

@ -4,20 +4,12 @@ $scale_max = "100";
include("includes/graphs/common.inc.php"); include("includes/graphs/common.inc.php");
$iter = "1";
$rrd_options .= " COMMENT:' Cur Max\\n'"; $rrd_options .= " COMMENT:' Cur Max\\n'";
if ($iter=="1") { $colour="CC0000"; } elseif ($iter=="2") { $colour="008C00"; } elseif ($iter=="3") { $colour="4096EE"; } $colour = toner2colour($toner['toner_descr']);
elseif ($iter=="4") { $colour="73880A"; } elseif ($iter=="5") { $colour="D01F3C"; } elseif ($iter=="6") { $colour="36393D"; } if ($colour == NULL) { $colour="CC0000"; }
elseif ($iter=="7") { $colour="FF0084"; unset($iter); }
$descr = substr(str_pad($toner['toner_descr']),0,28); $descr = substr(str_pad($toner['toner_descr'],26),0,26);
if (stripos($toner['toner_descr'],"cyan" ) !== false || substr($toner['toner_descr'],-1) == 'C') { $colour = "55D6D3"; }
if (stripos($toner['toner_descr'],"magenta") !== false || substr($toner['toner_descr'],-1) == 'M') { $colour = "F24AC8"; }
if (stripos($toner['toner_descr'],"yellow" ) !== false || substr($toner['toner_descr'],-1) == 'Y') { $colour = "FFF200"; }
if (stripos($toner['toner_descr'],"black" ) !== false || substr($toner['toner_descr'],-1) == 'K') { $colour = "000000"; }
$background = get_percentage_colours(100-$toner['toner_current']); $background = get_percentage_colours(100-$toner['toner_current']);
@ -26,8 +18,7 @@ $rrd_options .= " DEF:toner" . $toner['toner_id'] . "=".$rrd_filename.":toner:AV
$rrd_options .= " LINE1:toner" . $toner['toner_id'] . "#" . $colour . ":'" . $descr . "' "; $rrd_options .= " LINE1:toner" . $toner['toner_id'] . "#" . $colour . ":'" . $descr . "' ";
$rrd_options .= " AREA:toner" . $toner['toner_id' ] . "#" . $background['right'] . ":"; $rrd_options .= " AREA:toner" . $toner['toner_id' ] . "#" . $background['right'] . ":";
$rrd_options .= " GPRINT:toner" . $toner['toner_id'] . ":AVERAGE:'%5.0lf%%'"; $rrd_options .= " GPRINT:toner" . $toner['toner_id'] . ":LAST:'%5.0lf%%'";
$rrd_options .= " GPRINT:toner" . $toner['toner_id'] . ":MIN:'%5.0lf%%'";
$rrd_options .= " GPRINT:toner" . $toner['toner_id'] . ":MAX:%5.0lf%%\\\\l"; $rrd_options .= " GPRINT:toner" . $toner['toner_id'] . ":MAX:%5.0lf%%\\\\l";
?> ?>

View File

@ -48,10 +48,10 @@ if ($services['total'])
foreach (dbFetchRows("SELECT * FROM services WHERE device_id = ? ORDER BY service_type", array($device['device_id'])) as $data) foreach (dbFetchRows("SELECT * FROM services WHERE device_id = ? ORDER BY service_type", array($device['device_id'])) as $data)
{ {
if ($data[service_status] == "0" && $data[service_ignore] == "1") { $status = "grey"; } if ($data['service_status'] == "0" && $data['service_ignore'] == "1") { $status = "grey"; }
if ($data[service_status] == "1" && $data[service_ignore] == "1") { $status = "green"; } if ($data['service_status'] == "1" && $data['service_ignore'] == "1") { $status = "green"; }
if ($data[service_status] == "0" && $data[service_ignore] == "0") { $status = "red"; } if ($data['service_status'] == "0" && $data['service_ignore'] == "0") { $status = "red"; }
if ($data[service_status] == "1" && $data[service_ignore] == "0") { $status = "blue"; } if ($data['service_status'] == "1" && $data['service_ignore'] == "0") { $status = "blue"; }
echo("$break<a class=$status>" . strtolower($data[service_type]) . "</a>"); echo("$break<a class=$status>" . strtolower($data[service_type]) . "</a>");
$break = ", "; $break = ", ";
} }
@ -86,6 +86,7 @@ include("overview/storage.inc.php");
if(is_array($entity_state['group']['c6kxbar'])) { include("overview/c6kxbar.inc.php"); } if(is_array($entity_state['group']['c6kxbar'])) { include("overview/c6kxbar.inc.php"); }
include("overview/toner.inc.php");
include("overview/sensors/temperatures.inc.php"); include("overview/sensors/temperatures.inc.php");
include("overview/sensors/humidity.inc.php"); include("overview/sensors/humidity.inc.php");
include("overview/sensors/fanspeeds.inc.php"); include("overview/sensors/fanspeeds.inc.php");

View File

@ -0,0 +1,69 @@
<?php
$graph_type = "toner_usage";
$toners = dbFetchRows("SELECT * FROM `toner` WHERE device_id = ?", array($device['device_id']));
if (count($toners))
{
echo("<div style='background-color: #eeeeee; margin: 5px; padding: 5px;'>");
echo("<p style='padding: 0px 5px 5px;' class=sectionhead>");
echo('<a class="sectionhead" href="device/device='.$device['device_id'].'/tab=toner/">');
echo("<img align='absmiddle' src='images/icons/toner.png'> Toner</a></p>");
echo("<table width=100% cellspacing=0 cellpadding=5>");
$toner_rows = '0';
foreach ($toners as $toner)
{
if (is_integer($toner_rows/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; }
$percent = round($toner['toner_current'], 0);
$total = formatStorage($toner['toner_size']);
$free = formatStorage($toner['toner_free']);
$used = formatStorage($toner['toner_used']);
$background['left'] = toner2colour($toner['toner_descr']);
unset($background['right']);
for ($i = 0;$i < strlen($background['left']); $i++)
{
$new = dechex(hexdec("0x" . $background['left'][$i])+1);
if (strlen($new) != 1) { $new = 'F'; }
$background['right'] .= $new;
}
$graph_array = array();
$graph_array['height'] = "100";
$graph_array['width'] = "210";
$graph_array['to'] = $now;
$graph_array['id'] = $toner['toner_id'];
$graph_array['type'] = $graph_type;
$graph_array['from'] = $day;
$graph_array['legend'] = "no";
$link_array = $graph_array;
$link_array['page'] = "graphs";
unset($link_array['height'], $link_array['width'], $link_array['legend']);
$link = generate_url($link_array);
$overlib_content = generate_overlib_content($graph_array, $device['hostname'] . " - " . $toner['toner_descr']);
$graph_array['width'] = 80; $graph_array['height'] = 20; $graph_array['bg'] = $graph_colour;
$minigraph = generate_graph_tag($graph_array);
echo("<tr bgcolor=$row_colour>
<td class=tablehead>".overlib_link($link, $toner['toner_descr'], $overlib_content)."</td>
<td width=90>".overlib_link($link, $minigraph, $overlib_content)."</td>
<td width=200>".overlib_link($link, print_percentage_bar (200, 20, $percent, NULL, "ffffff", $background['left'], $percent . "%", "ffffff", $background['right']), $overlib_content)."
</a></td>
</tr>");
$toner_rows++;
}
echo("</table>");
echo("</div>");
}
unset ($toner_rows);
?>

View File

@ -2,7 +2,7 @@
echo(" ENTITY-SENSOR: "); echo(" ENTITY-SENSOR: ");
echo("\nCaching OIDs:"); echo("Caching OIDs:");
if (!is_array($entity_array)) if (!is_array($entity_array))
{ {

View File

@ -159,13 +159,14 @@ function delete_device($id)
$device_tables = array('entPhysical', 'devices_attribs', 'devices_perms', 'bgpPeers', 'vlans', 'vrfs', 'storage', 'alerts', 'eventlog', $device_tables = array('entPhysical', 'devices_attribs', 'devices_perms', 'bgpPeers', 'vlans', 'vrfs', 'storage', 'alerts', 'eventlog',
'syslog', 'ports', 'services', 'alerts', 'toner', 'frequency', 'current', 'sensors'); 'syslog', 'ports', 'services', 'alerts', 'toner', 'frequency', 'current', 'sensors');
foreach ($device_tables as $table) { foreach ($device_tables as $table)
{
dbDelete($table, "`device_id` = ?", array($id)); dbDelete($table, "`device_id` = ?", array($id));
} }
shell_exec("rm -rf ".trim($config['rrd_dir'])."/$host"); shell_exec("rm -rf ".trim($config['rrd_dir'])."/$host");
$ret = "Removed Device $host\n"; $ret = "Removed device $host\n";
return $ret; return $ret;
} }