summaryrefslogtreecommitdiff
path: root/server/core
diff options
context:
space:
mode:
Diffstat (limited to 'server/core')
-rwxr-xr-xserver/core/App.php68
-rwxr-xr-xserver/core/CoreInterface.php7
-rwxr-xr-x[-rw-r--r--]server/core/Identity.php942
-rwxr-xr-xserver/core/LibOverride/genTokenOptions.php22
4 files changed, 1022 insertions, 17 deletions
diff --git a/server/core/App.php b/server/core/App.php
new file mode 100755
index 0000000..45f6922
--- /dev/null
+++ b/server/core/App.php
@@ -0,0 +1,68 @@
+<?php
+include_once("core/Plugin_Api.php");
+include_once("core/LibOverride/genTokenOptions.php");
+
+class App{
+
+ protected $openstack;
+ protected $pluginsApi;
+ protected $tokenClass;
+ protected $tokenPost;
+ protected $output;
+
+ public function __construct($args){
+
+ $this->tokenPost = NULL;
+ $this->tokenClass = new genTokenOptions($args);
+ $this->openstack = new OpenStack\OpenStack([]);
+ $this->pluginsApi = plugin_api::getInstance();
+ $this->output = array();
+
+ }
+
+ public function setToken($token){
+
+ $this->tokenPost = $token;
+ $this->tokenClass->loadBackup($his->tokenPost);
+
+ }
+
+ public function getLibClass($service){
+
+ switch($service){
+ case "Identity":
+ if($tokenPost == NULL) $tokenClass->genIdentityToken();
+ $opt = $tokenClass->getOptions($service);
+ return $this->openstack->identityV3($opt);
+ break;
+ }
+
+ }
+
+ public function authenticate(){
+
+ try{
+ $this->tokenClass->genIdentityToken();
+ $this->tokenClass->genComputeToken();
+ $this->tokenClass->genImageToken();
+ $this->tokenClass->genNetworkToken();
+
+ $this->setOutput("token", $this->tokenClass->getBackup());
+ }catch(Exception $e){
+ echo $e;
+ exit();
+ }
+
+ }
+
+ public function setOutput($key, $out){
+
+ $this->output[$key] = $out;
+
+ }
+
+ public function show(){
+ echo json_encode($this->output);
+ }
+
+} \ No newline at end of file
diff --git a/server/core/CoreInterface.php b/server/core/CoreInterface.php
new file mode 100755
index 0000000..ed0d959
--- /dev/null
+++ b/server/core/CoreInterface.php
@@ -0,0 +1,7 @@
+<?php
+
+interface Core{
+
+ public function action($action);
+
+} \ No newline at end of file
diff --git a/server/core/Identity.php b/server/core/Identity.php
index 343ed15..7b6293c 100644..100755
--- a/server/core/Identity.php
+++ b/server/core/Identity.php
@@ -1,19 +1,939 @@
<?php
+/**
+* File containing the identity Class.
+*
+* @version 1.0 Initialisation of this file
+* @since 1.0 Core application's file
+*
+* @author Eole 'eoledev at outlook . fr'
+*
+* @todo Complete the functions and finish the descriptions
+*/
+
+
+/**
+* Identity Class of the back-end application
+*
+* This class allow the communication between the front-end application and
+* the library which allow to send requests to an Openstack instance.
+*
+*/
+class identity 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;
-class identity {
+ /** @var array $actions protected, contains the functions which can be call by the front-end */
+ protected $actions = array();
- protected $oidentity;
+ /**
+ * identity constructor
+ *
+ * @param App $app the main app object
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return identity
+ */
+ public function __construct($app){
- public function __construct($ostack, $apiP){
+ $this->app = $app;
+ $this->libClass = $app->getLibClass("Identity");
- $this->oidentity = $ostack->identityV3();
- $this->plugins = $apiP;
+ }
+ $credentials = array();
+
+ /**
+ * Add a credential for the given user/project.
+ *
+ * Create a secret/access pair for use with ec2 style auth.
+ * This operation will generates a new set of credentials that map the user/project pair.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $credentials["addCredential"] = function(){
+
+
}
-
- public function genToken(){
- global $Args;
- $token = $this->oidentity->generateToken($Args);
- return $token;
- }
+
+ /**
+ * List the credentials for a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $credentials["listCredentials"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve a user’s access/secret pair by the access key.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $credentials["showCredential"] = function(){
+
+
+ }
+
+ /**
+ * Update a user’s access/secret pair.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $credentials["updateCredential"] = function(){
+
+
+ }
+
+ /**
+ * Delete a user’s access/secret pair.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $credentials["deleteCredential"] = function(){
+
+
+ }
+
+ $domains = array();
+
+ /**
+ * Add a domain to an OpenStack instance.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["addDomain"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the different domain's list.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["listDomains"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the details of a given domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["showDomain"] = function(){
+
+
+ }
+
+ /**
+ * Update the given domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["updateDomain"] = function(){
+
+
+ }
+
+ /**
+ * Delete the given domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["deleteDomain"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the different roles of a given user in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["listRolesDomainUser"] = function(){
+
+
+ }
+
+ /**
+ * Grant a role to a given user in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["grantRoleDomainUser"] = function(){
+
+
+ }
+
+ /**
+ * Verify that a user has a given role in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["checkRoleDomainUser"] = function(){
+
+
+ }
+
+ /**
+ * Delete a role for a given user in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["revokeRoleDomainUser"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the roles of a given group in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["listRolesDomainGroup"] = function(){
+
+
+ }
+
+ /**
+ * Add a role to a given group in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["grantRoleDomainGroup"] = function(){
+
+
+ }
+
+ /**
+ * Verify that a role is associated with a given group in a domain.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["checkRoleDomainGroup"] = function(){
+
+
+ }
+
+ /**
+ * Delete a role for a given group in a domain.
+ *
+ * A *description*, that can span multiple lines, to go _in-depth_ into the details of this element
+ * and to provide some background information or textual references.
+ *
+ * @param string $myArgument With a *description* of this argument, these may also
+ * span multiple lines.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $domains["revokeRoleDomainGroup"] = function(){
+
+
+ }
+
+ $endpoints = array();
+
+ /**
+ * Add an endpoint to the Openstack instance
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $endpoints["addEndpoint"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the endpoint for the given id
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $endpoints["getEndpoint"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the list of the different endpoints
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $endpoints["listEndpoints"] = function(){
+
+
+ }
+
+ /**
+ * Update a given endpoint
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $endpoints["updateEndpoint"] = function(){
+
+
+ }
+
+ /**
+ * Delete a given endpoint
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $endpoints["deleteEndpoint"] = function(){
+
+
+ }
+
+ $groups = array();
+
+ /**
+ * Add a group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["addGroup"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the group's list.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["listGroups"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the details of a given group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["showGroup"] = function(){
+
+
+ }
+
+ /**
+ * Update a given group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["updateGroup"] = function(){
+
+
+ }
+
+ /**
+ * Delete the given group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["deleteGroup"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the users of a given group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["listGroupUsers"] = function(){
+
+
+ }
+
+ /**
+ * Add a user to a group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["addGroupUser"] = function(){
+
+
+ }
+
+ /**
+ * Remove a user from a given group.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["removeGroupUser"] = function(){
+
+
+ }
+
+ /**
+ * Check if a group contains a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $groups["checkGroupUser"] = function(){
+
+
+ }
+
+ $policies = array();
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $policies["addPolicies"] = function(){
+
+
+ }
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $policies["listPolicies"] = function(){
+
+
+ }
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $policies["showPolicie"] = function(){
+
+
+ }
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $policies["updatePolicies"] = function(){
+
+
+ }
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $policies["deletePolicies"] = function(){
+
+
+ }
+
+ $projects = array();
+
+ /**
+ * Add a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["addProject"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the different projects.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["listProjects"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the details of a given project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["showProject"] = function(){
+
+
+ }
+
+ /**
+ * Update a given project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["updateProject"] = function(){
+
+
+ }
+
+ /**
+ * Delete a given project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["deleteProject"] = function(){
+
+
+ }
+
+ /**
+ * List the roles of a given user in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["listRolesProjectUser"] = function(){
+
+
+ }
+
+ /**
+ * Grant a role to an user in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["grantRoleProjectUser"] = function(){
+
+
+ }
+
+ /**
+ * Check if a given user has a role in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["checkRoleProjectUser"] = function(){
+
+
+ }
+
+ /**
+ * Delete a role for a given user in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["revokeRoleProjectUser"] = function(){
+
+
+ }
+
+ /**
+ * List the roles of a group in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["listRolesProjectGroup"] = function(){
+
+
+ }
+
+ /**
+ * Add a role to a group in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["grantRoleProjectGroup"] = function(){
+
+
+ }
+
+ /**
+ * Check if a group has a given role in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["checkRoleProjectGroup"] = function(){
+
+
+ }
+
+ /**
+ * Delete a role for a group in a project.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $projects["revokeRoleProjectGroup"] = function(){
+
+
+ }
+
+ $roles = array();
+
+ /**
+ * Add a role.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $roles["addRole"] = function(){
+
+
+ }
+
+ /**
+ * List the different roles
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $roles["listRoles"] = function(){
+
+
+ }
+
+ /**
+ * @todo
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $roles["listRoleAssignements"] = function(){
+
+
+ }
+
+ $services = array();
+
+ /**
+ * Add a service.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $services["addService"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the different services.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $services["listServices"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the details for a given service.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $services["showService"] = function(){
+
+
+ }
+
+ /**
+ * Delete a given service.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $services["deleteService"] = function(){
+
+
+ }
+
+ $tokens = array();
+
+ /**
+ * Generate a new token for a given user id.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["genTokenUserID"] = function(){
+
+
+ }
+
+ /**
+ * Generate a new token for a given user name.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["genTokenUserName"] = function(){
+
+
+ }
+
+ /**
+ * Generate a new token from another token ID.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["geneTokenID"] = function(){
+
+
+ }
+
+ /**
+ * Generate a new token scoped by a project ID.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["genTokenScopedProjectID"] = function(){
+
+
+ }
+
+ /**
+ * Generate a new token scoped by a project name.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["genTokenScopedProjectName"] = function(){
+
+
+ }
+
+ /**
+ * Check if a token is validate.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["validateToken"] = function(){
+
+
+ }
+
+ /**
+ * Delete a given token.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $tokens["revokeToken"] = function(){
+
+
+ }
+
+ $users = array();
+
+ /**
+ * Add a new user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["addUser"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the different users.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["listUsers"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the details of a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["showUser"] = function(){
+
+
+ }
+
+ /**
+ * Update a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["updateUser"] = function(){
+
+
+ }
+
+ /**
+ * Delete a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["deleteUser"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the groups which contains a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["listUserGroups"] = function(){
+
+
+ }
+
+ /**
+ * Retrieve the projects which contains a given user.
+ *
+ * @throws [Type] [<description>]
+ *
+ * @return void
+ */
+ $users["listUserProjects"] = function(){
+
+
+ }
+
+ $actions["Credentials"] = $credentials;
+ $actions["Domains"] = $domains;
+ $actions["Endpoints"] = $endpoints;
+ $actions["Groups"] = $groups;
+ $actions["Policies"] = $policies;
+ $actions["Projects"] = $projects;
+ $actions["Roles"] = $roles;
+ $actions["Services"] = $services;
+ $actions["Tokens"] = $tokens;
+ $actions["Users"] = $users;
}
diff --git a/server/core/LibOverride/genTokenOptions.php b/server/core/LibOverride/genTokenOptions.php
index 81ecfc8..58b87c1 100755
--- a/server/core/LibOverride/genTokenOptions.php
+++ b/server/core/LibOverride/genTokenOptions.php
@@ -81,7 +81,7 @@ class genTokenOptions
$options['catalogType'] = 'false';
$options['region'] = 'RegionOne';
- $this->backup['Identity'] = unserialize($opt);
+ $this->backup['Identity'] = $opt;
$token = $this->unserializeToken($this->backup['Identity']['token']);
$baseUrl = $this->backup['Identity']['baseUrl'];
@@ -129,7 +129,7 @@ class genTokenOptions
$options['catalogType'] = 'image';
$options['region'] = 'RegionOne';
- $this->backup['Image'] = unserialize($opt);
+ $this->backup['Image'] = $opt;
$token = $this->unserializeToken($this->backup['Image']['token']);
$baseUrl = $this->backup['Image']['baseUrl'];
@@ -176,7 +176,7 @@ class genTokenOptions
$options['catalogType'] = 'network';
$options['region'] = 'RegionOne';
- $this->backup['Network'] = unserialize($opt);
+ $this->backup['Network'] = $opt;
$token = $this->unserializeToken($this->backup['Network']['token']);
$baseUrl = $this->backup['Network']['baseUrl'];
@@ -224,7 +224,7 @@ class genTokenOptions
$options['catalogType'] = 'compute';
$options['region'] = 'RegionOne';
- $this->backup['Compute'] = unserialize($opt);
+ $this->backup['Compute'] = $opt;
$token = $this->unserializeToken($this->backup['Compute']['token']);
$baseUrl = $this->backup['Compute']['baseUrl'];
@@ -242,8 +242,18 @@ class genTokenOptions
$this->optionsGlobal['Compute'] = $options;
}
- public function getBackup($service){
- return serialize($this->backup[$service]);
+ public function getBackup(){
+ return serialize($this->backup);
+ }
+
+ public function loadBackup($back){
+
+ $backup = unserialize($back);
+ loadComputeBackup($backup["Compute"]);
+ loadIdentityBackup($backup["Identity"]);
+ loadImageBackup($backup["Image"]);
+ loadNetworkBackup($backup["Network"]);
+
}
public function getOptions($service){