diff --git a/xCAT-UI/js/provision/images.js b/xCAT-UI/js/provision/images.js
index 4c1610bd3..545936aec 100644
--- a/xCAT-UI/js/provision/images.js
+++ b/xCAT-UI/js/provision/images.js
@@ -4,6 +4,17 @@
var origAttrs = new Object(); // Original image attributes
var defAttrs; // Definable image attributes
var imgTableId = 'imagesDatatable'; // Images datatable ID
+var softwareList = {
+ "rsct" : ["rsct.core.utils", "rsct.core", "src"],
+ "pe" : ["IBMJava2-142-ppc64-JRE", "ibm_lapi_ip_rh6p", "ibm_lapi_us_rh6p", "IBM_pe_license", "ibm_pe_rh6p", "ppe_pdb_ppc64_rh600", "sci_ppc_32bit_rh600", "sci_ppc_64bit_rh600", "vac.cmp",
+ "vac.lib", "vac.lic", "vacpp.cmp", "vacpp.help.pdf", "vacpp.lib", "vacpp.man", "vacpp.rte", "vacpp.rte.lnk", "vacpp.samples", "xlf.cmp", "xlf.help.pdf", "xlf.lib", "xlf.lic", "xlf.man",
+ "xlf.msg.rte", "xlf.rte", "xlf.rte.lnk", "xlf.samples", "xlmass.lib", "xlsmp.lib", "xlsmp.msg.rte", "xlsmp.rte"],
+ "gpfs" : ["gpfs.base", "gpfs.gpl", "gpfs.gplbin", "gpfs.msg.en_US"],
+ "essl" : ["essl.3232.rte", "essl.3264.rte", "essl.6464.rte", "essl.common", "essl.license", "essl.man", "essl.msg", "essl.rte", "ibm-java2", "pessl.common", "pessl.license", "pessl.man",
+ "pessl.msg", "pessl.rte.ppe"],
+ "loadl" : ["IBMJava2", "LoadL-full-license-RH6", "LoadL-resmgr-full-RH6", "LoadL-scheduler-full-RH6"],
+ "base" : ["createrepo"]
+};
/**
* Load images page
@@ -303,61 +314,64 @@ function loadCreateImage() {
return;
}
- var showStr = '';
var imageOsvers = $.cookie("osvers").split(",");
var imageArch = $.cookie("osarchs").split(",");
var profileArray = $.cookie("profiles").split(",");
- var index = 0;
+
+ var parm = '';
+ var i = 0;
// Create set properties form
- var setPropsForm = $('
');
+ var createImgForm = $('
');
// Show the infomation
- var infoBar = createInfoBar('Specify the parameters for the image you want to generate, then click Create Image.');
- setPropsForm.append(infoBar);
+ var infoBar = createInfoBar('Specify the parameters for the image (stateless or statelite) you want to create, then click Create.');
+ createImgForm.append(infoBar);
// OS version selector
- showStr += 'OS Version: ';
- for ( index in imageOsvers) {
- showStr += '' + imageOsvers[index] + ' ';
+ parm += 'OS version: ';
+ for (i in imageOsvers) {
+ parm += '' + imageOsvers[i] + ' ';
}
- showStr += ' ';
+ parm += '
';
// OS arch selector
- showStr += 'OS Architecture: ';
- for ( index in imageArch) {
- showStr += '' + imageArch[index] + ' ';
+ parm += 'OS architecture: ';
+ for (i in imageArch) {
+ parm += '' + imageArch[i] + ' ';
}
- showStr += ' ';
+ parm += '
';
// Netboot interface input
- showStr += 'Net Boot Interface:
';
+ parm += 'Netboot interface:
';
+
// Profile selector
- showStr += 'Profile: ';
- for( index in profileArray){
- showStr += '' + profileArray[index] + ' ';
+ parm += 'Profile: ';
+ for (i in profileArray) {
+ parm += '' + profileArray[i] + ' ';
}
- showStr += ' ';
+ parm += '
';
+
// Boot method selector
- showStr += 'Boot Method: stateless
';
- setPropsForm.append(showStr);
- createHpcSelect(setPropsForm);
-
- // Add and show the tab
- tab.add(tabId, 'Create Image', setPropsForm, true);
- tab.select(tabId);
-
- // Check the selected osver and osarch for hcp stack select
- // If they are valid, show the hpc stack select area.
- hpcShow();
+ parm += 'Boot method: stateless
';
+ createImgForm.append(parm);
+ createHpcSelect(createImgForm);
// The button used to create images is created here
- var createImageBtn = createButton("Create Image");
+ var createImageBtn = createButton("Create");
createImageBtn.bind('click', function(event) {
createImage();
});
- $('#createImageTab').append(createImageBtn);
+ createImgForm.append(createImageBtn);
+
+ // Add and show the tab
+ tab.add(tabId, 'Create', createImgForm, true);
+ tab.select(tabId);
+
+ // Check the selected osver and osarch for hcp stack select
+ // If they are valid, show the hpc stack select area
+ hpcShow();
}
/**
@@ -377,43 +391,35 @@ function createHpcSelect(container) {
+ '3. You should have a diskless image created with the base OS installed and verified on at least one test node. '
+ '4. You should install the softwares on the management node, and copy all correponding packages into the location ' + '"/install/custom/otherpkgs/" based on '
+ 'these documentations . ';
-
hpcFieldset.append(createInfoBar(str));
// Advanced software when select the compute profile
str = '';
+ + ' RSCT ' + ' PE '
+ + ' ESSl&PESSL '
+ + '';
hpcFieldset.append(str);
- container.append(hpcFieldset);
+ container.append($('
').append(hpcFieldset));
}
-var softwareList = {
- "rsct" : [ "rsct.core.utils", "rsct.core", "src" ],
- "pe" : [ "IBMJava2-142-ppc64-JRE", "ibm_lapi_ip_rh6p", "ibm_lapi_us_rh6p", "IBM_pe_license", "ibm_pe_rh6p", "ppe_pdb_ppc64_rh600", "sci_ppc_32bit_rh600", "sci_ppc_64bit_rh600", "vac.cmp",
- "vac.lib", "vac.lic", "vacpp.cmp", "vacpp.help.pdf", "vacpp.lib", "vacpp.man", "vacpp.rte", "vacpp.rte.lnk", "vacpp.samples", "xlf.cmp", "xlf.help.pdf", "xlf.lib", "xlf.lic", "xlf.man",
- "xlf.msg.rte", "xlf.rte", "xlf.rte.lnk", "xlf.samples", "xlmass.lib", "xlsmp.lib", "xlsmp.msg.rte", "xlsmp.rte" ],
- "gpfs" : [ "gpfs.base", "gpfs.gpl", "gpfs.gplbin", "gpfs.msg.en_US" ],
- "essl" : [ "essl.3232.rte", "essl.3264.rte", "essl.6464.rte", "essl.common", "essl.license", "essl.man", "essl.msg", "essl.rte", "ibm-java2", "pessl.common", "pessl.license", "pessl.man",
- "pessl.msg", "pessl.rte.ppe" ],
- "loadl" : [ "IBMJava2", "LoadL-full-license-RH6", "LoadL-resmgr-full-RH6", "LoadL-scheduler-full-RH6" ],
- "base" : [ "createrepo" ]
-};
-
/**
- * Check the dependance of essl and start the software check for essl
+ * Check the dependance for ESSL and start the software check for ESSL
*
* @param softwareObject
- * The checkbox object of essl
+ * The checkbox object of ESSL
* @return nothing
*/
function esslCheck(softwareObject) {
var softwareName = softwareObject.name;
- if (false == $('#createImageTab input[name=pe]').attr('checked')) {
- var warnBar = createWarnBar('You must select the pe first.');
- $('#createImageTab #esslli').append(warnBar);
+ if (!$('#createImageTab input[name=pe]').attr('checked')) {
+ var warnBar = createWarnBar('You must first select the PE');
$(':checkbox[name=essl]').attr("checked", false);
+
+ // Clear existing warnings and append new warning
+ $('#hpcsoft .ui-state-error').remove();
+ $('#hpcsoft').prepend(warnBar);
+
return;
} else {
softwareCheck(softwareObject);
@@ -421,10 +427,10 @@ function esslCheck(softwareObject) {
}
/**
- * Check the parameters for HPC software
+ * Check the parameters for the HPC software
*
* @param softwareObject
- * The checkbox object of the hpc software
+ * Checkbox object of the HPC software
* @return True: The checkbox is checked
* False: Error message shown on page
*/
@@ -458,7 +464,7 @@ function softwareCheck(softwareObject) {
}
/**
- * Check whether the RPMs are copied to the special location
+ * Check if the RPMs are copied to the special location
*
* @param data
* Data returned from HTTP request
@@ -483,16 +489,20 @@ function rpmCopyCheck(data) {
}
}
$('#createImageTab #' + softwareName + 'li').find('img').remove();
+
// No error, show the check image
- if ('' == errorStr) {
- var infoPart = '
';
+ if (!errorStr) {
+ var infoPart = '
';
$('#createImageTab #' + softwareName + 'li').append(infoPart);
} else {
// Show the error message
- errorStr = 'To install the rsct on your compute node. You should: ' + errorStr + '';
+ errorStr = 'To install the RSCT on your compute node. You should: ' + errorStr + '';
var warnBar = createWarnBar(errorStr);
- $('#createImageTab #' + softwareName + 'li').append(warnBar);
$(':checkbox[name=' + softwareName + ']').attr("checked", false);
+
+ // Clear existing warnings and append new warning
+ $('#hpcsoft .ui-state-error').remove();
+ $('#hpcsoft').prepend(warnBar);
}
}
@@ -505,21 +515,20 @@ function rpmCopyCheck(data) {
*/
function genRpmCmd(softwareName) {
var cmdString;
- cmdString = "rpm -q ";
+ cmdString = 'rpm -q ';
for (var i in softwareList[softwareName]) {
- cmdString += softwareList[softwareName][i] + " ";
+ cmdString += softwareList[softwareName][i] + ' ';
}
- for (var i in softwareList["base"]) {
- cmdString += softwareList["base"][i] + " ";
+ for (var i in softwareList['base']) {
+ cmdString += softwareList['base'][i] + ' ';
}
return cmdString;
}
/**
- * Check whether the rpms for the hpc software are copied to the special
- * location
+ * Check if the RPMs for the HPC software are copied to the special location
*
* @param softwareName
* The name of the software
@@ -527,8 +536,8 @@ function genRpmCmd(softwareName) {
* False: Add the error message to the page
*/
function genLsCmd(softwareName) {
- var osvers = $("#createImageTab #osvers").val();
- var osarch = $("#createImageTab #osarch").val();
+ var osvers = $('#createImageTab #osvers').val();
+ var osarch = $('#createImageTab #osarch').val();
var path = '/install/post/otherpkgs/' + osvers + '/' + osarch + '/' + softwareName;
var checkCmd = 'ls ';
@@ -541,34 +550,38 @@ function genLsCmd(softwareName) {
}
/**
- * When the RPM check info return, check if all RPMs are installed.
+ * Check if all RPMs are installed
*
* @param checkInfo
- * "rpm -q ***"'s return name: software name
- * @return True: The RPMs are all installed
- * False: Some of the rpms are not installed
+ * 'rpm -q' output
+ * @return True: All RPMs are installed
+ * False: Some RPMs are not installed
*/
function rpmCheck(checkInfo, name) {
var errorStr = '';
- var checkArray = checkInfo.split("\n");
- for ( var i in checkArray) {
- if (-1 != checkArray[i].indexOf("not install")) {
- errorStr += checkArray[i] + " ";
+ var checkArray = checkInfo.split('\n');
+ for (var i in checkArray) {
+ if (checkArray[i].indexOf('not install') != -1) {
+ errorStr += checkArray[i] + ' ';
}
}
- if ('' == errorStr) {
+ if (!errorStr) {
return true;
}
errorStr = errorStr.substr(0, errorStr.length - 1);
- $(':checkbox[name=' + name + ']').attr("checked", false);
+ $(':checkbox[name=' + name + ']').attr('checked', false);
// Add the error
- var warnBar = createWarnBar(errorSstr);
+ var warnBar = createWarnBar(errorStr);
$('#createImageTab #' + name + 'li').find('img').remove();
- $('#createImageTab #' + name + 'li').append(warnBar);
+
+ // Clear existing warnings and append new warning
+ $('#hpcsoft .ui-state-error').remove();
+ $('#hpcsoft').prepend(warnBar);
+
return;
}
@@ -1044,7 +1057,7 @@ function createImage() {
$('#createImageTab .ui-state-error').remove();
// If there no input for the bootInterface
if (!bootInterface) {
- var warnBar = createWarnBar('Please specify the net boot interface');
+ var warnBar = createWarnBar('Please specify the netboot interface');
$("#createImageTab").prepend(warnBar);
return;
}
diff --git a/xCAT-UI/lib/rcons.php b/xCAT-UI/lib/rcons.php
index 59b82e370..5ddc2825a 100644
--- a/xCAT-UI/lib/rcons.php
+++ b/xCAT-UI/lib/rcons.php
@@ -6,29 +6,27 @@ $query = '';
$output = '';
$temp = '';
$pythonProcess = '';
-if (!isAuthenticated()){
- echo ("Please log in firsr.");
+if (!isAuthenticated()) {
+ echo ("Please login before continuing!");
}
$query = 's=' . $_POST['s'] . '&w=' . $_POST['w'] . '&h=' . $_POST['h'];
-if (isset($_POST['q'])){
+if (isset($_POST['q'])) {
$query .= '&q=1';
-}
-else{
+} else {
$query .= '&q=0';
}
-if (isset($_POST['f'])){
+if (isset($_POST['f'])) {
$pythonProcess = exec('ps -aef | grep -v grep | grep ajaxterm.py');
- if ('' == $pythonProcess){
+ if ('' == $pythonProcess) {
exec('nohup ' . dirname(__FILE__) . '/ajaxterm/ajaxterm.py >/dev/null 2>&1 &');
}
-
sleep(1);
$temp = $query . '&k=' . urlencode($_SESSION["username"] . "\r");
$output = rconsSynchronise($temp);
- if (0 < substr_count($output, 'error')){
+ if (0 < substr_count($output, 'error')) {
echo json_encode(array('err'=>$output));
exit;
}
@@ -36,36 +34,33 @@ if (isset($_POST['f'])){
$temp = $query . '&k=' . urlencode(getpassword() . "\r");
$output = rconsSynchronise($temp);
- if (0 < substr_count($output, 'error')){
+ if (0 < substr_count($output, 'error')) {
echo json_encode(array('err'=>$output));
exit;
}
sleep(1);
$temp = $query . '&c=1&k=' . urlencode('rcons ' . $_POST['s'] . "\r");
-}
-else{
+} else {
$temp = $query . '&c=1&k=' . urlencode($_POST['k']);
}
$output = rconsSynchronise($temp);
-if (0 < substr_count($output, 'error')){
+if (0 < substr_count($output, 'error')) {
echo (array('err'=>$output));
-}
-else{
+} else {
$xml = simplexml_load_string($output);
- if ('pre' == $xml->getName()){
+ if ('pre' == $xml->getName()) {
$output = $xml->asXML();
$output = preg_replace('/'. chr(160) . '/', ' ', $output);
echo json_encode(array('term'=>$output));
- }
- else{
+ } else {
echo json_encode(array('nc'=>'nc'));
}
}
-function rconsSynchronise($parameter){
+function rconsSynchronise($parameter) {
$flag = false;
$return = "";
$out = "";
@@ -77,19 +72,21 @@ function rconsSynchronise($parameter){
$out = "GET /u?$parameter HTTP/1.1\r\nHost: 127.0.0.1:8022\r\nConnection: Close\r\n\r\n";
fwrite($fp, $out);
- while(!feof($fp)){
+ while (!feof($fp)) {
$line = fgets($fp,1024);
- if (0 == strlen($line)){
+ if (0 == strlen($line)) {
continue;
}
- if('<' == substr($line, 0, 1)){
+
+ if ('<' == substr($line, 0, 1)) {
$flag = true;
$return .= $line;
break;
}
}
- if ($flag){
- while(!feof($fp)){
+
+ if ($flag) {
+ while (!feof($fp)) {
$return .= fgets($fp, 1024);
}
}
diff --git a/xCAT-UI/lib/systemcmd.php b/xCAT-UI/lib/systemcmd.php
index 824aad522..469551789 100644
--- a/xCAT-UI/lib/systemcmd.php
+++ b/xCAT-UI/lib/systemcmd.php
@@ -5,14 +5,13 @@ require_once "$TOPDIR/lib/functions.php";
require_once "$TOPDIR/lib/jsonwrapper.php";
/**
- * Issue a xCAT command, e.g. rpm -qa xCAT
- * This will handle system commands.
+ * 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
*/
-if (!isAuthenticated()){
- echo ("Please log in from the main page first! ");
+if (!isAuthenticated()) {
+ echo ("Please login before continuing! ");
exit;
}
@@ -20,16 +19,15 @@ if (isset($_GET["cmd"])) {
// HTTP GET requests
$cmd = $_GET["cmd"];
$msg = NULL;
-
- if (isset($_GET["msg"])){
- $msg = $_GET["msg"];
- }
$ret = "";
- if ("ostype" == $cmd) {
- $ret = strtolower(PHP_OS);
+ if (isset($_GET["msg"])) {
+ $msg = $_GET["msg"];
}
- else {
+
+ if ($cmd == "ostype") {
+ $ret = strtolower(PHP_OS);
+ } else {
$ret = shell_exec($cmd);
}