Moved some files into subdirs, and deleted unused images
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@69 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
@@ -6,7 +6,6 @@ $TOPDIR = '.';
 | 
			
		||||
$expire_time = gmmktime(0, 0, 0, 1, 1, 2038);
 | 
			
		||||
setcookie("history", "date;hello.sh", $expire_time);
 | 
			
		||||
 | 
			
		||||
//require_once("globalconfig.php");
 | 
			
		||||
require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
 | 
			
		||||
require_once "$TOPDIR/functions.php";
 | 
			
		||||
 
 | 
			
		||||
@@ -21,8 +21,7 @@ $expire_time = gmmktime(0, 0, 0, 1, 1, 2038);
 | 
			
		||||
 | 
			
		||||
<FORM>
 | 
			
		||||
<?php
 | 
			
		||||
require_once("globalconfig.php");
 | 
			
		||||
require_once("XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
 | 
			
		||||
require_once "$TOPDIR/functions.php";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 61 B  | 
| 
		 Before Width: | Height: | Size: 379 B  | 
| 
		 Before Width: | Height: | Size: 50 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 800 B  | 
| 
		 Before Width: | Height: | Size: 3.7 KiB  | 
| 
		 Before Width: | Height: | Size: 155 B  | 
| 
		 Before Width: | Height: | Size: 7.2 KiB  | 
| 
		 Before Width: | Height: | Size: 301 B  | 
| 
		 Before Width: | Height: | Size: 170 B  | 
| 
		 Before Width: | Height: | Size: 8.2 KiB  | 
| 
		 Before Width: | Height: | Size: 2.7 KiB  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB  | 
| 
		 Before Width: | Height: | Size: 859 B  | 
| 
		 Before Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 26 KiB  | 
| 
		 Before Width: | Height: | Size: 71 B  | 
| 
		 Before Width: | Height: | Size: 70 B  | 
| 
		 Before Width: | Height: | Size: 990 B  | 
| 
		 Before Width: | Height: | Size: 47 B  | 
| 
		 Before Width: | Height: | Size: 7.8 KiB  | 
| 
		 Before Width: | Height: | Size: 1.0 KiB  | 
| 
		 Before Width: | Height: | Size: 1009 B  | 
| 
		 Before Width: | Height: | Size: 123 B  | 
| 
		 Before Width: | Height: | Size: 9.5 KiB  | 
| 
		 Before Width: | Height: | Size: 131 B  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
@@ -1,157 +0,0 @@
 | 
			
		||||
body {
 | 
			
		||||
	background-color: #ffffff;
 | 
			
		||||
	color:#666666;
 | 
			
		||||
	font-family:Arial,Helv,sans-serif;
 | 
			
		||||
	font-size:11px;
 | 
			
		||||
	margin:0;
 | 
			
		||||
	padding:0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:link,a:visited {
 | 
			
		||||
	color: #FFF; 
 | 
			
		||||
	font-weight: 
 | 
			
		||||
	bold; text-decoration:none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a:hover {
 | 
			
		||||
	color: #fff;
 | 
			
		||||
	text-decoration:underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content_title {
 | 
			
		||||
	position: absolute;
 | 
			
		||||
	padding-top: 18px;
 | 
			
		||||
	padding-left: 17px;
 | 
			
		||||
	font-size:14px;
 | 
			
		||||
	margin-bottom: 1px;
 | 
			
		||||
	font-weight:bold;
 | 
			
		||||
	width: 400px;
 | 
			
		||||
	color: #FFF;
 | 
			
		||||
	background: url(header.gif) no-repeat top left;
 | 
			
		||||
	height: 21px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#content_title a, #content_title a:visited {
 | 
			
		||||
	color: #FFF;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h3 {
 | 
			
		||||
	margin-top: 0px;
 | 
			
		||||
	margin-bottom: 0px;
 | 
			
		||||
	padding-top: 15px;
 | 
			
		||||
	padding-left: 18px;
 | 
			
		||||
	font-size:12px;
 | 
			
		||||
	color: #fff;
 | 
			
		||||
	background: url(rightheader.gif) no-repeat top left;
 | 
			
		||||
	height: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#zaglavlje {
 | 
			
		||||
	font-size: 20px;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	margin-bottom: 0px;
 | 
			
		||||
	padding-top: 3px;
 | 
			
		||||
	padding-left: 26px;
 | 
			
		||||
	color: #fff;
 | 
			
		||||
	height: 73px;
 | 
			
		||||
	background: url(rightcontent.gif) no-repeat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#logo {
 | 
			
		||||
padding-top: 25px;	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#lijeva_kolona {
 | 
			
		||||
	float: left;
 | 
			
		||||
	width: 130px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#lijeva_kolona a, #lijeva_kolona a:visited {
 | 
			
		||||
	display: block;
 | 
			
		||||
	background: url(menulink.gif);
 | 
			
		||||
	padding-top: 3px;
 | 
			
		||||
	padding-left: 20px;
 | 
			
		||||
	height: 20px;
 | 
			
		||||
	color: #ccc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#lijeva_kolona a:hover {
 | 
			
		||||
	color: #FFF;
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#sadrzaj {
 | 
			
		||||
	width: 750px;
 | 
			
		||||
	margin: 5px auto;
 | 
			
		||||
	background-color: #fff;
 | 
			
		||||
	color: #333;
 | 
			
		||||
	line-height: 130%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#desna_kolona {
 | 
			
		||||
	float: right;
 | 
			
		||||
	width: 240px;
 | 
			
		||||
	background: #FFF url(rightcontent.gif);
 | 
			
		||||
	text-align:justify;
 | 
			
		||||
	color: #ccc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.srednja_kolona {
 | 
			
		||||
	margin-left: 135px;
 | 
			
		||||
	margin-right: 240px;
 | 
			
		||||
	max-width: 34em;
 | 
			
		||||
	background: url(content.gif) top left;
 | 
			
		||||
	text-align:justify;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#menuheader {
 | 
			
		||||
	background: url(menuheader.gif) no-repeat;
 | 
			
		||||
	height: 23px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#menufooter {
 | 
			
		||||
	background: url(menufooter.gif) no-repeat left top;
 | 
			
		||||
	height: 21px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text {
 | 
			
		||||
	padding: 40px 18px 25px 18px;
 | 
			
		||||
	color: #FFF;
 | 
			
		||||
	background: url(footer.gif) no-repeat left bottom;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text_desno {
 | 
			
		||||
	padding: 0px 18px 25px 18px;
 | 
			
		||||
	color: #e2e2e2;
 | 
			
		||||
	background: url(rightfooter.gif) no-repeat left bottom;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#info {
 | 
			
		||||
	color: #ccc;
 | 
			
		||||
	background: #5982B3;
 | 
			
		||||
	font-size: 9px;
 | 
			
		||||
	margin-top: 5px;
 | 
			
		||||
	margin-bottom: 5px;
 | 
			
		||||
	padding: 5px;
 | 
			
		||||
	border:	1px solid #6F92BD;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#hmenu {
 | 
			
		||||
	padding: 13px 0 5px 0;
 | 
			
		||||
	float: right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#hmenu a {
 | 
			
		||||
	padding: 12px 13px 2px 11px;
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
	color: #414141;
 | 
			
		||||
	background: #ccc url(hmenuarrow.gif) no-repeat top center;
 | 
			
		||||
	margin: 0 0 3px 1px;
 | 
			
		||||
	border-bottom: 4px solid #BCBCBC;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#hmenu a:hover {
 | 
			
		||||
	background: #3C6491 url(hmenuarrowhover.gif) no-repeat top center;
 | 
			
		||||
	color: #FFFFFF;
 | 
			
		||||
	border-bottom: 4px solid #2F4A6C;
 | 
			
		||||
}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
/* Styles specific to the index.php page */
 | 
			
		||||
@@ -9,7 +9,7 @@ if (isAIX()) { $aixDisabled = 'disabled'; }
 | 
			
		||||
require_once("lib/GroupNodeTable.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
 | 
			
		||||
insertHeader('Nodes', NULL, NULL, array('machines','nodes'));
 | 
			
		||||
insertHeader('Nodes', array('index.css'), NULL, array('machines','nodes'));
 | 
			
		||||
 | 
			
		||||
echo "<div id=content align=center>\n";
 | 
			
		||||
 | 
			
		||||
@@ -58,17 +58,17 @@ insertButtons(array(
 | 
			
		||||
 | 
			
		||||
echo '<form name="nodelist" class=ContentForm>';
 | 
			
		||||
 | 
			
		||||
/* $output = array(); runcmd("\bin\sudo listattr", 2, $output); foreach ($output as $line) { echo "<p>line=$line</p>"; } */
 | 
			
		||||
/* $output = array(); runcmd("/bin/sudo listattr", 2, $output); foreach ($output as $line) { echo "<p>line=$line</p>"; } */
 | 
			
		||||
 | 
			
		||||
GroupNodeTable::insertGroupTableHeader();
 | 
			
		||||
 | 
			
		||||
// Get all the names of the groups
 | 
			
		||||
$xcmdr = new XCATCommandRunner();
 | 
			
		||||
$nodeGroupNames = $xcmdr->getAllXCATGroups();
 | 
			
		||||
// Get the names and status of the groups
 | 
			
		||||
$groups = getGroupStatus();
 | 
			
		||||
 | 
			
		||||
// Print the HTML for each of them
 | 
			
		||||
foreach($nodeGroupNames as $key => $nodeGroupName) {
 | 
			
		||||
	echo GroupNodeTable::insertGroupTableRow($nodeGroupName);
 | 
			
		||||
foreach($groups as $group => $status) {
 | 
			
		||||
	//echo "<p>$group status is $status</p>";
 | 
			
		||||
	echo GroupNodeTable::insertGroupTableRow($group, $status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GroupNodeTable::insertGroupTableFooter();
 | 
			
		||||
@@ -77,18 +77,9 @@ echo <<<EOS
 | 
			
		||||
<!-- <SCRIPT language="JavaScript"> XCATEvent.doExpandNodes(); </SCRIPT> -->
 | 
			
		||||
</form>
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
  <td><img src="images/green-ball-m.gif"></td>
 | 
			
		||||
  <td align=left>Node is good (Status is ready/pbs/sshd)</td>
 | 
			
		||||
</tr>
 | 
			
		||||
<tr>
 | 
			
		||||
  <td><img src="images/red-ball-m.gif"></td>
 | 
			
		||||
  <td align=left>Node is bad (Status is 'noping')</td>
 | 
			
		||||
</tr>
 | 
			
		||||
<tr>
 | 
			
		||||
  <td><img src="images/yellow-ball-m.gif"></td>
 | 
			
		||||
  <td align=left>Other status (unknown/node unavailable...)</td>
 | 
			
		||||
</tr>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/green-ball-m.gif"></td><td align=left>Node is good (Status is ready/pbs/sshd)</td></tr>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/red-ball-m.gif"></td><td align=left>Node is bad (Status is 'noping')</td></tr>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/yellow-ball-m.gif"></td><td align=left>Other status (unknown/node unavailable...)</td></tr>
 | 
			
		||||
</table>
 | 
			
		||||
<p id=disclaimer>This interface is still under construction and not yet ready for use.</p>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -54,9 +54,8 @@ EOS;
 | 
			
		||||
/**
 | 
			
		||||
 * @param String nodeGroup	The group.
 | 
			
		||||
 */
 | 
			
		||||
function insertGroupTableRow($nodeGroup) {
 | 
			
		||||
$nodeGroupName = $nodeGroup->getName();
 | 
			
		||||
$img_string = XCATNodeGroupUtil::getImageString($nodeGroup->getStatus());
 | 
			
		||||
function insertGroupTableRow($nodeGroupName, $status) {
 | 
			
		||||
$img_string = getStatusImage(GroupNodeTable::determineStatus($status));
 | 
			
		||||
 | 
			
		||||
//echo '<tr bgcolor="#FFCC00"><td align=left>';
 | 
			
		||||
echo '<tr class=TableRow><td align=left>';
 | 
			
		||||
@@ -67,7 +66,7 @@ echo <<<EOE
 | 
			
		||||
	<td> </td>
 | 
			
		||||
	<td> </td>
 | 
			
		||||
	<td> </td>
 | 
			
		||||
	<td>$img_string</td>
 | 
			
		||||
	<td><img src="$img_string"></td>
 | 
			
		||||
	<td> </td>
 | 
			
		||||
	<td> </td>
 | 
			
		||||
	</tr>
 | 
			
		||||
@@ -81,7 +80,7 @@ return;
 | 
			
		||||
	 * @param XCATNodeGroup	nodeGroup	The node group for which we want to generate the html.
 | 
			
		||||
	 * returns the table that contains all the nodes information of that group
 | 
			
		||||
	 */
 | 
			
		||||
function getXCATNodeGroupSection($nodeGroup) {
 | 
			
		||||
function getNodeGroupSection($nodeGroup) {
 | 
			
		||||
		$imagedir = 'images';
 | 
			
		||||
		$right_arrow_gif = $imagedir . "/grey_arrow_r.gif";
 | 
			
		||||
		$left_arrow_gif = $imagedir . "/grey_arrow_l.gif";
 | 
			
		||||
@@ -97,7 +96,7 @@ EOS;
 | 
			
		||||
		$nodes = $nodeGroup->getNodes();
 | 
			
		||||
 | 
			
		||||
		foreach($nodes as $nodeName => $node) {
 | 
			
		||||
			$html .= GroupNodeTable::getXCATNodeTableRow($node);
 | 
			
		||||
			$html .= GroupNodeTable::getNodeTableRow($node);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$html .= "<TR bgcolor=\"#FFFF66\"><TD colspan=9 align=\"right\"><image src=\"$left_arrow_gif\" alt=\"Previous page\">    <image src=\"$right_arrow_gif\" alt=\"Next page\">  </TD></TR>";
 | 
			
		||||
@@ -111,7 +110,7 @@ EOS;
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param XCATNode	node	The node for which we want to generate the html.
 | 
			
		||||
	 */
 | 
			
		||||
function getXCATNodeTableRow($node) {
 | 
			
		||||
function getNodeTableRow($node) {
 | 
			
		||||
 | 
			
		||||
		$imagedir = 'images';
 | 
			
		||||
 | 
			
		||||
@@ -123,7 +122,7 @@ function getXCATNodeTableRow($node) {
 | 
			
		||||
				"<td width=43><div align=center>" . $node->getMode(). "</div></td>";
 | 
			
		||||
 | 
			
		||||
		$stat = $node->getStatus();
 | 
			
		||||
		$img_string = XCATNodeGroupUtil::getImageString($stat);
 | 
			
		||||
		$img_string = '<img src="' . getStatusImage($stat) . '">';
 | 
			
		||||
 | 
			
		||||
		$html .= "<td width=43><div align=center>" . $img_string . "</div></td>".
 | 
			
		||||
				"<td width=85><div align=center>" . $node->getHwCtrlPt(). "</div></td>".
 | 
			
		||||
@@ -132,5 +131,19 @@ function getXCATNodeTableRow($node) {
 | 
			
		||||
EOS;
 | 
			
		||||
		return $html;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @param String nodestatStr	The status of the node as output by the nodestat command
 | 
			
		||||
 * @return "good", "bad", "warning", or "unknown"
 | 
			
		||||
 */
 | 
			
		||||
function determineStatus($statStr) {
 | 
			
		||||
	$status = NULL;
 | 
			
		||||
	if ($statStr == "ready" || $statStr == "pbs" || $statStr == "sshd") { $status = "good"; }
 | 
			
		||||
	else if ($statStr == "noping") { $status = "bad"; }
 | 
			
		||||
	else if ($statStr == "ping") { $status = "warning"; }
 | 
			
		||||
	else { $status = "unknown"; }
 | 
			
		||||
	return $status;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}   // end the class
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,8 @@
 | 
			
		||||
<?php
 | 
			
		||||
//require_once("config.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNode/XCATNodeGroupUtil.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNode/XCATNode.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNode/XCATNodeManager.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNodeGroup/XCATNodeGroup.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNodeGroup/XCATNodeGroupManager.class.php");
 | 
			
		||||
require_once("../lib/XCAT/XCATNode/XCATNode.class.php");
 | 
			
		||||
require_once("../lib/XCAT/XCATNode/XCATNodeManager.class.php");
 | 
			
		||||
require_once("../lib/XCAT/XCATNodeGroup/XCATNodeGroup.class.php");
 | 
			
		||||
require_once("../lib/XCAT/XCATNodeGroup/XCATNodeGroupManager.class.php");
 | 
			
		||||
 | 
			
		||||
class XCATCommandRunner {
 | 
			
		||||
	var $XCATRoot;
 | 
			
		||||
@@ -39,18 +37,6 @@ class XCATCommandRunner {
 | 
			
		||||
		return $outputStat;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Will always return an up to date list of node names.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @return An array containing names of all nodes.
 | 
			
		||||
	 */
 | 
			
		||||
	function getAllNodeNames() {
 | 
			
		||||
		$cmdString = $this->Sudo . $this->XCATRoot . "/nodels";
 | 
			
		||||
		$outputStat = $this->runCommand($cmdString);
 | 
			
		||||
 | 
			
		||||
		return $outputStat["output"];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Will always return an up to date list of node names belonging to the group.
 | 
			
		||||
	 *
 | 
			
		||||
@@ -74,7 +60,7 @@ class XCATCommandRunner {
 | 
			
		||||
 | 
			
		||||
			$xcn = new XCATNode();
 | 
			
		||||
			$xcn->setName($nodeName);
 | 
			
		||||
			$xcn->setStatus(XCATNodeGroupUtil::determineNodeStatus($outputStat["output"][0]));
 | 
			
		||||
			$xcn->setStatus($this->determineNodeStatus($outputStat["output"][0]));
 | 
			
		||||
			$xcn->setHwType("HW Type");
 | 
			
		||||
			$xcn->setOs("OS");
 | 
			
		||||
			$xcn->setMode("Mode");
 | 
			
		||||
@@ -88,6 +74,26 @@ class XCATCommandRunner {
 | 
			
		||||
			return $xcn;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param String nodestatStr	The status of the node as output by the nodestat command
 | 
			
		||||
	 * @return "good", "bad", or "other"
 | 
			
		||||
	 */
 | 
			
		||||
	function determineNodeStatus($nodestatStr) {
 | 
			
		||||
		$status = NULL;
 | 
			
		||||
 | 
			
		||||
		if ((strpos($nodestatStr, "ready") != FALSE) ||
 | 
			
		||||
			(strpos($nodestatStr, "pbs") != FALSE) ||
 | 
			
		||||
			(strpos($nodestatStr, "sshd") != FALSE)) {
 | 
			
		||||
			$status = 'good';
 | 
			
		||||
		} else if(strpos($nodestatStr, "noping") != FALSE) {
 | 
			
		||||
			$status = 'bad';
 | 
			
		||||
		} else {
 | 
			
		||||
			$status = 'other';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return An array containing the name of every node group.
 | 
			
		||||
	 */
 | 
			
		||||
@@ -122,80 +128,5 @@ class XCATCommandRunner {
 | 
			
		||||
		return $xcatNodeGroup;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * This function will run the command to get all
 | 
			
		||||
	 * the groups, and then for each group, it will get
 | 
			
		||||
	 * their nodes, and for each node, it will get its
 | 
			
		||||
	 * information once.
 | 
			
		||||
	 */
 | 
			
		||||
	function getAllXCATGroups() {
 | 
			
		||||
			$xcatGroupNames = $this->getAllGroupNames();
 | 
			
		||||
 | 
			
		||||
			$xcatGroups = array();
 | 
			
		||||
 | 
			
		||||
			$groupStatArr = $this->getGroupStatus(); //get the status of all the groups
 | 
			
		||||
 | 
			
		||||
			foreach($xcatGroupNames as $groupName) {
 | 
			
		||||
				//echo "<p>group=$groupName</p>";
 | 
			
		||||
				$xcatGroup = $this->getXCATGroupByName($groupName, $groupStatArr);
 | 
			
		||||
				array_push($xcatGroups, $xcatGroup);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			return $xcatGroups;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function getXCATGroupByName($groupName, $groupStatArr){
 | 
			
		||||
 | 
			
		||||
			$xcg = new XCATNodeGroup();
 | 
			
		||||
			$xcg->setName($groupName);
 | 
			
		||||
			$xcg->setStatus(XCATNodeGroupUtil::determineNodeStatus($groupStatArr[$groupName]));
 | 
			
		||||
 | 
			
		||||
			return $xcg;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Will always return an up to date status of the groups
 | 
			
		||||
	 *
 | 
			
		||||
	 * @return An array containing the status of all the groups
 | 
			
		||||
	 */
 | 
			
		||||
	function getGroupStatus() {
 | 
			
		||||
		$cmdString = $this->Sudo . $this->CurrDir . "/grpattr";   // "/cmds/grpattr";
 | 
			
		||||
		$outputStat = $this->runCommand($cmdString);
 | 
			
		||||
		$groupStats = $outputStat["output"];
 | 
			
		||||
		$groupStatArr = array();
 | 
			
		||||
		foreach($groupStats as $key => $groupStat) {
 | 
			
		||||
			if (strpos($groupStat,':') != FALSE){
 | 
			
		||||
				$stat = substr($groupStat,strpos($groupStat,':') + 2); //there's a space between the colon and the status
 | 
			
		||||
				$grp = substr($groupStat,0, strpos($groupStat,':'));
 | 
			
		||||
				$groupStatArr[$grp] = $stat;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $groupStatArr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function getNodeOrGroupStatus($nodegroupName, $group) {
 | 
			
		||||
		$stat = "";
 | 
			
		||||
		if ($group == FALSE){
 | 
			
		||||
			$cmdString = $this->Sudo . $this->XCATRoot . "/nodestat " . $nodegroupName;
 | 
			
		||||
			$outputStat = $this->runCommand($cmdString);
 | 
			
		||||
			$nodegroupStat = $outputStat["output"][0];
 | 
			
		||||
 | 
			
		||||
			if (strpos($nodegroupStat,':') != FALSE){
 | 
			
		||||
					$stat = substr($nodegroupStat,strpos($nodegroupStat,':') + 2); //there's a space between the colon and the status
 | 
			
		||||
			}
 | 
			
		||||
		}else{
 | 
			
		||||
			$StatArr = $this->getGroupStatus();
 | 
			
		||||
			$stat = $StatArr[$nodegroupName];
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ($stat != "")	$stat = XCATNodeGroupUtil::determineNodeStatus($stat);
 | 
			
		||||
 | 
			
		||||
		return $stat;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
@@ -1,55 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
//require_once("config.php");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Contains some utilities for XCATNodes.
 | 
			
		||||
 */
 | 
			
		||||
class XCATNodeGroupUtil {
 | 
			
		||||
 | 
			
		||||
	function XCATNodeGroupUtil() {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param String nodestatStr	The status of the node as output by the nodestat command
 | 
			
		||||
	 * @return "good", "bad", or "other"
 | 
			
		||||
	 */
 | 
			
		||||
	function determineNodeStatus($statStr) {
 | 
			
		||||
		$status = NULL;
 | 
			
		||||
 | 
			
		||||
		if ((strpos($statStr, "ready") !== FALSE) ||
 | 
			
		||||
			(strpos($statStr, "pbs") !== FALSE) ||
 | 
			
		||||
			(strpos($statStr, "noping") === FALSE && strpos($statStr, "ping") !== FALSE ) ||
 | 
			
		||||
			(strpos($statStr, "sshd") !== FALSE)) {
 | 
			
		||||
			$status = "good";
 | 
			
		||||
		} else if(strpos($statStr, "noping") !== FALSE) {
 | 
			
		||||
			$status = "bad";
 | 
			
		||||
		} else {
 | 
			
		||||
			$status = "other";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Return the image string based on the node/group status
 | 
			
		||||
	 */
 | 
			
		||||
	function getImageString($status){
 | 
			
		||||
			$imagedir = 'images';
 | 
			
		||||
			$greengif = $imagedir . "/green-ball-m.gif";
 | 
			
		||||
			$yellowgif = $imagedir . "/yellow-ball-m.gif";
 | 
			
		||||
			$redgif = $imagedir . "/red-ball-m.gif";
 | 
			
		||||
 | 
			
		||||
			//node/group is good
 | 
			
		||||
			if (strstr($status, "good") == TRUE ){
 | 
			
		||||
					$stat_content = "<IMG src=\"" . $greengif. "\" alt=\"Node is good\"> ";
 | 
			
		||||
			}elseif (strstr($status, "bad") == TRUE){	//node is bad
 | 
			
		||||
					$stat_content = "<IMG src=\"" . $redgif. "\" alt=\"Node is bad\"> ";
 | 
			
		||||
			}else{	//other status
 | 
			
		||||
					$stat_content = "<IMG src=\"" . $yellowgif. "\" alt=\"Other status\"> ";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return $stat_content;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
@@ -1,19 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * Just returns the strings for the different node statuses.
 | 
			
		||||
 * This way these string constants are defined in just one place.
 | 
			
		||||
 */
 | 
			
		||||
class XCATNodeStatus {
 | 
			
		||||
	function good() {
 | 
			
		||||
		return "good";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function bad() {
 | 
			
		||||
		return "bad";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function other() {
 | 
			
		||||
		return "other";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
require_once("XCAT/XCATNode/XCATNodeStatus.class.php");
 | 
			
		||||
/**
 | 
			
		||||
 * Contains some utilities for XCATNodes.
 | 
			
		||||
 */
 | 
			
		||||
class XCATNodeUtil {
 | 
			
		||||
	function XCATNodeUtil() {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param String nodestatStr	The status of the node as output by the nodestat command
 | 
			
		||||
	 * @return "good", "bad", or "other"
 | 
			
		||||
	 */
 | 
			
		||||
	function determineNodeStatus($nodestatStr) {
 | 
			
		||||
		$status = NULL;
 | 
			
		||||
 | 
			
		||||
		if ((strpos($nodestatStr, "ready") != FALSE) ||
 | 
			
		||||
			(strpos($nodestatStr, "pbs") != FALSE) ||
 | 
			
		||||
			(strpos($nodestatStr, "sshd") != FALSE)) {
 | 
			
		||||
			$status = XCATNodeStatus::good();
 | 
			
		||||
		} else if(strpos($nodestatStr, "noping") != FALSE) {
 | 
			
		||||
			$status = XCATNodeStatus::bad();
 | 
			
		||||
		} else {
 | 
			
		||||
			$status = XCATNodeStatus::other();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $status;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
require_once("lib/GroupNodeTable.class.php");
 | 
			
		||||
require_once("../lib/GroupNodeTable.class.php");
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This class exposes an API for calling the XCAT PHP classes.
 | 
			
		||||
@@ -47,7 +47,7 @@ class XCATWebservice {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function getXCATNodeRows($nodeGroupName) {
 | 
			
		||||
		$html = GroupNodeTable::getXCATNodeTableRow($nodeGroupName);
 | 
			
		||||
		$html = GroupNodeTable::getNodeTableRow($nodeGroupName);
 | 
			
		||||
 | 
			
		||||
		echo $html;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ $CURRDIR = '/opt/xcat/web';
 | 
			
		||||
------------------------------------------------------------------------------------------------*/
 | 
			
		||||
function insertHeader($title, $stylesheets, $javascripts, $currents) {
 | 
			
		||||
global $TOPDIR;
 | 
			
		||||
if (!$TOPDIR) 	$TOPDIR = '.';
 | 
			
		||||
if (!$TOPDIR) 	$TOPDIR = '..';
 | 
			
		||||
 | 
			
		||||
echo <<<EOS
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-strict.dtd">
 | 
			
		||||
@@ -27,8 +27,8 @@ echo <<<EOS
 | 
			
		||||
<head>
 | 
			
		||||
<title>$title</title>
 | 
			
		||||
<meta http-equiv="Content-Type" content="application/xhtml+xml;  charset=iso-8859-1">
 | 
			
		||||
<link href="style.css" rel="stylesheet">
 | 
			
		||||
<script src="functions.js" type="text/javascript"></script>
 | 
			
		||||
<link href="$TOPDIR/lib/style.css" rel="stylesheet">
 | 
			
		||||
<script src="$TOPDIR/lib/functions.js" type="text/javascript"></script>
 | 
			
		||||
 | 
			
		||||
EOS;
 | 
			
		||||
 | 
			
		||||
@@ -61,11 +61,11 @@ echo "</head><body>\n";
 | 
			
		||||
echo <<<EOS
 | 
			
		||||
<table id=headingTable border=0 cellspacing=0 cellpadding=0>
 | 
			
		||||
<tr>
 | 
			
		||||
    <td><img id=xcatImage src='images/xCAT_icon.gif'></td>
 | 
			
		||||
    <td><img id=xcatImage src='$TOPDIR/images/xCAT_icon.gif'></td>
 | 
			
		||||
    <td width='100%'>
 | 
			
		||||
 | 
			
		||||
EOS;
 | 
			
		||||
//echo "<div id=top><img id=xcatImage src='./images/xCAT_icon.gif'><div id=menuDiv>\n";
 | 
			
		||||
//echo "<div id=top><img id=xcatImage src='$TOPDIR/images/xCAT_icon.gif'><div id=menuDiv>\n";
 | 
			
		||||
 | 
			
		||||
insertMenus($currents);
 | 
			
		||||
 | 
			
		||||
@@ -366,6 +366,16 @@ function getHWTypeImage($hwtype, $powermethod) { //-----------------------------
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Return the image that represents the status string passed in
 | 
			
		||||
function getStatusImage($status) {
 | 
			
		||||
	global $TOPDIR;
 | 
			
		||||
	if ($status == 'good') { return "$TOPDIR/images/green-ball-m.gif"; }
 | 
			
		||||
	elseif ($status == 'warning') { return "$TOPDIR/images/yellow-ball-m.gif"; }
 | 
			
		||||
	elseif ($status == 'bad') { return "$TOPDIR/images/red-ball-m.gif"; }
 | 
			
		||||
	else { return "$TOPDIR/images/blue-ball-m.gif"; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Returns the specified user preference value.  Not finished.
 | 
			
		||||
function getPref($key) { //------------------------------------
 | 
			
		||||
	if ($key == 'MaxNodesDisplayed') { return 50; }
 | 
			
		||||
@@ -386,10 +396,25 @@ function getNodes($group, $noderange) { //------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Returns the node groups defined in the cluster.  Not finished.
 | 
			
		||||
function getGroups() { //------------------------------------
 | 
			
		||||
function getGroups() {
 | 
			
		||||
	return array('AllNodes','group1','group2');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// 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 the status as returned by nodestat.
 | 
			
		||||
function getGroupStatus() {
 | 
			
		||||
	$groups = array();
 | 
			
		||||
	$output = array();
 | 
			
		||||
	runcmd("/bin/sudo grpattr", 2, $output);
 | 
			
		||||
	foreach ($output as $line) {
 | 
			
		||||
		//echo "<p>line=$line</p>";
 | 
			
		||||
		$vals = preg_split('/: */', $line);
 | 
			
		||||
		if (count($vals) == 2) { $groups[$vals[0]] = $vals[1]; }
 | 
			
		||||
	}
 | 
			
		||||
	return $groups;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Returns true if we are running on AIX ------------------------------------
 | 
			
		||||
function isAIX() { }     //todo: implement
 | 
			
		||||
 | 
			
		||||
@@ -406,10 +431,10 @@ function insertTabs ($tablist, $currentTabIndex) { //---------------------------
 | 
			
		||||
	foreach ($tablist as $key => $tab) {
 | 
			
		||||
		if ($key != 0) { echo "<TD width=2></TD>"; }
 | 
			
		||||
		if ($currentTabIndex == $key) {
 | 
			
		||||
			echo "<TD align=center background='images/tab-current.gif'><b>$tab[0]</b></TD>";
 | 
			
		||||
			echo "<TD align=center background='$TOPDIR/images/tab-current.gif'><b>$tab[0]</b></TD>";
 | 
			
		||||
			}
 | 
			
		||||
		else {
 | 
			
		||||
			echo "<TD align=center background='images/tab.gif'><A href='$tab[1]'>$tab[0]</A></TD>";
 | 
			
		||||
			echo "<TD align=center background='$TOPDIR/images/tab.gif'><A href='$tab[1]'>$tab[0]</A></TD>";
 | 
			
		||||
			}
 | 
			
		||||
	}
 | 
			
		||||
    echo "</TR><TR><TD colspan=7 height=7 bgcolor='#CBCBCB'></TD></TR></TBODY></TABLE>\n";
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
#headingTable {
 | 
			
		||||
	margin: 0 20px 10px 20px;
 | 
			
		||||
	/* background: #FFF url(./images/top.jpg) repeat-x top; */
 | 
			
		||||
	/* background: #FFF url(../images/top.jpg) repeat-x top; */
 | 
			
		||||
	background-color: #002432;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
	margin: 0 auto 10px auto;
 | 
			
		||||
	padding: 0;
 | 
			
		||||
	color: #666;
 | 
			
		||||
	background: #FFF url(./images/top.jpg) repeat-x top;
 | 
			
		||||
	background: #FFF url(../images/top.jpg) repeat-x top;
 | 
			
		||||
	background-color: #002432;
 | 
			
		||||
	height: 65px;
 | 
			
		||||
}
 | 
			
		||||
@@ -99,14 +99,6 @@ div#content {
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#disclaimer {
 | 
			
		||||
 font-weight: bold;
 | 
			
		||||
 font-size: 9pt;
 | 
			
		||||
 color: red;
 | 
			
		||||
 text-align: center;
 | 
			
		||||
 margin: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ContentForm { margin: 10px 2px 15px 2px; }
 | 
			
		||||
 | 
			
		||||
BODY {
 | 
			
		||||
@@ -114,7 +106,7 @@ BODY {
 | 
			
		||||
	font-family : Arial;
 | 
			
		||||
	margin: 0;
 | 
			
		||||
	padding: 10px;
 | 
			
		||||
	background: url(images/background.gif) repeat-y;
 | 
			
		||||
	background: url(../images/background.gif) repeat-y;
 | 
			
		||||
	/* background: black; */
 | 
			
		||||
	font: normal 12px Tahoma, Verdana, Arial, Helvetica, Sans-Serif;
 | 
			
		||||
	line-height: 1.6em;
 | 
			
		||||
@@ -167,7 +159,7 @@ TABLE {font-size : 10pt; font-family : Arial;}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
a.button {
 | 
			
		||||
    background: transparent url('./images/bg_button_a.gif') no-repeat scroll top right;
 | 
			
		||||
    background: transparent url('../images/bg_button_a.gif') no-repeat scroll top right;
 | 
			
		||||
    color: #444;
 | 
			
		||||
    display: block;
 | 
			
		||||
    float: left;
 | 
			
		||||
@@ -180,7 +172,7 @@ a.button {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a.button span {
 | 
			
		||||
    background: transparent url('./images/bg_button_span.gif') no-repeat;
 | 
			
		||||
    background: transparent url('../images/bg_button_span.gif') no-repeat;
 | 
			
		||||
    display: block;
 | 
			
		||||
    line-height: 14px;
 | 
			
		||||
    padding: 5px 0 5px 18px;
 | 
			
		||||
							
								
								
									
										9
									
								
								xCAT-web/machines/groups.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
			
		||||
/* Styles specific to the groups.php page */
 | 
			
		||||
 | 
			
		||||
#disclaimer {
 | 
			
		||||
 font-weight: bold;
 | 
			
		||||
 font-size: 9pt;
 | 
			
		||||
 color: red;
 | 
			
		||||
 text-align: center;
 | 
			
		||||
 margin: 5px;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										89
									
								
								xCAT-web/machines/groups.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,89 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
// Main page of the xCAT web interface
 | 
			
		||||
 | 
			
		||||
$TOPDIR = '..';
 | 
			
		||||
require_once "$TOPDIR/lib/functions.php";
 | 
			
		||||
if (isAIX()) { $aixDisabled = 'disabled'; }
 | 
			
		||||
 | 
			
		||||
require_once("$TOPDIR/lib/GroupNodeTable.class.php");
 | 
			
		||||
require_once("$TOPDIR/lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
 | 
			
		||||
insertHeader('Groups', array('groups.css'), NULL, array('machines','groups'));
 | 
			
		||||
 | 
			
		||||
echo "<div id=content align=center>\n";
 | 
			
		||||
 | 
			
		||||
insertButtons(array(
 | 
			
		||||
	array(
 | 
			
		||||
		'Attributes',
 | 
			
		||||
		'Create Like',
 | 
			
		||||
		'Create Group',
 | 
			
		||||
		'Ping',
 | 
			
		||||
		//'Updatenode',
 | 
			
		||||
		'Run Cmd',
 | 
			
		||||
		'Copy Files'
 | 
			
		||||
	),
 | 
			
		||||
	array(
 | 
			
		||||
		//'Soft Maint',
 | 
			
		||||
		'HW Ctrl',
 | 
			
		||||
		'RSA/MM/FSP',
 | 
			
		||||
		'Install',
 | 
			
		||||
		'Perf Mon',
 | 
			
		||||
		//'Webmin',
 | 
			
		||||
		'Diagnose',
 | 
			
		||||
		'Remove'
 | 
			
		||||
	),
 | 
			
		||||
	/*
 | 
			
		||||
	array(
 | 
			
		||||
		'name=propButton value="Attributes"',
 | 
			
		||||
		'name=defineButton value="Create Like"',
 | 
			
		||||
		'name=createGroupButton value="Create Group"',
 | 
			
		||||
		'name=pingNodesButton value="Ping"',
 | 
			
		||||
		//'name=updateButton value="Updatenode"',
 | 
			
		||||
		'name=runcmdButton value="Run Cmd"',
 | 
			
		||||
		'name=copyFilesButton value="Copy Files"'
 | 
			
		||||
	),
 | 
			
		||||
	array(
 | 
			
		||||
		//'name=softMaintButton value="Soft Maint" onclick="this.form.nodesNeeded=1;"',
 | 
			
		||||
		'name=hwctrlButton value="HW Ctrl"',
 | 
			
		||||
		'name=rsaButton value="RSA/MM/FSP" onclick="this.form.nodesNeeded=1;"',
 | 
			
		||||
		'name=installButton value="Install"',
 | 
			
		||||
		'name=perfmonButton value="Perf Mon"',
 | 
			
		||||
		//'name=webminButton value="Webmin" onclick="this.form.nodesNeeded=1;"',
 | 
			
		||||
		'name=diagButton value="Diagnose" onclick="this.form.nodesNeeded=1;"',
 | 
			
		||||
		'name=removeButton value="Remove"'
 | 
			
		||||
	),
 | 
			
		||||
	*/
 | 
			
		||||
));
 | 
			
		||||
 | 
			
		||||
echo '<form name="nodelist" class=ContentForm>';
 | 
			
		||||
 | 
			
		||||
/* $output = array(); runcmd("/bin/sudo listattr", 2, $output); foreach ($output as $line) { echo "<p>line=$line</p>"; } */
 | 
			
		||||
 | 
			
		||||
GroupNodeTable::insertGroupTableHeader();
 | 
			
		||||
 | 
			
		||||
// Get the names and status of the groups
 | 
			
		||||
$groups = getGroupStatus();
 | 
			
		||||
 | 
			
		||||
// Print the HTML for each of them
 | 
			
		||||
foreach($groups as $group => $status) {
 | 
			
		||||
	//echo "<p>$group status is $status</p>";
 | 
			
		||||
	echo GroupNodeTable::insertGroupTableRow($group, $status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GroupNodeTable::insertGroupTableFooter();
 | 
			
		||||
 | 
			
		||||
echo <<<EOS
 | 
			
		||||
<!-- <SCRIPT language="JavaScript"> XCATEvent.doExpandNodes(); </SCRIPT> -->
 | 
			
		||||
</form>
 | 
			
		||||
<table>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/green-ball-m.gif"></td><td align=left>Node is good (Status is ready/pbs/sshd)</td></tr>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/red-ball-m.gif"></td><td align=left>Node is bad (Status is 'noping')</td></tr>
 | 
			
		||||
<tr><td><img src="$TOPDIR/images/yellow-ball-m.gif"></td><td align=left>Other status (unknown/node unavailable...)</td></tr>
 | 
			
		||||
</table>
 | 
			
		||||
<p id=disclaimer>This interface is still under construction and not yet ready for use.</p>
 | 
			
		||||
</div>
 | 
			
		||||
</BODY>
 | 
			
		||||
</HTML>
 | 
			
		||||
EOS;
 | 
			
		||||
?>
 | 
			
		||||
@@ -1,127 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 | 
			
		||||
This file is no longer used.
 | 
			
		||||
 | 
			
		||||
Styles for the navigation area and some other general styles.
 | 
			
		||||
 | 
			
		||||
Some of this came from:
 | 
			
		||||
	template: Artificial Intelligence
 | 
			
		||||
	author: luka cvrk (www.solucija.com)
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
.middle{ font: normal 1em Tahoma, Verdana, Arial, Helvetica, Sans-Serif; }
 | 
			
		||||
 | 
			
		||||
/* this overlaps the BlueBack class in style.css */
 | 
			
		||||
.BlueBack{
 | 
			
		||||
	font: bold .9em Tahoma, Verdana, Arial, Helvetica, Sans-Serif;
 | 
			
		||||
	color:#003399;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.White{
 | 
			
		||||
	font: bold .9em Tahoma, Verdana, Arial, Helvetica, Sans-Serif;
 | 
			
		||||
	color:#FFFFFF;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* LINKS AND HEADINGS STYLING */
 | 
			
		||||
 | 
			
		||||
a { color: #546F92; background: inherit; }
 | 
			
		||||
a:hover { color: #808080; background: inherit; }
 | 
			
		||||
h1  { font: bold 2em "Trebuchet MS", Helvetica, Sans-Serif; margin: 0; color: #000000; background-color:transparent; }
 | 
			
		||||
h2  { font: bold 1.4em "Trebuchet MS", Helvetica, Sans-Serif; }
 | 
			
		||||
/* h3 { clear: both; font-size: 1.1em; color: #000; background: #fff url(images/h3bg.gif) no-repeat center left; padding: 0 14px; margin: 0;} */
 | 
			
		||||
h3 { clear: both; font-size: 1.1em; color: #000; background-color: #fff; padding: 0 14px; margin: 0;}
 | 
			
		||||
.blue { color: #546F92; background: inherit; }
 | 
			
		||||
.image { float: left; border: 2px solid #e2e2e2; padding: 3px; margin: 0 15px 10px 0; }
 | 
			
		||||
.no-border {border:0;}
 | 
			
		||||
 | 
			
		||||
.inner_table{
 | 
			
		||||
	/*border-collapse:collapse;*/
 | 
			
		||||
	border: 3px;
 | 
			
		||||
	/* background-color: green; */
 | 
			
		||||
	margin-left : 15px;
 | 
			
		||||
  margin-right : 0px;
 | 
			
		||||
  margin-top : 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
td.BorderMe { border:1px dotted #CCC; }
 | 
			
		||||
 | 
			
		||||
tr.indent td { padding:0px 0 0px 10px; }
 | 
			
		||||
 | 
			
		||||
.none { display:none; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* LEFT VERTICAL MENU/Navigation area */
 | 
			
		||||
 | 
			
		||||
#nav TD{
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  vertical-align : middle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#menu_level1 {
 | 
			
		||||
	/* float: left; */
 | 
			
		||||
	color: white;  /* #3F5B7F; */
 | 
			
		||||
	/* background: #C2CEDE; */
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	font-size:12px;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	/* height:100%; */
 | 
			
		||||
	padding: 0px 5px 0px 0px;
 | 
			
		||||
	border-bottom: 1px solid white;
 | 
			
		||||
}
 | 
			
		||||
	/* menu_level1 rows are not links or lists, they are collapseable sections...
 | 
			
		||||
	#menu_level1 li { list-style: none; }
 | 
			
		||||
	#menu_level1 a:link,a:visited {
 | 
			
		||||
		display: block;
 | 
			
		||||
		color: #3F5B7F; font-weight: bold; background: #C2CEDE; width: 100%;	height:100%; padding: 0px; font-weight: bold;
 | 
			
		||||
		text-decoration: none;
 | 
			
		||||
	}
 | 
			
		||||
	#menu_level1 a:hover { background: #9EB1C9 ; color: #fff; text-decoration: underline; }
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
#menu_level2 {
 | 
			
		||||
	/* float: left; */
 | 
			
		||||
	color: white;  /* #3F5B7F; */
 | 
			
		||||
	/* background: #BDBDBD ; */
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	font-size: 11px;
 | 
			
		||||
	padding: 0px 5px 0px 3px;
 | 
			
		||||
	border-bottom: 1px solid white;
 | 
			
		||||
}
 | 
			
		||||
	/* menu_level2 rows are not links or lists, they are collapseable sections...
 | 
			
		||||
	#menu_level2 li { list-style: none; }
 | 
			
		||||
	#menu_level2 a:link, a:visited {
 | 
			
		||||
		display: block;
 | 
			
		||||
		color: #3F5B7F; font-weight: bold; background: #BDBDBD;
 | 
			
		||||
		width: 100%;
 | 
			
		||||
		height:100%;
 | 
			
		||||
		padding: 0px 5px 0px 15px;
 | 
			
		||||
		text-decoration: none;
 | 
			
		||||
	}
 | 
			
		||||
	#menu_level2 a img { border: 0 none; }
 | 
			
		||||
	#menu_level2 a:hover { background: #999999; color: #fff;  }
 | 
			
		||||
	#menu_level2 a.current { background: #999999; color: #fff;  }
 | 
			
		||||
	#menu_level2.no-link {  }
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
#menu_level3 {
 | 
			
		||||
	/* float: left; */
 | 
			
		||||
	color: #3F5B7F;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	/* background: #CCCCCC ; */
 | 
			
		||||
	border-bottom: 1px solid #fff;
 | 
			
		||||
	font-size:11px;
 | 
			
		||||
	padding: 0px 5px 0px 15px;
 | 
			
		||||
	/* width: 100%; */
 | 
			
		||||
}
 | 
			
		||||
	/* #menu_level3 li { list-style: none; } */
 | 
			
		||||
	#menu_level3 a:link, a:visited {
 | 
			
		||||
		display: block;
 | 
			
		||||
		/* color: #3F5B7F; width: 110px; font-weight: bold; background: #CCCCCC; */
 | 
			
		||||
		/* height:100%; */
 | 
			
		||||
		text-decoration: none;
 | 
			
		||||
	}
 | 
			
		||||
	#menu_level3 a img { border: 0 none; }
 | 
			
		||||
	#menu_level3 a:hover { background: #999999; color: #fff;  }
 | 
			
		||||
	/* #menu_level3 a.current { background: #999999; color: #fff; } */
 | 
			
		||||
	#menu_level3.CurrentMenuItem { background: #FFFFFF ; }
 | 
			
		||||
 | 
			
		||||
@@ -1,8 +1,7 @@
 | 
			
		||||
<?php
 | 
			
		||||
require_once("globalconfig.php");
 | 
			
		||||
require_once("XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
require_once("XCAT/XCATNode/XCATNodeManager.class.php");
 | 
			
		||||
require_once("XCAT/XCATNodeGroup/XCATNodeGroupManager.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNode/XCATNodeManager.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATNodeGroup/XCATNodeGroupManager.class.php");
 | 
			
		||||
 | 
			
		||||
$cmdRunner = new XCATCommandRunner($xCAT_ROOT);
 | 
			
		||||
$var = $cmdRunner->getAllXCATNodeGroups();
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
require_once("globalconfig.php");
 | 
			
		||||
require_once("lib/GroupNodeTable.class.php");
 | 
			
		||||
require_once("XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
require_once("lib/XCAT/XCATCommand/XCATCommandRunner.class.php");
 | 
			
		||||
 | 
			
		||||
$nodeGroupName = @$_REQUEST["nodeGroupName"];
 | 
			
		||||
 | 
			
		||||
// Get all the nodes with node information of the group
 | 
			
		||||
$xcmdr = new XCATCommandRunner();
 | 
			
		||||
$nodeGroup = $xcmdr->getXCATNodeByGroupName($nodeGroupName);
 | 
			
		||||
echo GroupNodeTable::getXCATNodeGroupSection($nodeGroup);
 | 
			
		||||
echo GroupNodeTable::getNodeGroupSection($nodeGroup);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,10 +3,7 @@
 | 
			
		||||
  Include files, insert header and menu bar
 | 
			
		||||
------------------------------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
//require_once("globalconfig.php");
 | 
			
		||||
 | 
			
		||||
require_once "$TOPDIR/functions.php";	//NOTE: it is essential to include this file before include top.php and nav.php
 | 
			
		||||
//require_once "$TOPDIR/nav.php";
 | 
			
		||||
 | 
			
		||||
insertHeader('Preferences', NULL, NULL);
 | 
			
		||||
insertNav('prefs');
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@
 | 
			
		||||
 * This file works in conjunction with lib/XCAT/webservice/XCATWebservice.class.php
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
require_once("globalconfig.php");
 | 
			
		||||
require_once("lib/XCAT/webservice/XCATWebservice.class.php");
 | 
			
		||||
 | 
			
		||||
$methodName = $_REQUEST["method"];
 | 
			
		||||
 
 | 
			
		||||