HP BL680c XenEnterprise Management API - Page 5

Introduction

Page 5 highlights

Chapter 1 Introduction This document defines the XenEnterprise Management API-an API for remotely configuring and controlling virtualised guests running on a Xen-enabled cluster. The API is presented here as a set of Remote Procedure Calls, with a wire format based upon XML-RPC. No specific language bindings are prescribed, although examples will be given in the python programming language. Although we adopt some terminology from object-oriented programming, future client language bindings may or may not be object oriented. The API reference uses the terminology classes and objects. For our purposes a class is simply a hierarchical namespace; an object is an instance of a class with its fields set to specific values. Objects are persistent and exist on the server-side. Clients may obtain opaque references to these server-side objects and then access their fields via get/set RPCs. For each class we specify a list of fields along with their types and qualifiers. A qualifier is one of: • ROrun : the field is Read Only. Furthermore, its value is automatically computed at runtime. For example: current CPU load and disk IO throughput. • ROins : the field must be manually set when a new object is created, but is then Read Only for the duration of the object's life. For example, the maximum memory addressable by a guest is set before the guest boots. • RW : the field is Read/Write. For example, the name of a VM. A full list of types is given in Chapter 2. However, there are three types that require explicit mention: • t Ref : signifies a reference to an object of type t. • t Set : signifies a set containing values of type t. • (t1, t2) Map: signifies a mapping from values of type t1 to values of type t2. Note that there are a number of cases where Refs are doubly linked -e.g. a VM has a field called VIFs of type (VIF Ref ) Set ; this field lists the network interfaces attached to a particular VM. Similarly, the VIF class has a field called VM of type (VM Ref) which references the VM to which the interface is connected. These two fields are bound together , in the sense that creating a new VIF causes the VIFs field of the corresponding VM object to be updated automatically. The API reference explicitly lists the fields that are bound together in this way. It also contains a diagram that shows relationships between classes. In this diagram an edge signifies the existance of a pair of fields that are bound together, using standard crows-foot notation to signify the type of relationship (e.g. one-many, many-many). 5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313

Chapter 1
Introduction
This document defines the XenEnterprise Management API—an API for remotely configuring and
controlling virtualised guests running on a Xen-enabled cluster.
The API is presented here as a set of Remote Procedure Calls, with a wire format based upon
XML-RPC. No specific language bindings are prescribed, although examples will be given in the
python programming language.
Although we adopt some terminology from object-oriented programming, future client language
bindings may or may not be object oriented. The API reference uses the terminology
classes
and
objects
. For our purposes a
class
is simply a hierarchical namespace; an
object
is an instance of
a class with its fields set to specific values. Objects are persistent and exist on the server-side.
Clients may obtain opaque references to these server-side objects and then access their fields via
get/set RPCs.
For each class we specify a list of fields along with their
types
and
qualifiers
. A qualifier is one of:
RO
run
: the field is Read Only. Furthermore, its value is automatically computed at runtime.
For example: current CPU load and disk IO throughput.
RO
ins
: the field must be manually set when a new object is created, but is then Read Only
for the duration of the object’s life. For example, the maximum memory addressable by a
guest is set before the guest boots.
RW
: the field is Read/Write. For example, the name of a VM.
A full list of types is given in Chapter 2.
However, there are three types that require explicit
mention:
t
Ref
: signifies a reference to an object of type
t
.
t
Set
: signifies a set containing values of type
t
.
(
t
1
,t
2
)
Map
: signifies a mapping from values of type
t
1
to values of type
t
2
.
Note that there are a number of cases where
Ref
s are
doubly linked
—e.g. a VM has a field called
VIFs
of type (
VIF Ref
)
Set
; this field lists the network interfaces attached to a particular VM.
Similarly, the VIF class has a field called
VM
of type (
VM R
ef
) which references the VM to which
the interface is connected. These two fields are
bound together
, in the sense that creating a new
VIF causes the
VIFs
field of the corresponding VM object to be updated automatically.
The API reference explicitly lists the fields that are bound together in this way. It also contains a
diagram that shows relationships between classes. In this diagram an edge signifies the existance
of a pair of fields that are bound together, using standard crows-foot notation to signify the type
of relationship (e.g. one-many, many-many).
5