slicemgr-1.txt

Thierry Rakotoarivelo, 15/02/2010 11:05 am

Download (5.8 kB)

 
1
OMF Aggregate Manager - slicemgr service
2
========================================
3

    
4
The slicemgr service provides an XML-RPC bridge to an OMF testbed's
5
XMPP server.  It provides interfaces to add and remove PubSub nodes on
6
the XMPP server.  The service only allows manipulation of PubSub nodes
7
relating to the management of the resources of a slice.
8

    
9
The OMF PubSub nodes are organized as a tree (although XMPP does not
10
provide any support for hierarchical node structures).  A diagram of the
11
OMF PubSub node tree can be found here:
12

    
13
http://omf.mytestbed.net/wiki/omf/OMFControlPlanetLab
14

    
15
The top-level node is always called 'OMF'. Underneath the OMF node is
16
a node called OMF/system node, which is used for testbed management
17
functions, and is not accessible via this XML-RPC interface. Alongside
18
the OMF/system node are any number of siblings, each of which
19
corresponds to a PlanetLab slice.
20

    
21
For instance, a slice named 'foo' will have a PubSub node called
22
'OMF/foo'.
23

    
24
All slices will have a PubSub child node named like
25
'OMF/<slice_name>/resources'. The children of
26
'OMF/<slice_name>/resources' are PubSub nodes that correspond to the
27
slivers or resources of the slice. Experiments executed on a slice
28
will generate their own PubSub nodes under
29
'OMF/<slice_name>/<experiment_name>'.
30

    
31
This XML-RPC interface allows for creating and removing the following
32
PubSub nodes:
33

    
34
- OMF/<slice_name>
35
- OMF/<slice_name>/resources
36
- OMF/<slice_name>/resources/<resource_name>
37

    
38
The 'OMF' and 'resources' components of these PubSub node names are
39
literal; the terms in angle brackets '<','>' are substituted with the
40
actual name of the slice and the resource.
41

    
42
NOTE:  the PubSub node names are case sensitive.
43

    
44
NOTE:  the API does not yet support authentication.  Current proposal
45
is to handle SSL/TLS symmetric authentication using a reverse HTTP
46
proxy such as lighttpd.
47

    
48
The available XML-RPC interfaces are described below.  They are
49
provided by the OMF Aggregate Manager, mounted on the /slicemgr URI.
50

    
51

    
52

    
53
slicemgr.createSlice(slice_name)
54
--------------------------------
55

    
56
IN:
57
		slice_name -- string -- name of the slice to be created
58

    
59
Description: Creates the top-level PubSub nodes for a new slice. For
60
instance, if slice_name is 'foo', then the following two nodes will be
61
created:
62

    
63
- OMF/foo
64
- OMF/foo/resources
65

    
66
If either of these nodes already exist then the RPC succeeds as normal
67
(no indication is returned to the client that the node already
68
existed). If the slice_name is 'system' (or 'SYSTEM', or 'SYStem', or
69
'sYStem", etc.) then the RPC fails with fault code 1.
70

    
71
OUT:
72
		struct
73
				result => "OK"  (if the call succeeded)
74
				name => sliceid  -- string -- e.g. "OMF/foo"
75

    
76

    
77

    
78
slicemgr.addResource(slice_name, resource_name)
79
-----------------------------------------------
80

    
81
IN:
82
		slice_name -- string -- name of the slice
83
		resource_name -- string -- name of the new resource
84

    
85
Description: Add a new resource under the slice with the given
86
slice_name. The slice should already have been created using
87
slicemgr.createSlice. If slice_name is 'foo' and resource_name is
88
'onelab10.inria.fr', then the following PubSub node will be created:
89

    
90
- OMF/foo/resources/onelab10.inria.fr
91

    
92
If the node already exists then the RPC succeeds as normal (no
93
indication is returned to the client that the node already existed).
94
If the slice_name is 'system' (or 'SYSTEM', or 'SYStem', etc.), then
95
the RPC fails with fault code 1.
96

    
97
OUT:
98
		struct
99
				result => "OK" (if the call succeeded)
100
				slice => sliceid  -- string -- e.g. "OMF/foo"
101
				resource => resourceid -- string -- e.g. "OMF/foo/onelab10.inria.fr"
102

    
103

    
104

    
105
slicemgr.removeResource(slice_name, resource_name)
106
--------------------------------------------------
107

    
108
IN:
109
		slice_name -- string -- name of the slice
110
		resource_name -- string -- name of the resource
111

    
112
Description: Removes the resource called resource_name from the slice
113
called slice_name. If the slice_name is 'foo' and the resource name is
114
'onelab10.inria.fr', then the following PubSub node will be removed:
115

    
116
- OMF/foo/resources/onelab10.inria.fr
117

    
118
If this PubSub node does not exist then the call succeeds silently (no
119
indication is given to the client that the node did not exist
120
already). If the slice_name is 'system' (or 'SYSTEM', or 'SYStem',
121
etc.), then the RPC fails with fault code 1.
122

    
123
OUT:
124
		struct
125
				result => "OK" (if the call succeeded)
126
				slice => sliceid  -- string -- e.g. "OMF/foo"
127
				resource => resourceid -- string -- e.g. "OMF/foo/onelab10.inria.fr"
128

    
129

    
130

    
131
slicemgr.deleteSlice(slice_name)
132
--------------------------------
133

    
134
IN:
135
		slice_name -- string -- name of the slice to delete
136

    
137
Description:  Deletes the slice called slice_name.  If the slice_name
138
is 'foo' then the following PubSub nodes will be removed:
139

    
140
- OMF/foo
141
- OMF/foo/resources
142
- OMF/foo/resources/*
143

    
144
The wildcard "OMF/foo/resources/*" means that all PubSub nodes
145
corresponding to resources for slice 'foo' will also be removed by
146
this RPC.
147

    
148
If slice_name does not refer to an existing slice then this RPC
149
succeeds silently (no indication is given to the client that the node
150
did not exist already).  If the slice_name is 'system' (or 'SYSTEM, or
151
'SYStem', etc.) then the RPC fails with fault code 1.
152

    
153
OUT:
154
		struct
155
				result => "OK" (if the call succeeded)
156
				slice => sliceid -- string -- e.g. "OMF/foo"
157
				resources => resource_list -- array -- an array of the
158
																  resource nodes removed.
159

    
160

    
161

    
162
NOTES:
163
------
164

    
165
1.  This document describes the first prototype implementation of the
166
XML-RPC interface to the slice/resource creation functions.  The fact that
167
error indications are not returned for attempts to add existing
168
slices/resources or remove non-existing slices/resources is an artefact of the
169
current implementation environment and should be rectified in a
170
subsequent revision.