diff options
| author | Yoggzo <yogg@epsina.com> | 2016-04-21 23:57:37 +0200 |
|---|---|---|
| committer | Yoggzo <yogg@epsina.com> | 2016-04-21 23:57:37 +0200 |
| commit | 0fc14b5761e558680aecc57e4d1ae8075121f01e (patch) | |
| tree | e54f60c8729892a16ba590d797a73e9f1ef2b7b6 | |
| parent | 7e5b9f3a729b676c4efcf40769ed1631bf9fc0ba (diff) | |
structure of Automating
| -rwxr-xr-x | server/Test/automatingTests.php | 60 | ||||
| -rwxr-xr-x | server/core/Automating.php | 73 |
2 files changed, 59 insertions, 74 deletions
diff --git a/server/Test/automatingTests.php b/server/Test/automatingTests.php index e8e8475..8088102 100755 --- a/server/Test/automatingTests.php +++ b/server/Test/automatingTests.php @@ -1,48 +1,20 @@ <?php include('InitTest.php'); -include_once("../core/Image.php"); -include_once("../core/Compute.php"); -include_once("../core/Network.php"); -//include_once("../core/Automating.php"); -include_once("../core/NetworkLayer3.php"); - -$image = new Image($App); -$compute = new Compute($App); -$networkLayer3 = new NetworkLayer3($App); -//$automating = new Automating($App); - -// Liste des serveurs -echo "Liste des serveurs : </br>"; -$compute->action("listServers"); -$servers = json_decode($App->show(), true)["Servers"]; -$id = null; -foreach($servers as $server){ - echo $server['name']." ".$server['id']." ".$server['ipv4']."<br>"; - if(strcmp($server['name'], "bob")){ - $id = $server['id']; - } -} -echo "</br>"; - - -//Liste des networks -echo "Liste des network : </br>"; -$network->action("list_network_ids"); -$servers = json_decode($App->show(), true)["ListNetworkIds"]; -$id = null; -foreach($servers as $server){ - echo $server."<br>"; -} -echo "</br>"; - - -// liste des floatingip -echo "Liste des floatingip : </br>"; -$networkLayer3->action("listFloatingIp"); -$listFloatingIp = json_decode($App->show(), true)["NetworkLayer3"]; -foreach ($listFloatingIp as $floatIp){ - echo $floatIp['floatingIpAddress']." ".$floatIp['id']." ".$floatIp["status"]."<br>"; -} - +include_once("../core/Automating.php"); + +$automating = new Automating($App); + +//$id = // id du réseau + +/* +// Création serveur avec ip publique +echo "Test création serveur avec ip publique : </br>"; +$App->setPostParam('networkId', $id); +$App->setPostParam('imageName', "ImageTest"); +$App->setPostParam('serverName', "ServerTest"); +$App->setPostParam('flavor', 1); +$compute->action("createPublicServer"); +$servers = json_decode($App->show(), true)["Automating"]; +*/ ?>
\ No newline at end of file diff --git a/server/core/Automating.php b/server/core/Automating.php index 4e212e7..fb42702 100755 --- a/server/core/Automating.php +++ b/server/core/Automating.php @@ -10,20 +10,18 @@ * @todo Complete the functions with errors detection and finish the descriptions */ -include("CoreInterface.php"); include("Image.php"); include("Network.php"); include("Compute.php"); -include("NetworkLayer3"); +include("NetworkLayer3.php"); -class automating implements Core{ +class automating{ /** @var App $app protected, contains the main app object */ - protected $appCompute; - protected $appImage; - protected $appNetwork; - protected $appIdentity; - protected $appNetworkLayer3; + protected $compute; + protected $image; + protected $network; + protected $networkLayer3; protected $app; /** @@ -34,15 +32,11 @@ class automating implements Core{ * @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; - $this->appNetworkLayer3 = $appNetworkLayer3; $this->app = $app; + $compute = new Compute($app); + $image = new Image($app); + $network = new Network($app); + $networkLayer3 = new NetworkLayer3($app); } /** @@ -59,14 +53,16 @@ class automating implements Core{ /** * create a new server and associate a public ip * + * @param String $networkId the id of the network where the server will be created * @param String $imageName name of the new image * @param String $serverName name ofthe new server * @param String $flavor kind of server * * @return void */ - private function createServer() + private function createPublicServer() { + $networkId = $this->app->getPostParam('networkId'); $imageName = $this->app->getPostParam('imageName'); $serverName = $this->app->getPostParam('serverName'); $flavor = $this->app->getPostParam('flavor'); @@ -84,27 +80,44 @@ class automating implements Core{ // Création image $opt = array(); $opt['name'] = $imageName; - $this->appImage->setPostParam('opt' $opt); - $this->appImage->createImage(); + $image->setPostParam('opt', $opt); + $image->action("createImage"); $image = json_decode($this->app->show(), true)["Images"]; // Création server - $this->appCompute->setPostParam('name', $serverName); - $this->appCompute->setPostParam('imageId', $image['id']); - $this->appCompute->setPostParam('flavorId', $flavor); - $this->appCompute->createServer(); + $compute->setPostParam('name', $serverName); + $compute->setPostParam('imageId', $image['id']); + $compute->setPostParam('flavorId', $flavor); + $compute->action("createServer"); $server = json_decode($this->app->show(), true)["Compute"]; - // Ajout adresse IP public - $optIp = array(); - $opt['floatingip'] = null; //new floatingip(); ??? - $opt['floating_network_id'] = $server['id']; - $this->appFloatingIp->setPostParam('opt', $optIp); - $this->appFloatingIp->create(); + // liste des adresses ip publiques diponibles + $networkLayer3->action("listFloatingIp"); + $listFloatingIp = json_decode($App->show(), true)["NetworkLayer3"]; + $ip = null; + foreach ($listFloatingIp as $f) { + if(strcmp($f['status'], "DOWN")){ + $ip = $f; + } + } + + // Si pas d'ip publique disponible on en créé une + if(!isset($ip)){ + // Ajout adresse IP public + $optIp = array(); + $opt['floatingNetworkId'] = $networkId; + $floatingIp->setPostParam('opt', $optIp); + $networkLayer3->action("createFloatingIp"); + $ip = json_decode($App->show(), true)["NetworkLayer3"]; + } + + // Association de l'ip publique au serveur + /* + * API non diponible pour le moment + */ } } - } ?> |
