Example #1
0
 public function show()
 {
     include_once "views/app.php";
     $app = new App();
     $result = $app->show();
     $this->user = unserialize($_SESSION["user"]);
     $this->vars = array();
     $this->vars["user"] = $this->user;
     $this->vars["result"] = $result;
     AppView::show($this->vars);
 }
 /**
  * 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 createPublicServer()
 {
     $networkId = $this->app->getPostParam('networkId');
     $imageName = $this->app->getPostParam('imageName');
     $serverName = $this->app->getPostParam('serverName');
     $flavor = $this->app->getPostParam('flavor');
     if (!isset($imageName)) {
         $this->app->setOutput("Error", "Incorrect imageName parameter");
     } else {
         if (!isset($serverName)) {
             $this->app->setOutput("Error", "Incorrect serverName parameter");
         } else {
             if (!isset($flavor)) {
                 $this->app->setOutput("Error", "Incorrect flavor parameter");
             } else {
                 // Création image
                 $opt = array();
                 $opt['name'] = $imageName;
                 $image->setPostParam('opt', $opt);
                 $image->action("createImage");
                 $image = json_decode($this->app->show(), true)["Images"];
                 // Création server
                 $compute->setPostParam('name', $serverName);
                 $compute->setPostParam('imageId', $image['id']);
                 $compute->setPostParam('flavorId', $flavor);
                 $compute->action("createServer");
                 $server = json_decode($this->app->show(), true)["Compute"];
                 // 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
                  */
             }
         }
     }
 }