示例#1
0
文件: w3esxi.php 项目: catding/w3esxi
/**
 * w3e_getNewVmidList()
 *
 * @param mixed $params
 * @param bool $vmid
 * @return
 */
function w3e_getNewVmidList($params, $vmid = false)
{
    $user = $params['serverusername'];
    $pass = $params['serverpassword'];
    $host = $params['serverip'];
    if (!defined('W3E_SET_ERROR')) {
        define('W3E_SET_ERROR', 1);
    }
    $vmware = new VMware();
    $vmware->setServerConfig($host, $user, $pass);
    $list = $vmware->getAllVmInfo();
    if (!$list) {
        return 'FAIL';
    }
    $allvm = array();
    foreach ($list as $vm) {
        $allvm[$vm['vmid']] = $vm['name'] . '  (' . $vm['os'] . ')';
    }
    if ($vmid && array_key_exists($vmid, $allvm)) {
        $vmidName = $allvm[$vmid];
    } else {
        $vmidName = false;
    }
    $dbresult = select_query("mod_w3esxi", "vmid", array("serverid" => $params['serverid']));
    $vmInDB = array();
    while ($fetch = mysql_fetch_array($dbresult)) {
        $vmInDB[$fetch['vmid']] = 1;
    }
    $response = array();
    $response['vmidname'] = $vmidName;
    $response['vmlist'] = array_diff_key($allvm, $vmInDB);
    asort($response['vmlist']);
    return $response;
}
示例#2
0
 private function getVMIDlist($serverIdArr)
 {
     $servers = $this->getAllServers(false, $serverIdArr);
     if (!$servers || !count($servers)) {
         $this->setErrors('There is no active server to get vmid list', 'ERROR');
         header('Location: ' . W3E_MOD_LINK . '&view=quick');
         exit;
     }
     $error = false;
     $option = null;
     foreach ($servers as $s) {
         $sid = $s['id'];
         $name = $s['servername'];
         $user = $s['username'];
         $pass = decrypt($s['password']);
         $host = $s['ipaddress'];
         $option .= '<optgroup label="' . $name . '">';
         $vmware = new VMware();
         $vmware->setServerConfig($host, $user, $pass);
         $list = $vmware->getAllVmInfo();
         if (!$list || !count($list)) {
             $this->setErrors("Cannot get vmid list from server {$name} ({$host})", 'ERROR');
             $error = true;
             continue;
         }
         foreach ($list as $vm) {
             $option .= "<option value=\"{$sid}_{$vm['vmid']}\">{$vm['vmid']} - {$vm['name']}</option>\n";
         }
         $option .= '</optgroup>';
     }
     if (!$option) {
         $this->setErrors('Cannot get vmid list from servers', 'ERROR');
         header('Location: ' . W3E_MOD_LINK . '&view=quick');
         exit;
     }
     return $option;
 }