summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoggzo <yogg@epsina.com>2016-03-27 19:24:03 +0200
committerYoggzo <yogg@epsina.com>2016-03-27 19:24:03 +0200
commite9c7477ff0acedf9b49e508e1543395bbcbf7533 (patch)
treee3236417f9bb7f828de4b49d6ceb45e3986131d9
parentdcf0d8b2ba2547720215f7de55a747bf7ec47a0b (diff)
Modifications in error management and correct error in Image.php
-rwxr-xr-xserver/Test/AppTestClass.php8
-rw-r--r--server/Test/imageTests.php95
-rwxr-xr-xserver/core/App.php15
-rwxr-xr-xserver/core/ErrorManagement.php37
-rwxr-xr-xserver/core/Image.php8
5 files changed, 124 insertions, 39 deletions
diff --git a/server/Test/AppTestClass.php b/server/Test/AppTestClass.php
index 3f8abbe..a663514 100755
--- a/server/Test/AppTestClass.php
+++ b/server/Test/AppTestClass.php
@@ -89,9 +89,11 @@ class AppTest{
}
public function getPostParam($name){
-
- return $this->postParams[$name];
-
+ if(isset($this->postParams[$name])){
+ return $this->postParams[$name];
+ }else{
+ $this->setOutput("Error", "Missing parameter ".$name);
+ }
}
public function setPostParam($name, $value){
diff --git a/server/Test/imageTests.php b/server/Test/imageTests.php
index d86c664..4adec08 100644
--- a/server/Test/imageTests.php
+++ b/server/Test/imageTests.php
@@ -6,6 +6,9 @@ include_once("../core/Compute.php");
$image = new Image($App);
$compute = new Compute($App);
+// Création image
+/*
+echo "Création image :</br>";
$opt = Array();
$opt['name'] = "Test";
$opt['tags'] = ['test', 'openstack'];
@@ -16,28 +19,86 @@ $opt['minDisk'] = 1;
$opt['protected'] = false;
$opt['minRam'] = 10;
-//$App->setPostParam('id', 'sdfihlus154dfhj');
-//$err = $image->action("createImage");
+$App->setPostParam('opt', $opt);
+$image->action("createImage");
+$retCreate = json_decode($App->show(), true)["Images"];
+$idNew = $retCreate['id'];
+*/
+/*
+// Delete Image
+$App->setPostParam('id', $idNew);
+$image->action("deleteImage");
+*/
-//Liste des images
+// Liste images
$image->action("listImage");
$im = $App->show();
$images = json_decode($im, true)["Images"];
-echo "Images présentes :";
-echo "</br>";
+echo "List images :</br>";
foreach($images as $i){
- $recup = $i;
- echo $recup['name'];
+ echo $i['name']."</br>"; // Nom
+ echo $i['status']."</br>"; // Status
+ $id = $i['id']; // Id
+ echo $id."</br>";
+ foreach ($i['tags'] as $tag) { // Tags
+ echo $tag."</br>";
+ }
echo "</br>";
- //echo $recup['id'];
- }
+ }
+
+
+// Details images
+echo "Détail image :</br>";
+$App->setPostParam('id', $id);
+$image->action("detailsImage");
+$retDetails = json_decode($App->show(), true)["Images"];
+echo $retDetails['id']."</br>";
+echo "</br>";
+
+
+/*
+// Download image
+$App->setPostParam('id', $id);
+$image->action("downloadImage");
+*/
+
+
+// Desactivate Images
+echo "Desactivate image : </br>";
+echo $id."</br>";
+$App->setPostParam('id', $id);
+$err = $image->action("desactivateImage");
echo "</br>";
+
+/*
+// Resactivate Images
+echo $id."</br>";
+$App->setPostParam('id', $id);
+$err = $image->action("resactivateImage");
+*/
+
+
+/*
+// Details images
+echo "Update image :</br>";
+$optUpdate = Array();
+$optUpdate['tags'] = ['ciros', 'testUpdate'];
+$App->setPostParam('id', $id);
+$App->setPostParam('opt', $optUpdate);
+$image->action("updateImage");
+$retDetails = json_decode($App->show(), true)["Images"];
+foreach ($retDetails['tags'] as $tag) { // Tags
+ echo $tag."</br>";
+}
+*/
+
+
+/*
echo "Flavors: ";
echo "</br>";
-
$compute->action("listFlavors");
$flavors = json_decode($App->show(), true)["Flavors"];
@@ -49,17 +110,5 @@ foreach($flavors as $f){
echo "vcpus=".$f['vcpus'];
echo "</br>";
}
-
-/*
-$App->setPostParam('id', 354);
-$err = $image->action("deleteImage");
-$temp = $App->show();
-$ret = json_decode($temp, true)["Images"];
-echo $ret['id'];
-*/
-
-
-
-
-
+*/
?> \ No newline at end of file
diff --git a/server/core/App.php b/server/core/App.php
index 10813bd..48bb9ab 100755
--- a/server/core/App.php
+++ b/server/core/App.php
@@ -112,15 +112,20 @@ class App{
}
public function getPostParam($name){
-
- return $this->postParams[$name];
+
+ if(isset($this->postParams[$name])){
+ return $this->postParams[$name];
+ }else{
+ $this->setOutput("Error", "Missing parameter ".$name);
+ }
}
- public function setPostParam($name, $value){
-
- $this->postParams[$name]= $value;
+
+ public function setPostParam($param, $value){
+ $this->postParams[$param] = $value;
+
}
public function setOutput($key, $out){
diff --git a/server/core/ErrorManagement.php b/server/core/ErrorManagement.php
index 3257dd3..e7cb83e 100755
--- a/server/core/ErrorManagement.php
+++ b/server/core/ErrorManagement.php
@@ -18,19 +18,48 @@ Class errorManagement{
}
public function BaseErrorHandler($error){
-
+ $this->app->setOutput("Error", "BaseError");
}
public function BadResponseHandler($error){
- $this->app->setOutput("Error", "Erreur Interne, Merci de contacter un administrateur!");
+ $statusCode = $error->getResponse()->getStatusCode();
+ switch ($statusCode) {
+ case 400:
+ $this->app->setOutput("Error", "Invalid input.");
+ break;
+
+ case 401:
+ $this->app->setOutput("Error", "Authentification failed.");
+ break;
+
+ case 403:
+ $this->app->setOutput("Error", "Operation forbidden.");
+ break;
+
+ case 404:
+ $this->app->setOutput("Error", "Ressource not found.");
+ break;
+
+ case 500:
+ $this->app->setOutput("Error", "Internal server error, please contact an administrator.");
+ break;
+
+ case 503:
+ $this->app->setOutput("Error", "Service unvailable for the moment.");
+ break;
+
+ default:
+ $this->app->setOutput("Error", "Unknow error, please contact an administrator.");
+ break;
+ }
}
public function NotImplementedHandler($error){
- $this->app->setOutput("Error", "Erreur Interne, Merci de contacter un administrateur!");
+ $this->app->setOutput("Error", "Internal error (not implemented yet), please contact an administrator");
}
public function UserInputHandler($error){
-
+ $this->app->setOutput("Error", "UserInputError");
}
public function OtherException($error){
diff --git a/server/core/Image.php b/server/core/Image.php
index 71e19ce..e9736a2 100755
--- a/server/core/Image.php
+++ b/server/core/Image.php
@@ -76,7 +76,7 @@ class image implements Core{
// Check the image name
if(isset($opt['name'])){
- $imagesList = listImage();
+ $imagesList = $this->listImage();
if(isset($imagesList)){
foreach($imagesList as $image){
if(strcmp($image->name, $opt['name']) == 0){ // if the image name already exists -> error
@@ -84,7 +84,7 @@ class image implements Core{
}
}
}
-
+ $options['name'] = $opt['name'];
}
else{
$this->app->setOutput("Error", "Missing parameter 'name' for the new image");
@@ -118,7 +118,7 @@ class image implements Core{
if(isset($opt['protected'])){ // boolean
$options['protected'] = $opt['protected'];
}
- if(isset($opt['properties'])){ // type dict ?
+ if(isset($opt['properties'])){ // type dict
$options['properties'] = $opt['properties'];
}
@@ -187,7 +187,6 @@ class image implements Core{
$this->app->setOutput("Error", "Image doesn't exist");
}
else{
- echo 'toto';
$this->app->setOutput("Images", $image);
}
}catch(BadResponseError $e){
@@ -326,6 +325,7 @@ class image implements Core{
if($image == null){ // if the image don't exists -> error
$this->app->setOutput("Error", "Image doesn't exist");
}
+
$image->reactivate();
}catch(BadResponseError $e){
$this->app->getErrorInstance()->BadResponseHandler($e);