diff options
| author | Yoggzo <yogg@epsina.com> | 2016-03-23 15:46:57 +0100 |
|---|---|---|
| committer | Yoggzo <yogg@epsina.com> | 2016-03-23 15:46:57 +0100 |
| commit | dcf0d8b2ba2547720215f7de55a747bf7ec47a0b (patch) | |
| tree | b1a2509a91d29ee8bebd83367a286cbe30af0931 /server/core | |
| parent | db2c1490b3e7a9be5ce8cbee37f772a1bd4f2268 (diff) | |
begining of automating tasks
Diffstat (limited to 'server/core')
| -rwxr-xr-x | server/core/App.php | 6 | ||||
| -rw-r--r-- | server/core/Automating.php | 95 |
2 files changed, 101 insertions, 0 deletions
diff --git a/server/core/App.php b/server/core/App.php index 6970e5f..10813bd 100755 --- a/server/core/App.php +++ b/server/core/App.php @@ -116,6 +116,12 @@ class App{ return $this->postParams[$name];
}
+
+ public function setPostParam($name, $value){
+
+ $this->postParams[$name]= $value;
+
+ }
public function setOutput($key, $out){
diff --git a/server/core/Automating.php b/server/core/Automating.php new file mode 100644 index 0000000..2665541 --- /dev/null +++ b/server/core/Automating.php @@ -0,0 +1,95 @@ +<?php +/** +* File containing the Image Class. +* +* @version 1.0 Initialisation of this file +* @since 1.0 Core application's file +* +* @author Yogg 'yogg at epsina . com' +* +* @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 $app; + + /** @var OpenStack\Identity $libClass protected, contains the library Identity object */ + protected $libClass; + + /** + * Image constructor + * + * @param App $app the main app object + * + * @return Image + */ + public function __construct($app){ + if(!isset($app)){ + $this->app->setOutput("Error", "Incorrect parameter app"); + } + $this->app = $app; + $this->libClass = $app->getLibClass("Automating"); + } + + /** + * Execute an action + * + * @param String $action name of another function of this class + * + * @return void + */ + public function action($action){ + $this->{$action.""}(); + } + + + private function createImageOnNewServer(){ + try{ + $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); + } + } + + +} + +?>
\ No newline at end of file |
