mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3596 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			94 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| // Main page of the xCAT web interface
 | |
| 
 | |
| $TOPDIR = '..';
 | |
| require_once "$TOPDIR/lib/functions.php";
 | |
| if (isAIX()) { $aixDisabled = 'disabled'; }
 | |
| 
 | |
| insertHeader('xCAT Groups and Nodes', array("$TOPDIR/jq/jsTree/tree_component.css",'groups.css','attributes.css',"$TOPDIR/manage/dsh.css"),
 | |
| 	array("$TOPDIR/jq/jsTree/css.js","$TOPDIR/jq/jsTree/jquery.listen.js","$TOPDIR/jq/jsTree/tree_component.js","$TOPDIR/jq/jquery.cookie.js",'noderangetree.js','groups.js','attributes.js','rvitals.js','rpower.js','ping.js','copyfiles.js','spconfig.js'),
 | |
| 	array('machines','groups'));
 | |
| 
 | |
| echo "<div id=content>\n";
 | |
| 
 | |
| // Create the noderange tree and the tabs side by side.  Once again I tried to do this with css and all
 | |
| // methods seemed to be inadequate
 | |
| echo "<table cellspacing=0 cellpadding=0><tr valign=top>\n";
 | |
| echo "<td><div id=nrtree></div></td>\n";		// nrtree is the place to put the noderange tree
 | |
| 
 | |
| $tabs = array('Attributes' => '#attributes-tab',
 | |
| 				'Run Cmd' => '../manage/dsh.php?intab=1',
 | |
| 				'Rvitals' => '#rvitals-tab',
 | |
| 				'Rpower' => '#rpower-tab',
 | |
|                 'Ping' => '#ping-tab',
 | |
|                 'Copy' => '#copy-tab',
 | |
|                 'SP Config' => '#spcfg-tab',
 | |
| 				);
 | |
| $tabsDisabled = array(
 | |
| 				'Diagnose' => 'diagnode.php',
 | |
| 				'Add/Remove' => 'addremove.php',
 | |
| 			);
 | |
| 
 | |
| echo "<td width='100%'><div id=nodetabs>\n";
 | |
| 
 | |
| echo "<ul>\n";
 | |
| foreach ($tabs as $key => $url) {
 | |
| 	echo "<li class='ui-tabs-nav-item'><a id='nodetabs-a' href='$url'>$key</a></li>\n";
 | |
| }
 | |
| foreach ($tabsDisabled as $key2 => $url2) {
 | |
| 	echo "<li class='ui-tabs-nav-item'><a id='nodetabs-a-disabled' href='$url2'>$key2</a></li>\n";
 | |
| }
 | |
| echo "</ul>\n";
 | |
| echo "<div id='attributes-tab'></div>\n";
 | |
| echo "<div id='rvitals-tab'></div>\n";
 | |
| echo "<div id='rpower-tab'></div>\n";
 | |
| echo "<div id='ping-tab'></div>\n";
 | |
| echo "<div id='copy-tab'></div>\n";
 | |
| echo "<div id='spcfg-tab'></div>\n";
 | |
| 
 | |
| echo "</div></td></tr></table>\n";
 | |
| 
 | |
| //echo "<div id=placeHolder></div>\n";	// since the other 2 divs are floats, need this one to give the content div some size
 | |
| 
 | |
| 
 | |
| /*
 | |
| echo '<table><tr>';
 | |
| echo '<td><img src="' . getStatusImage('good') . '"> Good</td><td width=20></td>';
 | |
| echo '<td><img src="' . getStatusImage('warning') . '"> Possible problem</td><td width=20></td>';
 | |
| echo '<td><img src="' . getStatusImage('bad') . '"> Problem</td><td width=20></td>';
 | |
| echo '<td><img src="' . getStatusImage('unknown') . '"> Unknown</td>';
 | |
| echo '</tr></table>';
 | |
| */
 | |
| 
 | |
| echo '</div>';		// end the content div
 | |
| insertFooter();
 | |
| 
 | |
| 
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Returns the aggregate status of each node group in the cluster.  The return value is a
 | |
| // hash in which the key is the group name and the value is nodelist.status.
 | |
| function getGroupStatus() {
 | |
| 	$groups = array();
 | |
| 	$xml = docmd('tabdump','',array('nodelist'));
 | |
| 	foreach ($xml->children() as $response) foreach ($response->children() as $line) {
 | |
| 		$line = (string) $line;
 | |
| 		//echo "<p>"; print_r($line); "</p>\n";
 | |
| 		if (ereg("^#", $line)) { continue; }	// skip the header
 | |
| 		$vals = splitTableFields($line);
 | |
| 		if (empty($vals[0]) || empty($vals[1])) continue;	// node or groups missing
 | |
| 		$grplist = preg_split('/,/', $vals[1]);
 | |
| 		if (empty($vals[2])) { $status = 'unknown'; }
 | |
| 		else { $status = $vals[2]; }
 | |
| 		foreach ($grplist as $g) {
 | |
| 			if (array_key_exists($g,$groups)) { $groups[$g] = minStatus($groups[$g], $status); }
 | |
| 			else { $groups[$g] = $status; }
 | |
| 		}
 | |
| 	}
 | |
| 	return $groups;
 | |
| }
 | |
| 
 | |
| 
 | |
| ?>
 |