151 lines
4 KiB
PHP
Executable file
151 lines
4 KiB
PHP
Executable file
<?php
|
|
/**
|
|
* File containing the Automating Class.
|
|
*
|
|
* @version 1.0 Initialisation of this file
|
|
* @since 1.0 Core application's file
|
|
*
|
|
* @author Evan Pisani 'yogg at epsina . com' et bhupi
|
|
*
|
|
* @todo Complete the functions with errors detection and finish the descriptions
|
|
*/
|
|
|
|
include("CoreInterface.php");
|
|
include("Image.php");
|
|
include("Network.php");
|
|
include("Compute.php");
|
|
|
|
class automating implements Core{
|
|
|
|
/** @var App $app protected, contains the main app object */
|
|
protected $appCompute;
|
|
protected $appImage;
|
|
protected $appNetwork;
|
|
protected $appIdentity;
|
|
|
|
/**
|
|
* Our library's app constructor for all server app objects
|
|
*
|
|
* @param App $app the main app object, e.g. compute, image, network, etc.
|
|
*
|
|
* @return
|
|
*/
|
|
public function __construct($app){
|
|
if(!isset($app)){
|
|
$this->app->setOutput("Error", "Parameter app missing.");
|
|
}
|
|
$this->appCompute = $appCompute;
|
|
$this->appImage = $appImage;
|
|
$this->appNetwork = $appNetwork;
|
|
$this->appIdentity = $appIdentity;
|
|
}
|
|
|
|
/**
|
|
* Execute an action
|
|
*
|
|
* @param String $action name of another function of this class
|
|
*
|
|
* @return void
|
|
*/
|
|
public function action($action){
|
|
$this->{$action.""}();
|
|
}
|
|
|
|
public function script()
|
|
{
|
|
$opt = Array();
|
|
$opt['name'] = getPostParam('name');
|
|
|
|
appImage->setPostParam('opt' $opt);
|
|
appImage->createImage();
|
|
|
|
appNetwork->create_network();
|
|
appnetwork->list_network_ids();
|
|
appNetwork->create_subnet();
|
|
|
|
appCompute->listFlavors(); //to show all flavors with detail.
|
|
appCompute->listImages(); //to show all images with detail and to verify that the image was created successfully by the call above.
|
|
|
|
appCompute->setPostParam("name","Test");
|
|
appCompute->setPostParam("imageId","CREATED_ABOVE");
|
|
appCompute->setPostParam("flavorId","1");
|
|
appCompute->createServer();
|
|
|
|
}
|
|
/**
|
|
* Create a new image on a new server
|
|
*
|
|
* @param $name the name of the new image
|
|
* @param $falvor_id the id of the flavor it will be used to create the new server
|
|
*
|
|
* @return Image the new image created
|
|
*/
|
|
private function createImageOnNewServer(){
|
|
try{
|
|
/* POURRI
|
|
$image = new Image($this->app);
|
|
$compute = new Compute($this->app);
|
|
|
|
$name = $this->app->getPostParam("name");
|
|
$falvor_id = $this->app->getPostParam("falvor_id"); // Compris entre 1 et 5 (1=petit serveur, 5=gros serveur)
|
|
|
|
$opt = Array();
|
|
$opt['name'] = $name;
|
|
$opt['visibility'] = 'public';
|
|
$opt['minDisk'] = 100; // A VOIR
|
|
$opt['minRam'] = 128; // A VOIR
|
|
$opt['protected'] = false;
|
|
|
|
$this->app->setPostParam("opt", $opt);
|
|
|
|
$image->action("createImage");
|
|
$res = json_decode($this->app->show(), true)["Images"];
|
|
|
|
|
|
$this->app->setPostParam("name", $name);
|
|
$this->app->setPostParam("imageId", $res['id']);
|
|
$this->app->setPostParam("flavorId", $falvor_id);
|
|
|
|
$compute->action("createServer");
|
|
*/
|
|
}catch(BadResponseError $e){
|
|
$this->app->getErrorInstance()->BadResponseHandler($e);
|
|
}catch(UserInputError $e){
|
|
$this->app->getErrorInstance()->UserInputHandler($e);
|
|
}catch(BaseError $e){
|
|
$this->app->getErrorInstance()->BaseErrorHandler($e);
|
|
}catch(NotImplementedError $e){
|
|
$this->app->getErrorInstance()->NotImplementedHandler($e);
|
|
}catch(Exception $e){
|
|
$this->app->getErrorInstance()->OtherException($e);
|
|
}
|
|
//$this->app->setOutput("Auto", $res);
|
|
}
|
|
|
|
|
|
/**
|
|
* Create a new image on an existing server
|
|
*
|
|
* @param $name the name of the new image
|
|
* @param $server_id the id of the server
|
|
*
|
|
* @return Image the new image created
|
|
*/
|
|
private function createImageOnServer(){
|
|
try{
|
|
|
|
}catch(BadResponseError $e){
|
|
$this->app->getErrorInstance()->BadResponseHandler($e);
|
|
}catch(UserInputError $e){
|
|
$this->app->getErrorInstance()->UserInputHandler($e);
|
|
}catch(BaseError $e){
|
|
$this->app->getErrorInstance()->BaseErrorHandler($e);
|
|
}catch(NotImplementedError $e){
|
|
$this->app->getErrorInstance()->NotImplementedHandler($e);
|
|
}catch(Exception $e){
|
|
$this->app->getErrorInstance()->OtherException($e);
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|