// prepare to send JSON header('Content-type: application/json'); // disable cookies (so script works for privacy conscious users too) ini_set('session.use_cookies', false); // start ongoing or new session if (isset($_GET["PHPSESSID"])) { session_id($_GET["PHPSESSID"]); } else { session_id(date("dgis")); } session_start(); // initialise $_SESSION on first run if (!isset($_SESSION['callSID'])) { $_SESSION['callSID'] = SID; $_SESSION['lastlog'] = ""; } sleep(2); // delay AJAX refresh 2 seconds - FIXME change to what you want $vps_remote_info = getVPSInfo($vps_node, $vps_name, $soap_client); if ($vps_remote_info != "mkos") { $_SESSION['callSID'] = ''; // install finished, set termination signal } $_SESSION['lastlog'] = $soap_client->call("getVPSInstallLog", array("vpsname" => $vps_name, "numlines" => "20"), "", "", ""); // get last 20 log lines echo json_encode($_SESSION); // send callSID and lastlog back to the browser // print_r($r); } else { die("Couldn't connect to VPS node {$vps_node} !"); }
function drawAdminTools_VPSMonitor($admin, $vps) { global $vps_name; global $vps_node; global $adm_login; global $adm_pass; global $rub; global $addrlink; global $vps_soap_err; global $pro_mysql_product_table; global $pro_mysql_vps_ip_table; global $pro_mysql_vps_stats_table; global $secpayconf_currency_letters; global $panel_type; $reinstall_os = 1; get_secpay_conf(); $out = ""; $checker = checkVPSAdmin($adm_login, $adm_pass, $vps_node, $vps_name); if ($checker != true) { return _("Credential not correct: can't display in file ") . __FILE__ . " line " . __LINE__; } $vps_out = ""; $vps_out_net_stats = ""; $vps_out_hdd_stats = ""; $vps_out_swap_stats = ""; $vps_out_cpu_stats = ""; // Calculate last month $cur_year = date("Y"); $cur_month = date("m"); $last_month = $cur_month - 1; if ($last_month == 0) { $last_month_year = $cur_year - 1; $last_month = 12; } else { $last_month_year = $cur_year; } $tow_month_ago = $last_month - 1; if ($tow_month_ago == 0) { $tow_month_ago = 12; $tow_month_ago_year = $last_month_year - 1; } else { $tow_month_ago_year = $last_month_year; } $q = "SELECT * FROM {$pro_mysql_vps_stats_table} WHERE vps_server_hostname='{$vps_node}' AND vps_xen_name='xen{$vps_name}'\n\tAND year='{$tow_month_ago_year}' AND month='{$tow_month_ago}';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n = mysql_num_rows($r); if ($n == 1) { $a = mysql_fetch_array($r); $net_total = $a["network_in_count"] + $a["network_out_count"]; $vps_out_net_stats .= _("2 months ago: ") . smartByte($net_total) . "<br>"; $vps_out_cpu_stats .= _("2 months ago: ") . $a["cpu_usage"] . _(" CPU seconds") . "<br>"; $vps_out_swap_stats .= _("2 months ago: ") . smartByte($a["swapio_count"]) . "<br>"; $vps_out_hdd_stats .= _("2 months ago: ") . smartByte($a["diskio_count"]) . "<br>"; } $q = "SELECT * FROM {$pro_mysql_vps_stats_table} WHERE vps_server_hostname='{$vps_node}' AND vps_xen_name='xen{$vps_name}'\n\tAND year='{$last_month_year}' AND month='{$last_month}';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n = mysql_num_rows($r); if ($n == 1) { $a = mysql_fetch_array($r); $net_total = $a["network_in_count"] + $a["network_out_count"]; $vps_out_net_stats .= _("Last month: ") . smartByte($net_total) . "<br>"; $vps_out_cpu_stats .= _("Last month: ") . $a["cpu_usage"] . _(" CPU seconds") . "<br>"; $vps_out_swap_stats .= _("Last month: ") . smartByte($a["swapio_count"]) . "<br>"; $vps_out_hdd_stats .= _("Last month: ") . smartByte($a["diskio_count"]) . "<br>"; } $q = "SELECT * FROM {$pro_mysql_vps_stats_table} WHERE vps_server_hostname='{$vps_node}' AND vps_xen_name='xen{$vps_name}'\n\tAND year='{$cur_year}' AND month='{$cur_month}';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n = mysql_num_rows($r); if ($n == 1) { $a = mysql_fetch_array($r); $net_total = $a["network_in_count"] + $a["network_out_count"]; $vps_out_net_stats .= _("This month: ") . smartByte($net_total); $vps_out_cpu_stats .= _("This month: ") . $a["cpu_usage"] . _(" CPU seconds"); $vps_out_swap_stats .= _("This month: ") . smartByte($a["swapio_count"]); $vps_out_hdd_stats .= _("This month: ") . smartByte($a["diskio_count"]); } // Display the stats of the VPS $vps_stat_out = ""; $vps_stat_out .= "<table cellspacing=\"2\" cellpaddig=\"2\" border=\"0\">"; $vps_stat_out .= "<tr><td>" . _("Network:") . "<br>"; $vps_stat_out .= "<img width=\"120\" height=\"48\" src=\"vps_stats_network.php?adm_login={$adm_login}&adm_pass={$adm_pass}&vps_node={$vps_node}&vps_name={$vps_name}\"></td>"; $vps_stat_out .= "<td>" . _("CPU Time:") . "<br>"; $vps_stat_out .= "<img width=\"120\" height=\"48\" src=\"vps_stats_cpu.php?adm_login={$adm_login}&adm_pass={$adm_pass}&vps_node={$vps_node}&vps_name={$vps_name}\"></td></tr>"; $vps_stat_out .= "<tr><td>" . $vps_out_net_stats . "</td><td>{$vps_out_cpu_stats}</td></tr>"; $vps_stat_out .= "<tr><td>" . _("Swap I/O:") . "<br>"; $vps_stat_out .= "<img width=\"120\" height=\"48\" src=\"vps_stats_swap.php?adm_login={$adm_login}&adm_pass={$adm_pass}&vps_node={$vps_node}&vps_name={$vps_name}\"></td>"; $vps_stat_out .= "<td>" . _("HDD I/O:") . "<br>"; $vps_stat_out .= "<img width=\"120\" height=\"48\" src=\"vps_stats_hdd.php?adm_login={$adm_login}&adm_pass={$adm_pass}&vps_node={$vps_node}&vps_name={$vps_name}\"></td></tr>"; $vps_stat_out .= "<tr><td>" . $vps_out_swap_stats . "</td><td>" . $vps_out_hdd_stats . "</td></tr></table>"; // VPS (remote SOAP) Status $soap_client = connectToVPSServer($vps_node); if ($soap_client != false) { $vps_remote_info = getVPSInfo($vps_node, $vps_name, $soap_client); if ($vps_remote_info == false) { if (strstr($vps_soap_err, _("Method getVPSState failed"))) { $vps_out .= _("Could not get remote status (Method getVPSState() failed). Maybe the VPS is not running?") . "<br><br>"; } else { if (strstr($vps_soap_err, _("couldn't connect to host"))) { $vps_out .= _("Could not get remote status: could not connect to the SOAP server (HTTP error).") . "<br><br>"; } else { $vps_out .= _("Could not get remote status. Unkown error: ") . "{$vps_soap_err}<br><br>"; } } } else { if ($vps_remote_info == "fsck") { $vps_out .= _("Checking filesystem...") . "<br><br>"; } else { if ($vps_remote_info == "mkos") { $vps_out .= _("Reinstalling operating system...") . "<br><br>"; } else { if (isset($vps_remote_info["id"])) { $vps_out .= _("VM id: ") . $vps_remote_info["id"] . "<br>"; } if (isset($vps_remote_info["name"])) { $vps_out .= _("Name: ") . $vps_remote_info["name"] . "<br>"; } if (isset($vps_remote_info["memory"])) { $vps_out .= _("Memory: ") . $vps_remote_info["memory"] . "<br>"; } if (isset($vps_remote_info["maxmem"])) { $vps_out .= _("Max memory: ") . $vps_remote_info["maxmem"] . "<br>"; } else { $vps_out .= _("Maxmem: cannot fetch (maybe boot in progress?)") . "<br>"; } if (isset($vps_remote_info["cpu"])) { $vps_out .= _("Number of CPU: ") . $vps_remote_info["cpu"] . "<br>"; } else { $vps_out .= _("Number of CPU: cannot fetch (maybe boot in progress?)") . "<br>"; } if (isset($vps_remote_info["state"])) { $vps_out .= _("VPS State: ") . $vps_remote_info["state"] . "<br>"; } else { $vps_out .= _("State: cannot fetch (maybe boot in progress?)") . "<br>"; } if ($vps_remote_info["xen_type"] == 2 && isset($vps_remote_info["up_time"])) { $uptime = substr($vps_remote_info["up_time"], 0, strpos($vps_remote_info["up_time"], ".")); $uptime_s = $uptime % 60; $uptime_m = round($uptime / 60) % 60; $uptime_h = round($uptime / 3600) % 24; $uptime_j = round($uptime / 86400); if ($uptime_s > 1) { $upt_s_s = "s"; } else { $upt_s_s = ""; } if ($uptime_m > 1) { $upt_s_m = "s"; } else { $upt_s_m = ""; } if ($uptime_h > 1) { $upt_s_h = "s"; } else { $upt_s_h = ""; } if ($uptime_j > 1) { $upt_s_j = "s"; } else { $upt_s_j = ""; } $vps_out .= _("Up time: ") . "{$uptime_j} day{$upt_s_j} {$uptime_h} hour{$upt_s_h} {$uptime_m} minute{$upt_s_m} {$uptime_s} seconde{$upt_s_s}<br>"; $vps_out .= _("Last boot date: ") . date("Y-m-d H:i:s", substr($vps_remote_info["start_time"], 0, strlen($vps_remote_info["start_time"]) - 2)) . "<br>"; } $vps_out .= "<br>"; } } } } else { $vps_out .= _("Could not connect to the VPS SOAP Server."); } $frm_start = "<form action=\"?\">\n<input type=\"hidden\" name=\"adm_login\" value=\"{$adm_login}\">\n<input type=\"hidden\" name=\"adm_pass\" value=\"{$adm_pass}\">\n<input type=\"hidden\" name=\"addrlink\" value=\"{$addrlink}\">"; // The ip address(es) $out .= "<br><h3>" . _("IP address(es) of your VPS:") . "</h3>"; $vps_ips = $vps["ip_addr"]; $n = sizeof($vps_ips); if ($n > 1) { $out .= _("IP addresses: "); } else { $out .= _("IP address: "); } for ($i = 0; $i < $n; $i++) { if ($i != 0) { $out .= ", "; } $out .= $vps_ips[$i]; } $out .= "<br><br>"; // VPS status $out .= $vps_stat_out; $out .= "<h3>" . _("Current VPS status:") . "</h3><br>"; $out .= $vps_out; // VPS Monitoring $out .= "<br><h3>" . _("Service monitoring:") . "</h3><br>"; $frm_start = dtcFormTableAttrs() . "<form action=\"?\">\n<input type=\"hidden\" name=\"adm_login\" value=\"{$adm_login}\">\n<input type=\"hidden\" name=\"adm_pass\" value=\"{$adm_pass}\">\n<input type=\"hidden\" name=\"addrlink\" value=\"{$addrlink}\">"; $out .= $frm_start . "\n<input type=\"hidden\" name=\"action\" value=\"set_vps_monitoring_values\">\n"; if ($vps["monitor_ping"] == "yes") { $monitor_ping = " checked "; } else { $monitor_ping = " "; } if ($vps["monitor_ssh"] == "yes") { $monitor_ssh = " checked "; } else { $monitor_ssh = " "; } if ($vps["monitor_http"] == "yes") { $monitor_http = " checked "; } else { $monitor_http = " "; } if ($vps["monitor_smtp"] == "yes") { $monitor_smtp = " checked "; } else { $monitor_smtp = " "; } if ($vps["monitor_pop3"] == "yes") { $monitor_pop3 = " checked "; } else { $monitor_pop3 = " "; } if ($vps["monitor_imap4"] == "yes") { $monitor_imap4 = " checked "; } else { $monitor_imap4 = " "; } if ($vps["monitor_ftp"] == "yes") { $monitor_ftp = " checked "; } else { $monitor_ftp = " "; } $out .= dtcFormLineDraw(_("VPS monitoring alerts email address: "), "<input type=\"text\" name=\"email_addr\" value=\"" . $vps["monitoring_email"] . "\">", 1); $out .= dtcFormLineDraw(_("Ping: "), "<input type=\"checkbox\" name=\"monitor_ping\" value=\"yes\" {$monitor_ping}>", 0); $out .= dtcFormLineDraw(_("SSH: "), "<input type=\"checkbox\" name=\"monitor_ssh\" value=\"yes\" {$monitor_ssh}>", 1); $out .= dtcFormLineDraw(_("HTTP: "), "<input type=\"checkbox\" name=\"monitor_http\" value=\"yes\" {$monitor_http}>", 0); $out .= dtcFormLineDraw(_("SMTP: "), "<input type=\"checkbox\" name=\"monitor_smtp\" value=\"yes\" {$monitor_smtp}>", 1); $out .= dtcFormLineDraw(_("POP3: "), "<input type=\"checkbox\" name=\"monitor_pop3\" value=\"yes\" {$monitor_pop3}>", 0); $out .= dtcFormLineDraw(_("IMAP4: "), "<input type=\"checkbox\" name=\"monitor_imap4\" value=\"yes\" {$monitor_imap4}>", 1); $out .= dtcFormLineDraw(_("FTP: "), "<input type=\"checkbox\" name=\"monitor_ftp\" value=\"yes\" {$monitor_ftp}>", 0); $out .= dtcFormLineDraw("", dtcApplyButton(), 1); $out .= "</form></table>"; return $out; }
function terminate($errString) { global $errorset; $_SESSION['lastlog'] = $errString; $_SESSION['callSID'] = ''; $errorset = true; } $soap_client = connectToVPSServer($_SESSION['vps_node']); if ($soap_client != false) { $err = $soap_client->getError(); if ($err) { terminate("Could not get VPS install log. Error: " . $err); } else { sleep($delay); // delay AJAX refresh 2 seconds - FIXME change to what you want $vps_remote_info = getVPSInfo($_SESSION['vps_node'], $_SESSION['vps_name'], $soap_client); if ($vps_remote_info != "mkos") { $_SESSION['callSID'] = ''; } // install finished, set termination signal $_SESSION['lastlog'] = $soap_client->call("getVPSInstallLog", array("vpsname" => $_SESSION['vps_name'], "numlines" => "20"), "", "", ""); // get last 20 log lines } } else { terminate("Couldn't connect to VPS node {$vps_node} !"); } echo json_encode($_SESSION); // send callSID and lastlog back to the browser if ($_SESSION['callSID'] == '') { // kill session if done session_destroy();
function drawAdminTools_VPSInstallation($admin, $vps) { global $vps_name; global $vps_node; global $adm_login; global $adm_pass; global $rub; global $addrlink; global $vps_soap_err; global $pro_mysql_product_table; global $pro_mysql_vps_ip_table; global $pro_mysql_vps_stats_table; global $secpayconf_currency_letters; global $panel_type; global $submit_err; $reinstall_os = 1; get_secpay_conf(); $out = "<font color=\"red\">{$submit_err} {$vps_soap_err}</font>"; $checker = checkVPSAdmin($adm_login, $adm_pass, $vps_node, $vps_name); if ($checker != true) { return _("Credential not correct: can't display in file ") . __FILE__ . " line " . __LINE__; } $vps_out = ""; // Calculate last month dates $cur_year = date("Y"); $cur_month = date("m"); $last_month = $cur_month - 1; if ($last_month == 0) { $last_month_year = $cur_year - 1; $last_month = 12; } else { $last_month_year = $cur_year; } $tow_month_ago = $last_month - 1; if ($tow_month_ago == 0) { $tow_month_ago = 12; $tow_month_ago_year = $last_month_year - 1; } else { $tow_month_ago_year = $last_month_year; } // Check if the VPS has expired or not $ar = explode("-", $vps["expire_date"]); if (date("Y") > $ar[0] || date("Y") == $ar[0] && date("m") > $ar[1] || date("Y") == $ar[0] && date("m") == $ar[1] && date("d") > $ar[2]) { $expired = "yes"; } else { $expired = "no"; } // VPS (remote SOAP) Status $soap_client = connectToVPSServer($vps_node); if ($soap_client != false) { $vps_remote_info = getVPSInfo($vps_node, $vps_name, $soap_client); if ($vps_remote_info == false) { if (strstr($vps_soap_err, _("Method getVPSState failed"))) { $vps_out .= _("Could not get remote status (Method getVPSState() failed). Maybe the VPS is not running?") . "<br><br>"; } else { if (strstr($vps_soap_err, _("couldn't connect to host"))) { $vps_out .= _("Could not get remote status: could not connect to the SOAP server (HTTP error).") . "<br><br>"; } else { $vps_out .= _("Could not get remote status. Unkown error: ") . "{$vps_soap_err}<br><br>"; } } } else { if ($vps_remote_info == "fsck") { $vps_out .= _("Checking filesystem...") . "<br><br>"; } else { if ($vps_remote_info == "mkos") { $vps_out .= _("Reinstalling operating system...") . "<br><br>"; } else { if (isset($vps_remote_info["id"])) { $vps_out .= _("VM id: ") . $vps_remote_info["id"] . "<br>"; } if (isset($vps_remote_info["name"])) { $vps_out .= _("Name: ") . $vps_remote_info["name"] . "<br>"; } if (isset($vps_remote_info["memory"])) { $vps_out .= _("Memory: ") . $vps_remote_info["memory"] . "<br>"; } if (isset($vps_remote_info["maxmem"])) { $vps_out .= _("Max memory: ") . $vps_remote_info["maxmem"] . "<br>"; } else { $vps_out .= _("Maxmem: cannot fetch (maybe boot in progress?)") . "<br>"; } if (isset($vps_remote_info["cpu"])) { $vps_out .= _("Number of CPU: ") . $vps_remote_info["cpu"] . "<br>"; } else { $vps_out .= _("Number of CPU: cannot fetch (maybe boot in progress?)") . "<br>"; } if (isset($vps_remote_info["state"])) { $vps_out .= _("VPS State: ") . $vps_remote_info["state"] . "<br>"; } else { $vps_out .= _("State: cannot fetch (maybe boot in progress?)") . "<br>"; } if ($vps_remote_info["xen_type"] == 2 && isset($vps_remote_info["up_time"])) { $uptime = substr($vps_remote_info["up_time"], 0, strpos($vps_remote_info["up_time"], ".")); $uptime_s = $uptime % 60; $uptime_m = round($uptime / 60) % 60; $uptime_h = round($uptime / 3600) % 24; $uptime_j = round($uptime / 86400); if ($uptime_s > 1) { $upt_s_s = "s"; } else { $upt_s_s = ""; } if ($uptime_m > 1) { $upt_s_m = "s"; } else { $upt_s_m = ""; } if ($uptime_h > 1) { $upt_s_h = "s"; } else { $upt_s_h = ""; } if ($uptime_j > 1) { $upt_s_j = "s"; } else { $upt_s_j = ""; } $vps_out .= _("Up time: ") . "{$uptime_j} day{$upt_s_j} {$uptime_h} hour{$upt_s_h} {$uptime_m} minute{$upt_s_m} {$uptime_s} seconde{$upt_s_s}<br>"; $vps_out .= _("Last boot date: ") . date("Y-m-d H:i:s", substr($vps_remote_info["start_time"], 0, strlen($vps_remote_info["start_time"]) - 2)) . "<br>"; } $vps_out .= "<br>"; } } } } else { $vps_out .= _("Could not connect to the VPS SOAP Server."); } $frm_start = "<form action=\"?\">\n<input type=\"hidden\" name=\"adm_login\" value=\"{$adm_login}\">\n<input type=\"hidden\" name=\"adm_pass\" value=\"{$adm_pass}\">\n<input type=\"hidden\" name=\"addrlink\" value=\"{$addrlink}\">"; // The ip address(es) $vps_ips = $vps["ip_addr"]; $n = sizeof($vps_ips); if ($n > 1) { $ip_title = _("IP addresses: "); } else { $ip_title = _("IP address: "); } $out .= "<br><h3>" . $ip_title . "</h3>"; $out .= dtcFormTableAttrs(); for ($i = 0; $i < $n; $i++) { if ($i % 2) { $alt_color = 0; } else { $alt_color = 1; } $q = "SELECT * FROM {$pro_mysql_vps_ip_table} WHERE ip_addr='" . $vps_ips[$i] . "';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said: " . mysql_error()); $n2 = mysql_num_rows($r); if ($n2 != 1) { $out .= _("Error line " . __LINE__ . " file " . __FILE__); } else { $a = mysql_fetch_array($r); $out .= dtcFormLineDraw($vps_ips[$i], "{$frm_start}<input type=\"hidden\" name=\"action\" value=\"set_ip_reverse_dns\">\n\t<input type=\"hidden\" name=\"ip_addr\" value=\"" . $vps_ips[$i] . "\">\n\t<input type=\"text\" name=\"rdns\" value=\"" . $a["rdns_addr"] . "\">\n</td><td><div class=\"input_btn_container\" onMouseOver=\"this.className='input_btn_container-hover';\"\nonMouseOut=\"this.className='input_btn_container';\">\n <div class=\"input_btn_left\"></div>\n <div class=\"input_btn_mid\"><input class=\"input_btn\" type=\"submit\" value=\"" . _("Change RDNS") . "\"></div>\n <div class=\"input_btn_right\"></div>\n</div></form>", $alt_color); } } $out .= "</table><br><br>"; // VPS status $out .= "<h3>" . _("Current VPS status:") . "</h3><br>"; $out .= $vps_out; // Start / stop VPS $out .= "<h3>" . _("Start and stop of your VPS:") . "</h3><br>"; if ($vps_remote_info == "fsck") { $out .= _("Please wait until file system check is finished first.") . "<br><br>"; } else { if ($vps_remote_info == "mkos") { $out .= _("Please wait until operating system reinstallation has completed.") . "<br><br>"; $reinstall_os = 1; } else { if ($vps_remote_info == true) { $out .= $frm_start . "<input type=\"hidden\" name=\"action\" value=\"shutdown_vps\">\n" . submitButtonStart() . _("Gracefully shutdown (xm shutdown)") . submitButtonEnd() . "\n</form><br><br>"; $out .= $frm_start . "<input type=\"hidden\" name=\"action\" value=\"destroy_vps\">\n" . submitButtonStart() . _("Immediate kill (xm destroy)") . submitButtonEnd() . "\n</form><br><br>"; $out .= _("To do a file system check or an operating system reinstallation, you need to shutdown or destroy your server first.") . "<br><br>"; } else { if ($expired == "yes") { $out .= _("You cannot start your VPS if it has expired. Please renew it if you want the boot up (xm start) button to appear here."); } else { $out .= $frm_start . "<input type=\"hidden\" name=\"action\" value=\"start_vps\">" . submitButtonStart() . _("Boot up (xm start)") . submitButtonEnd() . "<br><br></form>"; } // FSCK $out .= "<h3>" . _("File-system check:") . "</h3><br>"; $out .= $frm_start . "<input type=\"hidden\" name=\"action\" value=\"fsck_vps\">" . submitButtonStart() . _("File system check (fsck)") . submitButtonEnd() . "\n<br><br></form>"; // OS reinstall $out .= "<h3>" . _("Reinstall operating system:") . "</h3><br>"; $out .= _("Currently installed operating system: ") . $vps["operatingsystem"] . "<br>"; $deb_selected = " "; $debdtc_selected = " "; $cent_selected = " "; $gen_selected = " "; $bsd_selected = " "; $xenhvm_selected = " "; switch ($vps["operatingsystem"]) { case "debian": $deb_selected = " selected "; break; case "debian-dtc": $debdtc_selected = " selected "; break; case "centos": $cent_selected = " selected "; break; case "netbsd": $bsd_selected = " selected "; break; case "xenhvm": $xenhvm_selected = " selected "; break; default: break; } // Operating system selection popup and reinstallation button $out .= $frm_start . "<table><tr><td>" . _("Operating system:") . " </td><td><select name=\"os_type\">\n<option value=\"debian\" {$deb_selected}>Debian (" . _("network install with debootstrap") . ")</option>\n<option value=\"debian-dtc\" {$debdtc_selected}>Debian with DTC panel (" . _("network install with debootstrap") . ")</option>\n<option value=\"centos\" {$cent_selected}>CentOS (" . _("network install with yum") . ")</option>\n<option value=\"netbsd\" {$bsd_selected}>NetBSD (" . _("network setup with install kernel") . ")</option>\n<option value=\"xenhvm\" {$xenhvm_selected}>Xen HVM (" . _("boot on your own .iso image") . ")</option>"; $installable_os = getInstallableOS($soap_client); $nbr_os = sizeof($installable_os); for ($i = 0; $i < $nbr_os; $i++) { $os_name = $installable_os[$i]; if ($vps["operatingsystem"] == $os_name) { $selected = " selected "; } else { $selected = ""; } $out .= "<option value=\"{$os_name}\" {$selected}>{$os_name} (" . _("operating system image") . ")</option>"; } $installable_app = getInstallableAPP($soap_client); $nbr_app = sizeof($installable_app); for ($i = 0; $i < $nbr_app; $i++) { $app_name = $installable_app[$i]; if ($vps["operatingsystem"] == $os_name) { $selected = " selected "; } else { $selected = ""; } $out .= "<option value=\"{$app_name}\" {$selected}>{$app_name} (" . _("applicance builder") . ")</option>"; } $out .= "</select></td></tr>\n<tr><td>" . "VPS root password:"******" </td><td><input type=\"password\" name=\"root_password\"><input type=\"hidden\" name=\"action\" value=\"reinstall_os\"></td></tr>\n<tr><td></td><td>" . submitButtonStart() . _("Reinstall operating system") . submitButtonEnd() . "\n</td></tr></table></form>"; // } // BSD kernel change popup if ($vps["operatingsystem"] == "netbsd") { if ($vps["bsdkernel"] == "install") { $normal_selected = " "; $install_selected = " selected "; } else { $normal_selected = " selected "; $install_selected = " "; } $out .= $frm_start . "<select name=\"bsdkernel\">\n <option value=\"normal\" {$normal_selected}>Normal</option>\n <option value=\"install\" {$install_selected}>Install</option>\n </select><input type=\"hidden\" name=\"action\" value=\"change_bsd_kernel_type\">\n " . submitButtonStart() . _("Change NetBSD kernel") . submitButtonEnd() . "\n </form>"; } if ($vps["operatingsystem"] == "xenhvm") { $vps_xenhvm_iso = getVPSIso($vps_node, $vps_name, $soap_client); $out .= "<br><br>" . _("To upload .iso files so they appear below and you can boot on them, you can upload them using ftp, ") . "xen{$vps_name}@{$vps_node}" . _(" using the password of your physical console.") . "<br><br>"; $boot_device_selector = "<select name=\"xenhvm_iso\">\n<option value=\"hdd\">" . _("Boot on hard drive") . "</option>"; $n_iso = sizeof($vps_xenhvm_iso); if (is_array($vps_xenhvm_iso)) { for ($i = 0; $i < $n_iso; $i++) { $iso = $vps_xenhvm_iso[$i]; if ($vps["howtoboot"] == $iso) { $selected = " selected "; } else { $selected = " "; } $boot_device_selector .= "<option value=\"" . htmlspecialchars($iso) . "\" {$selected}>" . htmlspecialchars($iso) . "</option>"; } } $boot_device_selector .= "</select>"; if ($vps["vncpassword"] == "no_vnc") { $vncons_act_yes_selected = " "; $vncons_act_no_selected = " checked "; } else { $vncons_act_yes_selected = " "; $vncons_act_no_selected = " checked "; } $out .= dtcFormTableAttrs(); $out .= dtcFormLineDraw($frm_start . _("Boot device: "), "<input type=\"hidden\" name=\"action\" value=\"change_xenhvm_boot_iso\">" . $boot_device_selector, 1); $out .= dtcFormLineDraw(_("VNC console password: "******"<input type=\"text\" name=\"vnc_console_pass\" value=\"\">", 0); $out .= dtcFormLineDraw(_("VNC console activation: "), "<input type=\"radio\" name=\"vnc_console_activate\" value=\"yes\" {$vncons_act_yes_selected}>" . _("yes") . " <input type=\"radio\" name=\"vnc_console_activate\" value=\"no\" {$vncons_act_no_selected}>" . _("no"), 1); $out .= dtcFormLineDraw("", submitButtonStart() . _("Write parameters") . submitButtonEnd(), 0); $out .= "</table></form>"; } } } } $out .= "<br><br>"; // SSH Physical console password changing $out .= "<h3>" . _("Physical console last display and ssh access:") . "</h3><br>"; $out .= "Once your VPS is installed, ssh to the physical console to use it for the first time." . "<br><br>"; $out .= dtcFormTableAttrs(); $out .= dtcFormLineDraw($frm_start . "<input type=\"hidden\" name=\"action\" value=\"change_xm_console_ssh_passwd\">" . _("New SSH password: "******"<input size=\"40\" type=\"text\" name=\"new_password\" value=\"\"></td><td>" . submitButtonStart() . _("Ok") . submitButtonEnd() . "</form>", 1); $out .= dtcFormLineDraw($frm_start . "<input type=\"hidden\" name=\"action\" value=\"change_xm_console_ssh_key\">" . _("New SSH key: "), "<input size=\"40\" type=\"text\" name=\"new_key\" value=\"\"></td><td>" . submitButtonStart() . _("Ok") . submitButtonEnd() . "</form>", 0); $out .= "</table>"; $out .= "<br><br>" . _("To access to your console, first enter a ssh password or key above, and then ssh to:") . "<br>xen" . $vps_name . "@" . $vps_node . "<br><br>"; $out .= "<br>" . _("You should then install sshd in your VPS and use the physical console only for debugging purposes."); $out .= "<br>" . helpLink("PmWiki/Setup-A-VPS-Once-DTC-Xen-Installed-It"); /* FIXME probably don't need any of this stuff' if($reinstall_os == 1){ if($panel_type == "admin"){ $path_url = "/dtcadmin"; }else{ $path_url = "/dtc"; } $ajax_url = "https://".$_SERVER["SERVER_NAME"].$path_url."/xanjaxPushlet.php?"; $ajax_auth = "adm_login="******"&adm_pass="******"&vps_node=".$vps_node."&vps_name=".$vps_name; $r = ""; }else{ $r = $soap_client->call("getVPSInstallLog",array("vpsname" => $vps_name,"numlines" => "20"),"","",""); $err = $soap_client->getError(); if($err){ $r = _("Could not get VPS install log. Error: ").$err._(" maybe there are no logs yet?"); } // print_r($r); $r = str_replace("\n\n","\n",$r); } */ // tested AJAX stuff starts here $out .= "<script language=\"javascript\" src=\"xanjaxXHR.js\"></script>"; $out .= "<h3>" . _("Installation log (last 20 lines):") . "</h3><br>"; $out .= "<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n<tr><td bgcolor=\"black\"><font color=\"white\">{$vps_node}:{$vps_name}</font></td>\n<tr><td bgcolor=\"black\"><font color=\"white\"><pre id=\"reinstall_os_log\" class=\"reinstall_os_log\"><font color=\"red\">dtc-xen</font>@<font color=\"blue\">{$vps_node}</font>>_ #<br>...</pre></font></td>\n</table>"; $out .= "\n\t\t<script type=\"text/javascript\">\n\t\t\txanGet(logPushlet,\"logPushlet.php?vps_node=" . $vps_node . "&vps_name=" . $vps_name . "\");\n\t\t</script>"; return $out; }