Esempio n. 1
0
 static function getHostString($s)
 {
     if (!$s['nameserver']) {
         $nm = "127.0.0.1";
     } else {
         $nm = str_replace(" ", ", ", $s['nameserver']);
     }
     $string = null;
     $string .= "option domain-name-servers\t{$nm};\n";
     $string .= "option domain-name \"{$s['hostname']}\";\n";
     $string .= "option host-name\t\"{$s['hostname']}\";\n";
     $i = 1;
     foreach ($s['iplist'] as $ip) {
         $ip = trim($ip);
         if (!$ip) {
             continue;
         }
         $hex = get_double_hex($i);
         $string .= "host {$s['nname']}{$i} {\n";
         $string .= "hardware ethernet {$s['macaddress']}:{$hex}; \n";
         if (!$s['networkgateway']) {
             $gw = os_get_network_gateway();
         } else {
             $gw = $s['networkgateway'];
         }
         $string .= "option routers\t{$gw};\n";
         $string .= "fixed-address {$ip};\n";
         $i++;
         $string .= "}\n\n";
     }
     return $string;
 }
Esempio n. 2
0
 public function createWindowsConfig()
 {
     $memory = $this->getRealMemory();
     if (trim(lxshell_output("uname", "-r")) === "2.6.16.33-xen0") {
         $vifnamestring = null;
     } else {
         $vifnamestring = "vifname=vif{$this->main->vifname},";
     }
     if (!$this->isUnlimited($this->main->priv->uplink_usage) && $this->main->priv->uplink_usage > 0) {
         $ratestring = "rate = {$this->main->priv->uplink_usage}KB/s,";
     } else {
         $ratestring = null;
     }
     $mac = $this->main->macaddress;
     if (!char_search_beg($mac, "aa:00")) {
         $mac = "aa:00:{$mac}";
     }
     $count = count($this->main->vmipaddress_a);
     // Big bug workaround. the first vif seems to be ignored. Need to be fixed later.
     $vifnamestring = "vifname=vif{$this->main->vifname},";
     //$vif[] = "'type=ioemu, $vifnamestring $ratestring mac=$mac:00'";
     for ($i = 1; $i <= $count; $i++) {
         $hex = get_double_hex($i);
         $h = base_convert($i, 10, 36);
         $bridgestring = null;
         if ($this->main->networkbridge && $this->main->networkbridge !== '--automatic--') {
             $bridgestring = ",bridge={$this->main->networkbridge}";
         }
         $vifnamestring = "vifname=vif{$this->main->vifname}{$h},";
         $vif[] = "'type=ioemu, {$vifnamestring} {$ratestring} mac={$mac}:{$hex} {$bridgestring}'";
     }
     $vif = implode(", ", $vif);
     $vif = "vif = [ {$vif} ]\n";
     $string = null;
     $string .= "import os, re\n";
     $string .= "arch = os.uname()[4]\n";
     $string .= "if re.search('64', arch):\n";
     $string .= "    arch_libdir = 'lib64'\n";
     $string .= "else:\n";
     $string .= "    arch_libdir = 'lib'\n";
     $string .= "name = '{$this->main->nname}'\n";
     $string .= "kernel = '/usr/lib/xen/boot/hvmloader'\n";
     $string .= "builder='hvm'\n";
     if ($this->main->isBlankWindows()) {
         $string .= "boot='d'\n";
     } else {
         $string .= "boot='c'\n";
     }
     $string .= "memory = {$memory}\n";
     $string .= $vif;
     $string .= "device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'\n";
     $string .= "vnc=1\n";
     $string .= "sdl=0\n";
     $string .= $this->addVcpu();
     $string .= "vnclisten='0.0.0.0'\n";
     $string .= "vncpasswd='{$this->main->realpass}'\n";
     if ($this->main->isBlankWindows()) {
         $string .= "disk = [ 'file:/home/wincd.img,hdc:cdrom,r', 'phy:{$this->main->maindisk},ioemu:hda,w']\n";
         $string .= "acpi=1\n";
     } else {
         $string .= "disk = [ 'phy:{$this->main->maindisk},ioemu:hda,w']\n";
         $string .= "acpi=1\n";
     }
     $string .= "vncunused=0\n";
     $string .= "vncdisplay={$this->main->vncdisplay}\n";
     if ($this->main->text_xen_config) {
         $string .= "{$this->main->text_xen_config}\n";
     }
     lxfile_mkdir($this->main->configrootdir);
     lfile_put_contents("{$this->main->configrootdir}/{$this->main->nname}.cfg", $string);
 }
Esempio n. 3
0
 function getViflist()
 {
     if (!$this->isWindows()) {
         $list[] = $this->vifname;
         return $list;
     }
     $name = $this->vifname;
     $count = count($this->vmipaddress_a);
     for ($i = 1; $i <= $count; $i++) {
         $hex = get_double_hex($i);
         $h = base_convert($i, 10, 36);
         $list[] = "{$name}{$h}";
     }
     return $list;
 }