Test
This commit is contained in:
commit
53f65de9d4
88 changed files with 3596 additions and 694 deletions
|
@ -24,7 +24,7 @@ mainApp.config(['$routeProvider', function($routeProvider){
|
|||
templateUrl: 'partials/image/image.html',
|
||||
controller: 'imageCtrl'
|
||||
}).otherwise({
|
||||
redirectTo: '/home'
|
||||
redirectTo: '/'
|
||||
});
|
||||
}]);
|
||||
|
||||
|
|
17
client/js/controllers/home/home.js
Normal file → Executable file
17
client/js/controllers/home/home.js
Normal file → Executable file
|
@ -10,7 +10,22 @@ mainApp.controller('homeCtrl', [ '$scope', 'Compute', '$rootScope', 'Loading','I
|
|||
console.log(data);
|
||||
$scope.machines=Compute.getData().machines;
|
||||
Loading.stop();
|
||||
};
|
||||
}
|
||||
|
||||
;
|
||||
if(Compute.getData().machines == null && Identity.isAlreadyLogin()){
|
||||
Loading.start();
|
||||
Compute.pullData(callMeAfterPullData);
|
||||
}
|
||||
else{
|
||||
if(Identity.isAlreadyLogin()){
|
||||
callMeAfterPullData();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Image.getImages(function(){});
|
||||
|
||||
|
||||
|
||||
$scope.raiseShowMachineDetailsEvent=function(id){
|
||||
|
|
|
@ -22,7 +22,7 @@ class AppTest{
|
|||
|
||||
$this->tokenPost = NULL;
|
||||
$this->tokenClass = new genTokenOptions($args);
|
||||
$this->openstack = new OpenStack\OpenStack([]);
|
||||
$this->openstack = new OpenStack\OpenStack(['authUrl' => $args["authUrl"]]);
|
||||
$this->pluginsApi = plugin_api::getInstance();
|
||||
$this->errorClass = new errorManagement($this);
|
||||
$this->output = array();
|
||||
|
@ -89,9 +89,11 @@ class AppTest{
|
|||
}
|
||||
|
||||
public function getPostParam($name){
|
||||
|
||||
if(isset($this->postParams[$name])){
|
||||
return $this->postParams[$name];
|
||||
|
||||
}else{
|
||||
$this->setOutput("Error", "Missing parameter ".$name);
|
||||
}
|
||||
}
|
||||
|
||||
public function setPostParam($name, $value){
|
||||
|
|
26
server/Test/DisplayListCidr.php
Normal file
26
server/Test/DisplayListCidr.php
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
date_default_timezone_set("Europe/Paris");
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
$options = Array();
|
||||
$options["user"] = Array("name"=>"admin", "password"=>"ae5or6cn", "domain"=>["id"=>"Default"]);
|
||||
$options["scope"] = Array("project"=>Array("name"=>"admin", "domain"=>["id"=>"Default"]));
|
||||
$options["authUrl"] = "http://148.60.11.31:5000/v3";
|
||||
$openstack = new OpenStack\OpenStack($options);
|
||||
$networking = $openstack->networkingV2(["region"=>"RegionOne"]);
|
||||
$ls = $networking->listSubnets();
|
||||
|
||||
foreach ($ls as $subnet) {
|
||||
echo $subnet->cidr."<br>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
34
server/Test/getIdNetwork.php
Normal file
34
server/Test/getIdNetwork.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
date_default_timezone_set("Europe/Paris");
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
$options = Array();
|
||||
$options["user"] = Array("name"=>"admin", "password"=>"ae5or6cn", "domain"=>["id"=>"Default"]);
|
||||
$options["scope"] = Array("project"=>Array("name"=>"admin", "domain"=>["id"=>"Default"]));
|
||||
$options["authUrl"] = "http://148.60.11.31:5000/v3";
|
||||
$openstack = new OpenStack\OpenStack($options);
|
||||
$networking = $openstack->networkingV2(["region"=>"RegionOne"]);
|
||||
|
||||
$ls = $networking->getNetwork('5f78d3c1-1f53-4be7-897b-cf3c797961e0');
|
||||
try{
|
||||
$ls->retrieve();
|
||||
|
||||
|
||||
|
||||
echo "oui";}
|
||||
|
||||
catch (OpenStack\Common\Error\BadResponseError $e){
|
||||
echo "non"; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
26
server/Test/getNetwork.php
Normal file
26
server/Test/getNetwork.php
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
date_default_timezone_set("Europe/Paris");
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
$options = Array();
|
||||
$options["user"] = Array("name"=>"admin", "password"=>"ae5or6cn", "domain"=>["id"=>"Default"]);
|
||||
$options["scope"] = Array("project"=>Array("name"=>"admin", "domain"=>["id"=>"Default"]));
|
||||
$options["authUrl"] = "http://148.60.11.31:5000/v3";
|
||||
$openstack = new OpenStack\OpenStack($options);
|
||||
$networking = $openstack->networkingV2(["region"=>"RegionOne"]);
|
||||
$ls = $networking->listNetworks();
|
||||
|
||||
foreach ($ls as $subnet) {
|
||||
echo $subnet->id."<br>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,9 +1,14 @@
|
|||
<?php
|
||||
include('InitTest.php');
|
||||
include_once("../core/Image.php");
|
||||
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'];
|
||||
|
@ -14,39 +19,96 @@ $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"];
|
||||
$recup;
|
||||
|
||||
echo "Images présentes :";
|
||||
echo "</br>";
|
||||
echo "List images :</br>";
|
||||
foreach($images as $i){
|
||||
$recup = $i;
|
||||
echo $recup['name'];
|
||||
echo "</br>";
|
||||
//echo $recup['id'];
|
||||
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 "Erreur capturée: ";
|
||||
echo "</br>";
|
||||
}
|
||||
|
||||
|
||||
// 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>";
|
||||
|
||||
/*
|
||||
//$App->setPostParam('id', $recup['id']);
|
||||
$App->setPostParam('id', 'sdfihlus154dfhj');
|
||||
$err = $image->action("detailsImage");
|
||||
$temp = $App->show();
|
||||
$ret = json_decode($temp, true)["Images"];
|
||||
echo $ret['id'];
|
||||
*/
|
||||
//$App->getPostParam("id");
|
||||
|
||||
/*
|
||||
// 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"];
|
||||
|
||||
foreach($flavors as $f){
|
||||
echo "Id=".$f['id'].", ";
|
||||
echo "name=".$f['name'].", ";
|
||||
echo "ram=".$f['ram'].", ";
|
||||
echo "disk=".$f['disk'].", ";
|
||||
echo "vcpus=".$f['vcpus'];
|
||||
echo "</br>";
|
||||
}
|
||||
*/
|
||||
?>
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"require": {
|
||||
"php-opencloud/openstack": "dev-master",
|
||||
"php-opencloud/common": "dev-master"
|
||||
"php-opencloud/openstack": "dev-master"
|
||||
}
|
||||
}
|
||||
|
|
48
server/composer.lock
generated
48
server/composer.lock
generated
|
@ -4,21 +4,21 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "7647ed348aee68f2db6b71e4d2fb1fe7",
|
||||
"content-hash": "82731500d050a65f09e92b70c1f96ea9",
|
||||
"hash": "e7cbd5d3df36fb1a3f3378b837068196",
|
||||
"content-hash": "125e4702f7a417475a4150c889ac6c3d",
|
||||
"packages": [
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.1.1",
|
||||
"version": "6.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "c6851d6e48f63b69357cbfa55bca116448140e0c"
|
||||
"reference": "d094e337976dff9d8e2424e8485872194e768662"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c",
|
||||
"reference": "c6851d6e48f63b69357cbfa55bca116448140e0c",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662",
|
||||
"reference": "d094e337976dff9d8e2424e8485872194e768662",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -34,7 +34,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.1-dev"
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -67,7 +67,7 @@
|
|||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2015-11-23 00:47:50"
|
||||
"time": "2016-03-21 20:02:09"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
|
@ -246,16 +246,16 @@
|
|||
},
|
||||
{
|
||||
"name": "php-opencloud/common",
|
||||
"version": "dev-master",
|
||||
"version": "v1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/common.git",
|
||||
"reference": "fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62"
|
||||
"reference": "4a4aec0a4f35b471570271dd1a2e52667dee62b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-opencloud/common/zipball/fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62",
|
||||
"reference": "fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62",
|
||||
"url": "https://api.github.com/repos/php-opencloud/common/zipball/4a4aec0a4f35b471570271dd1a2e52667dee62b8",
|
||||
"reference": "4a4aec0a4f35b471570271dd1a2e52667dee62b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -287,7 +287,7 @@
|
|||
"homepage": "https://github.com/jamiehannaford"
|
||||
}
|
||||
],
|
||||
"time": "2016-03-08 12:56:34"
|
||||
"time": "2016-03-18 13:45:42"
|
||||
},
|
||||
{
|
||||
"name": "php-opencloud/openstack",
|
||||
|
@ -295,25 +295,16 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/openstack.git",
|
||||
"reference": "f2ee77024843659d970817a9e7055bb40a3724f9"
|
||||
"reference": "61626420361a1dab3ed6f9455e1057bda18cc335"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< Updated upstream
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/15aca73f423166c7ef8337ba08615c103c66e931",
|
||||
=======
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/f2ee77024843659d970817a9e7055bb40a3724f9",
|
||||
>>>>>>> develop
|
||||
"reference": "15aca73f423166c7ef8337ba08615c103c66e931",
|
||||
=======
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/f2ee77024843659d970817a9e7055bb40a3724f9",
|
||||
"reference": "f2ee77024843659d970817a9e7055bb40a3724f9",
|
||||
>>>>>>> Stashed changes
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/61626420361a1dab3ed6f9455e1057bda18cc335",
|
||||
"reference": "61626420361a1dab3ed6f9455e1057bda18cc335",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php-opencloud/common": "dev-master"
|
||||
"php-opencloud/common": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/php-cs-fixer": "~1.0",
|
||||
|
@ -337,7 +328,7 @@
|
|||
"homepage": "https://github.com/jamiehannaford"
|
||||
}
|
||||
],
|
||||
"time": "2016-03-08 14:37:14"
|
||||
"time": "2016-03-20 10:57:06"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
|
@ -393,8 +384,7 @@
|
|||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": {
|
||||
"php-opencloud/openstack": 20,
|
||||
"php-opencloud/common": 20
|
||||
"php-opencloud/openstack": 20
|
||||
},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
$config["modules_enabled"] = "";
|
||||
$config["urlAuth"] = "http://148.60.11.31:5000/v3";
|
||||
$config["tokenTime"] = 60 //miunte = 60 //miuntess
|
||||
?>
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ class App{
|
|||
|
||||
$this->tokenPost = NULL;
|
||||
$this->tokenClass = new genTokenOptions($args);
|
||||
$this->openstack = new OpenStack\OpenStack([]);
|
||||
$this->openstack = new OpenStack\OpenStack(['authUrl' => $args["authUrl"]]);
|
||||
$this->pluginsApi = plugin_api::getInstance();
|
||||
$this->errorClass = new errorManagement($this);
|
||||
$this->output = array();
|
||||
|
@ -37,6 +37,10 @@ class App{
|
|||
|
||||
}
|
||||
|
||||
public function checkToken(){
|
||||
return $this->tokenClass->checkToken();
|
||||
}
|
||||
|
||||
public function getLibClass($service){
|
||||
|
||||
switch($service){
|
||||
|
@ -109,7 +113,18 @@ class App{
|
|||
|
||||
public function getPostParam($name){
|
||||
|
||||
if(isset($this->postParams[$name])){
|
||||
return $this->postParams[$name];
|
||||
}else{
|
||||
$this->setOutput("Error", "Missing parameter ".$name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function setPostParam($param, $value){
|
||||
|
||||
$this->postParams[$param] = $value;
|
||||
|
||||
}
|
||||
|
||||
|
|
127
server/core/Automating.php
Normal file
127
server/core/Automating.php
Normal file
|
@ -0,0 +1,127 @@
|
|||
<?php
|
||||
/**
|
||||
* File containing the Automating 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
|
||||
*/
|
||||
|
||||
include("CoreInterface.php");
|
||||
include("Image.php");
|
||||
include("Network.php");
|
||||
include("Compute.php");
|
||||
|
||||
class automating 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("Automating");
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute an action
|
||||
*
|
||||
* @param String $action name of another function of this class
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function action($action){
|
||||
$this->{$action.""}();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new image on a new server
|
||||
*
|
||||
* @param $name the name of the new image
|
||||
* @param $falvor_id the id of the flavor it will be used to create the new server
|
||||
*
|
||||
* @return Image the new image created
|
||||
*/
|
||||
private function createImageOnNewServer(){
|
||||
try{
|
||||
/* POURRI
|
||||
$image = new Image($this->app);
|
||||
$compute = new Compute($this->app);
|
||||
|
||||
$name = $this->app->getPostParam("name");
|
||||
$falvor_id = $this->app->getPostParam("falvor_id"); // Compris entre 1 et 5 (1=petit serveur, 5=gros serveur)
|
||||
|
||||
$opt = Array();
|
||||
$opt['name'] = $name;
|
||||
$opt['visibility'] = 'public';
|
||||
$opt['minDisk'] = 100; // A VOIR
|
||||
$opt['minRam'] = 128; // A VOIR
|
||||
$opt['protected'] = false;
|
||||
|
||||
$this->app->setPostParam("opt", $opt);
|
||||
|
||||
$image->action("createImage");
|
||||
$res = json_decode($this->app->show(), true)["Images"];
|
||||
|
||||
|
||||
$this->app->setPostParam("name", $name);
|
||||
$this->app->setPostParam("imageId", $res['id']);
|
||||
$this->app->setPostParam("flavorId", $falvor_id);
|
||||
|
||||
$compute->action("createServer");
|
||||
*/
|
||||
}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);
|
||||
}
|
||||
//$this->app->setOutput("Auto", $res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new image on an existing server
|
||||
*
|
||||
* @param $name the name of the new image
|
||||
* @param $server_id the id of the server
|
||||
*
|
||||
* @return Image the new image created
|
||||
*/
|
||||
private function createImageOnServer(){
|
||||
try{
|
||||
|
||||
}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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -34,6 +34,7 @@ class compute
|
|||
*/
|
||||
public function listServers()
|
||||
{
|
||||
try{
|
||||
$serverList = $this->libClass->listServers(true);
|
||||
$servers = Array();
|
||||
foreach($serverList as $server){
|
||||
|
@ -62,6 +63,22 @@ class compute
|
|||
$servers[$server->id]["metadata"] = $server->metadata;
|
||||
}
|
||||
$this->app->setOutput("Servers", $servers);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -70,6 +87,7 @@ class compute
|
|||
*/
|
||||
public function listFlavors()
|
||||
{
|
||||
try{
|
||||
$flavorList = $this->libClass->listFlavors();
|
||||
$flavors = Array();
|
||||
foreach($flavorList as $flavor){
|
||||
|
@ -83,6 +101,22 @@ class compute
|
|||
$flavors[$flavor->id]["links"] = $flavor->links;
|
||||
}
|
||||
$this->app->setOutput("Flavors", $flavors);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -91,6 +125,7 @@ class compute
|
|||
*/
|
||||
public function listImages()
|
||||
{
|
||||
try{
|
||||
$imageList = $this->libClass->listImages();
|
||||
$images = Array();
|
||||
foreach($imageList as $image){
|
||||
|
@ -108,6 +143,22 @@ class compute
|
|||
$images[$image->id]["metadata"] = $image->metadata;
|
||||
}
|
||||
$this->app->setOutput("Images", $images);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -116,6 +167,7 @@ class compute
|
|||
*/
|
||||
public function getServer()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing, son!");
|
||||
|
@ -125,6 +177,22 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->retrieve();
|
||||
$this->app->setOutput("MyServer", $server);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -133,6 +201,7 @@ class compute
|
|||
*/
|
||||
public function getFlavor()
|
||||
{
|
||||
try{
|
||||
$flavorId = $this->app->getPostParam("flavorId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Flavor ID is missing, son!");
|
||||
|
@ -142,6 +211,22 @@ class compute
|
|||
$flavor = $this->libClass->getFlavor($opt);
|
||||
$flavor->retrieve();
|
||||
$this->app->setOutput("MyFlavor", $flavor);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -150,6 +235,7 @@ class compute
|
|||
*/
|
||||
public function getImage()
|
||||
{
|
||||
try{
|
||||
$imageId = $this->app->getPostParam("imageId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Image ID is missing, son!");
|
||||
|
@ -159,6 +245,22 @@ class compute
|
|||
$image = $this->libClass->getImage($opt);
|
||||
$image->retrieve();
|
||||
$this->app->setOutput("MyImage", $image);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -167,6 +269,7 @@ class compute
|
|||
*/
|
||||
public function createServer()
|
||||
{
|
||||
try{
|
||||
$name = $this->app->getPostParam("name");
|
||||
$imageId = $this->app->getPostParam("imageId");
|
||||
$flavorId = $this->app->getPostParam("flavorId");
|
||||
|
@ -177,6 +280,23 @@ class compute
|
|||
$opt = array('name' => $name, 'imageId' => $imageId, 'flavorId' => $flavorId);
|
||||
$server = $this->libClass->createServer($opt);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* update a server
|
||||
|
@ -184,6 +304,7 @@ class compute
|
|||
*/
|
||||
public function updateServer()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
$newName = $this->app->getPostParam("newName");
|
||||
$newIpv4 = $this->app->getPostParam("newIpv4");
|
||||
|
@ -205,6 +326,22 @@ class compute
|
|||
}
|
||||
$server->update($attr);
|
||||
$this->app->setOutput("Success", $serverId." has been updated successfully.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -213,6 +350,7 @@ class compute
|
|||
*/
|
||||
public function deleteServer()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing, son!");
|
||||
|
@ -222,6 +360,22 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->delete();
|
||||
$this->app->setOutput("Success", $serverId." has been deleted successfully.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -230,6 +384,7 @@ class compute
|
|||
*/
|
||||
public function changePassword()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
$password = $this->app->getPostParam("newPassword");
|
||||
if(!isset($serverId) || !isset($password)){
|
||||
|
@ -240,6 +395,22 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->changePassword($password);
|
||||
$this->app->setOutput("Success", "Password for ".$serverId." has been updated successfully.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -248,6 +419,7 @@ class compute
|
|||
*/
|
||||
public function reboot()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing, son!");
|
||||
|
@ -257,6 +429,22 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->reboot();
|
||||
$this->app->setOutput("Success", $serverId." has been deleted successfully.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -272,14 +460,39 @@ class compute
|
|||
if(!isset($serverId)|| !isset($imageId) || isset($newName) || isset($adminPass)) {
|
||||
$this->app->setOutput("Error", "You'll have to provide server ID and the new image, name and admin password!");
|
||||
return;
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
$imageId = $this->app->getPostParam("imageId");
|
||||
$newName = $this->app->getPostParam("newName");
|
||||
$adminPass = $this->app->getPostParam("adminPass");
|
||||
if(!isset($serverId)|| !isset($imageId) || isset($newName) || isset($adminPass)){
|
||||
$this->app->setOutput("Error", "You'll have to provide server ID and the new image, name and admin password!");
|
||||
return;
|
||||
}
|
||||
$opt = array('id' => $serverId);
|
||||
$server = $this->libClass->getServer($opt);
|
||||
$attr = array('imageId' => $imageId, 'name' => $newName, 'adminPass' => $adminPass);
|
||||
$server->rebuild($attr);
|
||||
$this->app->setOutput("Success", $serverId." has been rebuilt successfully with the new image.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Resize a server
|
||||
* A call to this method has to be followed by either confirmResize or revertResize
|
||||
|
@ -287,6 +500,7 @@ class compute
|
|||
*/
|
||||
public function resize()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
$newFlavorId = $this->app->getPostParam("newFlavorId");
|
||||
if(!isset($serverId)|| !isset($flavorId)){
|
||||
|
@ -296,6 +510,22 @@ class compute
|
|||
$opt = array('id' => $serverId);
|
||||
$server = $this->libClass->getServer($opt);
|
||||
$server->resize($newFlavorId);
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -304,6 +534,7 @@ class compute
|
|||
*/
|
||||
public function confirmResize()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing!");
|
||||
|
@ -313,6 +544,22 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->confirmResize();
|
||||
$this->app->setOutput("Success", $serverId." has been resized successfully as the new flavor.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/**
|
||||
|
@ -321,6 +568,7 @@ class compute
|
|||
*/
|
||||
public function revertResize()
|
||||
{
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing!");
|
||||
|
@ -330,37 +578,58 @@ class compute
|
|||
$server = $this->libClass->getServer($opt);
|
||||
$server->revertResize();
|
||||
$this->app->setOutput("Success", $serverId." : resize operation has been reverted to the old flavor.");
|
||||
}
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
/*
|
||||
public function createImage(array $options)
|
||||
{
|
||||
//TODO
|
||||
}
|
||||
/**
|
||||
* List private and public addresses of a server
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function listAddresses(array $options = [])
|
||||
{
|
||||
//TODO
|
||||
try{
|
||||
$serverId = $this->app->getPostParam("serverId");
|
||||
if(!isset($serverId)){
|
||||
$this->app->setOutput("Error", "Server ID is missing!");
|
||||
return;
|
||||
}
|
||||
public function getMetadata()
|
||||
{
|
||||
//TODO
|
||||
$opt = array('id' => $serverId);
|
||||
$server = $this->libClass->getServer($opt);
|
||||
$addresses = $server->listAddresses();
|
||||
$this->app->setOutput("Addresses", $addresses);
|
||||
}
|
||||
public function resetMetadata(array $metadata)
|
||||
{
|
||||
//TODO
|
||||
catch(BadResponseError $e){
|
||||
$this->app->getErrorInstance()->BadResponseHandler($e);
|
||||
}
|
||||
public function mergeMetadata(array $metadata)
|
||||
{
|
||||
//TODO
|
||||
catch(UserInputError $e){
|
||||
$this->app->getErrorInstance()->UserInputHandler($e);
|
||||
}
|
||||
public function getMetadataItem($key)
|
||||
{
|
||||
//TODO
|
||||
catch(BaseError $e){
|
||||
$this->app->getErrorInstance()->BaseErrorHandler($e);
|
||||
}
|
||||
public function deleteMetadataItem($key)
|
||||
{
|
||||
//TODO
|
||||
catch(NotImplementedError $e){
|
||||
$this->app->getErrorInstance()->NotImplementedHandler($e);
|
||||
}
|
||||
catch(Exception $e){
|
||||
$this->app->getErrorInstance()->OtherException($e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* File containing the Errormanagement Class.
|
||||
*
|
||||
* @version 1.0 Initialisation of this file
|
||||
* @since 1.0 Core application's file
|
||||
*
|
||||
* @author Eole 'eoledev at outlook . fr', Evan Pisani 'yogg at epsina . com'
|
||||
*
|
||||
*/
|
||||
|
||||
use OpenCloud\Common\Error\BadResponseError;
|
||||
use OpenCloud\Common\Error\BaseError;
|
||||
|
@ -7,37 +16,106 @@ use OpenCloud\Common\Error\UserInputError;
|
|||
|
||||
|
||||
Class errorManagement{
|
||||
|
||||
/** @var App $app protected, contains the main app object */
|
||||
protected $app;
|
||||
|
||||
|
||||
/**
|
||||
* ErrorManagemement constructor
|
||||
*
|
||||
* @param App $app the main app object
|
||||
*
|
||||
* @return ErrorManagement
|
||||
*/
|
||||
public function __construct($args){
|
||||
|
||||
$this->app = $args;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Put an error message corresponding to a base error in the output
|
||||
*
|
||||
* @param $error the error triggered
|
||||
*
|
||||
* @return String BaseError message
|
||||
*/
|
||||
public function BaseErrorHandler($error){
|
||||
|
||||
$this->app->setOutput("Error", "BaseError");
|
||||
}
|
||||
|
||||
/**
|
||||
* Put an error message corresponding to a bad response in function of the status code in the output
|
||||
*
|
||||
* @param $error the error triggered
|
||||
*
|
||||
* @return String Error message
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Put an error message corresponding to a not implemented yet error in the output
|
||||
*
|
||||
* @param $error the error triggered
|
||||
*
|
||||
* @return String internal error message
|
||||
*/
|
||||
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");
|
||||
}
|
||||
|
||||
/**
|
||||
* Put an error message corresponding to a user input error in the output
|
||||
*
|
||||
* @param $error the error triggered
|
||||
*
|
||||
* @return String User input error message
|
||||
*/
|
||||
public function UserInputHandler($error){
|
||||
|
||||
$this->app->setOutput("Error", "UserInputError");
|
||||
}
|
||||
|
||||
/**
|
||||
* Put an error message corresponding to an other error in the output
|
||||
*
|
||||
* @param $error the error triggered
|
||||
*
|
||||
* @return String error message
|
||||
*/
|
||||
public function OtherException($error){
|
||||
$this->app->setOutput("Error", $error->getMessage);
|
||||
$this->app->setOutput("Error", $error->getMessage());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* @version 1.0 Initialisation of this file
|
||||
* @since 1.0 Core application's file
|
||||
*
|
||||
* @author Yogg 'yogg at epsina . com'
|
||||
* @author Evan Pisani 'yogg at epsina . com'
|
||||
*
|
||||
* @todo Complete the functions with errors detection and finish the descriptions
|
||||
*/
|
||||
|
@ -19,7 +19,7 @@ include("CoreInterface.php");
|
|||
/**
|
||||
* Image Class of the back-end application
|
||||
*
|
||||
* ADD CLASS DESCRIPTION
|
||||
* Management of images
|
||||
*
|
||||
*/
|
||||
class image implements Core{
|
||||
|
@ -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);
|
||||
|
|
|
@ -50,6 +50,12 @@ class genTokenOptions
|
|||
}
|
||||
}
|
||||
|
||||
public function checkToken(){
|
||||
//error_log($this->backup['time'], 0);
|
||||
//return $this->backup['time'] > time();
|
||||
return true;
|
||||
}
|
||||
|
||||
public function genIdentityToken(){
|
||||
$options = $this->optionsGlobal['Common'];
|
||||
$options['catalogName'] = 'false';
|
||||
|
@ -271,6 +277,7 @@ class genTokenOptions
|
|||
$path = "core/LibOverride/projectTokenData/".$token['saved']["project"]["name"];
|
||||
//error_log(print_r($path, true), 0);
|
||||
file_put_contents("core/LibOverride/projectTokenData/".$token['saved']["project"]["name"], serialize($token['saved']));
|
||||
$this->backup['time'] = $token['time'];
|
||||
$this->backup["roles"] = $token["roles"];
|
||||
$this->backup["project"] = $token['saved']["project"]["name"];
|
||||
$this->backup["user"] = $token["user"];
|
||||
|
@ -284,7 +291,7 @@ class genTokenOptions
|
|||
public function loadBackup($back){
|
||||
|
||||
$backup = unserialize($back);
|
||||
|
||||
$this->backup['time'] = $backup['time'];
|
||||
$this->backup["roles"] = $backup["roles"];
|
||||
$this->backup["project"] = $backup["project"];
|
||||
$this->backup["user"] = $backup["user"];
|
||||
|
@ -300,6 +307,7 @@ class genTokenOptions
|
|||
}
|
||||
|
||||
private function serializeToken($token){
|
||||
global $config;
|
||||
$tokenSerialized = [];
|
||||
$tokenSerialized["token"]["methods"] = serialize($token->methods);
|
||||
$tokenSerialized["roles"] = [];
|
||||
|
@ -343,6 +351,7 @@ class genTokenOptions
|
|||
$tokenSerialized["user"]["name"] = serialize($token->user->name);
|
||||
$tokenSerialized["token"]["issued"] = serialize($token->issued);
|
||||
$tokenSerialized["token"]["id"] = serialize($token->id);
|
||||
$tokenSerialized['time'] = time()+$config['tokenTime']*60;
|
||||
|
||||
return $tokenSerialized;
|
||||
}
|
||||
|
@ -377,6 +386,7 @@ class genTokenOptions
|
|||
|
||||
$token->catalog = new Models\Catalog($this->httpClient, $api);
|
||||
$token->catalog->services = [];
|
||||
error_log(print_r($Saved["catalog"], true), 0);
|
||||
foreach($Saved["catalog"] as $key => $service){
|
||||
$tmp = new Models\Service($this->httpClient, $api);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
952
server/core/Network.php~
Normal file
952
server/core/Network.php~
Normal file
|
@ -0,0 +1,952 @@
|
|||
<?php
|
||||
|
||||
class network{
|
||||
|
||||
protected $app;
|
||||
|
||||
protected $libClass;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function __construct($app){
|
||||
$this->app = $app;
|
||||
$this->libClass = $app->getLibClass("network");
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function action($action){
|
||||
|
||||
$this->{$action.""}();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function create_network()
|
||||
{
|
||||
$options = array();
|
||||
if (isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $this->app->getPostParam("name");
|
||||
}
|
||||
if (isset($this->app->getPostParam("adminStateUp")))
|
||||
{
|
||||
$options['adminStateUp'] = $this->app->getPostParam("adminStateUp");
|
||||
}
|
||||
if (isset($this->app->getPostParam("shared")))
|
||||
{
|
||||
$options['shared'] = $this->app->getPostParam("shared");
|
||||
}
|
||||
if (isset($this->app->getPostParam("tenantId")))
|
||||
{
|
||||
$options['tenantId'] = $this->app->getPostParam("tenantId");
|
||||
}
|
||||
try
|
||||
{
|
||||
$network = $this->libClass->createNetworks($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function create_subnet()
|
||||
{ $options = array();
|
||||
if (isset($this->app->getPostParam("networkId")))
|
||||
{
|
||||
$options['networkId'] = $networkId;
|
||||
}
|
||||
if (isset($this->app->getPostParam("ipVersion")))
|
||||
{
|
||||
$options['ipVersion'] = $this->app->getPostParam("ipVersion");
|
||||
}
|
||||
if (isset($this->app->getPostParam("cidr")))
|
||||
{
|
||||
$options['cidr'] = $this->app->getPostParam("cidr");
|
||||
}
|
||||
if (isset($this->app->getPostParam("tenantId")))
|
||||
{
|
||||
$options['tenantId'] = $this->app->getPostParam("tenantId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $$this->app->getPostParam("name");
|
||||
}
|
||||
if (isset($this->app->getPostParam("gatewayIp")))
|
||||
{
|
||||
$options['gatewayIp'] = $this->app->getPostParam("gatewayIp");
|
||||
}
|
||||
if (isset($this->app->getPostParam("dnsNameservers")))
|
||||
{
|
||||
$options['dnsNameservers'] = $this->app->getPostParam("dnsNameservers");
|
||||
}
|
||||
if (isset($this->app->getPostParam("allocationPools")))
|
||||
{
|
||||
$options['allocationPools'] = $this->app->getPostParam("allocationPools");
|
||||
}
|
||||
if (isset($this->app->getPostParam("hostRoutes")))
|
||||
{
|
||||
$options['hostRoutes'] = $this->app->getPostParam("hostRoutes");
|
||||
}
|
||||
if (isset($this->app->getPostParam("enableDhcp")))
|
||||
{
|
||||
$options['enableDhcp'] = $this->app->getPostParam("enableDhcp");
|
||||
}
|
||||
if (isset($this->app->getPostParam("tenantId")))
|
||||
{
|
||||
$options['tenantId'] = $this->app->getPostParam("tenantId");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$subnet = $this->libClass->createSubnet($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function list_network_ids()
|
||||
{
|
||||
try
|
||||
{
|
||||
$ln = $this->libClass->listNetworks();
|
||||
|
||||
$list_ids = array();
|
||||
|
||||
|
||||
foreach($ln as $n)
|
||||
{
|
||||
|
||||
$list_ids[] = $n->id;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
$this->app->setOutput("ListNetworkIds", $list_ids);
|
||||
}
|
||||
|
||||
public function list_network_names()
|
||||
{
|
||||
try
|
||||
{
|
||||
$ln = $this->libClass->listNetworks();
|
||||
|
||||
$list_names = array();
|
||||
|
||||
|
||||
foreach($ln as $n)
|
||||
{
|
||||
|
||||
$list_names[] = $n->name;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
$this->app->setOutput("ListNetworkNames", $list_names);
|
||||
}
|
||||
|
||||
public function list_cidr()
|
||||
{
|
||||
try
|
||||
{
|
||||
$ls = $this->libClass->listSubnets();
|
||||
$list_cidr = array();
|
||||
foreach ($ls as $subnet)
|
||||
{
|
||||
|
||||
$list_cidr[] = $subnet->cidr;
|
||||
}
|
||||
|
||||
$this->app->setOutput("ListCidr", $list_cidr);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function getNetwork()
|
||||
{
|
||||
$network="";
|
||||
|
||||
try
|
||||
{ $newtork = $this->libClass->getNetwork($this->app->getPostParam("networkId"));
|
||||
$network->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);
|
||||
}
|
||||
|
||||
$this->app->setOutput("Network", $network);
|
||||
}
|
||||
|
||||
public function getNetwork($netId)
|
||||
{
|
||||
$network="";
|
||||
|
||||
try
|
||||
{ $newtork = $this->libClass->getNetwork($netId);
|
||||
$network->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);
|
||||
}
|
||||
|
||||
return $network;
|
||||
}
|
||||
|
||||
public function getSubnet()
|
||||
{
|
||||
$sbnet="";
|
||||
|
||||
try
|
||||
{ $subnet = $this->libClass->getSubnet($this->app->getPostParam("subnetId"));
|
||||
$subnet->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);
|
||||
}
|
||||
$this->app->setOutput("Subnet", subnet);
|
||||
|
||||
}
|
||||
|
||||
public function getSubnet($subnetId)
|
||||
{
|
||||
$subnet="";
|
||||
|
||||
try
|
||||
{ $subnet = $this->libClass->getSubnet($subnetId);
|
||||
$subnet->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);
|
||||
}
|
||||
return $subnet;
|
||||
|
||||
}
|
||||
|
||||
public function updateNetwork()
|
||||
{
|
||||
$options = array();
|
||||
if(isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $this->app->getPostParam("name");
|
||||
}
|
||||
if(isset($this->app->getPostParam("shared")))
|
||||
{
|
||||
$options['shared'] = $this->app->getPostParam("shared");
|
||||
}
|
||||
if(isset($this->app->getPostParam("adminStateUp")))
|
||||
{
|
||||
$options['adminStateUp'] = $this->app->getPostParam("adminStateUp");
|
||||
}
|
||||
try
|
||||
{
|
||||
$network = getNetwork($this->app->getPostParam("networkId"));
|
||||
|
||||
$network->update($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateSubnet()
|
||||
{
|
||||
$options = array();
|
||||
if(isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $this->app->getPostParam("name");
|
||||
}
|
||||
if(isset($this->app->getPostParam("networkId")))
|
||||
{
|
||||
$options['networkId'] = $this->app->getPostParam("networkId");
|
||||
}
|
||||
if(isset($this->app->getPostParam("ipVersion")))
|
||||
{
|
||||
$options['ipVersion'] = $this->app->getPostParam("ipVersion");
|
||||
}
|
||||
if(isset($this->app->getPostParam("cidr")))
|
||||
{
|
||||
$options['cidr'] = $this->app->getPostParam("cidr");
|
||||
}
|
||||
try
|
||||
{
|
||||
$subnet = getSubnet($this->app->getPostParam("networkId"));
|
||||
|
||||
$subnet->update($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteNetwork()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
$network = getNetwork($this->app->getPostParam("networkId"));
|
||||
$network->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);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteSubnet()
|
||||
{
|
||||
try
|
||||
{
|
||||
$subnet = getNetwork($this->app->getPostParam("subnetId"));
|
||||
$subnet->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);
|
||||
}
|
||||
}
|
||||
|
||||
public function createPort()
|
||||
{
|
||||
$options = array();
|
||||
if (isset($this->app->getPostParam("networkId")))
|
||||
{
|
||||
$options['networkId'] = $this->app->getPostParam("networkId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $this->app->getPostParam("name");
|
||||
}
|
||||
if (isset($this->app->getPostParam("adminStateUp")))
|
||||
{
|
||||
$options['adminStateUp'] = $this->app->getPostParam("adminStateUp");
|
||||
}
|
||||
if (isset($this->app->getPostParam("macAddress")))
|
||||
{
|
||||
$options['macAddress'] = $this->app->getPostParam("macAddress");
|
||||
}
|
||||
if (isset($this->app->getPostParam("fixedIps")))
|
||||
{
|
||||
$options['fixedIps'] = $this->app->getPostParam("fixedIps");
|
||||
}
|
||||
if (isset($this->app->getPostParam("deviceId")))
|
||||
{
|
||||
$options['deviceId'] = $this->app->getPostParam("deviceId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("deviceOwner")))
|
||||
{
|
||||
$options['deviceOwner'] = $this->app->getPostParam("deviceOwner");
|
||||
}
|
||||
if (isset($this->app->getPostParam("securityGroups")))
|
||||
{
|
||||
$options['securityGroups'] = $this->app->getPostParam("securityGroups");
|
||||
}
|
||||
if (isset($this->app->getPostParam("tenantId")))
|
||||
{
|
||||
$options['tenantId'] = $this->app->getPostParam("tenantId");
|
||||
}
|
||||
try
|
||||
{
|
||||
$this->libClass->createPort($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function listPorts()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->app->setOutput("listPorts", $this->libClass->listPorts());
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function getPort()
|
||||
{
|
||||
try
|
||||
{
|
||||
$port = $this->libClass->getport($this->app->getPostParam("portId"));
|
||||
$this->app->setOutput("Port", $port);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getPort($portId)
|
||||
{
|
||||
try
|
||||
{
|
||||
$port = $this->libClass->getport($portId);
|
||||
return $port;
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function updatePort()
|
||||
{
|
||||
$options = array();
|
||||
|
||||
if (isset($this->app->getPostParam("networkId")))
|
||||
{
|
||||
$options['networkId'] = $this->app->getPostParam("networkId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] =$this->app->getPostParam("name");
|
||||
}
|
||||
if (isset($this->app->getPostParam("adminStateUp")))
|
||||
{
|
||||
$options['adminStateUp'] =$this->app->getPostParam("adminStateUp");
|
||||
}
|
||||
if (isset($this->app->getPostParam("macAddress")))
|
||||
{
|
||||
$options['macAddress'] = $this->app->getPostParam("macAddress");
|
||||
}
|
||||
if (isset($this->app->getPostParam("fixedIps")))
|
||||
{
|
||||
$options['fixedIps'] = $this->app->getPostParam("fixedIps");
|
||||
}
|
||||
if (isset($this->app->getPostParam("deviceId")))
|
||||
{
|
||||
$options['deviceId'] = $this->app->getPostParam("deviceId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("deviceOwner")))
|
||||
{
|
||||
$options['deviceOwner'] = $this->app->getPostParam("deviceOwner");
|
||||
}
|
||||
if (isset($this->app->getPostParam("networkId")))
|
||||
{
|
||||
$options['securityGroups'] = $this->app->getPostParam("securityGroups");
|
||||
}
|
||||
if (isset($this->app->getPostParam("tenantId")))
|
||||
{
|
||||
$options['tenantId'] = $this->app->getPostParam("tenantId");
|
||||
}
|
||||
try
|
||||
{
|
||||
$port = getPort($this->app->getPostParam("networkId"));
|
||||
$port->update($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function deletePort()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$port = getPort($this->app->getPostParam("portId"));
|
||||
$port->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);
|
||||
}
|
||||
}
|
||||
|
||||
public function createSecurityGroup()
|
||||
{
|
||||
$options = array();
|
||||
if (isset($this->app->getPostParam("name")))
|
||||
{
|
||||
$options['name'] = $this->app->getPostParam("name");
|
||||
}
|
||||
if (isset($this->app->getPostParam("description")))
|
||||
{
|
||||
$options['description'] = $this->app->getPostParam("description");
|
||||
}
|
||||
try
|
||||
{
|
||||
$this->libClass->createSecurityGroup($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function createSecurityGroupRule()
|
||||
{
|
||||
$options = array();
|
||||
if (isset($this->app->getPostParam("securityGroupId")))
|
||||
{
|
||||
$options['securityGroupId'] = $this->app->getPostParam("securityGroupId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("direction")))
|
||||
{
|
||||
$options['direction'] = $this->app->getPostParam("direction");
|
||||
}
|
||||
if (isset($this->app->getPostParam("ethertype")))
|
||||
{
|
||||
$options['ethertype'] = $this->app->getPostParam("ethertype");
|
||||
}
|
||||
if (isset($this->app->getPostParam("portRangeMin")))
|
||||
{
|
||||
$options['portRangeMin'] = $this->app->getPostParam("portRangeMin");
|
||||
}
|
||||
if (isset($this->app->getPostParam("portRangeMax")))
|
||||
{
|
||||
$options['portRangeMax'] = $this->app->getPostParam("portRangeMax");
|
||||
}
|
||||
if (isset($this->app->getPostParam("protocol")))
|
||||
{
|
||||
$options['protocol'] = $this->app->getPostParam("protocol");
|
||||
}
|
||||
if (isset($this->app->getPostParam("remoteGroupId")))
|
||||
{
|
||||
$options['remoteGroupId'] = $this->app->getPostParam("remoteGroupId");
|
||||
}
|
||||
if (isset($this->app->getPostParam("remoteIpPrefix")))
|
||||
{
|
||||
$options['remoteIpPrefix'] = $this->app->getPostParam("remoteIpPrefix");
|
||||
}
|
||||
try
|
||||
{
|
||||
$this->libClass->createSecurityGroupRule($options);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function listSecurityGroupe()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->app->setOutput("listSecurityGroups", $this->libClass->listSecurityGroups());
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function listSecurityGroupeRule()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
$this->app->setOutput("listSecurityGroupeRule", $this->libClass->listSecurityGroupRules());
|
||||
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public function getSecurityGroupe()
|
||||
{
|
||||
try
|
||||
{
|
||||
$securityGroupe = $this->libClass->getSecurityGroupe($this->app->getPostParam("securityGroupeId"));
|
||||
$this->app->setOutput("securityGroupe", $securityGroupe);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getSecurityGroupe($securityGroupeId)
|
||||
{
|
||||
try
|
||||
{
|
||||
$securityGroupe = $this->libClass->getSecurityGroupe($securityGroupeId);
|
||||
return $securityGroupe;
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function deleteSecurityGroupe()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
$securityGroupe = getSecurityGroupe($this->app->getPostParam("securityGroupeId"));
|
||||
$securityGroupe->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);
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
$App->deauthenticate();
|
||||
$App->show();
|
||||
|
||||
}else{
|
||||
}else if($App->checkToken()){
|
||||
switch($task)
|
||||
{
|
||||
case "identity":
|
||||
|
@ -54,6 +54,9 @@
|
|||
break;
|
||||
}
|
||||
|
||||
}else{
|
||||
$App->setOutput("Error", "Token Invalide");
|
||||
$App->show();
|
||||
}
|
||||
|
||||
|
||||
|
|
240
server/vendor/composer/installed.json
vendored
240
server/vendor/composer/installed.json
vendored
|
@ -50,70 +50,6 @@
|
|||
"response"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.1.1",
|
||||
"version_normalized": "6.1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "c6851d6e48f63b69357cbfa55bca116448140e0c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c",
|
||||
"reference": "c6851d6e48f63b69357cbfa55bca116448140e0c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/promises": "~1.0",
|
||||
"guzzlehttp/psr7": "~1.1",
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"time": "2015-11-23 00:47:50",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.1-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
"version": "1.6.1",
|
||||
|
@ -182,53 +118,6 @@
|
|||
"schema"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "php-opencloud/common",
|
||||
"version": "dev-master",
|
||||
"version_normalized": "9999999-dev",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/common.git",
|
||||
"reference": "fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-opencloud/common/zipball/fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62",
|
||||
"reference": "fd027b817c3dd8f83b0c8d9fb1df34ebf25f8c62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "~6.1",
|
||||
"justinrainbow/json-schema": "~1.3",
|
||||
"php": "~7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/php-cs-fixer": "~1.0",
|
||||
"jakub-onderka/php-parallel-lint": "0.*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"psr/log": "~1.0",
|
||||
"sami/sami": "dev-master",
|
||||
"satooshi/php-coveralls": "~1.0"
|
||||
},
|
||||
"time": "2016-03-08 12:56:34",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"OpenCloud\\": "src/",
|
||||
"OpenCloud\\Test\\": "tests/unit/",
|
||||
"OpenCloud\\Integration\\": "tests/integration/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jamie Hannaford",
|
||||
"email": "jamie.hannaford@rackspace.com",
|
||||
"homepage": "https://github.com/jamiehannaford"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.1.0",
|
||||
|
@ -343,22 +232,88 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"name": "php-opencloud/openstack",
|
||||
"version": "dev-master",
|
||||
"version_normalized": "9999999-dev",
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.2.0",
|
||||
"version_normalized": "6.2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/openstack.git",
|
||||
"reference": "f2ee77024843659d970817a9e7055bb40a3724f9"
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "d094e337976dff9d8e2424e8485872194e768662"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/f2ee77024843659d970817a9e7055bb40a3724f9",
|
||||
"reference": "f2ee77024843659d970817a9e7055bb40a3724f9",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662",
|
||||
"reference": "d094e337976dff9d8e2424e8485872194e768662",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php-opencloud/common": "dev-master"
|
||||
"guzzlehttp/promises": "~1.0",
|
||||
"guzzlehttp/psr7": "~1.1",
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"time": "2016-03-21 20:02:09",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "php-opencloud/common",
|
||||
"version": "v1.0.2",
|
||||
"version_normalized": "1.0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/common.git",
|
||||
"reference": "4a4aec0a4f35b471570271dd1a2e52667dee62b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-opencloud/common/zipball/4a4aec0a4f35b471570271dd1a2e52667dee62b8",
|
||||
"reference": "4a4aec0a4f35b471570271dd1a2e52667dee62b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "~6.1",
|
||||
"justinrainbow/json-schema": "~1.3",
|
||||
"php": "~7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/php-cs-fixer": "~1.0",
|
||||
|
@ -368,7 +323,52 @@
|
|||
"sami/sami": "dev-master",
|
||||
"satooshi/php-coveralls": "~1.0"
|
||||
},
|
||||
"time": "2016-03-08 14:37:14",
|
||||
"time": "2016-03-18 13:45:42",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"OpenCloud\\": "src/",
|
||||
"OpenCloud\\Test\\": "tests/unit/",
|
||||
"OpenCloud\\Integration\\": "tests/integration/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jamie Hannaford",
|
||||
"email": "jamie.hannaford@rackspace.com",
|
||||
"homepage": "https://github.com/jamiehannaford"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "php-opencloud/openstack",
|
||||
"version": "dev-master",
|
||||
"version_normalized": "9999999-dev",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-opencloud/openstack.git",
|
||||
"reference": "61626420361a1dab3ed6f9455e1057bda18cc335"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-opencloud/openstack/zipball/61626420361a1dab3ed6f9455e1057bda18cc335",
|
||||
"reference": "61626420361a1dab3ed6f9455e1057bda18cc335",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php-opencloud/common": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/php-cs-fixer": "~1.0",
|
||||
"jakub-onderka/php-parallel-lint": "0.*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"psr/log": "~1.0",
|
||||
"sami/sami": "dev-master",
|
||||
"satooshi/php-coveralls": "~1.0"
|
||||
},
|
||||
"time": "2016-03-20 10:57:06",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
|
|
3
server/vendor/guzzlehttp/guzzle/.travis.yml
vendored
3
server/vendor/guzzlehttp/guzzle/.travis.yml
vendored
|
@ -14,16 +14,17 @@ before_script:
|
|||
- composer install --no-interaction --prefer-source --dev
|
||||
- ~/.nvm/nvm.sh install v0.6.14
|
||||
- ~/.nvm/nvm.sh run v0.6.14
|
||||
- '[ "$TRAVIS_PHP_VERSION" != "7.0" ] || echo "xdebug.overload_var_dump = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini'
|
||||
|
||||
script: make test
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: hhvm
|
||||
- php: 7.0
|
||||
fast_finish: true
|
||||
|
||||
before_deploy:
|
||||
- rvm 1.9.3 do gem install mime-types -v 2.6.2
|
||||
- make package
|
||||
|
||||
deploy:
|
||||
|
|
19
server/vendor/guzzlehttp/guzzle/CHANGELOG.md
vendored
19
server/vendor/guzzlehttp/guzzle/CHANGELOG.md
vendored
|
@ -1,5 +1,24 @@
|
|||
# CHANGELOG
|
||||
|
||||
## 6.2.0 - 2016-03-21
|
||||
|
||||
* Feature: added `GuzzleHttp\json_encode` and `GuzzleHttp\json_decode`.
|
||||
https://github.com/guzzle/guzzle/pull/1389
|
||||
* Bug fix: Fix sleep calculation when waiting for delayed requests.
|
||||
https://github.com/guzzle/guzzle/pull/1324
|
||||
* Feature: More flexible history containers.
|
||||
https://github.com/guzzle/guzzle/pull/1373
|
||||
* Bug fix: defer sink stream opening in StreamHandler.
|
||||
https://github.com/guzzle/guzzle/pull/1377
|
||||
* Bug fix: do not attempt to escape cookie values.
|
||||
https://github.com/guzzle/guzzle/pull/1406
|
||||
* Feature: report original content encoding and length on decoded responses.
|
||||
https://github.com/guzzle/guzzle/pull/1409
|
||||
* Bug fix: rewind seekable request bodies before dispatching to cURL.
|
||||
https://github.com/guzzle/guzzle/pull/1422
|
||||
* Bug fix: provide an empty string to `http_build_query` for HHVM workaround.
|
||||
https://github.com/guzzle/guzzle/pull/1367
|
||||
|
||||
## 6.1.1 - 2015-11-22
|
||||
|
||||
* Bug fix: Proxy::wrapSync() now correctly proxies to the appropriate handler
|
||||
|
|
2
server/vendor/guzzlehttp/guzzle/LICENSE
vendored
2
server/vendor/guzzlehttp/guzzle/LICENSE
vendored
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2011-2015 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
|
||||
Copyright (c) 2011-2016 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
2
server/vendor/guzzlehttp/guzzle/README.md
vendored
2
server/vendor/guzzlehttp/guzzle/README.md
vendored
|
@ -24,7 +24,7 @@ $res = $client->request('GET', 'https://api.github.com/user', [
|
|||
]);
|
||||
echo $res->getStatusCode();
|
||||
// 200
|
||||
echo $res->getHeader('content-type');
|
||||
echo $res->getHeaderLine('content-type');
|
||||
// 'application/json; charset=utf8'
|
||||
echo $res->getBody();
|
||||
// {"type":"User"...'
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.1-dev"
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ class Client implements ClientInterface
|
|||
$options = $this->prepareDefaults($options);
|
||||
|
||||
return $this->transfer(
|
||||
$request->withUri($this->buildUri($request->getUri(), $options)),
|
||||
$request->withUri($this->buildUri($request->getUri(), $options), $request->hasHeader('Host')),
|
||||
$options
|
||||
);
|
||||
}
|
||||
|
@ -291,7 +291,7 @@ class Client implements ClientInterface
|
|||
. 'x-www-form-urlencoded requests, and the multipart '
|
||||
. 'option to send multipart/form-data requests.');
|
||||
}
|
||||
$options['body'] = http_build_query($options['form_params'], null, '&');
|
||||
$options['body'] = http_build_query($options['form_params'], '', '&');
|
||||
unset($options['form_params']);
|
||||
$options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
|
||||
}
|
||||
|
@ -357,7 +357,8 @@ class Client implements ClientInterface
|
|||
}
|
||||
|
||||
if (isset($options['json'])) {
|
||||
$modify['body'] = Psr7\stream_for(json_encode($options['json']));
|
||||
$jsonStr = \GuzzleHttp\json_encode($options['json']);
|
||||
$modify['body'] = Psr7\stream_for($jsonStr);
|
||||
$options['_conditional']['Content-Type'] = 'application/json';
|
||||
unset($options['json']);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ use Psr\Http\Message\UriInterface;
|
|||
*/
|
||||
interface ClientInterface
|
||||
{
|
||||
const VERSION = '6.1.1';
|
||||
const VERSION = '6.2.0';
|
||||
|
||||
/**
|
||||
* Send an HTTP request.
|
||||
|
@ -44,14 +44,14 @@ interface ClientInterface
|
|||
* relative path to append to the base path of the client. The URL can
|
||||
* contain the query string as well.
|
||||
*
|
||||
* @param string $method HTTP method
|
||||
* @param string|UriInterface $uri URI object or string.
|
||||
* @param string $method HTTP method.
|
||||
* @param string|UriInterface|null $uri URI object or string (default null).
|
||||
* @param array $options Request options to apply.
|
||||
*
|
||||
* @return ResponseInterface
|
||||
* @throws GuzzleException
|
||||
*/
|
||||
public function request($method, $uri, array $options = []);
|
||||
public function request($method, $uri = null, array $options = []);
|
||||
|
||||
/**
|
||||
* Create and send an asynchronous HTTP request.
|
||||
|
|
|
@ -5,7 +5,7 @@ use Psr\Http\Message\RequestInterface;
|
|||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
* Cookie jar that stores cookies an an array
|
||||
* Cookie jar that stores cookies as an array
|
||||
*/
|
||||
class CookieJar implements CookieJarInterface
|
||||
{
|
||||
|
@ -58,22 +58,10 @@ class CookieJar implements CookieJarInterface
|
|||
}
|
||||
|
||||
/**
|
||||
* Quote the cookie value if it is not already quoted and it contains
|
||||
* problematic characters.
|
||||
*
|
||||
* @param string $value Value that may or may not need to be quoted
|
||||
*
|
||||
* @return string
|
||||
* @deprecated
|
||||
*/
|
||||
public static function getCookieValue($value)
|
||||
{
|
||||
if (substr($value, 0, 1) !== '"' &&
|
||||
substr($value, -1, 1) !== '"' &&
|
||||
strpbrk($value, ';,=')
|
||||
) {
|
||||
$value = '"' . $value . '"';
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
@ -248,7 +236,7 @@ class CookieJar implements CookieJarInterface
|
|||
(!$cookie->getSecure() || $scheme == 'https')
|
||||
) {
|
||||
$values[] = $cookie->getName() . '='
|
||||
. self::getCookieValue($cookie->getValue());
|
||||
. $cookie->getValue();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,8 @@ class FileCookieJar extends CookieJar
|
|||
}
|
||||
}
|
||||
|
||||
if (false === file_put_contents($filename, json_encode($json))) {
|
||||
$jsonStr = \GuzzleHttp\json_encode($json);
|
||||
if (false === file_put_contents($filename, $jsonStr)) {
|
||||
throw new \RuntimeException("Unable to save file {$filename}");
|
||||
}
|
||||
}
|
||||
|
@ -73,9 +74,11 @@ class FileCookieJar extends CookieJar
|
|||
$json = file_get_contents($filename);
|
||||
if (false === $json) {
|
||||
throw new \RuntimeException("Unable to load file {$filename}");
|
||||
} elseif ($json === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
$data = json_decode($json, true);
|
||||
$data = \GuzzleHttp\json_decode($json, true);
|
||||
if (is_array($data)) {
|
||||
foreach (json_decode($json, true) as $cookie) {
|
||||
$this->setCookie(new SetCookie($cookie));
|
||||
|
|
|
@ -265,6 +265,9 @@ class CurlFactory implements CurlFactoryInterface
|
|||
$this->removeHeader('Content-Length', $conf);
|
||||
}
|
||||
$body = $request->getBody();
|
||||
if ($body->isSeekable()) {
|
||||
$body->rewind();
|
||||
}
|
||||
$conf[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) {
|
||||
return $body->read($length);
|
||||
};
|
||||
|
|
|
@ -192,6 +192,6 @@ class CurlMultiHandler
|
|||
}
|
||||
}
|
||||
|
||||
return max(0, $currentTime - $nextTime);
|
||||
return max(0, $nextTime - $currentTime) * 1000000;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,8 +56,13 @@ final class EasyHandle
|
|||
if (!empty($this->options['decode_content'])
|
||||
&& isset($normalizedKeys['content-encoding'])
|
||||
) {
|
||||
$headers['x-encoded-content-encoding']
|
||||
= $headers[$normalizedKeys['content-encoding']];
|
||||
unset($headers[$normalizedKeys['content-encoding']]);
|
||||
if (isset($normalizedKeys['content-length'])) {
|
||||
$headers['x-encoded-content-length']
|
||||
= $headers[$normalizedKeys['content-length']];
|
||||
|
||||
$bodyLength = (int) $this->sink->getSize();
|
||||
if ($bodyLength) {
|
||||
$headers[$normalizedKeys['content-length']] = $bodyLength;
|
||||
|
|
|
@ -74,7 +74,7 @@ class MockHandler implements \Countable
|
|||
$response = array_shift($this->queue);
|
||||
|
||||
if (is_callable($response)) {
|
||||
$response = $response($request, $options);
|
||||
$response = call_user_func($response, $request, $options);
|
||||
}
|
||||
|
||||
$response = $response instanceof \Exception
|
||||
|
|
|
@ -138,7 +138,7 @@ class StreamHandler
|
|||
: fopen('php://temp', 'r+');
|
||||
|
||||
return is_string($sink)
|
||||
? new Psr7\Stream(Psr7\try_fopen($sink, 'r+'))
|
||||
? new Psr7\LazyOpenStream($sink, 'w+')
|
||||
: Psr7\stream_for($sink);
|
||||
}
|
||||
|
||||
|
@ -153,10 +153,15 @@ class StreamHandler
|
|||
$stream = new Psr7\InflateStream(
|
||||
Psr7\stream_for($stream)
|
||||
);
|
||||
$headers['x-encoded-content-encoding']
|
||||
= $headers[$normalizedKeys['content-encoding']];
|
||||
// Remove content-encoding header
|
||||
unset($headers[$normalizedKeys['content-encoding']]);
|
||||
// Fix content-length header
|
||||
if (isset($normalizedKeys['content-length'])) {
|
||||
$headers['x-encoded-content-length']
|
||||
= $headers[$normalizedKeys['content-length']];
|
||||
|
||||
$length = (int) $stream->getSize();
|
||||
if ($length == 0) {
|
||||
unset($headers[$normalizedKeys['content-length']]);
|
||||
|
|
|
@ -75,9 +75,14 @@ final class Middleware
|
|||
* @param array $container Container to hold the history (by reference).
|
||||
*
|
||||
* @return callable Returns a function that accepts the next handler.
|
||||
* @throws \InvalidArgumentException if container is not an array or ArrayAccess.
|
||||
*/
|
||||
public static function history(array &$container)
|
||||
public static function history(&$container)
|
||||
{
|
||||
if (!is_array($container) && !$container instanceof \ArrayAccess) {
|
||||
throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess');
|
||||
}
|
||||
|
||||
return function (callable $handler) use (&$container) {
|
||||
return function ($request, array $options) use ($handler, &$container) {
|
||||
return $handler($request, $options)->then(
|
||||
|
|
|
@ -282,3 +282,49 @@ function is_host_in_noproxy($host, array $noProxyArray)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for json_decode that throws when an error occurs.
|
||||
*
|
||||
* @param string $json JSON data to parse
|
||||
* @param bool $assoc When true, returned objects will be converted
|
||||
* into associative arrays.
|
||||
* @param int $depth User specified recursion depth.
|
||||
* @param int $options Bitmask of JSON decode options.
|
||||
*
|
||||
* @return mixed
|
||||
* @throws \InvalidArgumentException if the JSON cannot be decoded.
|
||||
* @link http://www.php.net/manual/en/function.json-decode.php
|
||||
*/
|
||||
function json_decode($json, $assoc = false, $depth = 512, $options = 0)
|
||||
{
|
||||
$data = \json_decode($json, $assoc, $depth, $options);
|
||||
if (JSON_ERROR_NONE !== json_last_error()) {
|
||||
throw new \InvalidArgumentException(
|
||||
'json_decode error: ' . json_last_error_msg());
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for JSON encoding that throws when an error occurs.
|
||||
*
|
||||
* @param string $value The value being encoded
|
||||
* @param int $options JSON encode option bitmask
|
||||
* @param int $depth Set the maximum depth. Must be greater than zero.
|
||||
*
|
||||
* @return string
|
||||
* @throws \InvalidArgumentException if the JSON cannot be encoded.
|
||||
* @link http://www.php.net/manual/en/function.json-encode.php
|
||||
*/
|
||||
function json_encode($value, $options = 0, $depth = 512)
|
||||
{
|
||||
$json = \json_encode($value, $options, $depth);
|
||||
if (JSON_ERROR_NONE !== json_last_error()) {
|
||||
throw new \InvalidArgumentException(
|
||||
'json_encode error: ' . json_last_error_msg());
|
||||
}
|
||||
|
||||
return $json;
|
||||
}
|
||||
|
|
30
server/vendor/php-opencloud/common/.travis.yml
vendored
Normal file
30
server/vendor/php-opencloud/common/.travis.yml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
language: php
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.composer/cache
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 7.0
|
||||
- php: nightly
|
||||
allow_failures:
|
||||
- php: nightly
|
||||
fast_finish: true
|
||||
|
||||
before_install:
|
||||
- composer self-update
|
||||
|
||||
before_script:
|
||||
- composer install --prefer-source
|
||||
- vendor/bin/parallel-lint --exclude vendor .
|
||||
- vendor/bin/php-cs-fixer fix --dry-run --diff --level psr2 .
|
||||
|
||||
after_script:
|
||||
- php vendor/bin/coveralls -v
|
||||
|
||||
notifications:
|
||||
email:
|
||||
- jamie.hannaford@rackspace.com
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
|
@ -6,27 +6,27 @@ abstract class AbstractApi implements ApiInterface
|
|||
{
|
||||
protected $params;
|
||||
|
||||
protected function isRequired(array $param)
|
||||
protected function isRequired(array $param): array
|
||||
{
|
||||
return array_merge($param, ['required' => true]);
|
||||
}
|
||||
|
||||
protected function notRequired(array $param)
|
||||
protected function notRequired(array $param): array
|
||||
{
|
||||
return array_merge($param, ['required' => false]);
|
||||
}
|
||||
|
||||
protected function query(array $param)
|
||||
protected function query(array $param): array
|
||||
{
|
||||
return array_merge($param, ['location' => AbstractParams::QUERY]);
|
||||
}
|
||||
|
||||
protected function url(array $param)
|
||||
protected function url(array $param): array
|
||||
{
|
||||
return array_merge($param, ['location' => AbstractParams::URL]);
|
||||
}
|
||||
|
||||
public function documented(array $param)
|
||||
public function documented(array $param): array
|
||||
{
|
||||
return array_merge($param, ['required' => true]);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
|
@ -21,12 +21,12 @@ abstract class AbstractParams
|
|||
const INT_TYPE = 'integer';
|
||||
const INTEGER_TYPE = self::INT_TYPE;
|
||||
|
||||
public static function isSupportedLocation($val)
|
||||
public static function isSupportedLocation(string $val): bool
|
||||
{
|
||||
return in_array($val, [self::QUERY, self::HEADER, self::URL, self::JSON, self::RAW]);
|
||||
}
|
||||
|
||||
public function limit()
|
||||
public function limit(): array
|
||||
{
|
||||
return [
|
||||
'type' => self::INT_TYPE,
|
||||
|
@ -38,7 +38,7 @@ DESC
|
|||
];
|
||||
}
|
||||
|
||||
public function marker()
|
||||
public function marker(): array
|
||||
{
|
||||
return [
|
||||
'type' => 'string',
|
||||
|
@ -51,7 +51,7 @@ DESC
|
|||
];
|
||||
}
|
||||
|
||||
public function id($type)
|
||||
public function id(string $type): array
|
||||
{
|
||||
return [
|
||||
'description' => sprintf("The unique ID, or identifier, for the %s", $type),
|
||||
|
@ -60,7 +60,7 @@ DESC
|
|||
];
|
||||
}
|
||||
|
||||
public function idPath()
|
||||
public function idPath(): array
|
||||
{
|
||||
return [
|
||||
'type' => self::STRING_TYPE,
|
||||
|
@ -69,7 +69,7 @@ DESC
|
|||
];
|
||||
}
|
||||
|
||||
public function name($resource)
|
||||
public function name(string $resource): array
|
||||
{
|
||||
return [
|
||||
'description' => sprintf("The name of the %s", $resource),
|
||||
|
@ -79,7 +79,7 @@ DESC
|
|||
}
|
||||
|
||||
|
||||
public function sortDir()
|
||||
public function sortDir(): array
|
||||
{
|
||||
return [
|
||||
'type' => self::STRING_TYPE,
|
||||
|
@ -89,7 +89,7 @@ DESC
|
|||
];
|
||||
}
|
||||
|
||||
public function sortKey()
|
||||
public function sortKey(): array
|
||||
{
|
||||
return [
|
||||
'type' => self::STRING_TYPE,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
use GuzzleHttp\Utils;
|
||||
|
||||
/**
|
||||
* This class represents an OpenCloud API operation. It encapsulates most aspects of the REST operation: its HTTP
|
||||
* method, the URL path, its top-level JSON key, and all of its {@see Parameter} objects.
|
||||
|
@ -49,7 +47,7 @@ class Operation
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPath()
|
||||
public function getPath(): string
|
||||
{
|
||||
return $this->path;
|
||||
}
|
||||
|
@ -57,7 +55,7 @@ class Operation
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getMethod()
|
||||
public function getMethod(): string
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
|
@ -69,7 +67,7 @@ class Operation
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasParam($key)
|
||||
public function hasParam(string $key): bool
|
||||
{
|
||||
return isset($this->params[$key]);
|
||||
}
|
||||
|
@ -79,7 +77,7 @@ class Operation
|
|||
*
|
||||
* @return Parameter
|
||||
*/
|
||||
public function getParam($name)
|
||||
public function getParam(string $name)
|
||||
{
|
||||
return isset($this->params[$name]) ? $this->params[$name] : null;
|
||||
}
|
||||
|
@ -87,9 +85,9 @@ class Operation
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getJsonKey()
|
||||
public function getJsonKey(): string
|
||||
{
|
||||
return $this->jsonKey;
|
||||
return $this->jsonKey ?: '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,7 +98,7 @@ class Operation
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function toParamArray(array $data)
|
||||
public static function toParamArray(array $data): array
|
||||
{
|
||||
$params = [];
|
||||
|
||||
|
@ -121,7 +119,7 @@ class Operation
|
|||
* @return bool TRUE if validation passes
|
||||
* @throws \Exception If validate fails
|
||||
*/
|
||||
public function validate(array $userValues)
|
||||
public function validate(array $userValues): bool
|
||||
{
|
||||
foreach ($this->params as $paramName => $param) {
|
||||
if (array_key_exists($paramName, $userValues)) {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
use GuzzleHttp\Promise\PromiseInterface;
|
||||
use GuzzleHttp\Psr7\Uri;
|
||||
use function GuzzleHttp\uri_template;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Promise\Promise;
|
||||
|
@ -60,12 +62,12 @@ abstract class Operator implements OperatorInterface
|
|||
*
|
||||
* @return Operation
|
||||
*/
|
||||
public function getOperation(array $definition)
|
||||
public function getOperation(array $definition): Operation
|
||||
{
|
||||
return new Operation($definition);
|
||||
}
|
||||
|
||||
protected function sendRequest(Operation $operation, array $userValues = [], $async = false)
|
||||
protected function sendRequest(Operation $operation, array $userValues = [], bool $async = false)
|
||||
{
|
||||
$operation->validate($userValues);
|
||||
|
||||
|
@ -79,7 +81,7 @@ abstract class Operator implements OperatorInterface
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function execute(array $definition, array $userValues = [])
|
||||
public function execute(array $definition, array $userValues = []): ResponseInterface
|
||||
{
|
||||
return $this->sendRequest($this->getOperation($definition), $userValues);
|
||||
}
|
||||
|
@ -87,7 +89,7 @@ abstract class Operator implements OperatorInterface
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function executeAsync(array $definition, array $userValues = [])
|
||||
public function executeAsync(array $definition, array $userValues = []): PromiseInterface
|
||||
{
|
||||
return $this->sendRequest($this->getOperation($definition), $userValues, true);
|
||||
}
|
||||
|
@ -95,7 +97,7 @@ abstract class Operator implements OperatorInterface
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function model($class, $data = null)
|
||||
public function model(string $class, $data = null): ResourceInterface
|
||||
{
|
||||
$model = new $class($this->client, $this->api);
|
||||
|
||||
|
@ -121,13 +123,13 @@ abstract class Operator implements OperatorInterface
|
|||
*
|
||||
* @return static
|
||||
*/
|
||||
public function newInstance()
|
||||
public function newInstance(): self
|
||||
{
|
||||
return new static($this->client, $this->api);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \GuzzleHttp\Psr7\Uri
|
||||
* @return \GuzzleHttp\Psr7\Uri:null
|
||||
*/
|
||||
protected function getHttpBaseUrl()
|
||||
{
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Promise\PromiseInterface;
|
||||
use OpenCloud\Common\Resource\ResourceInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
* An operator is any resource or service that can invoke and send REST operations. In other words, it
|
||||
|
@ -28,7 +31,7 @@ interface OperatorInterface
|
|||
*
|
||||
* @return \Psr\Http\Message\ResponseInterface
|
||||
*/
|
||||
public function execute(array $definition, array $userValues = []);
|
||||
public function execute(array $definition, array $userValues = []): ResponseInterface;
|
||||
|
||||
/**
|
||||
* A convenience method that assembles an operation and asynchronously sends it to the remote API
|
||||
|
@ -38,7 +41,7 @@ interface OperatorInterface
|
|||
*
|
||||
* @return \GuzzleHttp\Promise\PromiseInterface
|
||||
*/
|
||||
public function executeAsync(array $definition, array $userValues = []);
|
||||
public function executeAsync(array $definition, array $userValues = []): PromiseInterface;
|
||||
|
||||
/**
|
||||
* @param string $name The name of the model class.
|
||||
|
@ -47,5 +50,5 @@ interface OperatorInterface
|
|||
*
|
||||
* @return \OpenCloud\Common\Resource\ResourceInterface
|
||||
*/
|
||||
public function model($name, $data = null);
|
||||
public function model(string $name, $data = null): ResourceInterface;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Api;
|
||||
|
||||
|
@ -42,7 +42,7 @@ class Parameter
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
private $name = '';
|
||||
|
||||
/**
|
||||
* The alias for this parameter. Although the user will always interact with the human-friendly $name property,
|
||||
|
@ -50,7 +50,7 @@ class Parameter
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
private $sentAs;
|
||||
private $sentAs = '';
|
||||
|
||||
/**
|
||||
* For array parameters (for example, an array of security group names when creating a server), each array element
|
||||
|
@ -79,7 +79,7 @@ class Parameter
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
private $type;
|
||||
private $type = '';
|
||||
|
||||
/**
|
||||
* Indicates whether this parameter requires a value from the user.
|
||||
|
@ -94,7 +94,7 @@ class Parameter
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
private $location;
|
||||
private $location = '';
|
||||
|
||||
/**
|
||||
* Relevant to "json" location parameters only. This property allows for deep nesting through the use of
|
||||
|
@ -102,14 +102,14 @@ class Parameter
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
private $path;
|
||||
private $path = '';
|
||||
|
||||
/**
|
||||
* Allows for the prefixing of parameter names.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $prefix;
|
||||
private $prefix = '';
|
||||
|
||||
/**
|
||||
* The enum values for which this param is restricted.
|
||||
|
@ -151,7 +151,7 @@ class Parameter
|
|||
private function stockProperties(array $data)
|
||||
{
|
||||
if (isset($data['properties'])) {
|
||||
if (stripos($this->name, 'metadata') !== false) {
|
||||
if ($this->name && stripos($this->name, 'metadata') !== false) {
|
||||
$this->properties = new Parameter($data['properties']);
|
||||
} else {
|
||||
foreach ($data['properties'] as $name => $property) {
|
||||
|
@ -166,7 +166,7 @@ class Parameter
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->sentAs ?: $this->name;
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ class Parameter
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isRequired()
|
||||
public function isRequired(): bool
|
||||
{
|
||||
return $this->required === true;
|
||||
}
|
||||
|
@ -189,7 +189,7 @@ class Parameter
|
|||
* @return bool TRUE if the validation passes
|
||||
* @throws \Exception If validation fails
|
||||
*/
|
||||
public function validate($userValues)
|
||||
public function validate($userValues): bool
|
||||
{
|
||||
$this->validateEnums($userValues);
|
||||
$this->validateType($userValues);
|
||||
|
@ -245,9 +245,9 @@ class Parameter
|
|||
* @returns Parameter
|
||||
* @throws \Exception
|
||||
*/
|
||||
private function getNestedProperty($key)
|
||||
private function getNestedProperty($key): Parameter
|
||||
{
|
||||
if (stripos($this->name, 'metadata') !== false && $this->properties instanceof Parameter) {
|
||||
if ($this->name && stripos($this->name, 'metadata') !== false && $this->properties instanceof Parameter) {
|
||||
return $this->properties;
|
||||
} elseif (isset($this->properties[$key])) {
|
||||
return $this->properties[$key];
|
||||
|
@ -264,7 +264,7 @@ class Parameter
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function hasCorrectType($userValue)
|
||||
private function hasCorrectType($userValue): bool
|
||||
{
|
||||
// Helper fn to see whether an array is associative (i.e. a JSON object)
|
||||
$isAssociative = function ($value) {
|
||||
|
@ -293,7 +293,7 @@ class Parameter
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isArray()
|
||||
public function isArray(): bool
|
||||
{
|
||||
return $this->type == 'array' && $this->itemSchema instanceof Parameter;
|
||||
}
|
||||
|
@ -303,12 +303,12 @@ class Parameter
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isObject()
|
||||
public function isObject(): bool
|
||||
{
|
||||
return $this->type == 'object' && !empty($this->properties);
|
||||
}
|
||||
|
||||
public function getLocation()
|
||||
public function getLocation(): string
|
||||
{
|
||||
return $this->location;
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ class Parameter
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasLocation($value)
|
||||
public function hasLocation($value): bool
|
||||
{
|
||||
return $this->location == $value;
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ class Parameter
|
|||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getPath()
|
||||
public function getPath(): string
|
||||
{
|
||||
return $this->path;
|
||||
}
|
||||
|
@ -338,7 +338,7 @@ class Parameter
|
|||
/**
|
||||
* Retrieves the common schema that an array parameter applies to all its child elements.
|
||||
*
|
||||
* @return Parameter
|
||||
* @return Parameter|null
|
||||
*/
|
||||
public function getItemSchema()
|
||||
{
|
||||
|
@ -350,7 +350,7 @@ class Parameter
|
|||
*
|
||||
* @param string $name
|
||||
*/
|
||||
public function setName($name)
|
||||
public function setName(string $name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ class Parameter
|
|||
*
|
||||
* @return null|Parameter
|
||||
*/
|
||||
public function getProperty($name)
|
||||
public function getProperty(string $name)
|
||||
{
|
||||
if ($this->properties instanceof Parameter) {
|
||||
$this->properties->setName($name);
|
||||
|
@ -377,12 +377,12 @@ class Parameter
|
|||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getPrefix()
|
||||
public function getPrefix(): string
|
||||
{
|
||||
return $this->prefix;
|
||||
}
|
||||
|
||||
public function getPrefixedName()
|
||||
public function getPrefixedName(): string
|
||||
{
|
||||
return $this->prefix . $this->getName();
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common;
|
||||
|
||||
|
@ -38,7 +38,7 @@ trait ArrayAccessTrait
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function offsetExists($offset)
|
||||
public function offsetExists(string $offset): bool
|
||||
{
|
||||
return isset($this->internalState[$offset]);
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ trait ArrayAccessTrait
|
|||
*
|
||||
* @param string $offset
|
||||
*/
|
||||
public function offsetUnset($offset)
|
||||
public function offsetUnset(string $offset)
|
||||
{
|
||||
unset($this->internalState[$offset]);
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ trait ArrayAccessTrait
|
|||
*
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function offsetGet($offset)
|
||||
public function offsetGet(string $offset)
|
||||
{
|
||||
return $this->offsetExists($offset) ? $this->internalState[$offset] : null;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Auth;
|
||||
|
||||
|
@ -14,10 +14,13 @@ use Psr\Http\Message\RequestInterface;
|
|||
*/
|
||||
class AuthHandler
|
||||
{
|
||||
/** @var callable */
|
||||
private $nextHandler;
|
||||
|
||||
/** @var callable */
|
||||
private $tokenGenerator;
|
||||
|
||||
/** @var Token */
|
||||
private $token;
|
||||
|
||||
/**
|
||||
|
@ -66,7 +69,7 @@ class AuthHandler
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function shouldIgnore(RequestInterface $request)
|
||||
private function shouldIgnore(RequestInterface $request): bool
|
||||
{
|
||||
return strpos((string) $request->getUri(), 'tokens') !== false && $request->getMethod() == 'POST';
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Auth;
|
||||
|
||||
|
@ -16,5 +16,5 @@ interface Catalog
|
|||
*
|
||||
* @returns string
|
||||
*/
|
||||
public function getServiceUrl($name, $type, $region, $urlType);
|
||||
public function getServiceUrl(string $name, string $type, string $region, string $urlType): string;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Auth;
|
||||
|
||||
|
@ -9,5 +9,5 @@ interface IdentityService
|
|||
*
|
||||
* @return array The FIRST key is {@see Token} instance, the SECOND key is a {@see Catalog} instance
|
||||
*/
|
||||
public function authenticate(array $options);
|
||||
public function authenticate(array $options): array;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Auth;
|
||||
|
||||
interface Token
|
||||
{
|
||||
public function getId();
|
||||
public function getId(): string;
|
||||
|
||||
/**
|
||||
* Indicates whether the token has expired or not.
|
||||
*
|
||||
* @return bool TRUE if the token has expired, FALSE if it is still valid
|
||||
*/
|
||||
public function hasExpired();
|
||||
public function hasExpired(): bool;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Error;
|
||||
|
||||
|
@ -28,12 +28,12 @@ class BadResponseError extends BaseError
|
|||
$this->response = $response;
|
||||
}
|
||||
|
||||
public function getRequest()
|
||||
public function getRequest(): RequestInterface
|
||||
{
|
||||
return $this->request;
|
||||
}
|
||||
|
||||
public function getResponse()
|
||||
public function getResponse(): ResponseInterface
|
||||
{
|
||||
return $this->response;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Error;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Error;
|
||||
|
||||
|
@ -48,7 +48,7 @@ class Builder
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
private function header($name)
|
||||
private function header(string $name): string
|
||||
{
|
||||
return sprintf("%s\n%s\n", $name, str_repeat('~', strlen($name)));
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ class Builder
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function linkIsValid($link)
|
||||
private function linkIsValid(string $link): bool
|
||||
{
|
||||
$link = $this->docDomain . $link;
|
||||
|
||||
|
@ -78,7 +78,7 @@ class Builder
|
|||
* @codeCoverageIgnore
|
||||
* @return string
|
||||
*/
|
||||
public function str(MessageInterface $message)
|
||||
public function str(MessageInterface $message): string
|
||||
{
|
||||
if ($message instanceof RequestInterface) {
|
||||
$msg = trim($message->getMethod() . ' '
|
||||
|
@ -112,7 +112,7 @@ class Builder
|
|||
*
|
||||
* @return BadResponseError
|
||||
*/
|
||||
public function httpError(RequestInterface $request, ResponseInterface $response)
|
||||
public function httpError(RequestInterface $request, ResponseInterface $response): BadResponseError
|
||||
{
|
||||
$message = $this->header('HTTP Error');
|
||||
|
||||
|
@ -138,7 +138,7 @@ class Builder
|
|||
return $e;
|
||||
}
|
||||
|
||||
private function getStatusCodeMessage($statusCode)
|
||||
private function getStatusCodeMessage(int $statusCode): string
|
||||
{
|
||||
$errors = [
|
||||
400 => 'Please ensure that your input values are valid and well-formed. ',
|
||||
|
@ -159,7 +159,7 @@ class Builder
|
|||
*
|
||||
* @return UserInputError
|
||||
*/
|
||||
public function userInputError($expectedType, $userValue, $furtherLink = null)
|
||||
public function userInputError(string $expectedType, $userValue, string $furtherLink = null): UserInputError
|
||||
{
|
||||
$message = $this->header('User Input Error');
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Error;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Error;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common;
|
||||
|
||||
|
@ -25,7 +25,7 @@ trait HydratorStrategyTrait
|
|||
}
|
||||
}
|
||||
|
||||
private function set($key, $property, array $data, callable $fn = null)
|
||||
private function set(string $key, $property, array $data, callable $fn = null)
|
||||
{
|
||||
if (isset($data[$key]) && property_exists($this, $property)) {
|
||||
$value = $fn ? call_user_func($fn, $data[$key]) : $data[$key];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace OpenCloud\Common;
|
||||
|
||||
|
@ -42,7 +42,7 @@ class JsonPath
|
|||
* @param $path The XPath to use
|
||||
* @param $value The new value of the node
|
||||
*/
|
||||
public function set($path, $value)
|
||||
public function set(string $path, $value)
|
||||
{
|
||||
$this->jsonStructure = $this->setPath($path, $value, $this->jsonStructure);
|
||||
}
|
||||
|
@ -53,9 +53,10 @@ class JsonPath
|
|||
* @param $path
|
||||
* @param $value
|
||||
* @param $json
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
private function setPath($path, $value, $json)
|
||||
private function setPath(string $path, $value, array $json): array
|
||||
{
|
||||
$nodes = explode('.', $path);
|
||||
$point = array_shift($nodes);
|
||||
|
@ -87,9 +88,10 @@ class JsonPath
|
|||
* Get a path's value. If no path can be matched, NULL is returned.
|
||||
*
|
||||
* @param $path
|
||||
*
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function get($path)
|
||||
public function get(string $path)
|
||||
{
|
||||
return $this->getPath($path, $this->jsonStructure);
|
||||
}
|
||||
|
@ -99,9 +101,10 @@ class JsonPath
|
|||
*
|
||||
* @param $path
|
||||
* @param $json
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
private function getPath($path, $json)
|
||||
private function getPath(string $path, $json)
|
||||
{
|
||||
$nodes = explode('.', $path);
|
||||
$point = array_shift($nodes);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\JsonSchema;
|
||||
|
||||
|
@ -13,7 +13,7 @@ class JsonPatch
|
|||
return (new static)->makeDiff($src, $dest);
|
||||
}
|
||||
|
||||
public function makeDiff($srcStruct, $desStruct, $path = '')
|
||||
public function makeDiff($srcStruct, $desStruct, string $path = ''): array
|
||||
{
|
||||
$changes = [];
|
||||
|
||||
|
@ -28,7 +28,7 @@ class JsonPatch
|
|||
return $changes;
|
||||
}
|
||||
|
||||
protected function handleArray($srcStruct, $desStruct, $path)
|
||||
protected function handleArray(array $srcStruct, array $desStruct, string $path): array
|
||||
{
|
||||
$changes = [];
|
||||
|
||||
|
@ -53,7 +53,7 @@ class JsonPatch
|
|||
return $changes;
|
||||
}
|
||||
|
||||
protected function handleObject($srcStruct, $desStruct, $path)
|
||||
protected function handleObject(\stdClass $srcStruct, \stdClass $desStruct, string $path): array
|
||||
{
|
||||
$changes = [];
|
||||
|
||||
|
@ -76,12 +76,12 @@ class JsonPatch
|
|||
return $changes;
|
||||
}
|
||||
|
||||
protected function shouldPartiallyReplace($o1, $o2)
|
||||
protected function shouldPartiallyReplace(\stdClass $o1, \stdClass $o2): bool
|
||||
{
|
||||
return count(array_diff_key((array) $o1, (array) $o2)) < count($o1);
|
||||
}
|
||||
|
||||
protected function arrayDiff(array $a1, array $a2)
|
||||
protected function arrayDiff(array $a1, array $a2): array
|
||||
{
|
||||
$result = [];
|
||||
|
||||
|
@ -94,8 +94,10 @@ class JsonPatch
|
|||
return $result;
|
||||
}
|
||||
|
||||
protected function path($root, $path)
|
||||
protected function path(string $root, $path): string
|
||||
{
|
||||
$path = (string) $path;
|
||||
|
||||
if ($path === '_empty_') {
|
||||
$path = '';
|
||||
}
|
||||
|
@ -103,7 +105,7 @@ class JsonPatch
|
|||
return rtrim($root, '/') . '/' . ltrim($path, '/');
|
||||
}
|
||||
|
||||
protected function makePatch($op, $path, $val = null)
|
||||
protected function makePatch(string $op, string $path, $val = null): array
|
||||
{
|
||||
switch ($op) {
|
||||
default:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\JsonSchema;
|
||||
|
||||
|
@ -6,7 +6,10 @@ use JsonSchema\Validator;
|
|||
|
||||
class Schema
|
||||
{
|
||||
/** @var object */
|
||||
private $body;
|
||||
|
||||
/** @var Validator */
|
||||
private $validator;
|
||||
|
||||
public function __construct($body, Validator $validator = null)
|
||||
|
@ -15,7 +18,7 @@ class Schema
|
|||
$this->validator = $validator ?: new Validator();
|
||||
}
|
||||
|
||||
public function getPropertyPaths()
|
||||
public function getPropertyPaths(): array
|
||||
{
|
||||
$paths = [];
|
||||
|
||||
|
@ -26,7 +29,7 @@ class Schema
|
|||
return $paths;
|
||||
}
|
||||
|
||||
public function normalizeObject($subject, array $aliases)
|
||||
public function normalizeObject($subject, array $aliases): \stdClass
|
||||
{
|
||||
$out = new \stdClass;
|
||||
|
||||
|
@ -49,17 +52,17 @@ class Schema
|
|||
$this->validator->check($data, $this->body);
|
||||
}
|
||||
|
||||
public function isValid()
|
||||
public function isValid(): bool
|
||||
{
|
||||
return $this->validator->isValid();
|
||||
}
|
||||
|
||||
public function getErrors()
|
||||
public function getErrors(): array
|
||||
{
|
||||
return $this->validator->getErrors();
|
||||
}
|
||||
|
||||
public function getErrorString()
|
||||
public function getErrorString(): string
|
||||
{
|
||||
$msg = "Provided values do not validate. Errors:\n";
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
@ -60,7 +60,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
*
|
||||
* @return $this|ResourceInterface
|
||||
*/
|
||||
public function populateFromResponse(ResponseInterface $response)
|
||||
public function populateFromResponse(ResponseInterface $response): self
|
||||
{
|
||||
if (strpos($response->getHeaderLine('Content-Type'), 'application/json') === 0) {
|
||||
$json = Utils::jsonDecode($response);
|
||||
|
@ -79,12 +79,12 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
*
|
||||
* @return mixed|void
|
||||
*/
|
||||
public function populateFromArray(array $array)
|
||||
public function populateFromArray(array $array): self
|
||||
{
|
||||
$reflClass = new \ReflectionClass($this);
|
||||
|
||||
foreach ($array as $key => $val) {
|
||||
$propertyName = isset($this->aliases[$key]) ? $this->aliases[$key] : $key;
|
||||
$propertyName = (string) (isset($this->aliases[$key]) ? $this->aliases[$key] : $key);
|
||||
|
||||
if (property_exists($this, $propertyName)) {
|
||||
if ($type = $this->extractTypeFromDocBlock($reflClass, $propertyName)) {
|
||||
|
@ -94,9 +94,11 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
$this->$propertyName = $val;
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
private function parseDocBlockValue($type, $val)
|
||||
private function parseDocBlockValue(string $type, $val)
|
||||
{
|
||||
if (strpos($type, '[]') === 0 && is_array($val)) {
|
||||
$array = [];
|
||||
|
@ -113,7 +115,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
return $val;
|
||||
}
|
||||
|
||||
private function isNotNativeType($type)
|
||||
private function isNotNativeType(string $type): bool
|
||||
{
|
||||
return !in_array($type, [
|
||||
'string', 'bool', 'boolean', 'double', 'null', 'array', 'object', 'int', 'integer', 'float', 'numeric',
|
||||
|
@ -121,7 +123,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
]);
|
||||
}
|
||||
|
||||
private function normalizeModelClass($class)
|
||||
private function normalizeModelClass(string $class): string
|
||||
{
|
||||
if (strpos($class, '\\') === false) {
|
||||
$currentNamespace = (new \ReflectionClass($this))->getNamespaceName();
|
||||
|
@ -131,7 +133,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
return $class;
|
||||
}
|
||||
|
||||
private function extractTypeFromDocBlock(\ReflectionClass $reflClass, $propertyName)
|
||||
private function extractTypeFromDocBlock(\ReflectionClass $reflClass, string $propertyName)
|
||||
{
|
||||
$docComment = $reflClass->getProperty($propertyName)->getDocComment();
|
||||
|
||||
|
@ -174,7 +176,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
return $this->execute($definition, $this->getAttrs(array_keys($definition['params'])));
|
||||
}
|
||||
|
||||
private function getResourcesKey()
|
||||
private function getResourcesKey(): string
|
||||
{
|
||||
$resourcesKey = $this->resourcesKey;
|
||||
|
||||
|
@ -189,7 +191,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function enumerate(array $def, array $userVals = [], callable $mapFn = null)
|
||||
public function enumerate(array $def, array $userVals = [], callable $mapFn = null): \Generator
|
||||
{
|
||||
$operation = $this->getOperation($def);
|
||||
|
||||
|
@ -217,7 +219,7 @@ abstract class AbstractResource extends Operator implements ResourceInterface
|
|||
return $iterator();
|
||||
}
|
||||
|
||||
public function extractMultipleInstances(ResponseInterface $response, $key = null)
|
||||
public function extractMultipleInstances(ResponseInterface $response, string $key = null): array
|
||||
{
|
||||
$key = $key ?: $this->getResourcesKey();
|
||||
$resourcesData = Utils::jsonDecode($response)[$key];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
@ -15,5 +15,5 @@ interface Creatable
|
|||
* @param array $userOptions
|
||||
* @return self
|
||||
*/
|
||||
public function create(array $userOptions);
|
||||
public function create(array $userOptions): Creatable;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
@ -12,7 +12,7 @@ interface HasMetadata
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getMetadata();
|
||||
public function getMetadata(): array;
|
||||
|
||||
/**
|
||||
* Merges a set of new values with those which already exist (on the remote API) for a resource. For example, if
|
||||
|
@ -32,7 +32,7 @@ interface HasMetadata
|
|||
*
|
||||
* @param array $metadata The new metadata items
|
||||
*
|
||||
* @return mixed
|
||||
* @return void
|
||||
*/
|
||||
public function mergeMetadata(array $metadata);
|
||||
|
||||
|
@ -52,7 +52,7 @@ interface HasMetadata
|
|||
*
|
||||
* @param array $metadata The new metadata items
|
||||
*
|
||||
* @return mixed
|
||||
* @return void
|
||||
*/
|
||||
public function resetMetadata(array $metadata);
|
||||
|
||||
|
@ -63,5 +63,5 @@ interface HasMetadata
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function parseMetadata(ResponseInterface $response);
|
||||
public function parseMetadata(ResponseInterface $response): array;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
@ -24,7 +24,7 @@ trait HasWaiterTrait
|
|||
* or exceed this timeout, the blocking operation will immediately cease.
|
||||
* @param int $sleepPeriod The amount of time to pause between each HTTP request.
|
||||
*/
|
||||
public function waitUntil($status, $timeout = 60, $sleepPeriod = 1)
|
||||
public function waitUntil(string $status, $timeout = 60, int $sleepPeriod = 1)
|
||||
{
|
||||
$startTime = time();
|
||||
|
||||
|
@ -53,7 +53,7 @@ trait HasWaiterTrait
|
|||
* is provided, the timeout will never be considered.
|
||||
* @param int $sleepPeriod The amount of time to pause between each HTTP request.
|
||||
*/
|
||||
public function waitWithCallback(callable $fn, $timeout = 60, $sleepPeriod = 1)
|
||||
public function waitWithCallback(callable $fn, $timeout = 60, int $sleepPeriod = 1)
|
||||
{
|
||||
$startTime = time();
|
||||
|
||||
|
@ -78,7 +78,7 @@ trait HasWaiterTrait
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function shouldHalt($timeout, $startTime)
|
||||
private function shouldHalt($timeout, int $startTime)
|
||||
{
|
||||
if ($timeout === false) {
|
||||
return false;
|
||||
|
@ -100,7 +100,7 @@ trait HasWaiterTrait
|
|||
$this->waitUntil('ACTIVE', $timeout);
|
||||
}
|
||||
|
||||
public function waitUntilDeleted($timeout = 60, $sleepPeriod = 1)
|
||||
public function waitUntilDeleted($timeout = 60, int $sleepPeriod = 1)
|
||||
{
|
||||
$startTime = time();
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Resource;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Service;
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<?php
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace OpenCloud\Common\Service;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Middleware as GuzzleMiddleware;
|
||||
use OpenCloud\Common\Auth\IdentityService;
|
||||
use OpenCloud\Common\Auth\Token;
|
||||
use OpenCloud\Common\Transport\HandlerStack;
|
||||
use OpenCloud\Common\Transport\Middleware;
|
||||
use OpenCloud\Common\Transport\Utils;
|
||||
use OpenCloud\Identity\v3\Service;
|
||||
|
||||
/**
|
||||
* A Builder for easily creating OpenCloud services.
|
||||
|
@ -54,7 +54,7 @@ class Builder
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getClasses($serviceName, $serviceVersion)
|
||||
private function getClasses(string $serviceName, int $serviceVersion)
|
||||
{
|
||||
$rootNamespace = sprintf("%s\\%s\\v%d", $this->rootNamespace, $serviceName, $serviceVersion);
|
||||
|
||||
|
@ -70,19 +70,18 @@ class Builder
|
|||
* directly - this setup includes the configuration of the HTTP client's base URL, and the
|
||||
* attachment of an authentication handler.
|
||||
*
|
||||
* @param $serviceName The name of the service as it appears in the OpenCloud\* namespace
|
||||
* @param $serviceVersion The major version of the service
|
||||
* @param string $serviceName The name of the service as it appears in the OpenCloud\* namespace
|
||||
* @param int $serviceVersion The major version of the service
|
||||
* @param array $serviceOptions The service-specific options to use
|
||||
*
|
||||
* @return \OpenCloud\Common\Service\ServiceInterface
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function createService($serviceName, $serviceVersion, array $serviceOptions = [])
|
||||
public function createService(string $serviceName, int $serviceVersion, array $serviceOptions = []): ServiceInterface
|
||||
{
|
||||
$options = $this->mergeOptions($serviceOptions);
|
||||
|
||||
$this->stockIdentityService($options);
|
||||
$this->stockAuthHandler($options);
|
||||
$this->stockHttpClient($options, $serviceName);
|
||||
|
||||
|
@ -91,7 +90,7 @@ class Builder
|
|||
return new $serviceClass($options['httpClient'], new $apiClass());
|
||||
}
|
||||
|
||||
private function stockHttpClient(array &$options, $serviceName)
|
||||
private function stockHttpClient(array &$options, string $serviceName)
|
||||
{
|
||||
if (!isset($options['httpClient']) || !($options['httpClient'] instanceof ClientInterface)) {
|
||||
if (strcasecmp($serviceName, 'identity') === 0) {
|
||||
|
@ -121,16 +120,9 @@ class Builder
|
|||
}
|
||||
}
|
||||
|
||||
private function stockIdentityService(array &$options)
|
||||
{
|
||||
if (!isset($options['identityService'])) {
|
||||
$httpClient = $this->httpClient($options['authUrl'], HandlerStack::create());
|
||||
$options['identityService'] = Service::factory($httpClient);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
private function stockAuthHandler(array &$options)
|
||||
|
@ -142,14 +134,14 @@ class Builder
|
|||
}
|
||||
}
|
||||
|
||||
private function getStack(callable $authHandler, Token $token = null)
|
||||
private function getStack(callable $authHandler, Token $token = null): HandlerStack
|
||||
{
|
||||
$stack = HandlerStack::create();
|
||||
$stack->push(Middleware::authHandler($authHandler, $token));
|
||||
return $stack;
|
||||
}
|
||||
|
||||
private function httpClient($baseUrl, HandlerStack $stack)
|
||||
private function httpClient(string $baseUrl, HandlerStack $stack): ClientInterface
|
||||
{
|
||||
return new Client([
|
||||
'base_uri' => Utils::normalizeUrl($baseUrl),
|
||||
|
@ -157,7 +149,7 @@ class Builder
|
|||
]);
|
||||
}
|
||||
|
||||
private function mergeOptions(array $serviceOptions)
|
||||
private function mergeOptions(array $serviceOptions): array
|
||||
{
|
||||
$options = array_merge($this->defaults, $this->globalOptions, $serviceOptions);
|
||||
|
||||
|
@ -165,6 +157,12 @@ class Builder
|
|||
throw new \InvalidArgumentException('"authUrl" is a required option');
|
||||
}
|
||||
|
||||
if (!isset($options['identityService']) || !($options['identityService'] instanceof IdentityService)) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'"identityService" must be specified and implement %s', IdentityService::class
|
||||
));
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Service;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Transport;
|
||||
|
||||
|
@ -7,7 +7,7 @@ use GuzzleHttp\HandlerStack as GuzzleStack;
|
|||
|
||||
class HandlerStack extends GuzzleStack
|
||||
{
|
||||
public static function create(callable $handler = null)
|
||||
public static function create(callable $handler = null): self
|
||||
{
|
||||
$stack = new self($handler ?: choose_handler());
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Transport;
|
||||
|
||||
|
@ -22,7 +22,7 @@ class JsonSerializer
|
|||
*
|
||||
* @return array|mixed
|
||||
*/
|
||||
private function stockValue(Parameter $param, $userValue, $json)
|
||||
private function stockValue(Parameter $param, $userValue, array $json): array
|
||||
{
|
||||
$name = $param->getName();
|
||||
if ($path = $param->getPath()) {
|
||||
|
@ -46,7 +46,7 @@ class JsonSerializer
|
|||
*
|
||||
* @return array|mixed
|
||||
*/
|
||||
private function stockArrayJson(Parameter $param, $userValue)
|
||||
private function stockArrayJson(Parameter $param, array $userValue): array
|
||||
{
|
||||
$elems = [];
|
||||
foreach ($userValue as $item) {
|
||||
|
@ -63,7 +63,7 @@ class JsonSerializer
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
private function stockObjectJson(Parameter $param, $userValue)
|
||||
private function stockObjectJson(Parameter $param, \stdClass $userValue): array
|
||||
{
|
||||
$object = [];
|
||||
foreach ($userValue as $key => $val) {
|
||||
|
@ -82,12 +82,12 @@ class JsonSerializer
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public function stockJson(Parameter $param, $userValue, $json)
|
||||
public function stockJson(Parameter $param, $userValue, array $json): array
|
||||
{
|
||||
if ($param->isArray()) {
|
||||
$userValue = $this->stockArrayJson($param, $userValue);
|
||||
} elseif ($param->isObject()) {
|
||||
$userValue = $this->stockObjectJson($param, $userValue);
|
||||
$userValue = $this->stockObjectJson($param, (object) $userValue);
|
||||
}
|
||||
// Populate the final value
|
||||
return $this->stockValue($param, $userValue, $json);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Transport;
|
||||
|
||||
|
@ -9,13 +9,15 @@ use OpenCloud\Common\Auth\AuthHandler;
|
|||
use OpenCloud\Common\Auth\Token;
|
||||
use OpenCloud\Common\Error\Builder;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Psr\Log\LogLevel;
|
||||
|
||||
final class Middleware
|
||||
{
|
||||
/**
|
||||
* @return callable
|
||||
*/
|
||||
public static function httpErrors()
|
||||
public static function httpErrors(): callable
|
||||
{
|
||||
return function (callable $handler) {
|
||||
return function ($request, array $options) use ($handler) {
|
||||
|
@ -37,7 +39,7 @@ final class Middleware
|
|||
*
|
||||
* @return callable
|
||||
*/
|
||||
public static function authHandler(callable $tokenGenerator, Token $token = null)
|
||||
public static function authHandler(callable $tokenGenerator, Token $token = null): callable
|
||||
{
|
||||
return function (callable $handler) use ($tokenGenerator, $token) {
|
||||
return new AuthHandler($handler, $tokenGenerator, $token);
|
||||
|
@ -47,7 +49,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function history(array &$container)
|
||||
public static function history(array &$container): callable
|
||||
{
|
||||
return GuzzleMiddleware::history($container);
|
||||
}
|
||||
|
@ -55,7 +57,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function retry(callable $decider, callable $delay = null)
|
||||
public static function retry(callable $decider, callable $delay = null): callable
|
||||
{
|
||||
return GuzzleMiddleware::retry($decider, $delay);
|
||||
}
|
||||
|
@ -63,7 +65,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO)
|
||||
public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO): callable
|
||||
{
|
||||
return GuzzleMiddleware::log($logger, $formatter, $logLevel);
|
||||
}
|
||||
|
@ -71,7 +73,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function prepareBody()
|
||||
public static function prepareBody(): callable
|
||||
{
|
||||
return GuzzleMiddleware::prepareBody();
|
||||
}
|
||||
|
@ -79,7 +81,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function mapRequest(callable $fn)
|
||||
public static function mapRequest(callable $fn): callable
|
||||
{
|
||||
return GuzzleMiddleware::mapRequest($fn);
|
||||
}
|
||||
|
@ -87,7 +89,7 @@ final class Middleware
|
|||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public static function mapResponse(callable $fn)
|
||||
public static function mapResponse(callable $fn): callable
|
||||
{
|
||||
return GuzzleMiddleware::mapResponse($fn);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Transport;
|
||||
|
||||
|
@ -17,7 +17,7 @@ class RequestSerializer
|
|||
$this->jsonSerializer = $jsonSerializer ?: new JsonSerializer();
|
||||
}
|
||||
|
||||
public function serializeOptions(Operation $operation, array $userValues = [])
|
||||
public function serializeOptions(Operation $operation, array $userValues = []): array
|
||||
{
|
||||
$options = ['headers' => []];
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace OpenCloud\Common\Transport;
|
||||
|
||||
|
@ -8,7 +8,7 @@ use Psr\Http\Message\UriInterface;
|
|||
|
||||
class Utils
|
||||
{
|
||||
public static function jsonDecode(ResponseInterface $response, $assoc = true)
|
||||
public static function jsonDecode(ResponseInterface $response, bool $assoc = true)
|
||||
{
|
||||
$jsonErrors = [
|
||||
JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded',
|
||||
|
@ -40,11 +40,11 @@ class Utils
|
|||
* Method for flattening a nested array.
|
||||
*
|
||||
* @param array $data The nested array
|
||||
* @param null $key The key to extract
|
||||
* @param string $key The key to extract
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function flattenJson($data, $key = null)
|
||||
public static function flattenJson($data, string $key = null)
|
||||
{
|
||||
return (!empty($data) && $key && isset($data[$key])) ? $data[$key] : $data;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class Utils
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function normalizeUrl($url)
|
||||
public static function normalizeUrl(string $url): string
|
||||
{
|
||||
if (strpos($url, 'http') === false) {
|
||||
$url = 'http://' . $url;
|
||||
|
@ -76,12 +76,12 @@ class Utils
|
|||
*
|
||||
* @return UriInterface
|
||||
*/
|
||||
public static function addPaths(UriInterface $uri, ...$paths)
|
||||
public static function addPaths(UriInterface $uri, ...$paths): UriInterface
|
||||
{
|
||||
return uri_for(rtrim((string) $uri, '/') . '/' . implode('/', $paths));
|
||||
}
|
||||
|
||||
public static function appendPath(UriInterface $uri, $path)
|
||||
public static function appendPath(UriInterface $uri, $path): UriInterface
|
||||
{
|
||||
return uri_for(rtrim((string) $uri, '/') . '/' . $path);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
use Psr\Log\AbstractLogger;
|
||||
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
class Runner
|
||||
{
|
||||
private $basePath;
|
||||
private $logger;
|
||||
private $services = [];
|
||||
private $namespace;
|
||||
|
||||
public function __construct($basePath)
|
||||
public function __construct($basePath, $testNamespace)
|
||||
{
|
||||
$this->basePath = $basePath;
|
||||
$this->namespace = $testNamespace;
|
||||
|
||||
$this->logger = new DefaultLogger();
|
||||
$this->assembleServicesFromSamples();
|
||||
}
|
||||
|
@ -73,15 +76,14 @@ class Runner
|
|||
*/
|
||||
private function getTest($serviceName, $version, $verbosity)
|
||||
{
|
||||
$namespace = (new \ReflectionClass($this))->getNamespaceName();
|
||||
$className = sprintf("%s\\%s\\%sTest", $namespace, Utils::toCamelCase($serviceName), ucfirst($version));
|
||||
$className = sprintf("%s\\%s\\%sTest", $this->namespace, Utils::toCamelCase($serviceName), ucfirst($version));
|
||||
|
||||
if (!class_exists($className)) {
|
||||
throw new \RuntimeException(sprintf("%s does not exist", $className));
|
||||
}
|
||||
|
||||
$basePath = $this->basePath . DIRECTORY_SEPARATOR . $serviceName . DIRECTORY_SEPARATOR . $version;
|
||||
$smClass = sprintf("%s\\SampleManager", $namespace);
|
||||
$smClass = sprintf("%s\\SampleManager", $this->namespace);
|
||||
$class = new $className($this->logger, new $smClass($basePath, $verbosity));
|
||||
|
||||
if (!($class instanceof TestInterface)) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
interface SampleManagerInterface
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
|
|
@ -1,57 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace OpenCloud\integration;
|
||||
namespace OpenCloud\Integration;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use OpenCloud\Identity\v2\Api;
|
||||
use OpenCloud\Identity\v2\Service;
|
||||
use OpenCloud\Common\Transport\HandlerStack;
|
||||
use OpenCloud\Common\Transport\Utils as CommonUtils;
|
||||
|
||||
class Utils
|
||||
{
|
||||
public static function getAuthOptsV3()
|
||||
{
|
||||
return [
|
||||
'authUrl' => getenv('OS_AUTH_URL'),
|
||||
'region' => getenv('OS_REGION_NAME'),
|
||||
'user' => [
|
||||
'id' => getenv('OS_USER_ID'),
|
||||
'password' => getenv('OS_PASSWORD'),
|
||||
],
|
||||
'scope' => [
|
||||
'project' => [
|
||||
'id' => getenv('OS_PROJECT_ID'),
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
public static function getAuthOptsV2()
|
||||
{
|
||||
$httpClient = new Client([
|
||||
'base_uri' => CommonUtils::normalizeUrl(getenv('OS_AUTH_URL')),
|
||||
'handler' => HandlerStack::create(),
|
||||
]);
|
||||
return [
|
||||
'authUrl' => getenv('OS_AUTH_URL'),
|
||||
'region' => getenv('OS_REGION_NAME'),
|
||||
'username' => getenv('OS_USERNAME'),
|
||||
'password' => getenv('OS_PASSWORD'),
|
||||
'tenantName' => getenv('OS_TENANT_NAME'),
|
||||
'identityService' => new Service($httpClient, new Api),
|
||||
];
|
||||
}
|
||||
|
||||
public static function getAuthOpts(array $options = [])
|
||||
{
|
||||
$authOptions = getenv('OS_IDENTITY_API_VERSION') == '2.0'
|
||||
? self::getAuthOptsV2()
|
||||
: self::getAuthOptsV3();
|
||||
|
||||
return array_merge($authOptions, $options);
|
||||
}
|
||||
|
||||
public static function toCamelCase($word, $separator = '_')
|
||||
{
|
||||
return str_replace($separator, '', ucwords($word, $separator));
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
|
||||
$rootDir = dirname(dirname(__DIR__));
|
||||
|
||||
require_once $rootDir . '/vendor/autoload.php';
|
||||
|
||||
$basePath = $rootDir . '/samples';
|
||||
|
||||
$runner = new \OpenCloud\Integration\Runner($basePath);
|
||||
$runner->runServices();
|
|
@ -10,7 +10,6 @@ use GuzzleHttp\Psr7\Uri;
|
|||
use OpenCloud\Common\Api\Operator;
|
||||
use OpenCloud\Common\Resource\AbstractResource;
|
||||
use OpenCloud\Common\Resource\ResourceInterface;
|
||||
use OpenCloud\Compute\v2\Models\Server;
|
||||
use OpenCloud\Test\Fixtures\ComputeV2Api;
|
||||
use OpenCloud\Test\TestCase;
|
||||
use Prophecy\Argument;
|
||||
|
@ -45,7 +44,7 @@ class OperatorTest extends TestCase
|
|||
|
||||
public function test_it_sends_a_request_when_operations_are_executed()
|
||||
{
|
||||
$this->client->request('GET', 'test', ['headers' => []])->willReturn(new Request('GET', 'test'));
|
||||
$this->client->request('GET', 'test', ['headers' => []])->willReturn(new Response());
|
||||
|
||||
$this->operator->execute($this->def, []);
|
||||
}
|
||||
|
|
|
@ -53,7 +53,11 @@ class AuthHandlerTest extends TestCase
|
|||
}
|
||||
}
|
||||
|
||||
class FakeToken implements Token {
|
||||
public function getId() {}
|
||||
public function hasExpired() {}
|
||||
class FakeToken implements Token
|
||||
{
|
||||
public function getId(): string
|
||||
{}
|
||||
|
||||
public function hasExpired(): bool
|
||||
{}
|
||||
}
|
|
@ -95,7 +95,7 @@ class SchemaTest extends TestCase
|
|||
|
||||
public function test_it_checks_validity()
|
||||
{
|
||||
$this->validator->isValid()->shouldBeCalled();
|
||||
$this->validator->isValid()->shouldBeCalled()->willReturn(true);
|
||||
|
||||
$this->schema->isValid();
|
||||
}
|
||||
|
|
|
@ -47,8 +47,8 @@ class JsonSerializerTest extends \PHPUnit_Framework_TestCase
|
|||
$itemSchema = $this->prophesize(Parameter::class);
|
||||
$itemSchema->isArray()->shouldBeCalled()->willReturn(false);
|
||||
$itemSchema->isObject()->shouldBeCalled()->willReturn(false);
|
||||
$itemSchema->getName()->shouldBeCalled()->willReturn(null);
|
||||
$itemSchema->getPath()->shouldBeCalled()->willReturn(null);
|
||||
$itemSchema->getName()->shouldBeCalled()->willReturn('');
|
||||
$itemSchema->getPath()->shouldBeCalled()->willReturn('');
|
||||
|
||||
$param->getItemSchema()->shouldBeCalled()->willReturn($itemSchema);
|
||||
|
||||
|
@ -67,7 +67,7 @@ class JsonSerializerTest extends \PHPUnit_Framework_TestCase
|
|||
$prop->isArray()->shouldBeCalled()->willReturn(false);
|
||||
$prop->isObject()->shouldBeCalled()->willReturn(false);
|
||||
$prop->getName()->shouldBeCalled()->willReturn('foo');
|
||||
$prop->getPath()->shouldBeCalled()->willReturn(null);
|
||||
$prop->getPath()->shouldBeCalled()->willReturn('');
|
||||
|
||||
$param = $this->prophesize(Parameter::class);
|
||||
$param->isArray()->shouldBeCalled()->willReturn(false);
|
||||
|
@ -78,7 +78,7 @@ class JsonSerializerTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
$expected = ['topLevel' => ['foo' => true]];
|
||||
|
||||
$json = $this->serializer->stockJson($param->reveal(), ['foo' => true], []);
|
||||
$json = $this->serializer->stockJson($param->reveal(), (object) ['foo' => true], []);
|
||||
|
||||
$this->assertEquals($expected, $json);
|
||||
}
|
||||
|
|
|
@ -53,7 +53,17 @@ class ComputeV2Api implements ApiInterface
|
|||
]
|
||||
],
|
||||
'name' => ['type' => 'string', 'required' => true],
|
||||
'metadata' => ['type' => 'object', 'location' => 'json'],
|
||||
'metadata' => [
|
||||
'type' => 'object',
|
||||
'location' => 'json',
|
||||
'description' => 'An arbitrary key/value pairing that will be used for metadata.',
|
||||
'properties' => [
|
||||
'type' => 'string',
|
||||
'description' => <<<TYPEOTHER
|
||||
The value being set for your key. Bear in mind that "key" is just an example, you can name it anything.
|
||||
TYPEOTHER
|
||||
]
|
||||
],
|
||||
'personality' => ['type' => 'string'],
|
||||
'blockDeviceMapping' => [
|
||||
'type' => 'array',
|
||||
|
|
Loading…
Add table
Reference in a new issue