xcat-core/xCAT-UI/rpowerstat.php
2010-01-13 05:14:00 +00:00

71 lines
2.0 KiB
PHP

<?php
/*
* rpowerstat.php
* display the rpower status of all nodes in the whole cluster
* one graph and one table will be used to display them
*/
if(!isset($TOPDIR)) { $TOPDIR=".";}
require_once "$TOPDIR/lib/security.php";
require_once "$TOPDIR/lib/functions.php";
require_once "$TOPDIR/lib/display.php";
require_once "$TOPDIR/lib/monitor_display.php";
$type = $_REQUEST['type'];
#if $type == "json", it will return data in json-format
#if $type == "table", it will return the data in one table.
#this hashed table records all the nodes with their status
$xml = docmd("rpower","all",array("stat"));
$nodestat_arr = array();
foreach($xml->children() as $response){
if($response->errorcode == 0) {
$key = $response->node->name;
$nodestat_arr["$key"] = $response->node->data->contents;
}
}
#print_r($nodestat_arr);
if($type == "table") {
#output the data into One table
echo "<table width=100%>";
echo <<<TH00
<thead>
<tr><th width=67%>Node Name</th><th width=32%>Status</th></tr>
</thead>
TH00;
echo "<tbody>";
foreach($nodestat_arr as $k => $v) {
echo "<tr><td>$k</td><td>$v</td></tr>";
}
echo "</tbody></table>";
}else if($type == "json") {
#Currently, we only return the numbers of nodes in different status
$num_arr = array( array(label => "Operating", data => 0), array( label => "Running", data => 0), array(label => "Not Activated", data => 0), array(label => "Open Firmware", data => 0));
foreach ($nodestat_arr as $k => $v) {
switch ($v) {
case "Operating":
$num_arr[0][data]++;
break;
case "Running":
$num_arr[1][data]++;
break;
case "Not Activated":
$num_arr[2][data]++;
break;
case "Open Firmware":
$num_arr[3][data]++;
break;
}
}
#convert the array to JSON-type
#print_r($num_arr);
echo json_encode($num_arr);
return json_encode($num_arr);
}
?>