326 lines
8 KiB
PHP
Executable file
326 lines
8 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);
|
|
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->createFloatingIp($opt);
|
|
|
|
if(!isset($floatingip)){
|
|
$this->app->setOutput("Error", "Unknowing error during floating ip creation");
|
|
}else{
|
|
$this->app->setOutput("FloatingIp", $floatingip);
|
|
}
|
|
}catch(BadResponseError $e){
|
|
echo $e."</br>";
|
|
$this->app->getErrorInstance()->BadResponseHandler($e);
|
|
}catch(UserInputError $e){
|
|
echo $e."</br>";
|
|
$this->app->getErrorInstance()->UserInputHandler($e);
|
|
}catch(BaseError $e){
|
|
echo $e."</br>";
|
|
$this->app->getErrorInstance()->BaseErrorHandler($e);
|
|
}catch(NotImplementedError $e){
|
|
echo $e."</br>";
|
|
$this->app->getErrorInstance()->NotImplementedHandler($e);
|
|
}catch(Exception $e){
|
|
echo $e->getMessage()."</br>";
|
|
$this->app->getErrorInstance()->OtherException($e);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Show floatingip details
|
|
*
|
|
* @param String id the id of the floatingip
|
|
*
|
|
* @return floatingip details
|
|
*/
|
|
private function getFloatingIp(){
|
|
$id = $this->app->getPostParam("id");
|
|
if(!isset($id)){
|
|
$this->app->setOutput("Error", "Incorrect parameter opt");
|
|
}
|
|
|
|
try{
|
|
// List of floating IPs
|
|
$res = array();
|
|
$l = $this->libClass->listFloatingIps();
|
|
foreach ($l as $tmp) {
|
|
$res[] = $tmp;
|
|
}
|
|
|
|
// Verification if id exists
|
|
$result = null;
|
|
foreach ($res as $f) {
|
|
if(strcmp($res['id'], $id)){
|
|
$result = $f;
|
|
|
|
}
|
|
}
|
|
|
|
if(!isset($result)){ // If id doesn't exists
|
|
$this->app->setOutput("Error", "Unknow id");
|
|
}else{ // If id exists
|
|
$res = $this->libClass->getFloatingIp($id);
|
|
$this->app->setOutput("FloatingIp", $res);
|
|
}
|
|
|
|
}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{
|
|
|
|
// List of floating IPs
|
|
$res = array();
|
|
$l = $this->libClass->listFloatingIps();
|
|
foreach ($l as $tmp) {
|
|
$res[] = $tmp;
|
|
}
|
|
|
|
// Verification if id exists
|
|
$result = null;
|
|
foreach ($res as $f) {
|
|
if(strcmp($res['id'], $id)){
|
|
$result = $f;
|
|
|
|
}
|
|
}
|
|
|
|
if(!isset($result)){ // If id doesn't exists
|
|
$this->app->setOutput("Error", "Unknowing floatingip id");
|
|
}else{
|
|
$result->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{
|
|
// List of floating IPs
|
|
$res = array();
|
|
$l = $this->libClass->listFloatingIps();
|
|
foreach ($l as $tmp) {
|
|
$res[] = $tmp;
|
|
}
|
|
|
|
// Verification if id exists
|
|
$result = null;
|
|
foreach ($res as $f) {
|
|
if(strcmp($res['id'], $id)){
|
|
$result = $f;
|
|
|
|
}
|
|
}
|
|
|
|
if(!isset($result)){ // If id doesn't exists
|
|
$this->app->setOutput("Error", "Unknowing floatingip id");
|
|
}else{
|
|
$result->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{
|
|
// List of floating IPs
|
|
$res = array();
|
|
$l = $this->libClass->listFloatingIps();
|
|
foreach ($l as $tmp) {
|
|
$res[] = $tmp;
|
|
}
|
|
|
|
// Verification if id exists
|
|
$result = null;
|
|
foreach ($res as $f) {
|
|
if(strcmp($res['id'], $id)){
|
|
$result = $f;
|
|
|
|
}
|
|
}
|
|
|
|
if(!isset($result)){ // If id doesn't exists
|
|
$this->app->setOutput("Error", "Unknowing floatingip id");
|
|
}else{
|
|
$result->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);
|
|
}
|
|
}
|
|
}
|