blob: 2665541a62329843de2a466cf9b1ca72ac18f794 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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);
}
}
}
?>
|