istic-openstack/server/core/FloatingIp.php
2016-04-19 19:44:09 +02:00

242 lines
6.1 KiB
PHP
Executable file

<?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 {
/** @var App $app protected, contains the main app object */
protected $app;
/** @var OpenStack\Identity $libClass protected, contains the library Identity object */
protected $libClass;
/**
* floatingip constructor
*
* @param App $app the main app object
*
* @return floatingip
*/
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.""}();
}
/**
* List floatingip
*
* @return list of the floatingip
*/
private function listFloatingIp(){
try{
$result = array();
$l = $this->libClass->listFloatingIps();
error_log(var_export($l, true), 0);
echo 'toto';
foreach ($l as $tmp) {
$result[] = $tmp;
}
$this->app->setOutput("FloatingIp", $result);
}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);
}
}
/**
* 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($floatingip)){
$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{
$floatingips = listFloatingIps();
$floatingIp = null;
foreach ($floatingips as $f) {
if($f['id'] == $id){
$floatingIp = $f;
}
}
if(!isset($floatingIp)){
$this->app->setOutput("Error", "Unknowing floatingip id");
}
$floatingip->update();
}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{
$floatingips = listFloatingIps();
$floatingIp = null;
foreach ($floatingips as $f) {
if($f['id'] == $id){
$floatingIp = $f;
}
}
if(!isset($floatingIp)){
$this->app->setOutput("Error", "Unknowing floatingip id");
}
$floatingip->delete();
}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{
$floatingips = listFloatingIps();
$floatingIp = null;
foreach ($floatingips as $f) {
if($f['id'] == $id){
$floatingIp = $f;
}
}
if(!isset($floatingIp)){
$this->app->setOutput("Error", "Unknowing floatingip id");
}
$floatingip->retrieve();
}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);
}
}
}