<?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() { appImage->createImage(); appImage->create_network(); appImage->list_network_ids(); appImage->create_subnet(); appCompute->listFlavors(); appCompute->listImages(); 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); } } } ?>