diff --git a/xCAT-UI/css/style.css b/xCAT-UI/css/style.css index 3dc57ddd1..09a47264c 100644 --- a/xCAT-UI/css/style.css +++ b/xCAT-UI/css/style.css @@ -365,7 +365,6 @@ legend { /*--- jQuery datatable ---*/ .dataTables_wrapper { - overflow: auto; width: auto; margin: 10px auto; -moz-border-radius: 3px; diff --git a/xCAT-UI/js/ui.js b/xCAT-UI/js/ui.js index 24224666a..73371e4f7 100644 --- a/xCAT-UI/js/ui.js +++ b/xCAT-UI/js/ui.js @@ -307,11 +307,11 @@ DataTable.prototype.add = function(rowCont) { * @param barId Status bar ID */ function createStatusBar(barId) { - var statusBar = $('
').css({ + // Do not change the background color or color! This is handled by the theme + // the user selects. + var statusBar = $('
').css({ 'margin-bottom': '5px', 'min-height': '30px', - 'background-color':'#7BBEDE', - 'color': '#FFFFFF', 'max-height': '150px', 'overflow': 'auto' }); @@ -354,10 +354,10 @@ function createStatusBar(barId) { * @return Info bar */ function createInfoBar(msg) { - var infoBar = $('
').css({ - 'margin': '5px 0px', - 'background-color':'#7BBEDE', - 'color': '#FFFFFF' + // Do not change the background color or color! This is handled by the theme + // the user selects. + var infoBar = $('
').css({ + 'margin': '5px 0px' }); var icon = $('').css({ 'display': 'inline-block', @@ -1055,4 +1055,4 @@ function getNodesChecked(datatableId) { } return tgts; -} \ No newline at end of file +} diff --git a/xCAT-UI/lib/cmd.php b/xCAT-UI/lib/cmd.php index d272b9d79..f53a418a4 100644 --- a/xCAT-UI/lib/cmd.php +++ b/xCAT-UI/lib/cmd.php @@ -12,126 +12,131 @@ require_once "$TOPDIR/lib/jsonwrapper.php"; * @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 + * @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"]; + // 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"]; - } + // 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"]; + // Special messages put here + // This gets sent back to the AJAX request as is. + $msg = $_GET["msg"]; - // If no $tgt is given, set $tgt to NULL - if (!$tgt) { - $tgt = NULL; - } + // If no $tgt is given, set $tgt to NULL + if (!$tgt) { + $tgt = NULL; + } - // If no $msg is given, set $msg to NULL - if (!$msg) { - $msg = NULL; - } + // If no $msg is given, set $msg to NULL + if (!$msg) { + $msg = NULL; + } - // If no $args are given, set $args_array to NULL - $args_array = array(); - if ($args) { - // If $args contains multiple arguments, split it into an array - if (strpos($args,";")) { - // Split the arguments into an array - $args_array = array(); - $args_array = explode(";", $args); - } else { - $args_array = array($args); - } - } + // If no $args are given, set $args_array to NULL + $args_array = array(); + if ($args) { + // If $args contains multiple arguments, split it into an array + if (strpos($args,";")) { + // Split the arguments into an array + $args_array = array(); + $args_array = explode(";", $args); + } else { + $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 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 - $opts_array = array(); - $opts_array = explode(";", $opts); - } else { - $opts_array = array($opts); - } - } + // If $args contains multiple arguments, split it into an array + if (strpos($opts,";")) { + // Split the arguments into an array + $opts_array = array(); + $opts_array = explode(";", $opts); + } else { + $opts_array = array($opts); + } + } + + // Time needed to update /etc/hosts + if (strncasecmp($cmd, "makehosts", 9) == 0) { + sleep(5); + } - // Submit request and get response - $xml = docmd($cmd, $tgt, $args_array, $opts_array); - // If the output is flushed, do not return output in JSON - if (in_array("flush", $opts_array)) { - return; - } + // Submit request and get response + $xml = docmd($cmd, $tgt, $args_array, $opts_array); + // If the output is flushed, do not return output in JSON + if (in_array("flush", $opts_array)) { + return; + } - $rsp = array(); + $rsp = array(); - // webrun pping and gangliastatus output needs special handling - if(strncasecmp($cmd, "webrun", 6) == 0 && (stristr($args, "pping") || stristr($args, "gangliastatus") || stristr($args, "chtab"))) { - $rsp = extractWebrun($xml); - } - // nodels output needs special handling - else if(strncasecmp($cmd, "nodels", 6) == 0) { - // Handle the output the same way as webrun - $rsp = extractNodels($xml); - } - // extnoderange output needs special handling - // 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 - // You can write anything to that directory - $file = "$tgt"; - $handle = fopen($file, 'w') or die("Cannot open $file"); - fwrite($handle, $cont); - fclose($handle); + // webrun pping and gangliastatus output needs special handling + if (strncasecmp($cmd, "webrun", 6) == 0 && (stristr($args, "pping") || stristr($args, "gangliastatus") || stristr($args, "chtab"))) { + $rsp = extractWebrun($xml); + } + // nodels output needs special handling + else if (strncasecmp($cmd, "nodels", 6) == 0) { + // Handle the output the same way as webrun + $rsp = extractNodels($xml); + } + // extnoderange output needs special handling + // 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 + // You can write anything to that directory + $file = "$tgt"; + $handle = fopen($file, 'w') or die("Cannot open $file"); + fwrite($handle, $cont); + fclose($handle); - $rsp = "Directory entry written to $file"; - } - // Handle the typical output - else { - foreach ($xml->children() as $child) { - foreach ($child->children() as $data) { - if($data->name) { - $node = $data->name; + $rsp = "Directory entry written to $file"; + } + // Handle the typical output + else { + foreach ($xml->children() as $child) { + 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->contents) { + $cont = $data->data->contents; + } else { + $cont = $data->data; + } - if ($data->data->desc) { - $cont = $data->data->desc . ": " . $cont; - } + if ($data->data->desc) { + $cont = $data->data->desc . ": " . $cont; + } - $cont = str_replace(":|:", "\n", $cont); - array_push($rsp, "$node: $cont"); - } else if (strlen("$data") > 2) { - $data = str_replace(":|:", "\n", $data); - array_push($rsp, "$data"); - } - } - } - } + $cont = str_replace(":|:", "\n", $cont); + array_push($rsp, "$node: $cont"); + } else if (strlen("$data") > 2) { + $data = str_replace(":|:", "\n", $data); + array_push($rsp, "$data"); + } + } + } + } - // Reply in the form of JSON - $rtn = array("rsp" => $rsp, "msg" => $msg); - echo json_encode($rtn); + // Reply in the form of JSON + $rtn = array("rsp" => $rsp, "msg" => $msg); + echo json_encode($rtn); } /** @@ -141,26 +146,26 @@ if (isset($_GET["cmd"])) { * @return An array containing the output */ function extractWebrun($xml) { - $rsp = array(); - $i = 0; + $rsp = array(); + $i = 0; - // Extract data returned - foreach($xml->children() as $nodes){ - foreach($nodes->children() as $node){ - // Get the node name - $name = $node->name; + // Extract data returned + foreach($xml->children() as $nodes){ + foreach($nodes->children() as $node){ + // Get the node name + $name = $node->name; - // Get the content - $status = $node->data; - $status = str_replace(":|:", "\n", $status); + // Get the content + $status = $node->data; + $status = str_replace(":|:", "\n", $status); - // Add to return array - $rsp[$i] = array("$name", "$status"); - $i++; - } - } + // Add to return array + $rsp[$i] = array("$name", "$status"); + $i++; + } + } - return $rsp; + return $rsp; } /** @@ -170,26 +175,26 @@ function extractWebrun($xml) { * @return An array containing the output */ function extractNodels($xml) { - $rsp = array(); - $i = 0; + $rsp = array(); + $i = 0; - // Extract data returned - foreach($xml->children() as $nodes){ - foreach($nodes->children() as $node){ - // Get the node name - $name = $node->name; - // Get the content - $status = $node->data->contents; - $status = str_replace(":|:", "\n", $status); + // Extract data returned + foreach($xml->children() as $nodes){ + foreach($nodes->children() as $node){ + // Get the node name + $name = $node->name; + // Get the content + $status = $node->data->contents; + $status = str_replace(":|:", "\n", $status); - $description = $node->data->desc; - // Add to return array - $rsp[$i] = array("$name", "$status", "$description"); - $i++; - } - } + $description = $node->data->desc; + // Add to return array + $rsp[$i] = array("$name", "$status", "$description"); + $i++; + } + } - return $rsp; + return $rsp; } /** @@ -199,13 +204,13 @@ function extractNodels($xml) { * @return The nodes and groups */ function extractExtnoderange($xml) { - $rsp = array(); + $rsp = array(); - // Extract data returned - foreach ($xml->xcatresponse->intersectinggroups as $group) { - array_push($rsp, "$group"); - } + // Extract data returned + foreach ($xml->xcatresponse->intersectinggroups as $group) { + array_push($rsp, "$group"); + } - return $rsp; + return $rsp; } ?> \ No newline at end of file diff --git a/xCAT-UI/lib/functions.php b/xCAT-UI/lib/functions.php index fa4dd5525..1fd1f97cc 100644 --- a/xCAT-UI/lib/functions.php +++ b/xCAT-UI/lib/functions.php @@ -5,7 +5,7 @@ // Retain session variables across page requests session_start(); -session_write_close(); // Do not block other HTTP requests +session_write_close(); // Do not block other HTTP requests // The settings below display error on the screen, instead of giving blank pages. error_reporting(E_ALL); @@ -22,33 +22,33 @@ ini_set('display_errors', true); * 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 "

You are not logged in! Failed to run command.

"; - return simplexml_load_string('', 'SimpleXMLElement', LIBXML_NOCDATA); - } + // If we are not logged in, + // do not try to communicate with xcatd + if (!is_logged()) { + echo "

You are not logged in! Failed to run command.

"; + return simplexml_load_string('', 'SimpleXMLElement', LIBXML_NOCDATA); + } - // Create xCAT request - // Add command, node range, and arguments to request - $request = simplexml_load_string(''); - $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(''); + $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["username"]); - $usernode->addChild('password',getpassword()); + // Add user and password to request + $usernode=$request->addChild('becomeuser'); + $usernode->addChild('username',$_SESSION["username"]); + $usernode->addChild('password',getpassword()); - $xml = submit_request($request, 0, $opts_array); - return $xml; + $xml = submit_request($request, 0, $opts_array); + return $xml; } /** @@ -59,155 +59,157 @@ function docmd($cmd, $nr, $args_array, $opts_array){ * @return A tree of SimpleXML objects */ function submit_request($req, $skipVerify, $opts_array){ - $xcathost = "localhost"; - $port = "3001"; - $rsp = FALSE; - $response = ''; - $cleanexit = 0; - $flushtail = ''; + $xcathost = "localhost"; + $port = "3001"; + $rsp = FALSE; + $response = ''; + $cleanexit = 0; + $flushtail = ''; - // Determine whether to flush output or not - $flush = false; - if ($opts_array && in_array("flush", $opts_array)) { - $flush = true; - } + // 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"; - } + // 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 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; + // 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 + 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(); - if ($flush){ - echo str_pad('',1024)."\n"; - } - - 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); + // Turn on output buffering + ob_start(); + if ($flush){ + echo str_pad('',1024)."\n"; + } + + 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) { + // Flush output to browser + if ($flush) { $str = $flushtail . $str; if (preg_match('/[^>]+$/', $str, $matches)){ $flushtail = $matches[0]; $str = preg_replace('/[^>]+$/', '', $str); - } - else{ + } else { $flushtail = ''; } + $str = preg_replace('/.*<\/errorcode>/', '', $str); - // 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 { - $tmp = preg_replace('/\n\s*/', "\n", $tmp); - // Print out output by default - echo '
' . $tmp . '
'; - ob_flush(); - 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 { + $tmp = preg_replace('/\n\s*/', "\n", $tmp); + + // Print out output by default + echo '
' . $tmp . '
'; + ob_flush(); + flush(); + } + } + } + } - // Look for serverdone response - $fullpattern = '/\s*\s*<\/serverdone>\s*<\/xcatresponse>/'; - $mixedpattern = '/\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) . '/'; - } - $response = "$response"; - $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)) + // Look for serverdone response + $fullpattern = '/\s*\s*<\/serverdone>\s*<\/xcatresponse>/'; + $mixedpattern = '/\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) . '/'; + } + $response = "$response"; + $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 "

