示例#1
0
文件: w3esxi.php 项目: catding/w3esxi
/**
 * w3esxi_SuspendAccount()
 *
 * @param mixed $params
 * @return
 */
function w3esxi_SuspendAccount($params)
{
    //Check Server is disabled?
    $serverid = $params['serverid'];
    $result = mysql_query("SELECT disabled FROM tblservers WHERE id = '{$serverid}'");
    $row = mysql_fetch_assoc($result);
    $disabled = $row['disabled'];
    if ($disabled) {
        return "<strong>Server is disabled.<strong>";
    }
    $result = null;
    $response = null;
    if ($params['moduletype'] == 'w3esxi') {
        $user = $params['serverusername'];
        $pass = $params['serverpassword'];
        $host = $params['serverip'];
        $dbresult = select_query("mod_w3esxi", "vmid", array("serviceid" => $params['serviceid']));
        if (mysql_num_rows($dbresult) != 1) {
            return "Cannot Suspend VPS. Problem in select VMID from DB";
        }
        $data = mysql_fetch_array($dbresult);
        $vmid = $data['vmid'];
        if ($vmid != null) {
            $vmware = new VMware();
            $vmware->setServerConfig($host, $user, $pass);
            $response = $vmware->suspend($vmid);
        } else {
            $response = false;
        }
        if ($response) {
            update_query("tblhosting", array("domainstatus" => "Suspended"), array("id" => $params['serviceid']));
            //insert logs
            w3e_insertLog('suspend', $params['serviceid'], $vmid, 'admin');
            $result = 'success';
        } else {
            $result = "Cannot Suspend VPS - VMID: {$vmid}";
            if (isset($_SESSION['W3E_MESSAGES'])) {
                $_SESSION['W3E_MESSAGES'] = array();
                unset($_SESSION['W3E_MESSAGES']);
            }
        }
    }
    return $result;
}
示例#2
0
 private function processAllVmCommand()
 {
     if (!isset($_SESSION['W3EALLVM'])) {
         $this->setErrors('Filter form is not filled.', 'ERROR');
         header('Location: ' . W3E_MOD_LINK . '&view=allvm');
         exit;
     }
     $formElementsArr = array('page', 'back', 'filter', 'view', 'action', 'W3E_ACTION');
     foreach ($formElementsArr as $element) {
         if (!isset($element, $_POST)) {
             $this->setErrors('Problem with saving form. Please go back to the AllVM page and try again.', 'ERROR');
             header('Location: ' . W3E_MOD_LINK . '&view=allvm');
             exit;
         }
     }
     $actionArr = array('poweron', 'poweroff', 'reset', 'rebootos', 'shutdownos', 'suspend', 'unsuspend');
     $_POST['W3E_ACTION'] = trim($_POST['W3E_ACTION']);
     if (!in_array($_POST['W3E_ACTION'], $actionArr)) {
         $this->setErrors('Your action is not exist', 'ERROR');
         header('Location: ' . W3E_MOD_LINK . '&view=allvm');
         exit;
     }
     $location = 'Location: ' . W3E_MOD_LINK . '&view=allvm';
     if ($_POST['back'] && intval($_POST['page']) > 0) {
         $location .= '&filter=1&page=' . intval($_POST['page']);
     }
     if (!isset($_POST['W3EServices']) || !count($_POST['W3EServices'])) {
         $this->setErrors('No item is selected.', 'WARNING');
         header($location);
         exit;
     }
     //Services
     for ($i = 0; $i < count($_POST['W3EServices']); $i++) {
         $_POST['W3EServices'][$i] = intval($_POST['W3EServices'][$i]);
     }
     $serviceIdArr = implode(',', $_POST['W3EServices']);
     $query = "\r\nSELECT\r\nmod_w3esxi.vmid,mod_w3esxi.id w3eid,mod_w3esxi.serviceid,\r\ntblservers.id serverid,tblservers.name servername,tblservers.ipaddress,tblservers.username,tblservers.password\r\nFROM mod_w3esxi,tblservers\r\nWHERE\r\nmod_w3esxi.serviceid IN ({$serviceIdArr})\r\nAND\r\ntblservers.id = mod_w3esxi.serverid\r\nAND\r\ntblservers.type = 'w3esxi'\r\nAND\r\ntblservers.disabled = 0\r\nORDER BY tblservers.name ASC\r\n        ";
     $dbresult = @mysql_query($query);
     if (!$dbresult) {
         $this->setErrors("Cannot get VMIDs from DB: " . mysql_error(), 'ERROR');
         header('Location: ' . W3E_MOD_LINK . '&view=allvm');
         exit;
     }
     if (!mysql_num_rows($dbresult)) {
         $this->setErrors("There is no item to change power state", 'ERROR');
         header($location);
         exit;
     }
     $vmware = new VMware();
     while ($row = mysql_fetch_assoc($dbresult)) {
         //Connect to vmware server
         $host = $row['ipaddress'];
         $user = $row['username'];
         $pass = decrypt($row['password']);
         $vmware->setServerConfig($host, $user, $pass);
         $result = null;
         switch ($_POST['W3E_ACTION']) {
             case 'poweron':
                 $result = $vmware->powerON($row['vmid']);
                 break;
             case 'poweroff':
                 $result = $vmware->powerOFF($row['vmid']);
                 break;
             case 'reset':
                 $result = $vmware->reset($row['vmid']);
                 break;
             case 'rebootos':
                 $result = $vmware->rebootOS($row['vmid']);
                 break;
             case 'shutdownos':
                 $result = $vmware->shutdownOS($row['vmid']);
                 break;
             case 'suspend':
                 $result = $vmware->suspend($row['vmid']);
                 break;
             case 'unsuspend':
                 $result = $vmware->unSuspend($row['vmid']);
                 break;
         }
         if (!$result) {
             $this->setErrors("Cannot {$_POST['W3E_ACTION']} VMID {$row['vmid']} from server {$row['servername']}", 'WARNING');
         } else {
             //INSERT LOG:
             $userAgent = mysql_real_escape_string(trim($_SERVER["HTTP_USER_AGENT"]));
             $ip = mysql_real_escape_string(trim($_SERVER["REMOTE_ADDR"]));
             $loggedDate = strftime('%Y-%m-%d %H:%M:%S');
             $expireDate = $loggedDate;
             $action = $_POST['W3E_ACTION'];
             if ($action != 'unsuspend' && $action != 'suspend') {
                 $lockTime = $this->getSettings($action . '_lock_time');
                 $lockTime = str_replace(array('h', 's', 'm'), array(' hour', ' sec', ' min'), $lockTime);
                 $expireDate = strftime('%Y-%m-%d %H:%M:%S', strtotime('+' . $lockTime));
             }
             $insertArr = array('w3e_id' => $row['w3eid'], 'serviceid' => $row['serviceid'], 'date_logged' => $loggedDate, 'locking_date_expired' => $expireDate, 'client_ip' => $ip, 'user_agent' => $userAgent, 'command_by' => 'admin', 'action' => $action);
             insert_query('mod_w3esxi_logs', $insertArr);
             //suspend product in DB
             if ($_POST['W3E_ACTION'] == 'suspend') {
                 update_query("tblhosting", array("domainstatus" => "Suspended"), array("id" => $row['serviceid']));
             }
             //active product in DB
             if ($_POST['W3E_ACTION'] == 'unsuspend') {
                 update_query("tblhosting", array("domainstatus" => "Active"), array("id" => $row['serviceid']));
             }
             $this->setErrors("Action '{$action}' is done for vmid: {$row['vmid']}", 'SUCCESS');
         }
     }
     header($location);
     exit;
 }