Programmatic Administration Interface
This section describes the programming interfaces that allow to configure, manage and control nodes, services, applications and resources in a gCube infrastructure. As the gCube technology is deployed as a distributed system, there exist several APIs to manage the different areas of the system. This section is a single point of reference for all these APIs by grouping them for their logical purpose.
This section includes the following topics:
Managing a gCube Hosting Node (gHN) | Describes operations related to manage a node of the infrastructure: how to shut it down or restart it (with and without deleting its state), how to add a new scope and remove an existing scope. |
Managing a Running Instance (RI) | Describes operation related to running instance management: how to add a new scope and remove an existing scope, how to deploy and undeploy them |
Adding / Removing a Scope to a gCube Resource (different from gHN and RI) |
Describes how to add and delete scopes to gCube Resources that are not nodes or service's instances. |
Creating / Deleting a gCube Resource (different from gHN and RI) |
Describes how to manage gCube Resources. There are specific actions for each class of resource. |
Editing a gCube Resource | Describes how to change the representation of gCube Resources in the Information System. Depending on the resource type, different components have to be contacted for this. |
Banning a gCube Resource | Describes how to instruct the Information System to exclude certain gCube resource from a given scope. This operation is available for VO-Managers and makes sense especially for nodes and running instances, when the decision to join or not a scope is partially under the control of Site Managers. |
For each of them, a detailed explanation is provided about which component(s) must be contacted for doing what and which are the scope propagation rules.
Managing a gCube Hosting Node (gHN)
Shut down
Target: Shut down the node
Component(s) to contact:
- Name: gHNManager
- Where: the Running Instance on the gHN
- How to find it: query on the IS that looks for a RI of the gHNManager running on the gHN
- Operation to invoke: shutdown
- Parameters:
setClean=false
,setRestart=false
- Parameters:
Restart
Target: Restart the node and preserve its state
Component(s) to contact:
- Name: gHNManager
- Where: the Running Instance on the gHN
- How to find it: query on the IS that looks for a RI of the gHNManager running on the gHN
- Operation to invoke: shutdown
- Parameters:
setClean=false
,setRestart=true
- Parameters:
Restart and Clean
Target: Restart the node and clean its actual state
Component(s) to contact:
- Name: gHNManager
- Where: the Running Instance on the gHN
- How to find it: query on the IS that looks for a RI of the gHNManager running on the gHN
- Operation to invoke: shutdown
- Parameters:
setClean=true
,setRestart=true
- Parameters:
Add an existing Scope
Target: Add a scope to a gHN and the related Service Map is already available on the gHN
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to add
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: addResources
- Parameters:
setID=<GHN ID>
,setType=GHN
,setTargetScope=<new Scope>
- Parameters:
Add a new Scope
Target: Add a scope to a gHN and the related Service Map is not available on the gHN
Component(s) to contact:
- Name: gHNManager (in case of VO scope)
- Where: the Running Instance on the gHN
- How to find it: query on the IS that looks for a RI of the gHNManager running on the gHN
- Operation to invoke: addScope
- Parameters:
setScope=<new Scope>
,setMap=<string serialization of the Map>
- Parameters:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to add
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: addResources
- Parameters:
setID=<GHN ID>
,setType=GHN
,setTargetScope=<new Scope>
- Parameters:
Remove from a Scope
Target: Remove a gHN from a scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to remove
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: removeResources
- Parameters:
setID=<GHN ID>
,setType=GHN
,setTargetScope=<Scope to remove>
- Parameters:
Managing a Running Instance (RI)
Join a Scope
Target: Join a Running Instance to a scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to join
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: addResources
- Parameters:
setID=<RI ID>
,setType=RunningInstance
,setTargetScope=<Scope to Join>
- Parameters:
Remove from a Scope
Target: Remove a Running Instance from a scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to remove
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: removeResources
- Parameters:
setID=<RI ID>
,setType=RunningInstance
,setTargetScope=<Scope to remove>
- Parameters:
- Note: if the Running Instance is joined only to this scope, it is also undeployed
Deploy
Target: Deploy a new Running Instance in a Scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: addResources
- Parameters:
ServiceItem.setServiceClass=<Service Class>
,ServiceItem.setServiceName=<Service Name>
,ServiceItem.setServiceVersion=<Service Version>
,ServiceItem.setGHN=<GHN ID where to deploy>
(optional, suggested gHN to use),setTargetScope=<Scope to deploy in>
,ServiceList.setGHN=new String[] {"GHNID1","GHNID2","GHNID3","GHNID4","GHNID5"}
(optional, suggested gHNs to use)
- Parameters:
Undeploy
Target: Force the undeployment of a Running Instance from all the scopes it is joined; for a gentler undeploy, see here
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to remove or (if this not work) try all the other scopes to which the RI is joined
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: removeResources
- Parameters:
ServiceItem.setServiceClass=<Service Class of the RI>
,ServiceItem.setServiceName=<Service Name of the RI>
,ServiceItem.setServiceVersion=<Service Version of the RI>
,setTargetScope=<Scope to undeploy from>
- Parameters:
Adding / Removing a Scope to a gCube Resource (different from gHN and RI)
Add to a Scope
Target: Add a gCube Resource to a scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to add
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: addResources
- Parameters:
setID=<Resouurce ID>
,setType=<Resource Type>
,setTargetScope=<Scope to add>
- Parameters:
Remove from a Scope
Target: Remove a gCube Resource from a scope
Component(s) to contact:
- Name: Resource Manager
- Where: the Running Instance managing the Scope to remove
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
/Resource/Profile/Body/Scope/text()=Scope Expression
, then extract the service URI from/Resource/Profile/Body/Service/text()
- How to find it: query on the IS that looks for a RI of the Resource Manager in the new scope or query on the IS that looks for the Generic Resource modeling the scope (the condition is
- Operation to invoke: removeResources
- Parameters:
setID=<Resouurce ID>
,setType=<Resource Type>
,setTargetScope=<Scope to remove>
- Parameters: