コード例 #1
0
ファイル: system.php プロジェクト: cherry-wb/Qemu
 public function action_default()
 {
     if (Modul::hasAccess('system') == false) {
         return '<div class="notice error">Sie haben keinen Zugriff</div>';
     }
     $query = $GLOBALS['pdo']->prepare("SELECT count(vmID) AS `vms`, SUM(IF(status=1,1,0)) AS `vms_on` FROM vm");
     $query->execute();
     $data = $query->fetch();
     $query = $GLOBALS['pdo']->prepare("SELECT imageID FROM images");
     $query->execute();
     $images = $query->rowCount();
     $tmp = new RainTPL();
     $tmp->assign('vms', $data['vms']);
     $tmp->assign('vms_on', $data['vms_on']);
     $tmp->assign('images', $images);
     $ram = Server::getRamSettings();
     if ($ram) {
         $ram_usage = FileSystem::formatFileSize($ram['used']) . ' / ' . FileSystem::formatFileSize($ram['all']);
     } else {
         $ram_usage = 'linux only';
     }
     $tmp->assign('ram_usage', $ram_usage);
     $cpu = Server::getCPUusage();
     if ($cpu) {
         $cpu_usage = implode(" ", array_values($cpu));
     } else {
         $cpu_usage = 'linux only';
     }
     $tmp->assign('cpu_usage', $cpu_usage);
     $free = disk_free_space('/');
     $all = disk_total_space('/');
     $tmp->assign('free', FileSystem::formatFileSize($all - $free));
     $tmp->assign('all', FileSystem::formatFileSize($all));
     $qemu_ram = Server::getQemuRamTemp();
     if ($qemu_ram !== false) {
         $tmp->assign('ram_qemu', FileSystem::formatFileSize($qemu_ram));
     } else {
         $tmp->assign('ram_qemu', 'linux only');
     }
     $roles = '';
     $query = $GLOBALS['pdo']->prepare("SELECT * FROM roles");
     $query->execute();
     while ($ds = $query->fetch()) {
         $roles .= '<option value="' . $ds['roleID'] . '">' . $ds['name'] . '</option>';
     }
     $roles = str_replace('value="' . $GLOBALS['config']['default_role'] . '"', 'value="' . $GLOBALS['config']['default_role'] . '" selected="selected"', $roles);
     $tmp->assign('roles', $roles);
     foreach ($GLOBALS['config'] as $key => $value) {
         $tmp->assign($key, $value);
     }
     return $tmp->draw('system', true);
 }
コード例 #2
0
ファイル: images.php プロジェクト: cherry-wb/Qemu
 public function action_status()
 {
     $image = $_GET['image'];
     $query = $GLOBALS['pdo']->prepare("SELECT * FROM images WHERE imageID= :imageID");
     $query->bindValue(":imageID", $image, PDO::PARAM_INT);
     $query->execute();
     if ($query->rowCount() > 0) {
         $data = $query->fetch();
         $tmp2 = new RainTPL();
         $tmp2->assign('path', $data['path']);
         $tmp2->assign('type', 'n/a');
         $tmp2->assign('virtual_size', 'n/a');
         $tmp2->assign('real_size', 'n/a');
         $status = Image::getStatus($data['imageID']);
         if ($data['type'] == "usb") {
             $tmp2->assign('type', "USB");
             $tmp2->assign('path', $data['path'] . " - " . Server::getUsbDeviceName($data['path']));
         } elseif (isset($status['type'])) {
             $tmp2->assign('type', $status['type']);
             $tmp2->assign('virtual_size', FileSystem::formatFileSize($status['virtual_size']));
             $tmp2->assign('real_size', FileSystem::formatFileSize(Helper::toBytes($status['real_size'])));
         }
         return $tmp2->draw('images_status', true);
     } else {
         return '<div class="notice warning">Es existiert kein Image mit dieser ID</div>';
     }
 }
コード例 #3
0
ファイル: myvm.php プロジェクト: cherry-wb/Qemu
 public function action_default()
 {
     $tmp2 = new RainTPL();
     $query = $GLOBALS['pdo']->prepare("SELECT * FROM vm WHERE owner = :owner");
     $query->bindValue(":owner", $_SESSION['user']->id, PDO::PARAM_INT);
     $query->execute();
     if ($query->rowCount() > 0) {
         $vms = array();
         while ($ds = $query->fetch()) {
             if ($ds['lastrun'] != '0000-00-00') {
                 $lastrun = date("d.m.Y H:i", strtotime($ds['lastrun']));
             } else {
                 $lastrun = '---';
             }
             if ($ds['status'] == QemuMonitor::RUNNING) {
                 $buttons = '<a href="index.php?site=myvm&action=stop&vmID=' . $ds['vmID'] . '" class="button red small center"><span class="icon" data-icon="Q"></span>Stop</a>';
                 $buttons .= '<a href="screenshot.php?vmID=' . $ds['vmID'] . '" class="button small center"><span class="icon" data-icon="0"></span>Screenshot</a>';
                 if ($ds['password']) {
                     $buttons .= '<a href="vnc.php?vmID=' . $ds['vmID'] . '" class="button small center grey"><span class="icon" data-icon="0"></span>VNC</a>';
                     $buttons .= '<a href="index.php?site=vnc&vmID=' . $ds['vmID'] . '" class="button small center grey"><span class="icon" data-icon="0"></span>Web-VNC</a>';
                 } else {
                     $buttons .= '<a href="#' . $ds['vmID'] . '" disabled="disabled" class="button small center grey vm_disabled"><span class="icon" data-icon="0"></span>VNC</a>';
                 }
             } else {
                 $buttons = '<a href="index.php?site=myvm&action=start&vmID=' . $ds['vmID'] . '" class="button green small center"><span class="icon" data-icon="&nbsp;"></span>Start</a>';
                 $buttons .= '<a class="button small center grey"><span class="icon" data-icon="G"></span>Edit</a>';
             }
             $vm = array();
             $vm['lastrun'] = $lastrun;
             $vm['buttons'] = $buttons;
             $vm['name'] = $ds['name'];
             $vm['ram'] = FileSystem::formatFileSize($ds['ram'] * 1024 * 1024, 0);
             $vms[] = $vm;
         }
         $tmp2->assign('vms', $vms);
         return $tmp2->draw('myvm_table', true);
     } else {
         return "Du hast noch keine VM. Du musst warten bis dir eine zugeteilt wird von den Admins.";
     }
 }
コード例 #4
0
ファイル: vms.php プロジェクト: cherry-wb/Qemu
 public function action_default()
 {
     if (Modul::hasAccess('vm_edit', 'vm_create', 'vm_remove') == false) {
         return '<div class="notice error">Sie haben keinen Zugriff</div>';
     }
     $tmp2 = new RainTPL();
     $query = $GLOBALS['pdo']->query("SELECT * FROM vm");
     $query2 = $GLOBALS['pdo']->prepare("SELECT *,i.path,i.type FROM vm_images v JOIN images i ON i.imageID=v.imageID WHERE v.vmID = :vmID");
     $query2->bindParam(':vmID', $vmID, PDO::PARAM_INT);
     if ($query->rowCount()) {
         $vms = array();
         while ($ds = $query->fetch()) {
             $vmID = $ds['vmID'];
             if ($ds['lastrun'] != '0000-00-00 00:00:00') {
                 $lastrun = date("d.m.Y H:i", strtotime($ds['lastrun']));
             } else {
                 $lastrun = '---';
             }
             if ($ds['status'] == QemuMonitor::RUNNING) {
                 $buttons = '<a href="index.php?site=vms&action=stop&vmID=' . $ds['vmID'] . '" class="button red small center "><span class="icon" data-icon="Q"></span>Stop</a>';
                 $buttons .= '<a href="vnc.php?vmID=' . $ds['vmID'] . '"class="button small center grey"><span class="icon" data-icon="0"></span>VNC</a>';
             } else {
                 $buttons = '<a href="index.php?site=vms&action=start&vmID=' . $ds['vmID'] . '" class="button green small center"><span class="icon" data-icon="&nbsp;"></span>Start</a>';
                 $buttons .= '<a href="index.php?site=vms&action=edit&vmID=' . $ds['vmID'] . '" class="button small center grey"><span class="icon" data-icon="G"></span>Edit</a>';
                 $buttons .= '<a href="index.php?site=vms&action=clone&vmID=' . $ds['vmID'] . '" class="button small center grey"><span class="icon" data-icon="R"></span>Clone</a>';
                 $buttons .= '<a href="index.php?site=vms&action=delete&vmID=' . $ds['vmID'] . '" class="button small center grey"><span class="icon" data-icon="T"></span>Delete</a>';
             }
             $vm = array();
             $vm['name'] = $ds['name'];
             $vm['owner'] = User::getUserName($ds['owner']);
             $vm['ram'] = FileSystem::formatFileSize($ds['ram'] * 1024 * 1024, 0);
             $vm['lastrun'] = $lastrun;
             $vm['buttons'] = $buttons;
             $images = array();
             $query2->execute();
             while ($dq = $query2->fetch()) {
                 $images[] = $dq['name'];
             }
             $vm['images'] = implode(", ", $images);
             $vms[] = $vm;
         }
         $tmp2->assign('vms', $vms);
     } else {
         $tmp2->assign('vms', "Es gibt noch keine VMs.");
     }
     return $tmp2->draw('vms_main', true);
 }