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