<?php

// class to control vps server
// Date: 2012-06-23

/* 
vzctl [flags] create CTID --parameter value [...]	
vzctl [flags] start CTID [--wait] [--force]	
vzctl [flags] stop CTID [--fast]	
vzctl [flags] restart CTID [--wait] [--force] [--fast]	
vzctl [flags] chkpnt | restore [--dumpfile name]	
vzctl [flags] snapshot [--id uuid] [--name name] [--description desc] [--skip-suspend]	
vzctl [flags] snapshot-switch | snapshot-delete --id uuid
vzctl [flags] snapshot-list
vzctl [flags] set CTID --parameter value [...] [--save] [--force] [--reset_ub] [--setmode restart|ignore]
vzctl [flags] destroy | delete | mount | umount | status | quotaon | quotaoff | quotainit CTID
vzctl [flags] console CTID [ttynum]
vzctl [flags] convert CTID [--layout ploop[:{expanded|plain|raw}]]
vzctl [flags] exec | exec2 CTID command [arg ...]
vzctl [flags] enter CTID [--exec command [arg ...]]
vzctl [flags] runscript CTID script
vzctl --help | --version
 */
 
 
  

class Server
{
  protected $Id = -1;
  public $LastReturn = -1;
  private $LogFile = '/var/log/'; //vps.ID.log

  function __construct($Id)
  {
    $this->Id = $Id;
    $this->LogFile = $this->LogFile.'.'.$this->Id.'.log';
  }

  function create()
  {
     exec('vzctl create '.$this->Id.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }

  function start()
  {
     exec('vzctl start '.$this->Id.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }

  function stop()
  {
     exec('vzctl stop '.$this->Id.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }

  function restart()
  {
     exec('vzctl restart '.$this->Id.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }

  function destroy()
  {
     exec('vzctl destroy '.$this->Id.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }


  function exec($command)
  {
     exec('vzctl create '.$this->Id.' '.$command.' 1> '.$this->LogFile,$output,$this->LastReturn);
     return $this->LastReturn;
  }

  function GetId()
  {
	  return $this->Id;
  }
}

?>
