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>"; } }
<?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;