diff --git a/bureau/class/m_lxc.php b/bureau/class/m_lxc.php index c7a9267e..f32402f6 100644 --- a/bureau/class/m_lxc.php +++ b/bureau/class/m_lxc.php @@ -5,10 +5,50 @@ include_once(dirname(__FILE__) . '/vm.php'); class m_lxc implements vm { - public function start() - { - echo "lxc::start"; + // TODO Paramétrer IP / Port + public $IP = '127.0.0.1'; + public $PORT = 6504; + public $TIMEOUT = 5; + public $error = array(); + private function sendMessage($action, $user, $password, $uid) + { + $fp = fsockopen($this->IP, $this->PORT, $errno, $errstr, $this->TIMEOUT); + if (!$fp) + { + $this->error[] = 'Unable to connect'; + return FALSE; + } + + $msg = sprintf("%s|%s|%s|%d\n", $action, $user, $password, $uid); + if (fwrite ($fp, $msg) < 0) + { + $this->error[] = 'Unable to send data'; + return FALSE; + } + + $resp = fgets($fp, 4096); + fclose ($fp); + + list ($status, $ip, $hostname) = explode('|', $resp); + if (stripos($resp, 'error', 0) === 0) + { + $this->error[] = $status; + return FALSE; + } + else + { + return array('status' => $status, 'ip' => $ip, 'hostname' => $hostname); + } + } + + public function start($login = FALSE, $pass = FALSE, $uid = FALSE) + { + $res = $this->sendMessage('start', 'fser', 'pass', 42); + if ($res === FALSE) + return $this->error[0]; + else + return $res; } public function monit() @@ -18,6 +58,10 @@ class m_lxc implements vm public function stop() { + global $mem; +echo '
'; + var_dump($mem); +echo ''; echo "lxc::stop"; }