On peut démarrer et éteindre des vms \o/
This commit is contained in:
parent
184afe88ea
commit
9d6374fd8b
|
@ -3,32 +3,52 @@
|
||||||
require_once("../class/config.php");
|
require_once("../class/config.php");
|
||||||
include_once("head.php");
|
include_once("head.php");
|
||||||
|
|
||||||
echo '<h1>youpi gestion des VM</h1>';
|
|
||||||
|
|
||||||
|
|
||||||
$fields = array (
|
$fields = array (
|
||||||
"action" => array ("request", "string", FALSE),
|
"action" => array ("get", "string", ''),
|
||||||
"login" => array ("request", "string", FALSE),
|
|
||||||
"pass" => array("request", "string", FALSE),
|
|
||||||
"uid" => array("request", "integer", FALSE),
|
|
||||||
);
|
);
|
||||||
getFields($fields);
|
getFields($fields);
|
||||||
|
|
||||||
if (in_array($action, array('start', 'stop', 'monit')))
|
if (in_array($action, array('start', 'stop', 'monit'))) {
|
||||||
{
|
|
||||||
#$res = call_user_func(array($lxc, $action));
|
|
||||||
$res = $hooks->invoke($action, array(), 'lxc');
|
$res = $hooks->invoke($action, array(), 'lxc');
|
||||||
var_dump ($res);
|
printvar($res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$infos = $lxc->getvm();
|
||||||
|
|
||||||
|
printvar($infos);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<h1>Dev only</h1>
|
<h3><?php __('Console access'); ?></h3>
|
||||||
<form method="post">
|
<hr/>
|
||||||
<p>Action: <select name="action"><option value="monit">Monitoring</option><option value="start">Start</option><option value="stop">Stop</option></select></p>
|
<br/>
|
||||||
<p>Login: <input type="text" name="login" value="<?php echo $mem->user['login']; ?>" /></p>
|
|
||||||
<p>Pass (hash): <input type="text" name="pass" value="<?php echo $mem->user['pass']; ?>" /></p>
|
|
||||||
<p>Uid: <input type="text" name="uid" value="<?php echo $mem->user['uid']; ?>" /></p>
|
|
||||||
<p><input type="submit" name="tester" /></p>
|
|
||||||
|
|
||||||
</form>
|
<?php if (isset($res) && ! $res['lxc']) { ?>
|
||||||
|
<div>
|
||||||
|
<span class="error">
|
||||||
|
<?php echo $err->errstr(); ?>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<?php } //isset $res ?>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<?php if (empty($infos)) {
|
||||||
|
echo '<span class="error">';
|
||||||
|
__("You can start a virtual machine.");
|
||||||
|
echo "<a href='vm.php?action=start'>"._("Click here to do so.")."</a>";
|
||||||
|
echo '</span>';
|
||||||
|
} else {
|
||||||
|
echo "<table class='tedit'>";
|
||||||
|
echo "<tr><th>"._("Hostname")."</th><td>".$infos['serialized_object']['hostname']."</td></tr>";
|
||||||
|
echo "<tr><th>"._("Start time")."</th><td>".$infos['date_start']."</td></tr>";
|
||||||
|
echo "<tr><td colspan='2'><a href='vm.php?action=stop'>"._("Click here to stop the machine")."</a></td></tr>";
|
||||||
|
echo "</table>";
|
||||||
|
|
||||||
|
|
||||||
|
} // empty infos ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
include_once("foot.php");
|
||||||
|
?>
|
||||||
|
|
|
@ -21,7 +21,7 @@ class m_lxc implements vm
|
||||||
if ( empty($this->IP)) return ; # No menu if no server
|
if ( empty($this->IP)) return ; # No menu if no server
|
||||||
|
|
||||||
$obj = array(
|
$obj = array(
|
||||||
'title' => _("Virtual server"),
|
'title' => _("Console access"),
|
||||||
'ico' => 'images/ssh.png',
|
'ico' => 'images/ssh.png',
|
||||||
'link' => 'vm.php',
|
'link' => 'vm.php',
|
||||||
'pos' => 95,
|
'pos' => 95,
|
||||||
|
@ -38,7 +38,7 @@ class m_lxc implements vm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private function sendMessage($action, $user, $password, $uid)
|
private function sendMessage($action, $user = FALSE, $password=FALSE, $uid=FALSE)
|
||||||
{
|
{
|
||||||
$fp = fsockopen($this->IP, $this->PORT, $errno, $errstr, $this->TIMEOUT);
|
$fp = fsockopen($this->IP, $this->PORT, $errno, $errstr, $this->TIMEOUT);
|
||||||
if (!$fp)
|
if (!$fp)
|
||||||
|
@ -75,7 +75,14 @@ class m_lxc implements vm
|
||||||
|
|
||||||
public function start($login = FALSE, $pass = FALSE, $uid = FALSE)
|
public function start($login = FALSE, $pass = FALSE, $uid = FALSE)
|
||||||
{
|
{
|
||||||
global $mem, $db;
|
|
||||||
|
global $mem, $db, $err;
|
||||||
|
|
||||||
|
if ($this->getvm() !== FALSE)
|
||||||
|
{
|
||||||
|
$err->raise('lxc', _('VM already started'));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
$user = $login ? $login : $mem->user['login'];
|
$user = $login ? $login : $mem->user['login'];
|
||||||
$pass = $pass ? $pass : $mem->user['pass'];
|
$pass = $pass ? $pass : $mem->user['pass'];
|
||||||
|
@ -93,6 +100,12 @@ class m_lxc implements vm
|
||||||
$date_start = 'NOW()';
|
$date_start = 'NOW()';
|
||||||
$uid = $mem->user['uid'];
|
$uid = $mem->user['uid'];
|
||||||
|
|
||||||
|
if ((int)$data['error'] != 0)
|
||||||
|
{
|
||||||
|
$err->raise('lxc', _($data['msg']));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
$db->query("INSERT INTO vm_history (ip,date_start,uid,serialized_object) VALUES ('$hostname', $date_start, '$uid', '$res')");
|
$db->query("INSERT INTO vm_history (ip,date_start,uid,serialized_object) VALUES ('$hostname', $date_start, '$uid', '$res')");
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
|
@ -125,9 +138,20 @@ class m_lxc implements vm
|
||||||
|
|
||||||
public function stop()
|
public function stop()
|
||||||
{
|
{
|
||||||
global $mem;
|
global $db, $mem;
|
||||||
printvar($mem);
|
|
||||||
echo "lxc::stop";
|
|
||||||
|
|
||||||
|
$vm = $this->getvm();
|
||||||
|
|
||||||
|
if ($vm === FALSE)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
$vm_id = $vm['serialized_object']['vm'];
|
||||||
|
$uid = $mem->user['uid'];
|
||||||
|
$vid = $vm['id'];
|
||||||
|
|
||||||
|
if ($this->sendMessage('stop', $vm_id, FALSE, FALSE) === FALSE)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return $db->query("UPDATE vm_history SET date_end = NOW() WHERE uid = '$uid' AND id = '$vid' LIMIT 1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue