示例#1
0
文件: myvm.php 项目: cherry-wb/Qemu
 public function action_stop()
 {
     Routing::getInstance()->appendRender($this, "action_default");
     $vm = new QemuVm($_GET['vmID']);
     if ($vm->isOwner()) {
         if ($vm->status == QemuMonitor::RUNNING) {
             try {
                 $vm->connect();
             } catch (Exception $e) {
                 $vm->setStatus(QemuMonitor::SHUTDOWN);
                 return "<div class='notice warning'>Die VM scheint bereits aus zu sein.</div>";
             }
             if (!isset($e)) {
                 $vm->shutdown();
                 return "<div class='notice success'>Die VM wird ausgeschaltet.</div>";
             }
         } else {
             return "<div class='notice warning'>Die VM scheint bereits aus zu sein.</div>";
         }
     } else {
         return "<div class='notice error'>Sie besitzen nicht die Rechte die VM zu stoppen</div>";
     }
 }
示例#2
0
文件: cron.php 项目: cherry-wb/Qemu
<?php

include './config.php';
include './classes/Helper.class.php';
Helper::loadClasses();
$query = $GLOBALS['pdo']->prepare("SELECT * FROM vm WHERE status=:status AND persistent=:persistent");
$query->bindValue(":status", QemuMonitor::RUNNING, PDO::PARAM_INT);
$query->bindValue(":persisent", 0, PDO::PARAM_INT);
$query->execute();
while ($ds = $query->fetch()) {
    $last_ping = strtotime($ds['last_ping']);
    if ($last_ping < time() - (int) $GLOBALS['config']['ping_timeout']) {
        $vm = new QemuVm($ds['vmID']);
        try {
            $vm->connect();
        } catch (Exception $e) {
            $vm->setStatus(QemuMonitor::SHUTDOWN);
        }
        if (!isset($e)) {
            $vm->shutdown();
        }
    }
}
$query = null;