summaryrefslogtreecommitdiff
path: root/server/core/FloatingIp.php
diff options
context:
space:
mode:
authorYoggzo <yogg@epsina.com>2016-04-18 17:20:27 +0200
committerYoggzo <yogg@epsina.com>2016-04-18 17:20:27 +0200
commit9e7eb6774b823c1716ec14476ac8e53d758143ab (patch)
treed1e7185689bb620204e25ad294f52522f6263728 /server/core/FloatingIp.php
parentaa26e5f959b0b38fa43035a700cc72b5ac85e7a3 (diff)
begining of floating ip
Diffstat (limited to 'server/core/FloatingIp.php')
-rw-r--r--server/core/FloatingIp.php195
1 files changed, 195 insertions, 0 deletions
diff --git a/server/core/FloatingIp.php b/server/core/FloatingIp.php
new file mode 100644
index 0000000..72ae836
--- /dev/null
+++ b/server/core/FloatingIp.php
@@ -0,0 +1,195 @@
+<?php
+/**
+* File containing the FloatingIp Class.
+*
+* @version 1.0 Initialisation of this file
+* @since 1.0 Core application's file
+*
+* @author Evan Pisani 'yogg at epsina . com'
+*
+* @todo Complete the functions with errors detection and finish the descriptions
+*/
+use OpenCloud\Common\Error\BadResponseError;
+use OpenCloud\Common\Error\BaseError;
+use OpenCloud\Common\Error\NotImplementedError;
+use OpenCloud\Common\Error\UserInputError;
+
+include("CoreInterface.php");
+
+/**
+* Image Class of the back-end application
+*
+* Management of images
+*
+*/
+class FloatingIp 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("FloatingIp");
+ }
+
+
+ /**
+ * Execute an action
+ *
+ * @param String $action name of another function of this class
+ *
+ * @return void
+ */
+ public function action($action){
+ $this->{$action.""}();
+ }
+
+ /**
+ * Create a new floating IP adress
+ *
+ * @param array $opt Options for the floating ip creation (floatingipo and floating network id are required, others are optionals)
+ *
+ * @return floatingip
+ */
+ private function createFloatingIp(){
+ $opt = $this->app->getPostParam("opt");
+
+ if(!isset($opt)){
+ $this->app->setOutput("Error", "Incorrect parameter opt");
+ }
+ try{
+ $floatingip = $this->libClass->create($opt);
+ if(!isset){
+ $this->app->setOutput("Error", "Unknowing error during floating ip creation");
+ }
+ else{
+ $this->app->setOutput("FloatingIp", $floatingip);
+ }
+ }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);
+ }
+ }
+
+ /**
+ * Update floating ip
+ *
+ * @param id the id of the floatingip to update
+ *
+ * @return Image
+ */
+ private function updateFloatingIp(){
+ $id = $this->app->getPostParam("id");
+
+ if(!isset($id)){
+ $this->app->setOutput("Error", "Incorrect parameter opt");
+ }
+ try{
+ $floatingip = null; //obtenir ip
+
+ $floatingip->update();
+
+ if(!isset){
+ $this->app->setOutput("Error", "Unknowing error during floating ip creation");
+ }
+ }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);
+ }
+ }
+
+ /**
+ * Delete a floating ip
+ *
+ * @param string floatingip_id the floating-ip id to delete
+ *
+ * @return void
+ */
+ private function deleteFloatingIp(){
+ $id = $this->app->getPostParam("id");
+
+ if(!isset($id)){
+ $this->app->setOutput("Error", "Incorrect parameter opt");
+ }
+ try{
+ $floatingip = null; //obtenir ip
+
+ $floatingip->delete();
+
+ if(!isset){
+ $this->app->setOutput("Error", "Unknowing error during floating ip creation");
+ }
+ }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);
+ }
+ }
+
+ /**
+ * Retrieve a floating ip
+ *
+ * @param string floatingip_id the floating-ip id to retrieve
+ *
+ * @return void
+ */
+ private function retrieveFloatingIp(){
+ $id = $this->app->getPostParam("id");
+
+ if(!isset($id)){
+ $this->app->setOutput("Error", "Incorrect parameter opt");
+ }
+ try{
+ $floatingip = null; //obtenir ip
+
+ $floatingip->retrieve();
+
+ if(!isset){
+ $this->app->setOutput("Error", "Unknowing error during floating ip creation");
+ }
+ }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);
+ }
+ }
+}