xCAT submit request socket error: $errno - $errstr

"; - } + syslog(LOG_INFO, "($cmd $nr) Sending response"); + fclose($fp); + } else { + echo "

xCAT submit request socket error: $errno - $errstr

"; + } - // Flush (send) the output buffer and turn off output buffering - ob_end_flush(); + // Flush (send) the output buffer and turn off output buffering + ob_end_flush(); - // Close syslog - closelog(); + // Close syslog + closelog(); - if(! $cleanexit) { - if (preg_match('/^\s*.*<\/xcatresponse>\s*$/',$response)) { - // Probably an error message - $response = "$response"; - $rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA); - } else if(!$skipVerify) { - echo "

(Error) xCAT response ended prematurely: ", htmlentities($response), "

"; - $rsp = FALSE; - } - } - return $rsp; + if (!$cleanexit) { + if (preg_match('/^\s*.*<\/xcatresponse>\s*$/',$response)) { + // Probably an error message + $response = "$response"; + $rsp = simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOCDATA); + } else if (!$skipVerify) { + echo "

(Error) xCAT response ended prematurely: ", htmlentities($response), "

"; + $rsp = FALSE; + } + } + + return $rsp; } /** * Enable password storage to split between cookie and session variable */ 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 password */ 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)); } /** @@ -218,15 +220,15 @@ function getpassword() { * @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; } /** @@ -236,16 +238,16 @@ function setpassword($password) { * @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; } /** @@ -254,11 +256,11 @@ function getrandchars($length) { * @return True if user has a session, false otherwise */ function is_logged() { - if (isset($_SESSION["username"]) and !is_bool(getpassword())) { - return true; - } else { - return false; - } + if (isset($_SESSION["username"]) and !is_bool(getpassword())) { + return true; + } else { + return false; + } } /** @@ -267,27 +269,27 @@ function is_logged() { * @return True if the user is currently logged in successfully, false otherwise */ function isAuthenticated() { - if (is_logged()) { - if ($_SESSION["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["xcatpassvalid"] = 1; - } else { - // Not logged in - $_SESSION["xcatpassvalid"] = 0; - } - } - } - } + if (is_logged()) { + if ($_SESSION["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["xcatpassvalid"] = 1; + } else { + // Not logged in + $_SESSION["xcatpassvalid"] = 0; + } + } + } + } - if (isset($_SESSION["xcatpassvalid"]) and $_SESSION["xcatpassvalid"]==1) { - return true; - } else { - return false; - } + if (isset($_SESSION["xcatpassvalid"]) and $_SESSION["xcatpassvalid"]==1) { + return true; + } else { + return false; + } } /** @@ -296,70 +298,70 @@ function isAuthenticated() { * @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()); - if (isset($testacc->{'xcatresponse'}->{'data'}->{1})) { - $result = $testacc->{'xcatresponse'}->{'data'}->{1}; - $result = str_replace('"', '', $result); - $args = array(); - $args = explode(",", $result); + if (is_logged() && $_SESSION["xcatpassvalid"]) { + $testacc = docmd('tabdump', '', array('policy', '-w', "name==" . $_SESSION["username"]), array()); + if (isset($testacc->{'xcatresponse'}->{'data'}->{1})) { + $result = $testacc->{'xcatresponse'}->{'data'}->{1}; + $result = str_replace('"', '', $result); + $args = array(); + $args = explode(",", $result); - // Get the comments which contains the privilege - $comments = $args[8]; - $args = explode(";", $comments); - // Default privilege is guest - $privilege = 'guest'; - $_SESSION["xcatpassvalid"] = 0; - foreach ($args as $arg) { - // Get user privilege - if ($arg && is_numeric(strpos($arg, "privilege"))) { - if (is_numeric(strpos($arg, "root"))) { - // Set privilege to root - $privilege = 'root'; - $_SESSION["xcatpassvalid"] = 1; - } + // Get the comments which contains the privilege + $comments = $args[8]; + $args = explode(";", $comments); + // Default privilege is guest + $privilege = 'guest'; + $_SESSION["xcatpassvalid"] = 0; + foreach ($args as $arg) { + // Get user privilege + if ($arg && is_numeric(strpos($arg, "privilege"))) { + if (is_numeric(strpos($arg, "root"))) { + // Set privilege to root + $privilege = 'root'; + $_SESSION["xcatpassvalid"] = 1; + } - break; - } - } - } - } + break; + } + } + } + } - if (strcmp($_SESSION["username"], 'root') == 0) { - $_SESSION["xcatpassvalid"] = 1; - } + if (strcmp($_SESSION["username"], 'root') == 0) { + $_SESSION["xcatpassvalid"] = 1; + } - if (isset($_SESSION["xcatpassvalid"]) and $_SESSION["xcatpassvalid"]==1) { - return true; - } else { - return false; - } + if (isset($_SESSION["xcatpassvalid"]) and $_SESSION["xcatpassvalid"]==1) { + return true; + } else { + return false; + } } /** * Log out of current user session */ 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(); } /** * Format a given string and echo it back to the browser */ function format_TBD($str) { - // Format a given string however you want it - echo $tmp . '
'; - flush(); + // Format a given string however you want it + echo $tmp . '
'; + flush(); } ?> diff --git a/xCAT-UI/lib/log.php b/xCAT-UI/lib/log.php index 5d30b04ac..cce7f62e5 100644 --- a/xCAT-UI/lib/log.php +++ b/xCAT-UI/lib/log.php @@ -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["xcatpassvalid"] = -1; + // Invalid password + $_SESSION["xcatpassvalid"] = -1; } if (isset($_REQUEST["username"])) { - $_SESSION["username"] = $_REQUEST["username"]; + $_SESSION["username"] = $_REQUEST["username"]; - // Invalid user name - $_SESSION["xcatpassvalid"]=-1; + // Invalid user name + $_SESSION["xcatpassvalid"]=-1; } $jdata = array(); if (isAuthenticated() && isRootAcess()) { - $jdata["authenticated"]="yes"; + $jdata["authenticated"]="yes"; } else { - $jdata["authenticated"]="no"; + $jdata["authenticated"]="no"; } echo json_encode($jdata); diff --git a/xCAT-UI/lib/rcons.php b/xCAT-UI/lib/rcons.php index d27960aa2..c84ed0711 100644 --- a/xCAT-UI/lib/rcons.php +++ b/xCAT-UI/lib/rcons.php @@ -7,90 +7,90 @@ $output = ''; $temp = ''; $pythonProcess = ''; if (!isAuthenticated()) { - echo ("Please login before continuing!"); + echo ("Please login before continuing!"); } $query = 's=' . $_POST['s'] . '&w=' . $_POST['w'] . '&h=' . $_POST['h']; if (isset($_POST['q'])) { - $query .= '&q=1'; + $query .= '&q=1'; } else { - $query .= '&q=0'; + $query .= '&q=0'; } if (isset($_POST['f'])) { - $pythonProcess = exec('ps -aef | grep -v grep | grep ajaxterm.py'); - if ('' == $pythonProcess) { - exec('nohup ' . dirname(__FILE__) . '/ajaxterm/ajaxterm.py >/dev/null 2>&1 &'); - } - sleep(1); + $pythonProcess = exec('ps -aef | grep -v grep | grep ajaxterm.py'); + 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')) { - echo json_encode(array('err'=>$output)); - exit; - } - sleep(1); + $temp = $query . '&k=' . urlencode($_SESSION["username"] . "\r"); + $output = rconsSynchronise($temp); + if (0 < substr_count($output, 'error')) { + echo json_encode(array('err'=>$output)); + exit; + } + sleep(1); - $temp = $query . '&k=' . urlencode(getpassword() . "\r"); - $output = rconsSynchronise($temp); - if (0 < substr_count($output, 'error')) { - echo json_encode(array('err'=>$output)); - exit; - } - sleep(1); + $temp = $query . '&k=' . urlencode(getpassword() . "\r"); + $output = rconsSynchronise($temp); + 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"); + $temp = $query . '&c=1&k=' . urlencode('rcons ' . $_POST['s'] . "\r"); } else { - $temp = $query . '&c=1&k=' . urlencode($_POST['k']); + $temp = $query . '&c=1&k=' . urlencode($_POST['k']); } $output = rconsSynchronise($temp); if (0 < substr_count($output, 'error')) { - echo (array('err'=>$output)); + echo (array('err'=>$output)); } else { - $xml = simplexml_load_string($output); - if ('pre' == $xml->getName()) { - $output = $xml->asXML(); - $output = preg_replace('/'. chr(160) . '/', ' ', $output); + $xml = simplexml_load_string($output); + if ('pre' == $xml->getName()) { + $output = $xml->asXML(); + $output = preg_replace('/'. chr(160) . '/', ' ', $output); - echo json_encode(array('term'=>$output)); - } else { - echo json_encode(array('nc'=>'nc')); - } + echo json_encode(array('term'=>$output)); + } else { + echo json_encode(array('nc'=>'nc')); + } } function rconsSynchronise($parameter) { - $flag = false; - $return = ""; - $out = ""; - $fp = fsockopen("127.0.0.1", 8022, $errno, $errstr, 30); - if (!$fp) { - return "$errstr($errno)"; - } + $flag = false; + $return = ""; + $out = ""; + $fp = fsockopen("127.0.0.1", 8022, $errno, $errstr, 30); + if (!$fp) { + return "$errstr($errno)"; + } - $out = "GET /u?$parameter HTTP/1.1\r\nHost: 127.0.0.1:8022\r\nConnection: Close\r\n\r\n"; + $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)) { - $line = fgets($fp,1024); - if (0 == strlen($line)) { - continue; - } + fwrite($fp, $out); + while (!feof($fp)) { + $line = fgets($fp,1024); + if (0 == strlen($line)) { + continue; + } - if ('<' == substr($line, 0, 1)) { - $flag = true; - $return .= $line; - break; - } - } + if ('<' == substr($line, 0, 1)) { + $flag = true; + $return .= $line; + break; + } + } - if ($flag) { - while (!feof($fp)) { - $return .= fgets($fp, 1024); - } - } + if ($flag) { + while (!feof($fp)) { + $return .= fgets($fp, 1024); + } + } - return ($return); + return ($return); } ?> \ No newline at end of file diff --git a/xCAT-UI/lib/srv_cmd.php b/xCAT-UI/lib/srv_cmd.php index ae3b4878b..c1b226369 100644 --- a/xCAT-UI/lib/srv_cmd.php +++ b/xCAT-UI/lib/srv_cmd.php @@ -15,102 +15,102 @@ require_once "$TOPDIR/lib/jsonwrapper.php"; * @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"]; + // 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"]; + // Special messages put here + // This gets sent back to the AJAX request as is. + $msg = $_GET["msg"]; - // If no $tgt is given, set $tgt to NULL - if (!$tgt) { - $tgt = NULL; - } + // If no $tgt is given, set $tgt to NULL + if (!$tgt) { + $tgt = NULL; + } - // If no $msg is given, set $msg to NULL - if (!$msg) { - $msg = NULL; - } + // If no $msg is given, set $msg to NULL + if (!$msg) { + $msg = NULL; + } - // If no $args are given, set $args_array to NULL - $args_array = array(); - if ($args) { - // If $args contains multiple arguments, split it into an array - if (strpos($args,";")) { - // Split the arguments into an array - $args_array = array(); - $args_array = explode(";", $args); - } else { - $args_array = array($args); - } - } + // If no $args are given, set $args_array to NULL + $args_array = array(); + if ($args) { + // If $args contains multiple arguments, split it into an array + if (strpos($args,";")) { + // Split the arguments into an array + $args_array = array(); + $args_array = explode(";", $args); + } else { + $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 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 - $opts_array = array(); - $opts_array = explode(";", $opts); - } else { - $opts_array = array($opts); - } - } + // If $args contains multiple arguments, split it into an array + if (strpos($opts,";")) { + // Split the arguments into an array + $opts_array = array(); + $opts_array = explode(";", $opts); + } else { + $opts_array = array($opts); + } + } - // Submit request and get response - $xml = docmd($cmd, $tgt, $args_array, $opts_array); - // If the output is flushed, do not return output in JSON - if (in_array("flush", $opts_array)) { - return; - } + // Submit request and get response + $xml = docmd($cmd, $tgt, $args_array, $opts_array); + // If the output is flushed, do not return output in JSON + if (in_array("flush", $opts_array)) { + return; + } - $rsp = array(); + $rsp = array(); - // webrun pping and gangliastatus output needs special handling - if(strncasecmp($cmd, "webrun", 6) == 0 && (stristr($args, "pping") || stristr($args, "gangliastatus") || stristr($args, "chtab"))) { - $rsp = extractWebrun($xml); - } - // nodels output needs special handling - else if(strncasecmp($cmd, "nodels", 6) == 0) { - // Handle the output the same way as webrun - $rsp = extractNodels($xml); - } - // extnoderange output needs special handling - // This command gets the nodes and groups - else if(strncasecmp($cmd, "extnoderange", 12) == 0) { - $rsp = extractExtnoderange($xml); - } - // Handle the typical output - else { - foreach ($xml->children() as $child) { - foreach ($child->children() as $data) { - if($data->name) { - $node = $data->name; + // webrun pping and gangliastatus output needs special handling + if(strncasecmp($cmd, "webrun", 6) == 0 && (stristr($args, "pping") || stristr($args, "gangliastatus") || stristr($args, "chtab"))) { + $rsp = extractWebrun($xml); + } + // nodels output needs special handling + else if(strncasecmp($cmd, "nodels", 6) == 0) { + // Handle the output the same way as webrun + $rsp = extractNodels($xml); + } + // extnoderange output needs special handling + // This command gets the nodes and groups + else if(strncasecmp($cmd, "extnoderange", 12) == 0) { + $rsp = extractExtnoderange($xml); + } + // Handle the typical output + else { + foreach ($xml->children() as $child) { + 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->contents){ + $cont = $data->data->contents; + } else { + $cont = $data->data; + } - $cont = str_replace(":|:", "\n", $cont); - array_push($rsp, "$node: $cont"); - } else if (strlen("$data") > 2) { - $data = str_replace(":|:", "\n", $data); - array_push($rsp, "$data"); - } - } - } - } + $cont = str_replace(":|:", "\n", $cont); + array_push($rsp, "$node: $cont"); + } else if (strlen("$data") > 2) { + $data = str_replace(":|:", "\n", $data); + array_push($rsp, "$data"); + } + } + } + } - // Reply in the form of JSON - $rtn = array("rsp" => $rsp, "msg" => $msg); - echo json_encode($rtn); + // Reply in the form of JSON + $rtn = array("rsp" => $rsp, "msg" => $msg); + echo json_encode($rtn); } /** @@ -120,26 +120,26 @@ if (isset($_GET["cmd"])) { * @return An array containing the output */ function extractWebrun($xml) { - $rsp = array(); - $i = 0; + $rsp = array(); + $i = 0; - // Extract data returned - foreach($xml->children() as $nodes){ - foreach($nodes->children() as $node){ - // Get the node name - $name = $node->name; + // Extract data returned + foreach($xml->children() as $nodes){ + foreach($nodes->children() as $node){ + // Get the node name + $name = $node->name; - // Get the content - $status = $node->data; - $status = str_replace(":|:", "\n", $status); + // Get the content + $status = $node->data; + $status = str_replace(":|:", "\n", $status); - // Add to return array - $rsp[$i] = array("$name", "$status"); - $i++; - } - } + // Add to return array + $rsp[$i] = array("$name", "$status"); + $i++; + } + } - return $rsp; + return $rsp; } /** @@ -149,26 +149,26 @@ function extractWebrun($xml) { * @return An array containing the output */ function extractNodels($xml) { - $rsp = array(); - $i = 0; + $rsp = array(); + $i = 0; - // Extract data returned - foreach($xml->children() as $nodes){ - foreach($nodes->children() as $node){ - // Get the node name - $name = $node->name; - // Get the content - $status = $node->data->contents; - $status = str_replace(":|:", "\n", $status); + // Extract data returned + foreach($xml->children() as $nodes){ + foreach($nodes->children() as $node){ + // Get the node name + $name = $node->name; + // Get the content + $status = $node->data->contents; + $status = str_replace(":|:", "\n", $status); - $description = $node->data->desc; - // Add to return array - $rsp[$i] = array("$name", "$status", "$description"); - $i++; - } - } + $description = $node->data->desc; + // Add to return array + $rsp[$i] = array("$name", "$status", "$description"); + $i++; + } + } - return $rsp; + return $rsp; } /** @@ -178,13 +178,13 @@ function extractNodels($xml) { * @return The nodes and groups */ function extractExtnoderange($xml) { - $rsp = array(); + $rsp = array(); - // Extract data returned - foreach ($xml->xcatresponse->intersectinggroups as $group) { - array_push($rsp, "$group"); - } + // Extract data returned + foreach ($xml->xcatresponse->intersectinggroups as $group) { + array_push($rsp, "$group"); + } - return $rsp; + return $rsp; } ?> \ No newline at end of file diff --git a/xCAT-UI/lib/tabRestore.php b/xCAT-UI/lib/tabRestore.php index 4d3e960dc..77e96c8b0 100644 --- a/xCAT-UI/lib/tabRestore.php +++ b/xCAT-UI/lib/tabRestore.php @@ -12,9 +12,9 @@ require_once "$TOPDIR/lib/jsonwrapper.php"; * @return The xCAT response. Replies are in the form of JSON */ if (isset($_POST["table"])) { - // HTTP POST requests - $tab = $_POST["table"]; - $cont = $_POST["cont"]; + // HTTP POST requests + $tab = $_POST["table"]; + $cont = $_POST["cont"]; } // Create xCAT request @@ -31,46 +31,46 @@ $usernode->addChild('password', getpassword()); // Go through each table row $first = 0; foreach($cont as $line){ - if($first == 0){ - // The 1st line is the table header - // It does not need special processing - // Create string containing all array elements - $str = implode(",", $line); - $request->addChild('data', $str); + if($first == 0){ + // The 1st line is the table header + // It does not need special processing + // Create string containing all array elements + $str = implode(",", $line); + $request->addChild('data', $str); - $first = 1; - continue; - } + $first = 1; + continue; + } - // Go through each column - foreach ($line as &$col){ - // If the column does begins and end with a quote - // Change quotes to " - if(!empty($col) && !preg_match('/^".*"$/', $col)) { - $col = '"' . $col . '"'; - } - } + // Go through each column + foreach ($line as &$col){ + // If the column does begins and end with a quote + // Change quotes to " + if(!empty($col) && !preg_match('/^".*"$/', $col)) { + $col = '"' . $col . '"'; + } + } - // Sort line - ksort($line, SORT_NUMERIC); - $keys = array_keys($line); - $max = count($line) - 1; - if ($keys[$max] != $max){ - for ($i = 0; $i <= $keys[$max]; $i++) { - if (!isset($line[$i])) { - $line[$i]=''; - } - } - ksort($line, SORT_NUMERIC); - } + // Sort line + ksort($line, SORT_NUMERIC); + $keys = array_keys($line); + $max = count($line) - 1; + if ($keys[$max] != $max){ + for ($i = 0; $i <= $keys[$max]; $i++) { + if (!isset($line[$i])) { + $line[$i]=''; + } + } + ksort($line, SORT_NUMERIC); + } - // Create string containing all array elements - $str = implode(",", $line); - // Replace " with " - $str = str_replace('"', '"', $str); - // Replace ' with ' - $str = str_replace("'", ''', $str); - $request->addChild('data', $str); + // Create string containing all array elements + $str = implode(",", $line); + // Replace " with " + $str = str_replace('"', '"', $str); + // Replace ' with ' + $str = str_replace("'", ''', $str); + $request->addChild('data', $str); } // Run command diff --git a/xCAT-UI/lib/zCmd.php b/xCAT-UI/lib/zCmd.php index 706248268..6906abe73 100644 --- a/xCAT-UI/lib/zCmd.php +++ b/xCAT-UI/lib/zCmd.php @@ -13,125 +13,125 @@ require_once "$TOPDIR/lib/jsonwrapper.php"; * @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"]; + // HTTP GET requests + $cmd = $_GET["cmd"]; + $tgt = $_GET["tgt"]; + $args = $_GET["args"]; - // Attachments are put here - $att = $_GET["att"]; + // Attachments are put here + $att = $_GET["att"]; - // Special messages put here - $msg = $_GET["msg"]; + // Special messages put here + $msg = $_GET["msg"]; - // If no $tgt is given, set $tgt to NULL - if (!$tgt) { - $tgt = NULL; - } + // If no $tgt is given, set $tgt to NULL + if (!$tgt) { + $tgt = NULL; + } - // If no $args is given, set $args to NULL - if (!$args) { - $args = NULL; - } + // If no $args is given, set $args to NULL + if (!$args) { + $args = NULL; + } - // If no $msg is given, set $msg to NULL - if (!$msg) { - $msg = NULL; - } + // If no $msg is given, set $msg to NULL + if (!$msg) { + $msg = NULL; + } - // If no $att is given, set $att to NULL - if (!$att) { - $att = NULL; - } + // If no $att is given, set $att to NULL + if (!$att) { + $att = NULL; + } - // If $args contains multiple arguments, split it into an array - if (strpos($args,";")) { - // Split the arguments into an array - $arr = array(); - $arr = explode(";", $args); - } else { - $arr = array($args); - } + // If $args contains multiple arguments, split it into an array + if (strpos($args,";")) { + // Split the arguments into an array + $arr = array(); + $arr = explode(";", $args); + } else { + $arr = array($args); + } - $rsp = array(); + $rsp = array(); - // Replace user entry - 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"; - $handle = fopen($userEntry, 'w') or die("Cannot open $userEntry"); - fwrite($handle, $att); - fclose($handle); + // Replace user entry + 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"; + $handle = fopen($userEntry, 'w') or die("Cannot open $userEntry"); + fwrite($handle, $att); + fclose($handle); - // CLI command: chvm gpok249 --replacevs /tmp/dirEntry.txt - // Replace user entry - array_push($arr, $userEntry); - $xml = docmd($cmd, $tgt, $arr, NULL); - foreach ($xml->children() as $child) { - foreach ($child->children() as $data) { - $data = str_replace(":|:", "\n", $data); - array_push($rsp, "$data"); - } - } - } + // CLI command: chvm gpok249 --replacevs /tmp/dirEntry.txt + // Replace user entry + array_push($arr, $userEntry); + $xml = docmd($cmd, $tgt, $arr, NULL); + foreach ($xml->children() as $child) { + foreach ($child->children() as $data) { + $data = str_replace(":|:", "\n", $data); + array_push($rsp, "$data"); + } + } + } - // Create virtual server - else if (strncasecmp($cmd, "mkvm", 4) == 0) { - // Directory /var/tmp permissions = 777 - // You can write anything to that directory - $userEntry = "/var/tmp/$tgt.txt"; - $handle = fopen($userEntry, 'w') or die("Cannot open $userEntry"); - fwrite($handle, $att); - fclose($handle); + // Create virtual server + else if (strncasecmp($cmd, "mkvm", 4) == 0) { + // Directory /var/tmp permissions = 777 + // You can write anything to that directory + $userEntry = "/var/tmp/$tgt.txt"; + $handle = fopen($userEntry, 'w') or die("Cannot open $userEntry"); + fwrite($handle, $att); + fclose($handle); - // CLI command: mkvm gpok3 /tmp/gpok3.txt - // Create user entry - array_unshift($arr, $userEntry); - $xml = docmd($cmd, $tgt, $arr, NULL); - foreach ($xml->children() as $child) { - foreach ($child->children() as $data) { - $data = str_replace(":|:", "\n", $data); - array_push($rsp, "$data"); - } - } - } + // CLI command: mkvm gpok3 /tmp/gpok3.txt + // Create user entry + array_unshift($arr, $userEntry); + $xml = docmd($cmd, $tgt, $arr, NULL); + foreach ($xml->children() as $child) { + foreach ($child->children() as $data) { + $data = str_replace(":|:", "\n", $data); + array_push($rsp, "$data"); + } + } + } - // Run shell script - // This is a typical command used by all platforms. It is put here because - // most of the code needed are already here - else if (strncasecmp($cmd, "xdsh", 4) == 0) { - // Directory /var/tmp permissions = 777 - // You can write anything to that directory - $msgArgs = explode(";", $msg); - $inst = str_replace("out=scriptStatusBar", "", $msgArgs[0]); - $script = "/var/tmp/script$inst.sh"; + // Run shell script + // This is a typical command used by all platforms. It is put here because + // most of the code needed are already here + else if (strncasecmp($cmd, "xdsh", 4) == 0) { + // Directory /var/tmp permissions = 777 + // You can write anything to that directory + $msgArgs = explode(";", $msg); + $inst = str_replace("out=scriptStatusBar", "", $msgArgs[0]); + $script = "/var/tmp/script$inst.sh"; - // Write to file - $handle = fopen($script, 'w') or die("Cannot open $script"); - fwrite($handle, $att); - fclose($handle); + // Write to file + $handle = fopen($script, 'w') or die("Cannot open $script"); + fwrite($handle, $att); + fclose($handle); - // Change it to executable - chmod($script, 0777); + // Change it to executable + chmod($script, 0777); - // CLI command: xdsh gpok3 -e /var/tmp/gpok3.sh - // Create user entry - array_push($arr, $script); - $xml = docmd($cmd, $tgt, $arr, NULL); - foreach ($xml->children() as $child) { - foreach ($child->children() as $data) { - $data = str_replace(":|:", "\n", $data); - array_push($rsp, "$data"); - } - } + // CLI command: xdsh gpok3 -e /var/tmp/gpok3.sh + // Create user entry + array_push($arr, $script); + $xml = docmd($cmd, $tgt, $arr, NULL); + foreach ($xml->children() as $child) { + foreach ($child->children() as $data) { + $data = str_replace(":|:", "\n", $data); + array_push($rsp, "$data"); + } + } - // Remove this file - unlink($script); - } + // Remove this file + unlink($script); + } - // Reply in the form of JSON - $rtn = array("rsp" => $rsp, "msg" => $msg); - echo json_encode($rtn); + // Reply in the form of JSON + $rtn = array("rsp" => $rsp, "msg" => $msg); + echo json_encode($rtn); } ?> \ No newline at end of file