mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-03 21:02:34 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@6484 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
}
 | 
						|
 | 
						|
?>
 |