Example #1
0
 public function work()
 {
     $t = new Timer('libvirt extension');
     if (!extension_loaded('libvirt')) {
         Errors::add('libvirt extension', 'Libvirt PHP extension not installed');
         $this->res = false;
         return;
     }
     if (!$this->connect()) {
         Errors::add('libvirt extension', 'Failed connecting');
         return;
     }
     if (!($doms = libvirt_list_domains($this->connection))) {
         Errors::add('libvirt extension', 'Failed getting domain list');
         $this->res = false;
         return;
     }
     foreach ($doms as $name) {
         if (!($domain = libvirt_domain_lookup_by_name($this->connection, $name))) {
             continue;
         }
         if (!($info = libvirt_domain_get_info($domain)) || !is_array($info)) {
             continue;
         }
         $info['autostart'] = libvirt_domain_get_autostart($domain);
         if ($info['autostart'] == 1) {
             $info['autostart'] = 'Yes';
         } elseif ($info['autostart'] == 0) {
             $info['autostart'] = 'No';
         } else {
             $info['autostart'] = 'N/A';
         }
         $info['nets'] = array();
         $nets = @libvirt_domain_get_interface_devices($domain);
         foreach ($nets as $key => $net) {
             if (!is_numeric($key)) {
                 continue;
             }
             $info['nets'][] = $net;
         }
         $info['storage'] = array();
         foreach ((array) @libvirt_domain_get_disk_devices($domain) as $blockName) {
             if (!is_string($blockName)) {
                 continue;
             }
             // Sometime device exists but libvirt fails to get more docs. just settle for device name
             if (!($blockInfo = @libvirt_domain_get_block_info($domain, $blockName)) || !is_array($blockInfo)) {
                 $info['storage'][] = array('device' => $blockName);
                 continue;
             }
             if (isset($blockInfo['partition']) && !isset($blockInfo['file'])) {
                 $blockInfo['file'] = $blockInfo['partition'];
             }
             $info['storage'][] = $blockInfo;
         }
         $this->VMs[$name] = $info;
     }
     $this->res = true;
 }
Example #2
0
 public function index()
 {
     $conn = libvirt_connect('qemu+tcp://localhost/system', false);
     $doms = libvirt_list_domains($conn);
     $r_doms = [];
     foreach ($doms as $dom) {
         $r_dom = new \stdClass();
         $res = libvirt_domain_lookup_by_name($conn, $dom);
         $dd = libvirt_domain_get_info($res);
         $r_dom->name = $dom;
         $r_dom->cpu = $dd['nrVirtCpu'];
         $r_dom->memory = $dd['maxMem'] / 1024 / 1024;
         $r_dom->state = $dd['state'];
         $r_doms[] = $r_dom;
     }
     return $r_doms;
     return Vm::orderBy('created_at', 'asc')->get();
 }
 public function work()
 {
     $t = new LinfoTimerStart('libvirt extension');
     if (!extension_loaded('libvirt')) {
         $this->LinfoError->add('libvirt extension', 'Libvirt PHP extension not installed');
         $this->res = false;
         return false;
     }
     if (!$this->connect()) {
         return false;
     }
     if (!($doms = libvirt_list_domains($this->connection))) {
         $this->LinfoError->add('libvirt extension', 'Failed getting domain list');
         $this->res = false;
         return false;
     }
     foreach ($doms as $name) {
         if (!($domain = libvirt_domain_lookup_by_name($this->connection, $name))) {
             continue;
         }
         if (!($info = libvirt_domain_get_info($domain)) || !is_array($info)) {
             continue;
         }
         $info['storage'] = array();
         foreach ((array) @libvirt_domain_get_disk_devices($domain) as $blockName) {
             if (!is_string($blockName)) {
                 continue;
             }
             // Sometime device exists but libvirt fails to get more docs. just settle for device name
             if (!($blockInfo = libvirt_domain_get_block_info($domain, $blockName)) || !is_array($blockInfo)) {
                 $info['storage'][] = array('device' => $blockName);
                 continue;
             }
             if (isset($blockInfo['partition']) && !isset($blockInfo['file'])) {
                 $blockInfo['file'] = $blockInfo['partition'];
             }
             $info['storage'][] = $blockInfo;
         }
         $this->VMs[$name] = $info;
     }
     $this->res = true;
 }
Example #4
0
        echo "Used Memory:\t" . $info['memory'] . " KB<br>";
        if ($info['state'] == '5') {
            echo "State:\t Shutdown" . "<br>";
        } else {
            echo "State:\t Running" . "<br>";
        }
        echo "CPU(s):\t" . $info['nrVirtCpu'] . "<br>";
        echo "</div><div id=\"vmop\">";
        echo "<button type=\"submit\" name=\"ON\" value=\"{$list[$i]}\"><img src=\"images/poweron.png\" alt=\"\" style=\"width:11%;height:10%;\"></button>";
        echo "<button type=\"submit\" name=\"OFF\" value=\"{$list[$i]}\"><img src=\"images/poweroff.png\" alt=\"\" style=\"width:11%;height:21%\";></button>";
        echo "</div></div>";
    }
}
if (isset($_POST['courseid'])) {
    $courseid = $_POST['courseid'];
    $list = libvirt_list_domains($libvirt->conn);
    $size = sizeof($list);
    for ($i = 0; $i < $size; $i++) {
        if (strlen(strstr($list[$i], $courseid)) > 0) {
            echo "<div id=\"uppervm\">";
            echo "<div id=\"vmname\">" . $list[$i] . "</div>";
            echo "<div id=\"vmscreen\">";
            if ($libvirt->is_active($list[$i])) {
                echo "<img src=\"images/running.jpg\" height=95% style=\"border:2px solid gray;border-radius:10px;\">";
            } else {
                echo "<img src=\"images/vm.png\" height=95% style=\"border:2px solid gray;border-radius:10px;\">";
            }
            echo "</div>";
            echo "<div id=\"vminfo\">";
            $res = libvirt_domain_lookup_by_name($libvirt->conn, $list[$i]) or die(libvirt_get_last_error());
            $info = libvirt_domain_get_info($res) or die(libvirt_get_last_error());
 function domain_get_info_call($name = false, $name_override = false)
 {
     $ret = array();
     if ($name != false) {
         $dom = $this->get_domain_object($name);
         if (!$dom) {
             return false;
         }
         if ($name_override) {
             $name = $name_override;
         }
         $ret[$name] = libvirt_domain_get_info($dom);
         return $ret;
     } else {
         $doms = libvirt_list_domains($this->conn);
         foreach ($doms as $dom) {
             $tmp = $this->domain_get_name($dom);
             $ret[$tmp] = libvirt_domain_get_info($dom);
         }
     }
     ksort($ret);
     return $ret;
 }
Example #6
0
 /**
  * Get Domains
  *
  * @return array
  */
 public function getDomains()
 {
     return libvirt_list_domains($this->resource);
 }
Example #7
0
/**
 * fetch a list of vm_virt_id from the virt host
 *
 * @global  resource $host_conn libvirt connection
 *
 * @return  array|bool          vm_virt_id list or FALSE on error
 */
function ace_kvm_get_vm_list()
{
    global $host_conn;
    $vm_list = libvirt_list_domains($host_conn);
    ace_kvm_log_last_error();
    return $vm_list;
}