Formatted code.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12434 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
phamt 2012-05-01 23:43:11 +00:00
parent 075a6e49e9
commit 4ad9216707
29 changed files with 3429 additions and 3488 deletions

View File

@ -10,8 +10,8 @@ loadPage();
/* Login user */
if (!isAuthenticated()) {
login();
login();
} else {
loadContent();
loadContent();
}
?>

View File

@ -30,11 +30,11 @@ body {
padding: 5px;
}
#login label{
#login label {
font: bold 12px sans-serif;
}
#login_status {
#login-status {
font: bold 12px sans-serif;
}
@ -44,7 +44,7 @@ body {
float: right;
}
#login_form {
#login-form {
background-color: #f5f5f5;
height: 280px;
-moz-border-radius: 3px;
@ -52,9 +52,9 @@ body {
border-radius: 3px;
}
#loginfo {
#log-info {
margin: 5px 0px;
text-align: right;
color: #f5f5f5;
font-weight:bold;
font-weight: bold;
}

View File

@ -1,11 +1,10 @@
/*--------------- Dialogs ---------------*/
/*--- Dialogs ---*/
.ui-dialog input {
border: solid 1px #BDBDBD;
font: 12px sans-serif;
}
.ui-dialog label,.ui-dialog input,.ui-dialog p,.ui-dialog button,.ui-dialog td
{
.ui-dialog label,.ui-dialog input,.ui-dialog p,.ui-dialog button,.ui-dialog td {
font: 12px sans-serif;
}
@ -13,12 +12,11 @@
font: 12px sans-serif;
}
.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button
{
.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button {
font: 12px sans-serif;
}
/*--------------- Tooltip ---------------*/
/*--- Tooltip ---*/
.tooltip {
background-color: #000;
border: 1px solid #fff;
@ -37,7 +35,7 @@
margin: 0px;
}
/*--------------- Header ---------------*/
/*--- Header ---*/
#header {
height: 39px;
width: 1000px;
@ -90,15 +88,7 @@
color: #FF0000;
}
#layoutselector {
padding: 2px 10px 0px 2px; /* Top right left bottom*/
text-align: right;
color: #FFC125;
text-decoration: none;
display: block;
}
/*--------------- Body and content ---------------*/
/*--- Body and content ---*/
body {
background: #1C1C1C;
font: 12px sans-serif;
@ -124,7 +114,7 @@ pre {
font-size: 10px;
}
/*--------------- Groups ---------------*/
/*--- Groups ---*/
#groups {
width: 150px;
vertical-align: top;
@ -178,7 +168,7 @@ pre {
border-top: thin solid #E7EBFF;
}
/*--------------- Nodes section ---------------*/
/*--- Nodes section ---*/
#nodes {
width: 790px;
min-height: 570px;
@ -204,7 +194,7 @@ pre {
line-height: 1;
}
/*--------------- Info/warning bar ---------------*/
/*--- Info and warning bar ---*/
span.ui-icon-info {
float: left;
margin-right: 0.3em;
@ -227,7 +217,7 @@ span.ui-icon-info {
text-align: center
}
/*--------------- jQuery tabs ---------------*/
/*--- jQuery tabs ---*/
.tab {
font: 12px sans-serif;
border-style: none;
@ -248,7 +238,7 @@ span.ui-icon-info {
cursor: pointer;
}
/*--------------- Inventory and user entry ---------------*/
/*--- Inventory and user entry ---*/
.tab table {
border-width: 1px;
border-spacing: 0px;
@ -326,7 +316,7 @@ legend {
height: 300px;
}
/*--------------- menu Div Actions bar ---------------*/
/*--- menu Div Actions bar ---*/
.menuDiv {
padding: 0.5em;
height: 30px;
@ -373,7 +363,7 @@ legend {
margin: 0;
}
/*--------------- jQuery datatable ---------------*/
/*--- jQuery datatable ---*/
.dataTables_wrapper {
overflow: auto;
width: auto;
@ -414,8 +404,7 @@ legend {
}
/*** < > buttons ***/
.paginate_disabled_previous,.paginate_enabled_previous,.paginate_disabled_next,.paginate_enabled_next
{
.paginate_disabled_previous,.paginate_enabled_previous,.paginate_disabled_next,.paginate_enabled_next {
height: 19px;
width: 19px;
margin-left: 2px;
@ -472,7 +461,7 @@ legend {
color: #FF0000;
}
/*--------------- Editable column ---------------*/
/*--- Editable column ---*/
.tab .datatable textarea {
font: 12px sans-serif;
border: solid 1px #BDBDBD;
@ -498,7 +487,7 @@ legend {
background: none;
}
/*--------------- jQuery context menu ---------------*/
/*--- jQuery context menu ---*/
.context-menu-theme-vista {
background: #FAFAFA url(../images/contextmenu/context-menu-bg.gif)
repeat-y left top;
@ -536,8 +525,7 @@ legend {
background-image: none;
}
.context-menu-theme-vista .context-menu-item-hover .context-menu-item-inner
{
.context-menu-theme-vista .context-menu-item-hover .context-menu-item-inner {
padding: 3px 15px 3px 35px;
margin-left: 0px;
}
@ -546,7 +534,7 @@ legend {
color: #A7A7A7;
}
/*--------------- Forms ---------------*/
/*--- Forms ---*/
.form label {
color: #424242;
line-height: 1.5;
@ -613,7 +601,7 @@ table a:hover {
border: solid 1px #d4d4d4;
}
/*--------------- Provision disk table ---------------*/
/*--- Provision disk table ---*/
.provision table {
border-width: 1px;
border-spacing: 0px;
@ -630,7 +618,7 @@ table a:hover {
width: 60px;
}
/*--------------- Provision and clone table ---------------*/
/*--- Provision and clone table ---*/
.special table {
border-width: 1px;
border-spacing: 0px;
@ -646,52 +634,52 @@ table a:hover {
padding: 3px;
}
/*--------------- Provision and monitor forms ---------------*/
.monitornormal {
/*--- Provision and monitor forms ---*/
.monitor-normal {
background: #66CD00;
cursor: pointer;
}
.mornitorwarning {
.mornitor-warning {
background: #FFD700;
cursor: pointer;
}
.monitorerror {
.monitor-error {
background: #FF3030;
}
.monitorunknown {
.monitor-unknown {
background: #8B8B7A;
}
.monitornodeli {
.monitor-node-li {
width: 10px;
height: 10px;
float: left;
border: 1px solid white;
}
.monitorsumdiv {
.monitor-sum-div {
width: 300px;
height: 180px;
float: left;
margin: 0px 0px 10px 10px;
}
.monitorsumdiv td {
.monitor-sum-div td {
padding: 0;
border-style: none;
font-size: 10px;
}
.monitornodediv {
.monitor-node-div {
width: 240px;
height: 120px;
margin: 0px 0px 15px 0px;
}
.monitorzoomlink {
.monitor-zoom-link {
cursor: pointer;
color: blue;
}
@ -710,7 +698,7 @@ table a:hover {
height: 150px;
}
/*--------------- Physical layout section ---------------*/
/*--- Physical layout section ---*/
.frameDiv {
width: 179px;
height: 500px;
@ -768,7 +756,7 @@ table a:hover {
height: 11px;
}
.fspcheckbox {
.fspCheckbox {
padding: 0px;
margin: 3px 3px 1px 3px;
}
@ -796,7 +784,7 @@ table a:hover {
background: url(../images/nodes/blade.jpg);
}
.xnodeDiv {
.xNodeDiv {
font-size: 12px;
height: 21px;
line-height: 21px;
@ -809,45 +797,7 @@ table a:hover {
display: inline-block;
}
/*--------------- Discovery section ---------------*/
.discoverstep {
width: 960px;
vertical-align: top;
background-color: #A9D0F5;
padding: 0px 0px 0px 5px;
-moz-border-radius: .3em;
-webkit-border-radius: .3em;
border-radius: .3em;
}
.discovercurrentstep {
background-color: yellow;
font: normal bold 12px/35px sans-serif;
padding: 5px;
}
.discovercontent {
width: 960px;
display: inline-table;
padding: 0;
}
.discovercontent table {
border: none;
}
.discovercontent td {
border: none;
text-align: left;
}
.discovercontent th {
font: normal bold 15px sans-serif;
text-align: center;
border: none;
}
/*--------------- jqPlot Pie legend ---------------*/
/*--- jqPlot Pie legend ---*/
td.jqplot-table-legend {
border-width: 0px;
}

View File

@ -1,17 +1,18 @@
<?php
echo <<<EEE
<html>
<head>
<title>Node {$_GET['n']} Ganglia Report</title>
<meta content="600" http-equiv="refresh">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="css/style.css" rel=stylesheet type="text/css">
<link href="css/jquery.jqplot.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
<head>
<title>Node {$_GET['n']} Ganglia Report</title>
<meta content="600" http-equiv="refresh">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="css/style.css" rel=stylesheet type="text/css">
<link href="css/jquery.jqplot.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
EEE;
?>
<script type="text/javascript">
window.onload=function() {
var nodepath = $('#nodepath').val();
@ -37,9 +38,9 @@ window.onload=function() {
};
function drawNodesummary(summaryString){
var nodename = $('#nodename').val();
var nodeData = new Object();
var metricArray = summaryString.split(';');
var nodename = $('#nodename').val();
var nodeData = new Object();
var metricArray = summaryString.split(';');
var metricname = '';
var valueArray = '';
var position = 0;
@ -64,27 +65,28 @@ function drawNodesummary(summaryString){
drawNetworkFlot('ganglianodenetwork', nodename, nodeData['bytes_in'], nodeData['bytes_out']);
}
</script>
<?php
echo <<<EEE
</head>
<body>
<input id="nodename" type="hidden" value="{$_GET['n']}"></input>
<input id="nodepath" type="hidden" value="{$_GET['p']}"></input>
<div style="background-color:white;" class="tab">
<table style="border-style:none;">
<tr>
<td style="padding:0;border-style:none;"><div id="ganglianodeload" class="monitorsumdiv"></div></td>
<td style="padding:0;border-style:none;"><div id="ganglianodecpu" class="monitorsumdiv"></div></td>
<td style="padding:0;border-style: none;"><div id="ganglianodemem" class="monitorsumdiv"></div></td>
</tr>
<tr>
<td style="padding:0;border-style:none;"><div id="ganglianodedisk" class="monitorsumdiv"></div></td>
<td style="padding:0;border-style:none;"><div id="ganglianodenetwork" class="monitorsumdiv"></div></td>
<td style="padding:0;border-style:none;"></td>
</tr>
</table>
</div>
</body>
</head>
<body>
<input id="nodename" type="hidden" value="{$_GET['n']}"></input>
<input id="nodepath" type="hidden" value="{$_GET['p']}"></input>
<div style="background-color:white;" class="tab">
<table style="border-style:none;">
<tr>
<td style="padding:0;border-style:none;"><div id="ganglianodeload" class="monitor-sum-div"></div></td>
<td style="padding:0;border-style:none;"><div id="ganglianodecpu" class="monitor-sum-div"></div></td>
<td style="padding:0;border-style: none;"><div id="ganglianodemem" class="monitor-sum-div"></div></td>
</tr>
<tr>
<td style="padding:0;border-style:none;"><div id="ganglianodedisk" class="monitor-sum-div"></div></td>
<td style="padding:0;border-style:none;"><div id="ganglianodenetwork" class="monitor-sum-div"></div></td>
<td style="padding:0;border-style:none;"></td>
</tr>
</table>
</div>
</body>
</html>
EEE;
?>

View File

@ -10,8 +10,8 @@ loadPage();
/* Login user */
if (!isAuthenticated()) {
login();
login();
} else {
loadContent();
loadContent();
}
?>

View File

@ -11,8 +11,8 @@ loadPage();
/* Login user */
if (!isAuthenticated()) {
login();
login();
} else {
loadContent();
loadContent();
}
?>

View File

@ -476,11 +476,11 @@ function drawGridSummary() {
}
gridDrawArea.empty();
showStr = '<table style="border-style:none;"><tr><td style="padding:0;border-style:none;"><div id="gangliasummaryload" class="monitorsumdiv"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarycpu" class="monitorsumdiv"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarymem" class="monitorsumdiv"></div></td></tr>' +
'<tr><td style="padding:0;border-style:none;"><div id="gangliasummarydisk" class="monitorsumdiv"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarynetwork" class="monitorsumdiv"></div></td>' +
showStr = '<table style="border-style:none;"><tr><td style="padding:0;border-style:none;"><div id="gangliasummaryload" class="monitor-sum-div"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarycpu" class="monitor-sum-div"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarymem" class="monitor-sum-div"></div></td></tr>' +
'<tr><td style="padding:0;border-style:none;"><div id="gangliasummarydisk" class="monitor-sum-div"></div></td>' +
'<td style="padding:0;border-style:none;"><div id="gangliasummarynetwork" class="monitor-sum-div"></div></td>' +
'<td style="padding:0;border-style:none;"></td></tr></table>';
gridDrawArea.append(showStr);
drawLoadFlot('gangliasummaryload', 'Grid', gridData['load_one'], gridData['cpu_num']);
@ -906,23 +906,23 @@ function drawGangliaNodesAreaPic(type, name) {
nodename = temparray[index];
switch (nodeStatus[nodename]) {
case 'ERROR':
showStr = '<li class="monitorerror ui-corner-all monitornodeli" title="' + nodename + '"></li>';
showStr = '<li class="monitor-error ui-corner-all monitor-node-li" title="' + nodename + '"></li>';
break;
case 'WARNING':
showStr = '<li class="mornitorwarning ui-corner-all monitornodeli" title="' + nodename + '"></li>';
showStr = '<li class="mornitor-warning ui-corner-all monitor-node-li" title="' + nodename + '"></li>';
break;
case 'NORMAL':
showStr = '<li class="monitornormal ui-corner-all monitornodeli" title="' + nodename + '"></li>';
showStr = '<li class="monitor-normal ui-corner-all monitor-node-li" title="' + nodename + '"></li>';
break;
default:
showStr = '<li class="monitorunknown ui-corner-all monitornodeli" title="' + nodename + '"></li>';
showStr = '<li class="monitor-unknown ui-corner-all monitor-node-li" title="' + nodename + '"></li>';
break;
}
$('#gangliaNodes ul').append(showStr);
}
// Bind all normal and warning nodes click event
$('.monitornormal,.monitorwarning').bind('click', function() {
$('.monitor-normal,.monitorwarning').bind('click', function() {
var nodename = $(this).attr('title');
window.open('ganglianode.php?n=' + nodename + '&p=' + nodePath[nodename],
'nodedetail','height=430,width=950,scrollbars=yes,status =no');
@ -1077,7 +1077,7 @@ function updateZoom(obj) {
while ($('#zoomDiv span:last').attr('name') != type) {
$('#zoomDiv span:last').remove();
}
$(obj).removeClass('monitorzoomlinkli');
$(obj).removeClass('monitor-zoom-link');
$(obj).unbind('click');
drawGangliaNodesArea();
@ -1093,7 +1093,7 @@ function addZoomDiv(obj) {
var type = $(obj).attr('name');
var lastzoomobj = $('#zoomDiv span:last');
lastzoomobj.addClass('monitorzoomlink');
lastzoomobj.addClass('monitor-zoom-link');
lastzoomobj.bind('click', function() {
updateZoom(this);
});

View File

@ -273,13 +273,13 @@ function showRmcSummary(returnData) {
summaryTable.append(summaryRow);
}
summaryRow.append(tempTd);
attrDiv = $('<div id="monitorsumdiv' + attr + '" class="monitorsumdiv"></div>');
attrDiv = $('<div id="monitor-sum-div' + attr + '" class="monitor-sum-div"></div>');
tempTd.append(attrDiv);
for (var i in attrValues) {
tempArray.push( [ globalTimeStamp[i], Number(attrValues[i]) ]);
}
$.jqplot('monitorsumdiv' + attr, [ tempArray ], {
$.jqplot('monitor-sum-div' + attr, [ tempArray ], {
series: [{
showMarker : false
}],
@ -348,13 +348,13 @@ function parseRmcData(returnData) {
}
function createUnkownNode(nodeName) {
var tempLi = '<li class="monitorunknown ui-corner-all monitornodeli" id="' + nodeName + '" ' +
var tempLi = '<li class="monitor-unknown ui-corner-all monitor-node-li" id="' + nodeName + '" ' +
'title="Name:' + nodeName + '<br/>Unknown"></li>';
return tempLi;
}
function createErrorNode(nodeName) {
var tempLi = '<li class="monitorerror ui-corner-all monitornodeli id="' + nodeName + '" ' +
var tempLi = '<li class="monitor-error ui-corner-all monitor-node-li id="' + nodeName + '" ' +
'title="Name:' + nodeName + '<br/>Error"></li>';
}
@ -403,12 +403,12 @@ function showRmcNodes(data, nodename) {
memAvg = parseInt(tempSum / index);
if (cpuAvg >= 10 && memAvg <= 90){
classname = 'monitornormal';
classname = 'monitor-normal';
} else {
classname = 'mornitorwarning';
classname = 'mornitor-warning';
}
var normalLi = $('<li class="' + classname + ' ui-corner-all monitornodeli" id="' + nodename + '" title="' +
var normalLi = $('<li class="' + classname + ' ui-corner-all monitor-node-li" id="' + nodename + '" title="' +
'Name:' + nodename + '<br/> CpuIdle: ' + cpuAvg + '%<br/> MemFree: ' + memAvg + '%"></li>');
$('#rmcmonDetail ul').append(normalLi);
@ -440,8 +440,8 @@ function showNode(nodeName) {
for ( var attr in globalNodesDetail[nodeName]) {
var tempTd = $('<td style="border:0px;padding:1px 1px;"></td>');
var attrChat = $('<div id="monitornodediv' + nodeName + attr
+ '" class="monitornodediv"></div>');
var attrChat = $('<div id="monitor-node-div' + nodeName + attr
+ '" class="monitor-node-div"></div>');
if (0 == parseNum % 4) {
nodeRow = $('<tr></tr>');
nodeTable.append(nodeRow);
@ -457,7 +457,7 @@ function showNode(nodeName) {
tempArray.push( [ globalTimeStamp[i], Number(tempData[i]) ]);
}
$.jqplot('monitornodediv' + nodeName + attr, [ tempArray ], {
$.jqplot('monitor-node-div' + nodeName + attr, [ tempArray ], {
series : [{
showMarker : false
}],

View File

@ -312,7 +312,7 @@ function createSystempGraphical(bpa, fsp, area){
var td = $('<td style="padding:0;border-color: transparent;"></td>');
var frameDiv = $('<div class="frameDiv"></div>');
frameDiv.append('<div style="height:27px;" title="' + bpaName + '"><input type="checkbox" class="fspcheckbox" name="check_'+ bpaName +'"></div>');
frameDiv.append('<div style="height:27px;" title="' + bpaName + '"><input type="checkbox" class="fspCheckbox" name="check_'+ bpaName +'"></div>');
//for P7-IH, all the cecs are insert into the frame from down to up, so we had to show the cecs same as the
//physical layout.
@ -445,7 +445,7 @@ function createSystempGraphical(bpa, fsp, area){
updateSelectNodeDiv();
});
$('.fspcheckbox').bind('click', function(){
$('.fspCheckbox').bind('click', function(){
var itemName = $(this).attr('name');
name = itemName.substr(6);
@ -571,8 +571,8 @@ function createSystemxGraphical(xnodes, area){
}
xnodenum++;
var td = $('<td style="padding:0;border-color: transparent;"></td>');
var xnodeDiv = '<div id="' + xnodename + '" class="xnodeDiv" title="' + xnodename +'"></div>';
td.append(xnodeDiv);
var xNodeDiv = '<div id="' + xnodename + '" class="xNodeDiv" title="' + xnodename +'"></div>';
td.append(xNodeDiv);
row.append(td);
}
}
@ -801,7 +801,7 @@ function createFspDiv(fspName, mtm, fsp){
}
//create return value
var retHtml = '<input style="padding:0;" class="fspcheckbox" type="checkbox" name="check_' + fspName + '">';
var retHtml = '<input style="padding:0;" class="fspCheckbox" type="checkbox" name="check_' + fspName + '">';
retHtml += '<div value="' + fspName + '" class="' + divClass + '">';
retHtml += '<div class="lparDiv"><table><tbody><tr>' + lparStatusRow + '</tr></tbody></table></div></div>';
return retHtml;

View File

@ -24,8 +24,8 @@ $(document).ready(function() {
}).button();
if (document.location.protocol == 'http:') {
$('#login_status').html('You are using an unencrypted session!');
$('#login_status').css('color', 'red');
$('#login-status').html('You are using an unencrypted session!');
$('#login-status').css('color', 'red');
}
if (!$("#login input[name='username']").val()) {
@ -62,7 +62,7 @@ function onlogin(data, txtStatus) {
var usrName = $("#login input[name='username']").val();
$("#login input[name='password']").val('');
if (data.authenticated == 'yes') {
$('#login_status').text('Login successful');
$('#login-status').text('Login successful');
window.location = 'service.php';
// Set user name cookie
@ -70,8 +70,8 @@ function onlogin(data, txtStatus) {
exDate.setTime(exDate.getTime() + (240 * 60 * 1000));
$.cookie('xcat_username', usrName, { expires: exDate });
} else {
$('#login_status').text('Authentication failure');
$('#login_status').css('color', '#FF0000');
$('#login-status').text('Authentication failure');
$('#login-status').css('color', '#FF0000');
}
}
@ -79,8 +79,8 @@ function onlogin(data, txtStatus) {
* Authenticate user for new session
*/
function authenticate() {
$('#login_status').css('color', '#000000');
$('#login_status').html('Authenticating...');
$('#login-status').css('color', '#000000');
$('#login-status').html('Authenticating...');
var passwd = $("#login input[name='password']").val();
$.post('lib/srv_log.php', {

View File

@ -26,8 +26,8 @@ $(document).ready(function() {
$('#login button').button();
if (document.location.protocol == "http:") {
$("#login_status").html("You are using an unencrypted session!");
$("#login_status").css("color", "#ff0000");
$("#login-status").html("You are using an unencrypted session!");
$("#login-status").css("color", "#ff0000");
}
if ($("#login input[name='username']").val() == "") {
@ -64,7 +64,7 @@ function onlogin(data, txtStatus) {
// Clear password field regardless of what happens
$("#login input[name='password']").val("");
if (data.authenticated == "yes") {
$("#login_status").text("Login successful");
$("#login-status").text("Login successful");
// Not the first time to log
if ($.cookie('logonflag')){
@ -87,7 +87,7 @@ function onlogin(data, txtStatus) {
});
} else {
$("#login_status").text("Authentication failure").css("color", "#FF0000");
$("#login-status").text("Authentication failure").css("color", "#FF0000");
}
}
@ -97,8 +97,8 @@ function onlogin(data, txtStatus) {
* @return Nothing
*/
function authenticate() {
$("#login_status").css("color", "#000000");
$("#login_status").html('Authenticating...');
$("#login-status").css("color", "#000000");
$("#login-status").html('Authenticating...');
var passwd = $("#login input[name='password']").val();
$.post("lib/log.php", {
username : $("#login input[name='username']").val(),

View File

@ -6,26 +6,26 @@ require_once "$TOPDIR/lib/jsonwrapper.php";
/**
* Issue a xCAT command, e.g. rinv gpok123 all
* This will handle most commands. If not, you can create your
* own .php. Look at zCmd.php for an example.
* This will handle most commands. If not, you can create your own .php.
* Look at zCmd.php for an example.
*
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @param $opts The xCAT command options, separated by semicolons
* @return The xCAT response. Replies are in the form of JSON
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @param $opts The xCAT command options, separated by semicolons
* @return The xCAT response. Replies are in the form of JSON
*/
if (isset($_GET["cmd"])) {
// HTTP GET requests
$cmd = $_GET["cmd"];
$tgt = $_GET["tgt"];
$args = $_GET["args"];
// File contents in case of file write
if (isset($_GET["cont"])) {
$cont = $_GET["cont"];
}
// Special messages put here
// This gets sent back to the AJAX request as is.
$msg = $_GET["msg"];
@ -34,7 +34,7 @@ if (isset($_GET["cmd"])) {
if (!$tgt) {
$tgt = NULL;
}
// If no $msg is given, set $msg to NULL
if (!$msg) {
$msg = NULL;
@ -52,12 +52,12 @@ if (isset($_GET["cmd"])) {
$args_array = array($args);
}
}
// If no $opts are given, set $opts_array to NULL
$opts_array = array();
if (isset($_GET["opts"])) {
$opts = $_GET["opts"];
// If $args contains multiple arguments, split it into an array
if (strpos($opts,";")) {
// Split the arguments into an array
@ -74,7 +74,7 @@ if (isset($_GET["cmd"])) {
if (in_array("flush", $opts_array)) {
return;
}
$rsp = array();
// webrun pping and gangliastatus output needs special handling
@ -90,7 +90,7 @@ if (isset($_GET["cmd"])) {
// This command gets the nodes and groups
else if(strncasecmp($cmd, "extnoderange", 12) == 0) {
$rsp = extractExtnoderange($xml);
}
}
// Write contents to file
else if(strncasecmp($cmd, "write", 4) == 0) {
// Directory should be /var/opt/xcat/profiles
@ -99,7 +99,7 @@ if (isset($_GET["cmd"])) {
$handle = fopen($file, 'w') or die("Cannot open $file");
fwrite($handle, $cont);
fclose($handle);
$rsp = "Directory entry written to $file";
}
// Handle the typical output
@ -108,20 +108,20 @@ if (isset($_GET["cmd"])) {
foreach ($child->children() as $data) {
if($data->name) {
$node = $data->name;
if ($data->data->contents) {
$cont = $data->data->contents;
} else {
$cont = $data->data;
}
if ($data->data->desc) {
$cont = $data->data->desc . ": " . $cont;
}
$cont = str_replace(":|:", "\n", $cont);
array_push($rsp, "$node: $cont");
} else if(strlen("$data") > 2) {
} else if (strlen("$data") > 2) {
$data = str_replace(":|:", "\n", $data);
array_push($rsp, "$data");
}
@ -137,8 +137,8 @@ if (isset($_GET["cmd"])) {
/**
* Extract the output for a webrun command
*
* @param $xml The XML output from docmd()
* @return An array containing the output
* @param $xml The XML output from docmd()
* @return An array containing the output
*/
function extractWebrun($xml) {
$rsp = array();
@ -149,7 +149,7 @@ function extractWebrun($xml) {
foreach($nodes->children() as $node){
// Get the node name
$name = $node->name;
// Get the content
$status = $node->data;
$status = str_replace(":|:", "\n", $status);
@ -166,8 +166,8 @@ function extractWebrun($xml) {
/**
* Extract the output for a nodels command
*
* @param $xml The XML output from docmd()
* @return An array containing the output
* @param $xml The XML output from docmd()
* @return An array containing the output
*/
function extractNodels($xml) {
$rsp = array();
@ -195,8 +195,8 @@ function extractNodels($xml) {
/**
* Extract the output for a extnoderange command
*
* @param $xml The XML output from docmd()
* @return The nodes and groups
* @param $xml The XML output from docmd()
* @return The nodes and groups
*/
function extractExtnoderange($xml) {
$rsp = array();

View File

@ -5,22 +5,21 @@
// Retain session variables across page requests
session_start();
session_write_close(); // Do not block HTTP requests
session_write_close(); // Do not block other HTTP requests
// The settings below display error on the screen,
// instead of giving blank pages.
// The settings below display error on the screen, instead of giving blank pages.
error_reporting(E_ALL);
ini_set('display_errors', true);
/**
* Run a command using the xCAT client/server protocol
*
* @param $cmd The xCAT command
* @param $nr Node range or group
* @param $args_array Command arguments
* @param $opts_array Command options
* @return A tree of SimpleXML objects.
* See perl-xCAT/xCAT/Client.pm for the format
* @param $cmd The xCAT command
* @param $nr Node range or group
* @param $args_array Command arguments
* @param $opts_array Command options
* @return A tree of SimpleXML objects.
* See perl-xCAT/xCAT/Client.pm for the format
*/
function docmd($cmd, $nr, $args_array, $opts_array){
// If we are not logged in,
@ -34,7 +33,9 @@ function docmd($cmd, $nr, $args_array, $opts_array){
// Add command, node range, and arguments to request
$request = simplexml_load_string('<xcatrequest></xcatrequest>');
$request->addChild('command', $cmd);
if(!empty($nr)) { $request->addChild('noderange', $nr); }
if (!empty($nr)) {
$request->addChild('noderange', $nr);
}
if (!empty($args_array)) {
foreach ($args_array as $a) {
$request->addChild('arg',$a);
@ -53,9 +54,9 @@ function docmd($cmd, $nr, $args_array, $opts_array){
/**
* Used by docmd() to submit request to xCAT
*
* @param $req Tree of SimpleXML objects
* @param $opts_array Request options
* @return A tree of SimpleXML objects
* @param $req Tree of SimpleXML objects
* @param $opts_array Request options
* @return A tree of SimpleXML objects
*/
function submit_request($req, $skipVerify, $opts_array){
$xcathost = "localhost";
@ -63,46 +64,46 @@ function submit_request($req, $skipVerify, $opts_array){
$rsp = FALSE;
$response = '';
$cleanexit = 0;
// Determine whether to flush output or not
$flush = false;
if ($opts_array && in_array("flush", $opts_array)) {
$flush = true;
}
// Determine how to handle the flush output
// You can specify a function name, in place of TBD, to handle the flush output
$flush_format = "";
if ($opts_array && in_array("flush-format=TBD", $opts_array)) {
$flush_format = "TBD";
}
// Open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
// Open syslog, include the process ID and also send the log to standard error,
// and use a user defined logging mechanism
openlog("xCAT-UI", LOG_PID | LOG_PERROR, LOG_LOCAL0);
// Open a socket to xcatd
syslog(LOG_INFO, "Opening socket to xcatd...");
if($fp = stream_socket_client('ssl://'.$xcathost.':'.$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT)){
if ($fp = stream_socket_client('ssl://'.$xcathost.':'.$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT)){
$reqXML = $req->asXML();
$nr = $req->noderange;
$cmd = $req->command;
syslog(LOG_INFO, "Sending request: $cmd $nr");
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
// Turn on output buffering
ob_start();
while(!feof($fp)) { // Read until there is no more
while (!feof($fp)) {
// Read until there is no more
// Remove newlines and add it to the response
$str = fread($fp, 8192);
if ($str) {
$response .= preg_replace('/>\n\s*</', '><', $str);
// Flush output to browser
if ($flush) {
// Strip HTML tags from output
@ -117,50 +118,48 @@ function submit_request($req, $skipVerify, $opts_array){
flush();
}
}
}
}
}
// Look for serverdone response
$fullpattern = '/<xcatresponse>\s*<serverdone>\s*<\/serverdone>\s*<\/xcatresponse>/';
$mixedpattern = '/<serverdone>\s*<\/serverdone>.*<\/xcatresponse>/';
$recentpattern = '/<\/xcatresponse>/';
if(preg_match($recentpattern,$str) && preg_match($mixedpattern,$response)) {
// Transaction is done,
// Package up XML and return it
if (preg_match($recentpattern,$str) && preg_match($mixedpattern,$response)) {
// Transaction is done, package up XML and return it
// Remove the serverdone response and put an xcat tag around the rest
$count = 0;
$response = preg_replace($fullpattern,'', $response, -1, $count); // 1st try to remove the long pattern
if (!$count) { $response = preg_replace($mixedpattern,'', $response) . '</xcatresponse>/'; } // if its not there, then remove the short pattern
$response = preg_replace($fullpattern,'', $response, -1, $count); // 1st try to remove the long pattern
if (!$count) {
$response = preg_replace($mixedpattern,'', $response) . '</xcatresponse>/';
}
$response = "<xcat>$response</xcat>";
//delete the \n between '>' and '<'
$response = preg_replace('/>\n\s*</', '><', $response);
//replace the '\n' by ':|:' in the data area.
$response = preg_replace('/\n/', ':|:', $response);
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
$cleanexit = 1;
break;
}
} // End of while(!feof($fp))
syslog(LOG_INFO, "($cmd $nr) Sending response");
fclose($fp);
} else {
echo "<p>xCAT submit request socket error: $errno - $errstr</p>";
}
// Flush (send) the output buffer and turn off output buffering
ob_end_flush();
// Close syslog
closelog();
if(! $cleanexit) {
if (preg_match('/^\s*<xcatresponse>.*<\/xcatresponse>\s*$/',$response)) {
// Probably an error message
$response = "<xcat>$response</xcat>";
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
}
elseif(!$skipVerify) {
} else if(!$skipVerify) {
echo "<p>(Error) xCAT response ended prematurely: ", htmlentities($response), "</p>";
$rsp = FALSE;
}
@ -170,10 +169,6 @@ function submit_request($req, $skipVerify, $opts_array){
/**
* Enable password storage to split between cookie and session variable
*
* @param $data
* @param $key
* @return
*/
function xorcrypt($data, $key) {
$datalen = strlen($data);
@ -187,9 +182,6 @@ function xorcrypt($data, $key) {
/**
* Get password
*
* @param Nothing
* @return
*/
function getpassword() {
if (isset($GLOBALS['xcatauthsecret'])) {
@ -204,13 +196,11 @@ function getpassword() {
}
/**
* Get the password splitting knowledge between server
* and client side persistant storage. Caller should regenerate
* session ID when contemplating a new user/password, to preclude
* session fixation, though fixation is limited without the secret.
* Get the password splitting knowledge between server and client side persistant storage.
* Caller should regenerate session ID when contemplating a new user/password,
* to preclude session fixation, though fixation is limited without the secret.
*
* @param $password Password
* @return Nothing
* @param $password Password
*/
function setpassword($password) {
$randlen = strlen($password);
@ -227,8 +217,8 @@ function setpassword($password) {
/**
* Get RAND characters
*
* @param $length Length of characters
* @return RAND characters
* @param $length Length of characters
* @return RAND characters
*/
function getrandchars($length) {
$charset = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*';
@ -246,9 +236,7 @@ function getrandchars($length) {
/**
* Determine if a user/password session exists
*
* @param Nothing
* @return True If user has a session.
* False Otherwise
* @return True if user has a session, false otherwise
*/
function is_logged() {
if (isset($_SESSION["username"]) and !is_bool(getpassword())) {
@ -260,10 +248,8 @@ function is_logged() {
/**
* Determine if a user is currently logged in successfully
*
* @param Nothing
* @return True If the user is currently logged in successfully
* False Otherwise
*
* @return True if the user is currently logged in successfully, false otherwise
*/
function isAuthenticated() {
if (is_logged()) {
@ -290,12 +276,10 @@ function isAuthenticated() {
}
/**
* Determine if a user has root access
*
* @param Nothing
* @return True If the user has root access
* False Otherwise
*/
* Determine if a user has root access
*
* @return True if the user has root access, false otherwise
*/
function isRootAcess() {
if (is_logged() && $_SESSION["xcatpassvalid"]) {
$testacc = docmd('tabdump', '', array('policy', '-w', "name==" . $_SESSION["username"]), array());
@ -304,7 +288,7 @@ function isRootAcess() {
$result = str_replace('"', '', $result);
$args = array();
$args = explode(",", $result);
// Get the comments which contains the privilege
$comments = $args[8];
$args = explode(";", $comments);
@ -319,13 +303,13 @@ function isRootAcess() {
$privilege = 'root';
$_SESSION["xcatpassvalid"] = 1;
}
break;
}
}
}
}
}
if (strcmp($_SESSION["username"], 'root') == 0) {
$_SESSION["xcatpassvalid"] = 1;
}
@ -338,10 +322,7 @@ function isRootAcess() {
}
/**
* Log out of the current user session
*
* @param Nothing
* @return Nothing
* Log out of current user session
*/
function logout() {
// Clear the secret cookie from browser
@ -360,12 +341,9 @@ function logout() {
/**
* Format a given string and echo it back to the browser
*
* @param $str String
* @return Nothing
*/
function format_TBD($str) {
// Format a given string however you want it
// Format a given string however you want it
echo $tmp . '<br/>';
flush();
}

View File

@ -77,14 +77,14 @@ function rconsSynchronise($parameter) {
if (0 == strlen($line)) {
continue;
}
if ('<' == substr($line, 0, 1)) {
$flag = true;
$return .= $line;
break;
}
}
if ($flag) {
while (!feof($fp)) {
$return .= fgets($fp, 1024);

View File

@ -5,22 +5,21 @@ require_once "$TOPDIR/lib/srv_functions.php";
require_once "$TOPDIR/lib/jsonwrapper.php";
/**
* Issue a xCAT command, e.g. rinv gpok123 all
* This will handle most commands. If not, you can create your
* own .php. Look at zCmd.php for an example.
* Issue a xCAT command, e.g. rinv gpok123 all. This will handle most commands.
* If not, you can create your own .php. Look at zCmd.php for an example.
*
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @param $opts The xCAT command options, separated by semicolons
* @return The xCAT response. Replies are in the form of JSON
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @param $opts The xCAT command options, separated by semicolons
* @return The xCAT response. Replies are in the form of JSON
*/
if (isset($_GET["cmd"])) {
// HTTP GET requests
$cmd = $_GET["cmd"];
$tgt = $_GET["tgt"];
$args = $_GET["args"];
// Special messages put here
// This gets sent back to the AJAX request as is.
$msg = $_GET["msg"];
@ -29,7 +28,7 @@ if (isset($_GET["cmd"])) {
if (!$tgt) {
$tgt = NULL;
}
// If no $msg is given, set $msg to NULL
if (!$msg) {
$msg = NULL;
@ -47,12 +46,12 @@ if (isset($_GET["cmd"])) {
$args_array = array($args);
}
}
// If no $opts are given, set $opts_array to NULL
$opts_array = array();
if (isset($_GET["opts"])) {
$opts = $_GET["opts"];
// If $args contains multiple arguments, split it into an array
if (strpos($opts,";")) {
// Split the arguments into an array
@ -69,7 +68,7 @@ if (isset($_GET["cmd"])) {
if (in_array("flush", $opts_array)) {
return;
}
$rsp = array();
// webrun pping and gangliastatus output needs special handling
@ -92,17 +91,16 @@ if (isset($_GET["cmd"])) {
foreach ($child->children() as $data) {
if($data->name) {
$node = $data->name;
if($data->data->contents){
$cont = $data->data->contents;
}
else{
} else {
$cont = $data->data;
}
$cont = str_replace(":|:", "\n", $cont);
array_push($rsp, "$node: $cont");
} else if(strlen("$data") > 2) {
} else if (strlen("$data") > 2) {
$data = str_replace(":|:", "\n", $data);
array_push($rsp, "$data");
}
@ -118,8 +116,8 @@ if (isset($_GET["cmd"])) {
/**
* Extract the output for a webrun command
*
* @param $xml The XML output from docmd()
* @return An array containing the output
* @param $xml The XML output from docmd()
* @return An array containing the output
*/
function extractWebrun($xml) {
$rsp = array();
@ -130,7 +128,7 @@ function extractWebrun($xml) {
foreach($nodes->children() as $node){
// Get the node name
$name = $node->name;
// Get the content
$status = $node->data;
$status = str_replace(":|:", "\n", $status);
@ -147,8 +145,8 @@ function extractWebrun($xml) {
/**
* Extract the output for a nodels command
*
* @param $xml The XML output from docmd()
* @return An array containing the output
* @param $xml The XML output from docmd()
* @return An array containing the output
*/
function extractNodels($xml) {
$rsp = array();
@ -176,8 +174,8 @@ function extractNodels($xml) {
/**
* Extract the output for a extnoderange command
*
* @param $xml The XML output from docmd()
* @return The nodes and groups
* @param $xml The XML output from docmd()
* @return The nodes and groups
*/
function extractExtnoderange($xml) {
$rsp = array();

View File

@ -5,7 +5,7 @@
// Retain session variables across page requests
session_start();
session_write_close(); // Do not block HTTP requests
session_write_close(); // Do not block HTTP requests
// The settings below display error on the screen,
// instead of giving blank pages.
@ -15,310 +15,286 @@ ini_set('display_errors', true);
/**
* Run a command using the xCAT client/server protocol
*
* @param $cmd The xCAT command
* @param $nr Node range or group
* @param $args_array Command arguments
* @param $opts_array Command options
* @return A tree of SimpleXML objects.
* See perl-xCAT/xCAT/Client.pm for the format
* @param $cmd The xCAT command
* @param $nr Node range or group
* @param $args_array Command arguments
* @param $opts_array Command options
* @return A tree of SimpleXML objects. See perl-xCAT/xCAT/Client.pm for the format
*/
function docmd($cmd, $nr, $args_array, $opts_array){
// If we are not logged in,
// do not try to communicate with xcatd
if (!is_logged()) {
echo "<p>You are not logged in! Failed to run command.</p>";
return simplexml_load_string('<xcat></xcat>', 'SimpleXMLElement', LIBXML_NOCDATA);
}
// If we are not logged in,
// do not try to communicate with xcatd
if (!is_logged()) {
echo "<p>You are not logged in! Failed to run command.</p>";
return simplexml_load_string('<xcat></xcat>', 'SimpleXMLElement', LIBXML_NOCDATA);
}
// Create xCAT request
// Add command, node range, and arguments to request
$request = simplexml_load_string('<xcatrequest></xcatrequest>');
$request->addChild('command', $cmd);
if(!empty($nr)) { $request->addChild('noderange', $nr); }
if (!empty($args_array)) {
foreach ($args_array as $a) {
$request->addChild('arg',$a);
}
}
// Create xCAT request
// Add command, node range, and arguments to request
$request = simplexml_load_string('<xcatrequest></xcatrequest>');
$request->addChild('command', $cmd);
if (!empty($nr)) { $request->addChild('noderange', $nr); }
if (!empty($args_array)) {
foreach ($args_array as $a) {
$request->addChild('arg',$a);
}
}
// Add user and password to request
$usernode=$request->addChild('becomeuser');
$usernode->addChild('username',$_SESSION["srv_username"]);
$usernode->addChild('password',getpassword());
// Add user and password to request
$usernode=$request->addChild('becomeuser');
$usernode->addChild('username',$_SESSION["srv_username"]);
$usernode->addChild('password',getpassword());
$xml = submit_request($request, 0, $opts_array);
return $xml;
$xml = submit_request($request, 0, $opts_array);
return $xml;
}
/**
* Used by docmd() to submit request to xCAT
*
* @param $req Tree of SimpleXML objects
* @param $opts_array Request options
* @return A tree of SimpleXML objects
* @param $req Tree of SimpleXML objects
* @param $opts_array Request options
* @return A tree of SimpleXML objects
*/
function submit_request($req, $skipVerify, $opts_array){
$xcathost = "localhost";
$port = "3001";
$rsp = FALSE;
$response = '';
$cleanexit = 0;
// Determine whether to flush output or not
$flush = false;
if ($opts_array && in_array("flush", $opts_array)) {
$flush = true;
}
// Determine how to handle the flush output
// You can specify a function name, in place of TBD, to handle the flush output
$flush_format = "";
if ($opts_array && in_array("flush-format=TBD", $opts_array)) {
$flush_format = "TBD";
}
// Open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("xCAT-UI", LOG_PID | LOG_PERROR, LOG_LOCAL0);
$xcathost = "localhost";
$port = "3001";
$rsp = FALSE;
$response = '';
$cleanexit = 0;
// Determine whether to flush output or not
$flush = false;
if ($opts_array && in_array("flush", $opts_array)) {
$flush = true;
}
// Determine how to handle the flush output
// You can specify a function name, in place of TBD, to handle the flush output
$flush_format = "";
if ($opts_array && in_array("flush-format=TBD", $opts_array)) {
$flush_format = "TBD";
}
// Open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("xCAT-UI", LOG_PID | LOG_PERROR, LOG_LOCAL0);
// Open a socket to xcatd
syslog(LOG_INFO, "Opening socket to xcatd...");
if($fp = stream_socket_client('ssl://'.$xcathost.':'.$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT)){
$reqXML = $req->asXML();
$nr = $req->noderange;
$cmd = $req->command;
syslog(LOG_INFO, "Sending request: $cmd $nr");
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
// Turn on output buffering
ob_start();
while(!feof($fp)) { // Read until there is no more
// Remove newlines and add it to the response
$str = fread($fp, 8192);
if ($str) {
$response .= preg_replace('/>\n\s*</', '><', $str);
// Flush output to browser
if ($flush) {
// Strip HTML tags from output
if ($tmp = trim(strip_tags($str))) {
// Format the output based on what was given for $flush_format
if ($flush_format == "TDB") {
format_TBD($tmp);
} else {
// Print out output by default
echo '<pre style="font-size: 10px;">' . $tmp . '</pre>';
ob_flush();
flush();
}
}
}
}
// Look for serverdone response
$fullpattern = '/<xcatresponse>\s*<serverdone>\s*<\/serverdone>\s*<\/xcatresponse>/';
$mixedpattern = '/<serverdone>\s*<\/serverdone>.*<\/xcatresponse>/';
$recentpattern = '/<\/xcatresponse>/';
if(preg_match($recentpattern,$str) && preg_match($mixedpattern,$response)) {
// Transaction is done,
// Package up XML and return it
// Remove the serverdone response and put an xcat tag around the rest
$count = 0;
$response = preg_replace($fullpattern,'', $response, -1, $count); // 1st try to remove the long pattern
if (!$count) { $response = preg_replace($mixedpattern,'', $response) . '</xcatresponse>/'; } // if its not there, then remove the short pattern
$response = "<xcat>$response</xcat>";
//delete the \n between '>' and '<'
$response = preg_replace('/>\n\s*</', '><', $response);
//replace the '\n' by ':|:' in the data area.
$response = preg_replace('/\n/', ':|:', $response);
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
$cleanexit = 1;
break;
}
} // End of while(!feof($fp))
syslog(LOG_INFO, "($cmd $nr) Sending response");
fclose($fp);
} else {
echo "<p>xCAT submit request socket error: $errno - $errstr</p>";
}
// Flush (send) the output buffer and turn off output buffering
ob_end_flush();
// Open a socket to xcatd
syslog(LOG_INFO, "Opening socket to xcatd...");
if ($fp = stream_socket_client('ssl://'.$xcathost.':'.$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT)){
$reqXML = $req->asXML();
$nr = $req->noderange;
$cmd = $req->command;
syslog(LOG_INFO, "Sending request: $cmd $nr");
stream_set_blocking($fp, 0); // Set as non-blocking
fwrite($fp,$req->asXML()); // Send XML to xcatd
set_time_limit(900); // Set 15 minutes timeout (for long running requests)
// The default is 30 seconds which is too short for some requests
// Turn on output buffering
ob_start();
while(!feof($fp)) { // Read until there is no more
// Remove newlines and add it to the response
$str = fread($fp, 8192);
if ($str) {
$response .= preg_replace('/>\n\s*</', '><', $str);
// Flush output to browser
if ($flush) {
// Strip HTML tags from output
if ($tmp = trim(strip_tags($str))) {
// Format the output based on what was given for $flush_format
if ($flush_format == "TDB") {
format_TBD($tmp);
} else {
// Print out output by default
echo '<pre style="font-size: 10px;">' . $tmp . '</pre>';
ob_flush();
flush();
}
}
}
}
// Look for serverdone response
$fullpattern = '/<xcatresponse>\s*<serverdone>\s*<\/serverdone>\s*<\/xcatresponse>/';
$mixedpattern = '/<serverdone>\s*<\/serverdone>.*<\/xcatresponse>/';
$recentpattern = '/<\/xcatresponse>/';
if(preg_match($recentpattern,$str) && preg_match($mixedpattern,$response)) {
// Transaction is done, package up XML and return it
// Remove the serverdone response and put an xcat tag around the rest
$count = 0;
$response = preg_replace($fullpattern,'', $response, -1, $count); // 1st try to remove the long pattern
if (!$count) { $response = preg_replace($mixedpattern,'', $response) . '</xcatresponse>/'; }
$response = "<xcat>$response</xcat>";
$response = preg_replace('/>\n\s*</', '><', $response);
$response = preg_replace('/\n/', ':|:', $response);
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
$cleanexit = 1;
break;
}
} // End of while(!feof($fp))
syslog(LOG_INFO, "($cmd $nr) Sending response");
fclose($fp);
} else {
echo "<p>xCAT submit request socket error: $errno - $errstr</p>";
}
// Flush (send) the output buffer and turn off output buffering
ob_end_flush();
// Close syslog
closelog();
if(! $cleanexit) {
if (preg_match('/^\s*<xcatresponse>.*<\/xcatresponse>\s*$/',$response)) {
// Probably an error message
$response = "<xcat>$response</xcat>";
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
}
elseif(!$skipVerify) {
echo "<p>(Error) xCAT response ended prematurely: ", htmlentities($response), "</p>";
$rsp = FALSE;
}
}
return $rsp;
// Close syslog
closelog();
if(! $cleanexit) {
if (preg_match('/^\s*<xcatresponse>.*<\/xcatresponse>\s*$/',$response)) {
// Probably an error message
$response = "<xcat>$response</xcat>";
$rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA);
} else if (!$skipVerify) {
echo "<p>(Error) xCAT response ended prematurely: ", htmlentities($response), "</p>";
$rsp = FALSE;
}
}
return $rsp;
}
/**
* Enable password storage to split between cookie and session variable
*
* @param $data
* @param $key
* @return
*/
function xorcrypt($data, $key) {
$datalen = strlen($data);
$keylen = strlen($key);
for ($i=0;$i<$datalen;$i++) {
$data[$i] = chr(ord($data[$i])^ord($key[$i]));
}
$datalen = strlen($data);
$keylen = strlen($key);
for ($i=0;$i<$datalen;$i++) {
$data[$i] = chr(ord($data[$i])^ord($key[$i]));
}
return $data;
return $data;
}
/**
* Get RAND characters
*
* @param $length Length of characters
* @return RAND characters
* @param $length Length of characters
* @return RAND characters
*/
function getrandchars($length) {
$charset = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*';
$charsize = strlen($charset);
srand();
$chars = '';
for ($i=0;$i<$length;$i++) {
$num=rand()%$charsize;
$chars=$chars.substr($charset,$num,1);
}
$charset = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*';
$charsize = strlen($charset);
srand();
$chars = '';
for ($i=0;$i<$length;$i++) {
$num=rand()%$charsize;
$chars=$chars.substr($charset,$num,1);
}
return $chars;
return $chars;
}
/**
* Format a given string and echo it back to the browser
*
* @param $str String
* @return Nothing
*/
function format_TBD($str) {
// Format a given string however you want it
echo $tmp . '<br/>';
flush();
// Format a given string however you want it
echo $tmp . '<br/>';
flush();
}
/**
* Get password
*
* @param Nothing
* @return
*/
function getpassword() {
if (isset($GLOBALS['xcatauthsecret'])) {
$cryptext = $GLOBALS['xcatauthsecret'];
} else if (isset($_COOKIE["xcatauthsecret"])) {
$cryptext = $_COOKIE["xcatauthsecret"];
} else {
return false;
}
if (isset($GLOBALS['xcatauthsecret'])) {
$cryptext = $GLOBALS['xcatauthsecret'];
} else if (isset($_COOKIE["xcatauthsecret"])) {
$cryptext = $_COOKIE["xcatauthsecret"];
} else {
return false;
}
return xorcrypt($_SESSION["secretkey"], base64_decode($cryptext));
return xorcrypt($_SESSION["secretkey"], base64_decode($cryptext));
}
/**
* Get the password splitting knowledge between server
* and client side persistant storage. Caller should regenerate
* session ID when contemplating a new user/password, to preclude
* session fixation, though fixation is limited without the secret.
* Get the password splitting knowledge between server and client side persistant storage.
* Caller should regenerate session ID when contemplating a new user/password,
* to preclude session fixation, though fixation is limited without the secret.
*
* @param $password Password
* @return Nothing
* @param $password Password
*/
function setpassword($password) {
$randlen = strlen($password);
$key = getrandchars($randlen);
$cryptext = xorcrypt($password,$key);
$randlen = strlen($password);
$key = getrandchars($randlen);
$cryptext = xorcrypt($password,$key);
// Non-ascii characters, encode it in base64
$cryptext = base64_encode($cryptext);
setcookie("xcatauthsecret",$cryptext,0,'/');
$GLOBALS["xcatauthsecret"] = $cryptext;
$_SESSION["secretkey"] = $key;
// Non-ascii characters, encode it in base64
$cryptext = base64_encode($cryptext);
setcookie("xcatauthsecret",$cryptext,0,'/');
$GLOBALS["xcatauthsecret"] = $cryptext;
$_SESSION["secretkey"] = $key;
}
/**
* Determine if a user/password session exists
*
* @param Nothing
* @return True If user has a session.
* False Otherwise
* @return True if user has a session, false otherwise
*/
function is_logged() {
if (isset($_SESSION["srv_username"]) and !is_bool(getpassword())) {
return true;
} else {
return false;
}
if (isset($_SESSION["srv_username"]) and !is_bool(getpassword())) {
return true;
} else {
return false;
}
}
/**
* Determine if a user is currently logged in successfully
*
* @param Nothing
* @return True If the user is currently logged in successfully
* False Otherwise
*
* @return True if the user is currently logged in successfully, false otherwise
*/
function isAuthenticated() {
if (is_logged()) {
if ($_SESSION["srv_xcatpassvalid"] != 1) {
$testcred = docmd("authcheck", "", NULL, NULL);
if (isset($testcred->{'xcatresponse'}->{'data'})) {
$result = "".$testcred->{'xcatresponse'}->{'data'};
if (is_numeric(strpos("Authenticated",$result))) {
// Logged in successfully
$_SESSION["srv_xcatpassvalid"] = 1;
} else {
// Not logged in
$_SESSION["srv_xcatpassvalid"] = 0;
}
}
}
}
if (is_logged()) {
if ($_SESSION["srv_xcatpassvalid"] != 1) {
$testcred = docmd("authcheck", "", NULL, NULL);
if (isset($testcred->{'xcatresponse'}->{'data'})) {
$result = "".$testcred->{'xcatresponse'}->{'data'};
if (is_numeric(strpos("Authenticated",$result))) {
// Logged in successfully
$_SESSION["srv_xcatpassvalid"] = 1;
} else {
// Not logged in
$_SESSION["srv_xcatpassvalid"] = 0;
}
}
}
}
if (isset($_SESSION["srv_xcatpassvalid"]) and $_SESSION["srv_xcatpassvalid"]==1) {
return true;
} else {
return false;
}
if (isset($_SESSION["srv_xcatpassvalid"]) and $_SESSION["srv_xcatpassvalid"]==1) {
return true;
} else {
return false;
}
}
/**
* Log out of the current user session
*
* @param Nothing
* @return Nothing
*/
function logout() {
// Clear the secret cookie from browser
if (isset($_COOKIE["xcatauthsecret"])) {
setcookie("xcatauthsecret",'',time()-86400*7,'/');
}
// Clear the secret cookie from browser
if (isset($_COOKIE["xcatauthsecret"])) {
setcookie("xcatauthsecret",'',time()-86400*7,'/');
}
// Expire session cookie
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(),"",time()-86400*7,"/");
}
// Expire session cookie
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(),"",time()-86400*7,"/");
}
// Clear server store of data
$_SESSION=array();
// Clear server store of data
$_SESSION=array();
}
?>

View File

@ -11,29 +11,29 @@ header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
if (isset($_REQUEST["password"])) {
// Clear data from session
$_SESSION = array();
// Clear data from session
$_SESSION = array();
// Zap existing session entirely
session_regenerate_id(true);
setpassword($_REQUEST["password"]);
// Zap existing session entirely
session_regenerate_id(true);
setpassword($_REQUEST["password"]);
// Invalid password
$_SESSION["srv_xcatpassvalid"] = -1;
// Invalid password
$_SESSION["srv_xcatpassvalid"] = -1;
}
if (isset($_REQUEST["username"])) {
$_SESSION["srv_username"] = $_REQUEST["username"];
$_SESSION["srv_username"] = $_REQUEST["username"];
// Invalid user name
$_SESSION["srv_xcatpassvalid"]=-1;
// Invalid user name
$_SESSION["srv_xcatpassvalid"]=-1;
}
$jdata = array();
if (isAuthenticated()) {
$jdata["authenticated"]="yes";
$jdata["authenticated"]="yes";
} else {
$jdata["authenticated"]="no";
$jdata["authenticated"]="no";
}
echo json_encode($jdata);

View File

@ -7,30 +7,30 @@ require_once "$TOPDIR/lib/jsonwrapper.php";
/**
* This will handle system commands, e.g. rpm -qa xCAT
*
* @param $cmd The system command
* @return The system response. Replies are in the form of JSON
* @param $cmd The system command
* @return The system response. Replies are in the form of JSON
*/
if (!isAuthenticated()) {
echo ("<b>Please login before continuing!</b>");
exit;
echo ("<b>Please login before continuing!</b>");
exit;
}
if (isset($_GET["cmd"])) {
// HTTP GET requests
$cmd = $_GET["cmd"];
$msg = NULL;
$ret = "";
// HTTP GET requests
$cmd = $_GET["cmd"];
$msg = NULL;
$ret = "";
if (isset($_GET["msg"])) {
$msg = $_GET["msg"];
}
if ($cmd == "ostype") {
$ret = strtolower(PHP_OS);
} else {
$ret = shell_exec($cmd);
}
if (isset($_GET["msg"])) {
$msg = $_GET["msg"];
}
if ($cmd == "ostype") {
$ret = strtolower(PHP_OS);
} else {
$ret = shell_exec($cmd);
}
echo json_encode(array("rsp"=>$ret, "msg" => $msg));
echo json_encode(array("rsp"=>$ret, "msg" => $msg));
}
?>

View File

@ -7,8 +7,8 @@ require_once "$TOPDIR/lib/jsonwrapper.php";
/**
* Replace the contents of an xCAT table
*
* @param $tab The xCAT table
* @param $cont The xCAT table contents
* @param $tab The xCAT table
* @param $cont The xCAT table contents
* @return The xCAT response. Replies are in the form of JSON
*/
if (isset($_POST["table"])) {
@ -24,7 +24,7 @@ $request = simplexml_load_string('<xcatrequest></xcatrequest>');
$request->addChild('command', 'tabrestore');
// Setup authentication
$usernode=$request->addChild('becomeuser');
$usernode = $request->addChild('becomeuser');
$usernode->addChild('username', $_SESSION["username"]);
$usernode->addChild('password', getpassword());
@ -43,7 +43,7 @@ foreach($cont as $line){
}
// Go through each column
foreach($line as &$col){
foreach ($line as &$col){
// If the column does begins and end with a quote
// Change quotes to &quot;
if(!empty($col) && !preg_match('/^".*"$/', $col)) {
@ -55,9 +55,11 @@ foreach($cont as $line){
ksort($line, SORT_NUMERIC);
$keys = array_keys($line);
$max = count($line) - 1;
if($keys[$max] != $max){
if ($keys[$max] != $max){
for ($i = 0; $i <= $keys[$max]; $i++) {
if (!isset($line[$i])) {$line[$i]='';}
if (!isset($line[$i])) {
$line[$i]='';
}
}
ksort($line, SORT_NUMERIC);
}

View File

@ -1,96 +1,87 @@
<?php
/**
* Load page
*
* @param Nothing
* @return Nothing
*/
function loadPage() {
// Include CSS and Javascripts
echo
'<html>
<head>
<title>xCAT</title>
<link rel="shortcut icon" href="images/favicon.ico">
<link href="css/login.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery.cookie.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
</head>';
// Include CSS and Javascripts
echo
'<html>
<head>
<title>xCAT</title>
<link rel="shortcut icon" href="images/favicon.ico">
<link href="css/login.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery.cookie.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
</head>';
// Header menu
echo
'<body>
<div id="header">
<ul>
<li><img src="images/logo.gif" height="39px" style="margin-right: 60px;"/></li>
<li><a href="index.php" class="top_link">Nodes</a></li>
<li><a href="configure.php" class="top_link">Configure</a></li>
<li><a href="provision.php" class="top_link">Provision</a></li>
<li><a href="monitor.php" class="top_link">Monitor</a></li>
<li><a href="help.php" class="top_link">Help</a></li>
</ul>';
// User name and log out section
if (isset($_SESSION['username'])){
echo
"<div>
<span id='login_user' style='padding: 0 6px; font-weight: bold;'>{$_SESSION['username']}</span> | <a id='xcat_settings'>Settings</a> | <a href='lib/logout.php'>Log out</a>
</div>";
}
// Header menu
echo
'<body>
<div id="header">
<ul>
<li><img src="images/logo.gif" height="39px" style="margin-right: 60px;"/></li>
<li><a href="index.php" class="top_link">Nodes</a></li>
<li><a href="configure.php" class="top_link">Configure</a></li>
<li><a href="provision.php" class="top_link">Provision</a></li>
<li><a href="monitor.php" class="top_link">Monitor</a></li>
<li><a href="help.php" class="top_link">Help</a></li>
</ul>';
// User name and log out section
if (isset($_SESSION['username'])){
echo
"<div>
<span id='login_user' style='padding: 0 6px; font-weight: bold;'>{$_SESSION['username']}</span> | <a id='xcat_settings'>Settings</a> | <a href='lib/logout.php'>Log out</a>
</div>";
}
echo '</div>';
// Content
echo '<div class="content" id="content"></div>';
echo '</div>';
// Content
echo '<div class="content" id="content"></div>';
// End of page
echo
'</body>
</html>';
// End of page
echo
'</body>
</html>';
}
/**
* Load page content
*
* @param Nothing
* @return Nothing
*/
function loadContent() {
// Initialize page
echo
'<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
initPage();
});
</script>';
// Initialize page
echo
'<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
initPage();
});
</script>';
}
/**
* Login user into a new session
*
* @param Nothing
* @return Nothing
*/
function login() {
// xcatauth.js will open a dialog box
// asking for the user name and password
echo
'<script src="js/jquery/jquery.cookie.min.js" type="text/javascript"></script>
<script src="js/xcatauth.js" type="text/javascript"></script>
<div id="login">
<div id="login_form">
<table>
<tr><td colspan=5></td></tr>
<tr><td align=right><img src="images/logo.png" width="50" height="35"></img></td><td colspan=4 style="font-size: 18px;">eXtreme Cloud Administration Toolkit</td></tr>
<tr><td colspan=5></td></tr>
<tr><td></td><td><label for=username>User name:</label></td><td colspan=2><input type=text name=username></td><td></td></tr>
<tr><td></td><td><label for=password>Password:</label></td><td colspan=2><input type=password name=password></td><td></td></tr>
<tr><td></td><td></td><td></td><td align=right><button style="padding: 5px;">Login</button></td><td></td></tr>
<tr><td></td><td colspan=4><span id=login_status></span></td></tr>
</table>
</div>
<div id="loginfo">Open Source. EPL License.</div>
</div>';
// xcatauth.js will open a dialog box
// asking for the user name and password
echo
'<script src="js/jquery/jquery.cookie.min.js" type="text/javascript"></script>
<script src="js/xcatauth.js" type="text/javascript"></script>
<div id="login">
<div id="login-form">
<table>
<tr><td colspan=5></td></tr>
<tr><td align=right><img src="images/logo.png" width="50" height="35"></img></td><td colspan=4 style="font-size: 18px;">eXtreme Cloud Administration Toolkit</td></tr>
<tr><td colspan=5></td></tr>
<tr><td></td><td><label for=username>User name:</label></td><td colspan=2><input type=text name=username></td><td></td></tr>
<tr><td></td><td><label for=password>Password:</label></td><td colspan=2><input type=password name=password></td><td></td></tr>
<tr><td></td><td></td><td></td><td align=right><button style="padding: 5px;">Login</button></td><td></td></tr>
<tr><td></td><td colspan=4><span id=login-status></span></td></tr>
</table>
</div>
<div id="log-info">Open Source. EPL License.</div>
</div>';
}
?>

View File

@ -4,26 +4,26 @@
*/
$type = $_FILES["file"]["type"];
if ($type == "text/plain" || $type == "application/octet-stream" || $type == "application/x-shellscript" || $type == "application/x-sh") {
$error = $_FILES["file"]["error"];
if ($error) {
echo "Return Code: " . $error;
} else {
$file = $_FILES["file"]["name"];
$path = "/var/tmp/" . $file;
move_uploaded_file($_FILES["file"]["tmp_name"], $path);
$error = $_FILES["file"]["error"];
if ($error) {
echo "Return Code: " . $error;
} else {
$file = $_FILES["file"]["name"];
$path = "/var/tmp/" . $file;
move_uploaded_file($_FILES["file"]["tmp_name"], $path);
// Open and read given file
$handler = fopen($path, "r");
$data = fread($handler, filesize($path));
fclose($handler);
// Open and read given file
$handler = fopen($path, "r");
$data = fread($handler, filesize($path));
fclose($handler);
// Print out file contents
echo $data;
// Print out file contents
echo $data;
// Remove this file
unlink($path);
}
// Remove this file
unlink($path);
}
} else {
echo "(Error) File type $type not supported";
echo "(Error) File type $type not supported";
}
?>

View File

@ -7,9 +7,9 @@ require_once "$TOPDIR/lib/jsonwrapper.php";
/**
* Issue an xCAT command (only for z)
*
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @param $cmd The xCAT command
* @param $tgt The target node or group
* @param $args The xCAT command arguments, separated by semicolons
* @return The xCAT response. Replies are in the form of JSON
*/
if (isset($_GET["cmd"])) {
@ -56,7 +56,7 @@ if (isset($_GET["cmd"])) {
$rsp = array();
// Replace user entry
if(strncasecmp($cmd, "chvm", 4) == 0 && strncasecmp($arr[0], "--replacevs", 11) == 0) {
if (strncasecmp($cmd, "chvm", 4) == 0 && strncasecmp($arr[0], "--replacevs", 11) == 0) {
// Directory /var/tmp permissions = 777
// You can write anything to that directory
$userEntry = "/var/tmp/$tgt.txt";
@ -77,7 +77,7 @@ if (isset($_GET["cmd"])) {
}
// Create virtual server
else if(strncasecmp($cmd, "mkvm", 4) == 0) {
else if (strncasecmp($cmd, "mkvm", 4) == 0) {
// Directory /var/tmp permissions = 777
// You can write anything to that directory
$userEntry = "/var/tmp/$tgt.txt";

View File

@ -10,8 +10,8 @@ loadPage();
/* Login user */
if (!isAuthenticated()) {
login();
login();
} else {
loadContent();
loadContent();
}
?>

View File

@ -10,8 +10,8 @@ loadPage();
/* Login user */
if (!isAuthenticated()) {
login();
login();
} else {
loadContent();
loadContent();
}
?>

View File

@ -1,21 +1,21 @@
<?php
echo <<<EEE
<html>
<head>
<title>{$_GET['rconsnd']}</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="css/ajaxterm.css"/>
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/rcons/rcons.js"></script>
<script type="text/javascript">
window.onload=function() {
t=new rconsTerm("{$_GET['rconsnd']}", 80, 25);
};
</script>
</head>
<body>
<div id="term"></div>
</body>
<head>
<title>{$_GET['rconsnd']}</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="css/ajaxterm.css"/>
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/rcons/rcons.js"></script>
<script type="text/javascript">
window.onload=function() {
t=new rconsTerm("{$_GET['rconsnd']}", 80, 25);
};
</script>
</head>
<body>
<div id="term"></div>
</body>
</html>
EEE;
?>

View File

@ -12,30 +12,30 @@ require_once "lib/jsonwrapper.php";
// Include CSS and Javascripts
echo
'<html>
<head>
<title>xCAT Service Portal</title>
<link rel="shortcut icon" href="images/favicon.ico">
<link href="css/login.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery.cookie.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
<script type="text/javascript" src="js/service/service.js"></script>
</head>';
<head>
<title>xCAT Service Portal</title>
<link rel="shortcut icon" href="images/favicon.ico">
<link href="css/login.css" rel=stylesheet type="text/css">
<script type="text/javascript" src="js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery.cookie.min.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
<script type="text/javascript" src="js/service/service.js"></script>
</head>';
// Create header menu
echo
'<body>
<div id="header" class="ui-widget-header">
<img style="margin: 0px 20px; position: relative; float: left;" src="images/logo.gif" height="100%"/>
<div style="margin: 10px 20px; position: relative; float: left; color: white; font: bold 14px sans-serif;">xCAT Service Portal</div>';
<div id="header" class="ui-widget-header">
<img style="margin: 0px 20px; position: relative; float: left;" src="images/logo.gif" height="100%"/>
<div style="margin: 10px 20px; position: relative; float: left; color: white; font: bold 14px sans-serif;">xCAT Service Portal</div>';
// Create user name and log out section
if (isset($_SESSION['srv_username'])){
echo
"<div>
<span style='padding: 0 6px; color: white; font-weight: bold;'>{$_SESSION['srv_username']}</span> | <a id='xcat_settings'>Settings</a> | <a href='lib/srv_logout.php'>Log out</a>
</div>";
echo
"<div>
<span style='padding: 0 6px; color: white; font-weight: bold;'>{$_SESSION['srv_username']}</span> | <a id='xcat_settings'>Settings</a> | <a href='lib/srv_logout.php'>Log out</a>
</div>";
}
echo '</div>';
@ -45,35 +45,35 @@ echo '<div class="content" id="content"></div>';
// End of page
echo
'</body>
'</body>
</html>';
// Login user
if (!isAuthenticated()) {
// xcatauth.js will open a dialog box asking for the user name and password
echo
'<script src="js/srv_xcatauth.js" type="text/javascript"></script>
<div id="login">
<div id="login_form">
<table>
<tr><td colspan=5></td></tr>
<tr><td align=right><img src="images/logo.png" width="50" height="35"></img></td><td colspan=4 style="font-size: 18px;">eXtreme Cloud Administration Toolkit</td></tr>
<tr><td colspan=5></td></tr>
<tr><td></td><td><label for=username>User name:</label></td><td colspan=2><input type=text name=username></td><td></td></tr>
<tr><td></td><td><label for=password>Password:</label></td><td colspan=2><input type=password name=password></td><td></td></tr>
<tr><td></td><td></td><td></td><td align=right><button style="padding: 5px;">Login</button></td><td></td></tr>
<tr><td></td><td colspan=4><span id=login_status></span></td></tr>
</table>
</div>
<div id="loginfo">Open Source. EPL License.</div>
</div>';
// xcatauth.js will open a dialog box asking for the user name and password
echo
'<script src="js/srv_xcatauth.js" type="text/javascript"></script>
<div id="login">
<div id="login-form">
<table>
<tr><td colspan=5></td></tr>
<tr><td align=right><img src="images/logo.png" width="50" height="35"></img></td><td colspan=4 style="font-size: 18px;">eXtreme Cloud Administration Toolkit</td></tr>
<tr><td colspan=5></td></tr>
<tr><td></td><td><label for=username>User name:</label></td><td colspan=2><input type=text name=username></td><td></td></tr>
<tr><td></td><td><label for=password>Password:</label></td><td colspan=2><input type=password name=password></td><td></td></tr>
<tr><td></td><td></td><td></td><td align=right><button style="padding: 5px;">Login</button></td><td></td></tr>
<tr><td></td><td colspan=4><span id=login-status></span></td></tr>
</table>
</div>
<div id="log-info">Open Source. EPL License.</div>
</div>';
} else {
// Initialize page
echo
'<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
initServicePage();
});
</script>';
// Initialize page
echo
'<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
initServicePage();
});
</script>';
}
?>

View File

@ -120,7 +120,7 @@ ln -sf ../bin/xcatclientnnr $RPM_BUILD_ROOT/%{prefix}/bin/webportal
echo "Installing xCAT-UI on AIX..."
else
echo ""
echo "Error! IBM HTTP Server is not installed or not installed in the default directory (/usr/IBM/HTTPServer/)."
echo "Error! IBM HTTP Server has not been installed or has not been installed in the default directory (/usr/IBM/HTTPServer/)."
exit -1;
fi
%endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff