2
% Copyright (c) 2006-2007 XenSource, Inc.
3
% Copyright (c) 2009 flonatel GmbH & Co. KG
5
% Permission is granted to copy, distribute and/or modify this document under
6
% the terms of the GNU Free Documentation License, Version 1.2 or any later
7
% version published by the Free Software Foundation; with no Invariant
8
% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
9
% license is included in the section entitled
10
% "GNU Free Documentation License" or the file fdl.tex.
12
% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
13
% Contributor: Andreas Florath
16
\chapter{API Reference}
21
The following classes are defined:
23
\begin{center}\begin{tabular}{|lp{10cm}|}
27
{\tt session} & A session \\
28
{\tt task} & A long-running asynchronous task \\
29
{\tt event} & Asynchronous event registration and handling \\
30
{\tt VM} & A virtual machine (or 'guest') \\
31
{\tt VM\_metrics} & The metrics associated with a VM \\
32
{\tt VM\_guest\_metrics} & The metrics reported by the guest (as opposed to inferred from outside) \\
33
{\tt host} & A physical host \\
34
{\tt host\_metrics} & The metrics associated with a host \\
35
{\tt host\_cpu} & A physical CPU \\
36
{\tt network} & A virtual network \\
37
{\tt VIF} & A virtual network interface \\
38
{\tt VIF\_metrics} & The metrics associated with a virtual network device \\
39
{\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
40
{\tt PIF\_metrics} & The metrics associated with a physical network interface \\
41
{\tt SR} & A storage repository \\
42
{\tt VDI} & A virtual disk image \\
43
{\tt VBD} & A virtual block device \\
44
{\tt VBD\_metrics} & The metrics associated with a virtual block device \\
45
{\tt PBD} & The physical block devices through which hosts access SRs \\
46
{\tt crashdump} & A VM crashdump \\
47
{\tt VTPM} & A virtual TPM device \\
48
{\tt console} & A console \\
49
{\tt DPCI} & A pass-through PCI device \\
50
{\tt PPCI} & A physical PCI device \\
51
{\tt DSCSI} & A half-virtualized SCSI device \\
52
{\tt DSCSI\_HBA} & A half-virtualized SCSI host bus adapter \\
53
{\tt PSCSI} & A physical SCSI device \\
54
{\tt PSCSI\_HBA} & A physical SCSI host bus adapter \\
55
{\tt user} & A user of the system \\
56
{\tt debug} & A basic class for testing \\
57
{\tt XSPolicy} & A class for handling Xen Security Policies \\
58
{\tt ACMPolicy} & A class for handling ACM-type policies \\
60
\end{tabular}\end{center}
61
\section{Relationships Between Classes}
62
Fields that are bound together are shown in the following table:
63
\begin{center}\begin{tabular}{|ll|l|}
65
{\em object.field} & {\em object.field} & {\em relationship} \\
68
host.PBDs & PBD.host & many-to-one\\
69
SR.PBDs & PBD.SR & many-to-one\\
70
VDI.VBDs & VBD.VDI & many-to-one\\
71
VDI.crash\_dumps & crashdump.VDI & many-to-one\\
72
VBD.VM & VM.VBDs & one-to-many\\
73
crashdump.VM & VM.crash\_dumps & one-to-many\\
74
VIF.VM & VM.VIFs & one-to-many\\
75
VIF.network & network.VIFs & one-to-many\\
76
PIF.host & host.PIFs & one-to-many\\
77
PIF.network & network.PIFs & one-to-many\\
78
SR.VDIs & VDI.SR & many-to-one\\
79
VTPM.VM & VM.VTPMs & one-to-many\\
80
console.VM & VM.consoles & one-to-many\\
81
DPCI.VM & VM.DPCIs & one-to-many\\
82
PPCI.host & host.PPCIs & one-to-many\\
83
DSCSI.VM & VM.DSCSIs & one-to-many\\
84
DSCSI.HBA & DSCSI\_HBA.DSCSIs & one-to-many\\
85
DSCSI\_HBA.VM & VM.DSCSI\_HBAs & one-to-many\\
86
PSCSI.host & host.PSCSIs & one-to-many\\
87
PSCSI.HBA & PSCSI\_HBA.PSCSIs & one-to-many\\
88
PSCSI\_HBA.host & host.PSCSI\_HBAs & one-to-many\\
89
host.resident\_VMs & VM.resident\_on & many-to-one\\
90
host.host\_CPUs & host\_cpu.host & many-to-one\\
92
\end{tabular}\end{center}
94
The following represents bound fields (as specified above) diagrammatically, using crows-foot notation to specify one-to-one, one-to-many or many-to-many
97
\begin{center}\resizebox{0.8\textwidth}{!}{
98
\includegraphics{xenapi-datamodel-graph}
101
\subsection{List of bound fields}
103
\subsection{Primitives}
104
The following primitive types are used to specify methods and fields in the API Reference:
106
\begin{center}\begin{tabular}{|ll|}
108
Type & Description \\
110
String & text strings \\
111
Int & 64-bit integers \\
112
Float & IEEE double-precision floating-point numbers \\
114
DateTime & date and timestamp \\
115
Ref (object name) & reference to an object of class name \\
117
\end{tabular}\end{center}
118
\subsection{Higher order types}
119
The following type constructors are used:
121
\begin{center}\begin{tabular}{|ll|}
123
Type & Description \\
125
List (t) & an arbitrary-length list of elements of type t \\
126
Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
128
\end{tabular}\end{center}
129
\subsection{Enumeration types}
130
The following enumeration types are used:
132
\begin{longtable}{|ll|}
134
{\tt enum event\_operation} & \\
136
\hspace{0.5cm}{\tt add} & An object has been created \\
137
\hspace{0.5cm}{\tt del} & An object has been deleted \\
138
\hspace{0.5cm}{\tt mod} & An object has been modified \\
143
\begin{longtable}{|ll|}
145
{\tt enum console\_protocol} & \\
147
\hspace{0.5cm}{\tt vt100} & VT100 terminal \\
148
\hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
149
\hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
154
\begin{longtable}{|ll|}
156
{\tt enum vdi\_type} & \\
158
\hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
159
\hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
160
\hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
161
\hspace{0.5cm}{\tt suspend} & a disk that stores a suspend image \\
162
\hspace{0.5cm}{\tt crashdump} & a disk that stores VM crashdump information \\
167
\begin{longtable}{|ll|}
169
{\tt enum vm\_power\_state} & \\
171
\hspace{0.5cm}{\tt Halted} & Halted \\
172
\hspace{0.5cm}{\tt Paused} & Paused \\
173
\hspace{0.5cm}{\tt Running} & Running \\
174
\hspace{0.5cm}{\tt Suspended} & Suspended \\
175
\hspace{0.5cm}{\tt Crashed} & Crashed \\
176
\hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
181
\begin{longtable}{|ll|}
183
{\tt enum task\_allowed\_operations} & \\
185
\hspace{0.5cm}{\tt Cancel} & Cancel \\
190
\begin{longtable}{|ll|}
192
{\tt enum task\_status\_type} & \\
194
\hspace{0.5cm}{\tt pending} & task is in progress \\
195
\hspace{0.5cm}{\tt success} & task was completed successfully \\
196
\hspace{0.5cm}{\tt failure} & task has failed \\
197
\hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
198
\hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
203
\begin{longtable}{|ll|}
205
{\tt enum on\_normal\_exit} & \\
207
\hspace{0.5cm}{\tt destroy} & destroy the VM state \\
208
\hspace{0.5cm}{\tt restart} & restart the VM \\
213
\begin{longtable}{|ll|}
215
{\tt enum on\_crash\_behaviour} & \\
217
\hspace{0.5cm}{\tt destroy} & destroy the VM state \\
218
\hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
219
\hspace{0.5cm}{\tt restart} & restart the VM \\
220
\hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
221
\hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
222
\hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
227
\begin{longtable}{|ll|}
229
{\tt enum vbd\_mode} & \\
231
\hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
232
\hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
237
\begin{longtable}{|ll|}
239
{\tt enum vbd\_type} & \\
241
\hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
242
\hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
249
\section{Error Handling}
250
When a low-level transport error occurs, or a request is malformed at the HTTP
251
or XML-RPC level, the server may send an XML-RPC Fault response, or the client
252
may simulate the same. The client must be prepared to handle these errors,
253
though they may be treated as fatal. On the wire, these are transmitted in a
254
form similar to this:
262
<name>faultCode</name>
263
<value><int>-1</int></value>
266
<name>faultString</name>
267
<value><string>Malformed request</string></value>
275
All other failures are reported with a more structured error response, to
276
allow better automatic response to failures, proper internationalisation of
277
any error message, and easier debugging. On the wire, these are transmitted
284
<value>Failure</value>
287
<name>ErrorDescription</name>
291
<value>MAP_DUPLICATE_KEY</value>
292
<value>Customer</value>
293
<value>eSpeil Inc.</value>
294
<value>eSpeil Incorporated</value>
302
Note that {\tt ErrorDescription} value is an array of string values. The
303
first element of the array is an error code; the remainder of the array are
304
strings representing error parameters relating to that code. In this case,
305
the client has attempted to add the mapping {\tt Customer $\rightarrow$
306
eSpiel Incorporated} to a Map, but it already contains the mapping
307
{\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
309
The reference below lists each possible error returned by each method.
310
As well as the errors explicitly listed, any method may return low-level
311
errors as described above, or any of the following generic errors:
314
\item HANDLE\_INVALID
315
\item INTERNAL\_ERROR
316
\item MAP\_DUPLICATE\_KEY
317
\item MESSAGE\_METHOD\_UNKNOWN
318
\item MESSAGE\_PARAMETER\_COUNT\_MISMATCH
319
\item OPERATION\_NOT\_ALLOWED
320
\item PERMISSION\_DENIED
321
\item SESSION\_INVALID
324
Each possible error code is documented in the following section.
326
\subsection{Error Codes}
328
\subsubsection{HANDLE\_INVALID}
330
You gave an invalid handle. The object may have recently been deleted.
331
The class parameter gives the type of reference given, and the handle
332
parameter echoes the bad value given.
336
\begin{verbatim}HANDLE_INVALID(class, handle)\end{verbatim}
337
\begin{center}\rule{10em}{0.1pt}\end{center}
339
\subsubsection{INTERNAL\_ERROR}
341
The server failed to handle your request, due to an internal error. The
342
given message may give details useful for debugging the problem.
346
\begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
347
\begin{center}\rule{10em}{0.1pt}\end{center}
349
\subsubsection{MAP\_DUPLICATE\_KEY}
351
You tried to add a key-value pair to a map, but that key is already there.
352
The key, current value, and the new value that you tried to set are all
357
\begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
358
\begin{center}\rule{10em}{0.1pt}\end{center}
360
\subsubsection{MESSAGE\_METHOD\_UNKNOWN}
362
You tried to call a method that does not exist. The method name that you
367
\begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
368
\begin{center}\rule{10em}{0.1pt}\end{center}
370
\subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
372
You tried to call a method with the incorrect number of parameters. The
373
fully-qualified method name that you used, and the number of received and
374
expected parameters are returned.
378
\begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
379
\begin{center}\rule{10em}{0.1pt}\end{center}
381
\subsubsection{NETWORK\_ALREADY\_CONNECTED}
383
You tried to create a PIF, but the network you tried to attach it to is
384
already attached to some other PIF, and so the creation failed.
388
\begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
389
\begin{center}\rule{10em}{0.1pt}\end{center}
391
\subsubsection{OPERATION\_NOT\_ALLOWED}
393
You attempted an operation that was not allowed.
397
\begin{center}\rule{10em}{0.1pt}\end{center}
399
\subsubsection{PERMISSION\_DENIED}
401
You do not have the required permissions to perform the operation.
405
\begin{center}\rule{10em}{0.1pt}\end{center}
407
\subsubsection{PIF\_IS\_PHYSICAL}
409
You tried to destroy a PIF, but it represents an aspect of the physical
410
host configuration, and so cannot be destroyed. The parameter echoes the
415
\begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim}
416
\begin{center}\rule{10em}{0.1pt}\end{center}
418
\subsubsection{SESSION\_AUTHENTICATION\_FAILED}
420
The credentials given by the user are incorrect, so access has been denied,
421
and you have not been issued a session handle.
425
\begin{center}\rule{10em}{0.1pt}\end{center}
427
\subsubsection{SESSION\_INVALID}
429
You gave an invalid session handle. It may have been invalidated by a
430
server restart, or timed out. You should get a new session handle, using
431
one of the session.login\_ calls. This error does not invalidate the
432
current connection. The handle parameter echoes the bad value given.
436
\begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
437
\begin{center}\rule{10em}{0.1pt}\end{center}
439
\subsubsection{SESSION\_NOT\_REGISTERED}
441
This session is not registered to receive events. You must call
442
event.register before event.next. The session handle you are using is
447
\begin{verbatim}SESSION_NOT_REGISTERED(handle)\end{verbatim}
448
\begin{center}\rule{10em}{0.1pt}\end{center}
450
\subsubsection{VALUE\_NOT\_SUPPORTED}
452
You attempted to set a value that is not supported by this implementation.
453
The fully-qualified field name and the value that you tried to set are
454
returned. Also returned is a developer-only diagnostic reason.
458
\begin{verbatim}VALUE_NOT_SUPPORTED(field, value, reason)\end{verbatim}
459
\begin{center}\rule{10em}{0.1pt}\end{center}
461
\subsubsection{VLAN\_TAG\_INVALID}
463
You tried to create a VLAN, but the tag you gave was invalid -- it must be
464
between 0 and 4095. The parameter echoes the VLAN tag you gave.
468
\begin{verbatim}VLAN_TAG_INVALID(VLAN)\end{verbatim}
469
\begin{center}\rule{10em}{0.1pt}\end{center}
471
\subsubsection{VM\_BAD\_POWER\_STATE}
473
You attempted an operation on a VM that was not in an appropriate power
474
state at the time; for example, you attempted to start a VM that was
475
already running. The parameters returned are the VM's handle, and the
476
expected and actual VM state at the time of the call.
480
\begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
481
\begin{center}\rule{10em}{0.1pt}\end{center}
483
\subsubsection{VM\_HVM\_REQUIRED}
485
HVM is required for this operation
489
\begin{verbatim}VM_HVM_REQUIRED(vm)\end{verbatim}
490
\begin{center}\rule{10em}{0.1pt}\end{center}
492
\subsubsection{SECURITY\_ERROR}
494
A security error occurred. The parameter provides the xen security
495
error code and a message describing the error.
499
\begin{verbatim}SECURITY_ERROR(xserr, message)\end{verbatim}
500
\begin{center}\rule{10em}{0.1pt}\end{center}
504
\section{Class: session}
505
\subsection{Fields for class: session}
506
\begin{longtable}{|lllp{0.38\textwidth}|}
508
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
509
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
512
Quals & Field & Type & Description \\
514
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
515
$\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
516
$\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
517
$\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
520
\subsection{RPCs associated with class: session}
521
\subsubsection{RPC name:~login\_with\_password}
524
Attempt to authenticate the user, returning a session\_id if successful.
526
\noindent {\bf Signature:}
527
\begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
530
\noindent{\bf Arguments:}
534
\begin{tabular}{|c|c|p{7cm}|}
536
{\bf type} & {\bf name} & {\bf description} \\ \hline
537
{\tt string } & uname & Username for login. \\ \hline
539
{\tt string } & pwd & Password for login. \\ \hline
545
\noindent {\bf Return Type:}
551
ID of newly created session
555
\noindent{\bf Possible Error Codes:} {\tt SESSION\_AUTHENTICATION\_FAILED}
560
\subsubsection{RPC name:~logout}
563
Log out of a session.
565
\noindent {\bf Signature:}
566
\begin{verbatim} void logout (session_id s)\end{verbatim}
571
\noindent {\bf Return Type:}
581
\subsubsection{RPC name:~get\_uuid}
584
Get the uuid field of the given session.
586
\noindent {\bf Signature:}
587
\begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
590
\noindent{\bf Arguments:}
594
\begin{tabular}{|c|c|p{7cm}|}
596
{\bf type} & {\bf name} & {\bf description} \\ \hline
597
{\tt session ref } & self & reference to the object \\ \hline
603
\noindent {\bf Return Type:}
613
\subsubsection{RPC name:~get\_this\_host}
616
Get the this\_host field of the given session.
618
\noindent {\bf Signature:}
619
\begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
622
\noindent{\bf Arguments:}
626
\begin{tabular}{|c|c|p{7cm}|}
628
{\bf type} & {\bf name} & {\bf description} \\ \hline
629
{\tt session ref } & self & reference to the object \\ \hline
635
\noindent {\bf Return Type:}
645
\subsubsection{RPC name:~get\_this\_user}
648
Get the this\_user field of the given session.
650
\noindent {\bf Signature:}
651
\begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
654
\noindent{\bf Arguments:}
658
\begin{tabular}{|c|c|p{7cm}|}
660
{\bf type} & {\bf name} & {\bf description} \\ \hline
661
{\tt session ref } & self & reference to the object \\ \hline
667
\noindent {\bf Return Type:}
677
\subsubsection{RPC name:~get\_last\_active}
680
Get the last\_active field of the given session.
682
\noindent {\bf Signature:}
683
\begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
686
\noindent{\bf Arguments:}
690
\begin{tabular}{|c|c|p{7cm}|}
692
{\bf type} & {\bf name} & {\bf description} \\ \hline
693
{\tt session ref } & self & reference to the object \\ \hline
699
\noindent {\bf Return Type:}
709
\subsubsection{RPC name:~get\_by\_uuid}
712
Get a reference to the session instance with the specified UUID.
714
\noindent {\bf Signature:}
715
\begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
718
\noindent{\bf Arguments:}
722
\begin{tabular}{|c|c|p{7cm}|}
724
{\bf type} & {\bf name} & {\bf description} \\ \hline
725
{\tt string } & uuid & UUID of object to return \\ \hline
731
\noindent {\bf Return Type:}
737
reference to the object
741
\subsubsection{RPC name:~get\_record}
744
Get a record containing the current state of the given session.
746
\noindent {\bf Signature:}
747
\begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
750
\noindent{\bf Arguments:}
754
\begin{tabular}{|c|c|p{7cm}|}
756
{\bf type} & {\bf name} & {\bf description} \\ \hline
757
{\tt session ref } & self & reference to the object \\ \hline
763
\noindent {\bf Return Type:}
769
all fields from the object
776
\section{Class: task}
777
\subsection{Fields for class: task}
778
\begin{longtable}{|lllp{0.38\textwidth}|}
780
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
781
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
782
long-running asynchronous task.}} \\
784
Quals & Field & Type & Description \\
786
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
787
$\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
788
$\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
789
$\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
790
$\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
791
$\mathit{RO}_\mathit{run}$ & {\tt progress} & int & if the task is still pending, this field contains the estimated percentage complete (0-100). If task has completed (successfully or unsuccessfully) this should be 100. \\
792
$\mathit{RO}_\mathit{run}$ & {\tt type} & string & if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise. \\
793
$\mathit{RO}_\mathit{run}$ & {\tt result} & string & if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise. \\
794
$\mathit{RO}_\mathit{run}$ & {\tt error\_info} & string Set & if the task has failed, this field contains the set of associated error strings. Undefined otherwise. \\
795
$\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
798
\subsection{RPCs associated with class: task}
799
\subsubsection{RPC name:~cancel}
802
Cancel this task. If task.allowed\_operations does not contain Cancel,
803
then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
804
status 'cancelling', and you should continue to check its status until it
805
shows 'cancelled'. There is no guarantee as to the time within which this
806
task will be cancelled.
808
\noindent {\bf Signature:}
809
\begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
812
\noindent{\bf Arguments:}
816
\begin{tabular}{|c|c|p{7cm}|}
818
{\bf type} & {\bf name} & {\bf description} \\ \hline
819
{\tt task ref } & task & The task \\ \hline
825
\noindent {\bf Return Type:}
834
\noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
837
\subsubsection{RPC name:~get\_all}
840
Return a list of all the tasks known to the system.
842
\noindent {\bf Signature:}
843
\begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
848
\noindent {\bf Return Type:}
854
references to all objects
858
\subsubsection{RPC name:~get\_uuid}
861
Get the uuid field of the given task.
863
\noindent {\bf Signature:}
864
\begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
867
\noindent{\bf Arguments:}
871
\begin{tabular}{|c|c|p{7cm}|}
873
{\bf type} & {\bf name} & {\bf description} \\ \hline
874
{\tt task ref } & self & reference to the object \\ \hline
880
\noindent {\bf Return Type:}
890
\subsubsection{RPC name:~get\_name\_label}
893
Get the name/label field of the given task.
895
\noindent {\bf Signature:}
896
\begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
899
\noindent{\bf Arguments:}
903
\begin{tabular}{|c|c|p{7cm}|}
905
{\bf type} & {\bf name} & {\bf description} \\ \hline
906
{\tt task ref } & self & reference to the object \\ \hline
912
\noindent {\bf Return Type:}
922
\subsubsection{RPC name:~get\_name\_description}
925
Get the name/description field of the given task.
927
\noindent {\bf Signature:}
928
\begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
931
\noindent{\bf Arguments:}
935
\begin{tabular}{|c|c|p{7cm}|}
937
{\bf type} & {\bf name} & {\bf description} \\ \hline
938
{\tt task ref } & self & reference to the object \\ \hline
944
\noindent {\bf Return Type:}
954
\subsubsection{RPC name:~get\_status}
957
Get the status field of the given task.
959
\noindent {\bf Signature:}
960
\begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
963
\noindent{\bf Arguments:}
967
\begin{tabular}{|c|c|p{7cm}|}
969
{\bf type} & {\bf name} & {\bf description} \\ \hline
970
{\tt task ref } & self & reference to the object \\ \hline
976
\noindent {\bf Return Type:}
986
\subsubsection{RPC name:~get\_session}
989
Get the session field of the given task.
991
\noindent {\bf Signature:}
992
\begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
995
\noindent{\bf Arguments:}
999
\begin{tabular}{|c|c|p{7cm}|}
1001
{\bf type} & {\bf name} & {\bf description} \\ \hline
1002
{\tt task ref } & self & reference to the object \\ \hline
1008
\noindent {\bf Return Type:}
1018
\subsubsection{RPC name:~get\_progress}
1021
Get the progress field of the given task.
1023
\noindent {\bf Signature:}
1024
\begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
1027
\noindent{\bf Arguments:}
1031
\begin{tabular}{|c|c|p{7cm}|}
1033
{\bf type} & {\bf name} & {\bf description} \\ \hline
1034
{\tt task ref } & self & reference to the object \\ \hline
1040
\noindent {\bf Return Type:}
1050
\subsubsection{RPC name:~get\_type}
1053
Get the type field of the given task.
1055
\noindent {\bf Signature:}
1056
\begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
1059
\noindent{\bf Arguments:}
1063
\begin{tabular}{|c|c|p{7cm}|}
1065
{\bf type} & {\bf name} & {\bf description} \\ \hline
1066
{\tt task ref } & self & reference to the object \\ \hline
1072
\noindent {\bf Return Type:}
1082
\subsubsection{RPC name:~get\_result}
1085
Get the result field of the given task.
1087
\noindent {\bf Signature:}
1088
\begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
1091
\noindent{\bf Arguments:}
1095
\begin{tabular}{|c|c|p{7cm}|}
1097
{\bf type} & {\bf name} & {\bf description} \\ \hline
1098
{\tt task ref } & self & reference to the object \\ \hline
1104
\noindent {\bf Return Type:}
1114
\subsubsection{RPC name:~get\_error\_info}
1117
Get the error\_info field of the given task.
1119
\noindent {\bf Signature:}
1120
\begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
1123
\noindent{\bf Arguments:}
1127
\begin{tabular}{|c|c|p{7cm}|}
1129
{\bf type} & {\bf name} & {\bf description} \\ \hline
1130
{\tt task ref } & self & reference to the object \\ \hline
1136
\noindent {\bf Return Type:}
1146
\subsubsection{RPC name:~get\_allowed\_operations}
1149
Get the allowed\_operations field of the given task.
1151
\noindent {\bf Signature:}
1152
\begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
1155
\noindent{\bf Arguments:}
1159
\begin{tabular}{|c|c|p{7cm}|}
1161
{\bf type} & {\bf name} & {\bf description} \\ \hline
1162
{\tt task ref } & self & reference to the object \\ \hline
1168
\noindent {\bf Return Type:}
1170
(task\_allowed\_operations) Set
1178
\subsubsection{RPC name:~get\_by\_uuid}
1181
Get a reference to the task instance with the specified UUID.
1183
\noindent {\bf Signature:}
1184
\begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
1187
\noindent{\bf Arguments:}
1191
\begin{tabular}{|c|c|p{7cm}|}
1193
{\bf type} & {\bf name} & {\bf description} \\ \hline
1194
{\tt string } & uuid & UUID of object to return \\ \hline
1200
\noindent {\bf Return Type:}
1206
reference to the object
1210
\subsubsection{RPC name:~get\_record}
1213
Get a record containing the current state of the given task.
1215
\noindent {\bf Signature:}
1216
\begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
1219
\noindent{\bf Arguments:}
1223
\begin{tabular}{|c|c|p{7cm}|}
1225
{\bf type} & {\bf name} & {\bf description} \\ \hline
1226
{\tt task ref } & self & reference to the object \\ \hline
1232
\noindent {\bf Return Type:}
1238
all fields from the object
1242
\subsubsection{RPC name:~get\_by\_name\_label}
1245
Get all the task instances with the given label.
1247
\noindent {\bf Signature:}
1248
\begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
1251
\noindent{\bf Arguments:}
1255
\begin{tabular}{|c|c|p{7cm}|}
1257
{\bf type} & {\bf name} & {\bf description} \\ \hline
1258
{\tt string } & label & label of object to return \\ \hline
1264
\noindent {\bf Return Type:}
1270
references to objects with match names
1277
\section{Class: event}
1278
\subsection{Fields for class: event}
1279
\begin{longtable}{|lllp{0.38\textwidth}|}
1281
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf event} \\
1282
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
1283
Asynchronous event registration and handling.}} \\
1285
Quals & Field & Type & Description \\
1287
$\mathit{RO}_\mathit{ins}$ & {\tt id} & int & An ID, monotonically increasing, and local to the current session \\
1288
$\mathit{RO}_\mathit{ins}$ & {\tt timestamp} & datetime & The time at which the event occurred \\
1289
$\mathit{RO}_\mathit{ins}$ & {\tt class} & string & The name of the class of the object that changed \\
1290
$\mathit{RO}_\mathit{ins}$ & {\tt operation} & event\_operation & The operation that was performed \\
1291
$\mathit{RO}_\mathit{ins}$ & {\tt ref} & string & A reference to the object that changed \\
1292
$\mathit{RO}_\mathit{ins}$ & {\tt obj\_uuid} & string & The uuid of the object that changed \\
1295
\subsection{RPCs associated with class: event}
1296
\subsubsection{RPC name:~register}
1299
Registers this session with the event system. Specifying the empty list
1300
will register for all classes.
1302
\noindent {\bf Signature:}
1303
\begin{verbatim} void register (session_id s, string Set classes)\end{verbatim}
1306
\noindent{\bf Arguments:}
1310
\begin{tabular}{|c|c|p{7cm}|}
1312
{\bf type} & {\bf name} & {\bf description} \\ \hline
1313
{\tt string Set } & classes & register for events for the indicated classes \\ \hline
1319
\noindent {\bf Return Type:}
1329
\subsubsection{RPC name:~unregister}
1332
Unregisters this session with the event system.
1334
\noindent {\bf Signature:}
1335
\begin{verbatim} void unregister (session_id s, string Set classes)\end{verbatim}
1338
\noindent{\bf Arguments:}
1342
\begin{tabular}{|c|c|p{7cm}|}
1344
{\bf type} & {\bf name} & {\bf description} \\ \hline
1345
{\tt string Set } & classes & remove this session's registration for the indicated classes \\ \hline
1351
\noindent {\bf Return Type:}
1361
\subsubsection{RPC name:~next}
1364
Blocking call which returns a (possibly empty) batch of events.
1366
\noindent {\bf Signature:}
1367
\begin{verbatim} ((event record) Set) next (session_id s)\end{verbatim}
1372
\noindent {\bf Return Type:}
1381
\noindent{\bf Possible Error Codes:} {\tt SESSION\_NOT\_REGISTERED}
1388
\subsection{Fields for class: VM}
1389
\begin{longtable}{|llp{0.21\textwidth}p{0.33\textwidth}|}
1391
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1392
\multicolumn{4}{|l|}{\parbox{11cm}{\em Description: A
1393
virtual machine (or 'guest').}} \\
1395
Quals & Field & Type & Description \\
1397
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1398
$\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1399
$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1400
$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1401
$\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1402
$\mathit{RW}$ & {\tt is\_a\_template} & bool & true if this is a template. Template VMs can never be started, they are used only for cloning other VMs \\
1403
$\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1404
$\mathit{RO}_\mathit{run}$ & {\tt suspend\_VDI} & VDI ref & The VDI that a suspend image is stored on. (Only has meaning if VM is currently suspended) \\
1405
$\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1406
$\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1407
$\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1408
$\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1409
$\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) minimum (bytes) \\
1410
$\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
1411
$\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
1412
$\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
1413
$\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1414
$\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1415
$\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1416
$\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1417
$\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1418
$\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1419
$\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
1420
$\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1421
$\mathit{RO}_\mathit{run}$ & {\tt DPCIs} & (DPCI ref) Set & pass-through PCI devices \\
1422
$\mathit{RO}_\mathit{run}$ & {\tt DSCSIs} & (DSCSI ref) Set & half-virtualized SCSI devices \\
1423
$\mathit{RO}_\mathit{run}$ & {\tt DSCSI\_HBAs} & (DSCSI\_HBA ref) Set & half-virtualized SCSI host bus adapters \\
1424
$\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1425
$\mathit{RW}$ & {\tt PV/kernel} & string & URI of kernel \\
1426
$\mathit{RW}$ & {\tt PV/ramdisk} & string & URI of initrd \\
1427
$\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1428
$\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1429
$\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
1430
$\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
1431
$\mathit{RW}$ & {\tt platform} & (string $\rightarrow$ string) Map & platform-specific configuration \\
1432
$\mathit{RW}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1433
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
1434
$\mathit{RO}_\mathit{run}$ & {\tt domid} & int & domain ID (if available, -1 otherwise) \\
1435
$\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
1436
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM \\
1437
$\mathit{RO}_\mathit{run}$ & {\tt guest\_metrics} & VM\_guest\_metrics ref & metrics associated with the running guest \\
1438
$\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
1441
\subsection{Parameter Details}
1442
\subsubsection{PV/kernel and PV/ramdisk}
1443
The \texttt{PV/kernel} and \texttt{PV/ramdisk} parameters should be
1444
specified as URIs with either a \texttt{file} or \texttt{data} scheme.
1446
The \texttt{file} scheme must be used when a file on the remote dom0
1447
should be used. The remote dom0 is the one where the guest system
1448
should be started on. Only absolute filenames are supported, i.e. the
1449
string must start with \texttt{file://} appended with the absolute
1450
path. This is typically used when the guest system use the same
1451
operating systems as the dom0 or there is some kind of shared storage
1452
for the images inside the dom0s.
1454
Note that for compatibility reasons it is possible --- but not
1455
recommended --- to leave out the scheme specification for
1456
\texttt{file}, i.e. \texttt{file:///some/path} and \texttt{/some/path}
1459
Examples (in python):
1461
Use kernel image which resides in the \texttt{/boot} directory:
1463
xenapi.VM.create({ ...
1464
'PV_kernel': 'file:///boot/vmlinuz-2.6.26-2-xen-686',
1468
Use ramdisk image which resides on a (shared) nfs directory:
1470
xenapi.VM.create({ ...
1471
'PV_ramdisk': 'file:///nfs/xen/debian/5.0.1/initrd.img-2.6.26-2-xen-686'
1475
When an image should be used which resides on the local system,
1476
i.e. the system where the XenAPI call is send from, it is possible to
1477
use the \texttt{data} URI scheme as described in \cite{RFC2397}. The
1478
media-type must be set to \texttt{application/octet-stream}.
1479
Currently only base64 encoding is supported. The URI must therefore
1480
start with \texttt{data:application/octet-stream;base64,} followed by
1481
the base64 encoded image.
1483
The \texttt{xen/util/fileuri.py} provides a helper function which
1484
takes a local filename as parameter and build up the correct URI from
1487
Examples (in python):
1489
Use kernel image specified inline:
1491
xenapi.VM.create({ ...
1492
'PV_kernel': 'data:application/octet-stream;base64,H4Zu....'
1493
# most of base64 encoded data is omitted
1497
Using the utility function:
1499
from xen.util.fileuri import scheme_data
1500
xenapi.VM.create({ ...
1501
'PV_kernel': scheme_data.create_from_file(
1502
"/xen/guests/images/debian/5.0.1/vmlinuz-2.6.26-2-xen-686"),
1506
Currently when using the \texttt{data} URI scheme, a temporary file is
1507
created on the remote dom0 in the directory
1508
\texttt{/var/run/xend/boot} which is then used for booting. When not
1509
used any longer the file is deleted. (Therefore reading of the
1510
\texttt{PV/kernel} or \texttt{PV/ramdisk} parameters when created with
1511
a \texttt{data} URI scheme returns a filename to a temporary file ---
1512
which might even not exists when querying.) This implementation might
1513
change in the way that the data is directly used --- without the
1514
indirection using a file. Therefore do not rely on the data resulting
1515
from a read of a variables which was set using the \texttt{data}
1518
Note: a mix of different schemes for the parameters is possible; e.g.
1519
the kernel can be specified with a \texttt{file} and the ramdisk with
1520
the \texttt{data} URI scheme.
1522
\subsection{RPCs associated with class: VM}
1523
\subsubsection{RPC name:~clone}
1526
Clones the specified VM, making a new VM. Clone automatically exploits the
1527
capabilities of the underlying storage repository in which the VM's disk
1528
images are stored (e.g. Copy on Write). This function can only be called
1529
when the VM is in the Halted State.
1531
\noindent {\bf Signature:}
1532
\begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1535
\noindent{\bf Arguments:}
1539
\begin{tabular}{|c|c|p{7cm}|}
1541
{\bf type} & {\bf name} & {\bf description} \\ \hline
1542
{\tt VM ref } & vm & The VM to be cloned \\ \hline
1544
{\tt string } & new\_name & The name of the cloned VM \\ \hline
1550
\noindent {\bf Return Type:}
1556
The ID of the newly created VM.
1559
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1562
\subsubsection{RPC name:~start}
1565
Start the specified VM. This function can only be called with the VM is in
1568
\noindent {\bf Signature:}
1569
\begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1572
\noindent{\bf Arguments:}
1576
\begin{tabular}{|c|c|p{7cm}|}
1578
{\bf type} & {\bf name} & {\bf description} \\ \hline
1579
{\tt VM ref } & vm & The VM to start \\ \hline
1581
{\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1587
\noindent {\bf Return Type:}
1596
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}, {\tt
1600
\subsubsection{RPC name:~pause}
1603
Pause the specified VM. This can only be called when the specified VM is in
1606
\noindent {\bf Signature:}
1607
\begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1610
\noindent{\bf Arguments:}
1614
\begin{tabular}{|c|c|p{7cm}|}
1616
{\bf type} & {\bf name} & {\bf description} \\ \hline
1617
{\tt VM ref } & vm & The VM to pause \\ \hline
1623
\noindent {\bf Return Type:}
1632
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1635
\subsubsection{RPC name:~unpause}
1638
Resume the specified VM. This can only be called when the specified VM is
1639
in the Paused state.
1641
\noindent {\bf Signature:}
1642
\begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1645
\noindent{\bf Arguments:}
1649
\begin{tabular}{|c|c|p{7cm}|}
1651
{\bf type} & {\bf name} & {\bf description} \\ \hline
1652
{\tt VM ref } & vm & The VM to unpause \\ \hline
1658
\noindent {\bf Return Type:}
1667
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1670
\subsubsection{RPC name:~clean\_shutdown}
1673
Attempt to cleanly shutdown the specified VM. (Note: this may not be
1674
supported---e.g. if a guest agent is not installed).
1676
Once shutdown has been completed perform poweroff action specified in guest
1679
This can only be called when the specified VM is in the Running state.
1681
\noindent {\bf Signature:}
1682
\begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1685
\noindent{\bf Arguments:}
1689
\begin{tabular}{|c|c|p{7cm}|}
1691
{\bf type} & {\bf name} & {\bf description} \\ \hline
1692
{\tt VM ref } & vm & The VM to shutdown \\ \hline
1698
\noindent {\bf Return Type:}
1707
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1710
\subsubsection{RPC name:~clean\_reboot}
1713
Attempt to cleanly shutdown the specified VM (Note: this may not be
1714
supported---e.g. if a guest agent is not installed).
1716
Once shutdown has been completed perform reboot action specified in guest
1719
This can only be called when the specified VM is in the Running state.
1721
\noindent {\bf Signature:}
1722
\begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1725
\noindent{\bf Arguments:}
1729
\begin{tabular}{|c|c|p{7cm}|}
1731
{\bf type} & {\bf name} & {\bf description} \\ \hline
1732
{\tt VM ref } & vm & The VM to shutdown \\ \hline
1738
\noindent {\bf Return Type:}
1747
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1750
\subsubsection{RPC name:~hard\_shutdown}
1753
Stop executing the specified VM without attempting a clean shutdown. Then
1754
perform poweroff action specified in VM configuration.
1756
\noindent {\bf Signature:}
1757
\begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1760
\noindent{\bf Arguments:}
1764
\begin{tabular}{|c|c|p{7cm}|}
1766
{\bf type} & {\bf name} & {\bf description} \\ \hline
1767
{\tt VM ref } & vm & The VM to destroy \\ \hline
1773
\noindent {\bf Return Type:}
1782
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1785
\subsubsection{RPC name:~hard\_reboot}
1788
Stop executing the specified VM without attempting a clean shutdown. Then
1789
perform reboot action specified in VM configuration.
1791
\noindent {\bf Signature:}
1792
\begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1795
\noindent{\bf Arguments:}
1799
\begin{tabular}{|c|c|p{7cm}|}
1801
{\bf type} & {\bf name} & {\bf description} \\ \hline
1802
{\tt VM ref } & vm & The VM to reboot \\ \hline
1808
\noindent {\bf Return Type:}
1818
\subsubsection{RPC name:~suspend}
1821
Suspend the specified VM to disk. This can only be called when the
1822
specified VM is in the Running state.
1824
\noindent {\bf Signature:}
1825
\begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1828
\noindent{\bf Arguments:}
1832
\begin{tabular}{|c|c|p{7cm}|}
1834
{\bf type} & {\bf name} & {\bf description} \\ \hline
1835
{\tt VM ref } & vm & The VM to suspend \\ \hline
1841
\noindent {\bf Return Type:}
1850
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1853
\subsubsection{RPC name:~resume}
1856
Awaken the specified VM and resume it. This can only be called when the
1857
specified VM is in the Suspended state.
1859
\noindent {\bf Signature:}
1860
\begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1863
\noindent{\bf Arguments:}
1867
\begin{tabular}{|c|c|p{7cm}|}
1869
{\bf type} & {\bf name} & {\bf description} \\ \hline
1870
{\tt VM ref } & vm & The VM to resume \\ \hline
1872
{\tt bool } & start\_paused & Resume VM in paused state if set to true. \\ \hline
1878
\noindent {\bf Return Type:}
1887
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1890
\subsubsection{RPC name:~set\_VCPUs\_number\_live}
1893
Set this VM's VCPUs/at\_startup value, and set the same value on the VM, if
1896
\noindent {\bf Signature:}
1897
\begin{verbatim} void set_VCPUs_number_live (session_id s, VM ref self, int nvcpu)\end{verbatim}
1900
\noindent{\bf Arguments:}
1904
\begin{tabular}{|c|c|p{7cm}|}
1906
{\bf type} & {\bf name} & {\bf description} \\ \hline
1907
{\tt VM ref } & self & The VM \\ \hline
1909
{\tt int } & nvcpu & The number of VCPUs \\ \hline
1915
\noindent {\bf Return Type:}
1925
\subsubsection{RPC name:~add\_to\_VCPUs\_params\_live}
1928
Add the given key-value pair to VM.VCPUs\_params, and apply that value on
1931
\noindent {\bf Signature:}
1932
\begin{verbatim} void add_to_VCPUs_params_live (session_id s, VM ref self, string key, string value)\end{verbatim}
1935
\noindent{\bf Arguments:}
1939
\begin{tabular}{|c|c|p{7cm}|}
1941
{\bf type} & {\bf name} & {\bf description} \\ \hline
1942
{\tt VM ref } & self & The VM \\ \hline
1944
{\tt string } & key & The key \\ \hline
1946
{\tt string } & value & The value \\ \hline
1952
\noindent {\bf Return Type:}
1962
\subsubsection{RPC name:~set\_memory\_dynamic\_max\_live}
1965
Set memory\_dynamic\_max in database and on running VM.
1967
\noindent {\bf Signature:}
1968
\begin{verbatim} void set_memory_dynamic_max_live (session_id s, VM ref self, int max)\end{verbatim}
1971
\noindent{\bf Arguments:}
1975
\begin{tabular}{|c|c|p{7cm}|}
1977
{\bf type} & {\bf name} & {\bf description} \\ \hline
1978
{\tt VM ref } & self & The VM \\ \hline
1980
{\tt int } & max & The memory\_dynamic\_max value \\ \hline
1986
\noindent {\bf Return Type:}
1996
\subsubsection{RPC name:~set\_memory\_dynamic\_min\_live}
1999
Set memory\_dynamic\_min in database and on running VM.
2001
\noindent {\bf Signature:}
2002
\begin{verbatim} void set_memory_dynamic_min_live (session_id s, VM ref self, int min)\end{verbatim}
2005
\noindent{\bf Arguments:}
2009
\begin{tabular}{|c|c|p{7cm}|}
2011
{\bf type} & {\bf name} & {\bf description} \\ \hline
2012
{\tt VM ref } & self & The VM \\ \hline
2014
{\tt int } & min & The memory\_dynamic\_min value \\ \hline
2020
\noindent {\bf Return Type:}
2030
\subsubsection{RPC name:~send\_sysrq}
2033
Send the given key as a sysrq to this VM. The key is specified as a single
2034
character (a String of length 1). This can only be called when the
2035
specified VM is in the Running state.
2037
\noindent {\bf Signature:}
2038
\begin{verbatim} void send_sysrq (session_id s, VM ref vm, string key)\end{verbatim}
2041
\noindent{\bf Arguments:}
2045
\begin{tabular}{|c|c|p{7cm}|}
2047
{\bf type} & {\bf name} & {\bf description} \\ \hline
2048
{\tt VM ref } & vm & The VM \\ \hline
2050
{\tt string } & key & The key to send \\ \hline
2056
\noindent {\bf Return Type:}
2065
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2068
\subsubsection{RPC name:~send\_trigger}
2071
Send the named trigger to this VM. This can only be called when the
2072
specified VM is in the Running state.
2074
\noindent {\bf Signature:}
2075
\begin{verbatim} void send_trigger (session_id s, VM ref vm, string trigger)\end{verbatim}
2078
\noindent{\bf Arguments:}
2082
\begin{tabular}{|c|c|p{7cm}|}
2084
{\bf type} & {\bf name} & {\bf description} \\ \hline
2085
{\tt VM ref } & vm & The VM \\ \hline
2087
{\tt string } & trigger & The trigger to send \\ \hline
2093
\noindent {\bf Return Type:}
2102
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2105
\subsubsection{RPC name:~migrate}
2108
Migrate the VM to another host. This can only be called when the specified
2109
VM is in the Running state.
2111
\noindent {\bf Signature:}
2112
\begin{verbatim} void migrate (session_id s, VM ref vm, string dest, bool live, (string -> string) Map options)\end{verbatim}
2115
\noindent{\bf Arguments:}
2119
\begin{tabular}{|c|c|p{7cm}|}
2121
{\bf type} & {\bf name} & {\bf description} \\ \hline
2122
{\tt VM ref } & vm & The VM \\ \hline
2124
{\tt string } & dest & The destination host \\ \hline
2126
{\tt bool } & live & Live migration \\ \hline
2128
{\tt (string $\rightarrow$ string) Map } & options & Other parameters \\ \hline
2134
\noindent {\bf Return Type:}
2143
\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2146
\subsubsection{RPC name:~get\_all}
2149
Return a list of all the VMs known to the system.
2151
\noindent {\bf Signature:}
2152
\begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
2157
\noindent {\bf Return Type:}
2163
A list of all the IDs of all the VMs
2167
\subsubsection{RPC name:~get\_uuid}
2170
Get the uuid field of the given VM.
2172
\noindent {\bf Signature:}
2173
\begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
2176
\noindent{\bf Arguments:}
2180
\begin{tabular}{|c|c|p{7cm}|}
2182
{\bf type} & {\bf name} & {\bf description} \\ \hline
2183
{\tt VM ref } & self & reference to the object \\ \hline
2189
\noindent {\bf Return Type:}
2199
\subsubsection{RPC name:~get\_power\_state}
2202
Get the power\_state field of the given VM.
2204
\noindent {\bf Signature:}
2205
\begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
2208
\noindent{\bf Arguments:}
2212
\begin{tabular}{|c|c|p{7cm}|}
2214
{\bf type} & {\bf name} & {\bf description} \\ \hline
2215
{\tt VM ref } & self & reference to the object \\ \hline
2221
\noindent {\bf Return Type:}
2231
\subsubsection{RPC name:~get\_name\_label}
2234
Get the name/label field of the given VM.
2236
\noindent {\bf Signature:}
2237
\begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
2240
\noindent{\bf Arguments:}
2244
\begin{tabular}{|c|c|p{7cm}|}
2246
{\bf type} & {\bf name} & {\bf description} \\ \hline
2247
{\tt VM ref } & self & reference to the object \\ \hline
2253
\noindent {\bf Return Type:}
2263
\subsubsection{RPC name:~set\_name\_label}
2266
Set the name/label field of the given VM.
2268
\noindent {\bf Signature:}
2269
\begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
2272
\noindent{\bf Arguments:}
2276
\begin{tabular}{|c|c|p{7cm}|}
2278
{\bf type} & {\bf name} & {\bf description} \\ \hline
2279
{\tt VM ref } & self & reference to the object \\ \hline
2281
{\tt string } & value & New value to set \\ \hline
2287
\noindent {\bf Return Type:}
2297
\subsubsection{RPC name:~get\_name\_description}
2300
Get the name/description field of the given VM.
2302
\noindent {\bf Signature:}
2303
\begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
2306
\noindent{\bf Arguments:}
2310
\begin{tabular}{|c|c|p{7cm}|}
2312
{\bf type} & {\bf name} & {\bf description} \\ \hline
2313
{\tt VM ref } & self & reference to the object \\ \hline
2319
\noindent {\bf Return Type:}
2329
\subsubsection{RPC name:~set\_name\_description}
2332
Set the name/description field of the given VM.
2334
\noindent {\bf Signature:}
2335
\begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
2338
\noindent{\bf Arguments:}
2342
\begin{tabular}{|c|c|p{7cm}|}
2344
{\bf type} & {\bf name} & {\bf description} \\ \hline
2345
{\tt VM ref } & self & reference to the object \\ \hline
2347
{\tt string } & value & New value to set \\ \hline
2353
\noindent {\bf Return Type:}
2363
\subsubsection{RPC name:~get\_user\_version}
2366
Get the user\_version field of the given VM.
2368
\noindent {\bf Signature:}
2369
\begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
2372
\noindent{\bf Arguments:}
2376
\begin{tabular}{|c|c|p{7cm}|}
2378
{\bf type} & {\bf name} & {\bf description} \\ \hline
2379
{\tt VM ref } & self & reference to the object \\ \hline
2385
\noindent {\bf Return Type:}
2395
\subsubsection{RPC name:~set\_user\_version}
2398
Set the user\_version field of the given VM.
2400
\noindent {\bf Signature:}
2401
\begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
2404
\noindent{\bf Arguments:}
2408
\begin{tabular}{|c|c|p{7cm}|}
2410
{\bf type} & {\bf name} & {\bf description} \\ \hline
2411
{\tt VM ref } & self & reference to the object \\ \hline
2413
{\tt int } & value & New value to set \\ \hline
2419
\noindent {\bf Return Type:}
2429
\subsubsection{RPC name:~get\_is\_a\_template}
2432
Get the is\_a\_template field of the given VM.
2434
\noindent {\bf Signature:}
2435
\begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
2438
\noindent{\bf Arguments:}
2442
\begin{tabular}{|c|c|p{7cm}|}
2444
{\bf type} & {\bf name} & {\bf description} \\ \hline
2445
{\tt VM ref } & self & reference to the object \\ \hline
2451
\noindent {\bf Return Type:}
2461
\subsubsection{RPC name:~set\_is\_a\_template}
2464
Set the is\_a\_template field of the given VM.
2466
\noindent {\bf Signature:}
2467
\begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
2470
\noindent{\bf Arguments:}
2474
\begin{tabular}{|c|c|p{7cm}|}
2476
{\bf type} & {\bf name} & {\bf description} \\ \hline
2477
{\tt VM ref } & self & reference to the object \\ \hline
2479
{\tt bool } & value & New value to set \\ \hline
2485
\noindent {\bf Return Type:}
2495
\subsubsection{RPC name:~get\_auto\_power\_on}
2498
Get the auto\_power\_on field of the given VM.
2500
\noindent {\bf Signature:}
2501
\begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
2504
\noindent{\bf Arguments:}
2508
\begin{tabular}{|c|c|p{7cm}|}
2510
{\bf type} & {\bf name} & {\bf description} \\ \hline
2511
{\tt VM ref } & self & reference to the object \\ \hline
2517
\noindent {\bf Return Type:}
2527
\subsubsection{RPC name:~set\_auto\_power\_on}
2530
Set the auto\_power\_on field of the given VM.
2532
\noindent {\bf Signature:}
2533
\begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
2536
\noindent{\bf Arguments:}
2540
\begin{tabular}{|c|c|p{7cm}|}
2542
{\bf type} & {\bf name} & {\bf description} \\ \hline
2543
{\tt VM ref } & self & reference to the object \\ \hline
2545
{\tt bool } & value & New value to set \\ \hline
2551
\noindent {\bf Return Type:}
2561
\subsubsection{RPC name:~get\_suspend\_VDI}
2564
Get the suspend\_VDI field of the given VM.
2566
\noindent {\bf Signature:}
2567
\begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
2570
\noindent{\bf Arguments:}
2574
\begin{tabular}{|c|c|p{7cm}|}
2576
{\bf type} & {\bf name} & {\bf description} \\ \hline
2577
{\tt VM ref } & self & reference to the object \\ \hline
2583
\noindent {\bf Return Type:}
2593
\subsubsection{RPC name:~get\_resident\_on}
2596
Get the resident\_on field of the given VM.
2598
\noindent {\bf Signature:}
2599
\begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
2602
\noindent{\bf Arguments:}
2606
\begin{tabular}{|c|c|p{7cm}|}
2608
{\bf type} & {\bf name} & {\bf description} \\ \hline
2609
{\tt VM ref } & self & reference to the object \\ \hline
2615
\noindent {\bf Return Type:}
2625
\subsubsection{RPC name:~get\_memory\_static\_max}
2628
Get the memory/static\_max field of the given VM.
2630
\noindent {\bf Signature:}
2631
\begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
2634
\noindent{\bf Arguments:}
2638
\begin{tabular}{|c|c|p{7cm}|}
2640
{\bf type} & {\bf name} & {\bf description} \\ \hline
2641
{\tt VM ref } & self & reference to the object \\ \hline
2647
\noindent {\bf Return Type:}
2657
\subsubsection{RPC name:~set\_memory\_static\_max}
2660
Set the memory/static\_max field of the given VM.
2662
\noindent {\bf Signature:}
2663
\begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
2666
\noindent{\bf Arguments:}
2670
\begin{tabular}{|c|c|p{7cm}|}
2672
{\bf type} & {\bf name} & {\bf description} \\ \hline
2673
{\tt VM ref } & self & reference to the object \\ \hline
2675
{\tt int } & value & New value to set \\ \hline
2681
\noindent {\bf Return Type:}
2691
\subsubsection{RPC name:~get\_memory\_dynamic\_max}
2694
Get the memory/dynamic\_max field of the given VM.
2696
\noindent {\bf Signature:}
2697
\begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
2700
\noindent{\bf Arguments:}
2704
\begin{tabular}{|c|c|p{7cm}|}
2706
{\bf type} & {\bf name} & {\bf description} \\ \hline
2707
{\tt VM ref } & self & reference to the object \\ \hline
2713
\noindent {\bf Return Type:}
2723
\subsubsection{RPC name:~set\_memory\_dynamic\_max}
2726
Set the memory/dynamic\_max field of the given VM.
2728
\noindent {\bf Signature:}
2729
\begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2732
\noindent{\bf Arguments:}
2736
\begin{tabular}{|c|c|p{7cm}|}
2738
{\bf type} & {\bf name} & {\bf description} \\ \hline
2739
{\tt VM ref } & self & reference to the object \\ \hline
2741
{\tt int } & value & New value to set \\ \hline
2747
\noindent {\bf Return Type:}
2757
\subsubsection{RPC name:~get\_memory\_dynamic\_min}
2760
Get the memory/dynamic\_min field of the given VM.
2762
\noindent {\bf Signature:}
2763
\begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2766
\noindent{\bf Arguments:}
2770
\begin{tabular}{|c|c|p{7cm}|}
2772
{\bf type} & {\bf name} & {\bf description} \\ \hline
2773
{\tt VM ref } & self & reference to the object \\ \hline
2779
\noindent {\bf Return Type:}
2789
\subsubsection{RPC name:~set\_memory\_dynamic\_min}
2792
Set the memory/dynamic\_min field of the given VM.
2794
\noindent {\bf Signature:}
2795
\begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2798
\noindent{\bf Arguments:}
2802
\begin{tabular}{|c|c|p{7cm}|}
2804
{\bf type} & {\bf name} & {\bf description} \\ \hline
2805
{\tt VM ref } & self & reference to the object \\ \hline
2807
{\tt int } & value & New value to set \\ \hline
2813
\noindent {\bf Return Type:}
2823
\subsubsection{RPC name:~get\_memory\_static\_min}
2826
Get the memory/static\_min field of the given VM.
2828
\noindent {\bf Signature:}
2829
\begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2832
\noindent{\bf Arguments:}
2836
\begin{tabular}{|c|c|p{7cm}|}
2838
{\bf type} & {\bf name} & {\bf description} \\ \hline
2839
{\tt VM ref } & self & reference to the object \\ \hline
2845
\noindent {\bf Return Type:}
2855
\subsubsection{RPC name:~set\_memory\_static\_min}
2858
Set the memory/static\_min field of the given VM.
2860
\noindent {\bf Signature:}
2861
\begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
2864
\noindent{\bf Arguments:}
2868
\begin{tabular}{|c|c|p{7cm}|}
2870
{\bf type} & {\bf name} & {\bf description} \\ \hline
2871
{\tt VM ref } & self & reference to the object \\ \hline
2873
{\tt int } & value & New value to set \\ \hline
2879
\noindent {\bf Return Type:}
2889
\subsubsection{RPC name:~get\_VCPUs\_params}
2892
Get the VCPUs/params field of the given VM.
2894
\noindent {\bf Signature:}
2895
\begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2898
\noindent{\bf Arguments:}
2902
\begin{tabular}{|c|c|p{7cm}|}
2904
{\bf type} & {\bf name} & {\bf description} \\ \hline
2905
{\tt VM ref } & self & reference to the object \\ \hline
2911
\noindent {\bf Return Type:}
2913
(string $\rightarrow$ string) Map
2921
\subsubsection{RPC name:~set\_VCPUs\_params}
2924
Set the VCPUs/params field of the given VM.
2926
\noindent {\bf Signature:}
2927
\begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
2930
\noindent{\bf Arguments:}
2934
\begin{tabular}{|c|c|p{7cm}|}
2936
{\bf type} & {\bf name} & {\bf description} \\ \hline
2937
{\tt VM ref } & self & reference to the object \\ \hline
2939
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
2945
\noindent {\bf Return Type:}
2955
\subsubsection{RPC name:~add\_to\_VCPUs\_params}
2958
Add the given key-value pair to the VCPUs/params field of the given VM.
2960
\noindent {\bf Signature:}
2961
\begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
2964
\noindent{\bf Arguments:}
2968
\begin{tabular}{|c|c|p{7cm}|}
2970
{\bf type} & {\bf name} & {\bf description} \\ \hline
2971
{\tt VM ref } & self & reference to the object \\ \hline
2973
{\tt string } & key & Key to add \\ \hline
2975
{\tt string } & value & Value to add \\ \hline
2981
\noindent {\bf Return Type:}
2991
\subsubsection{RPC name:~remove\_from\_VCPUs\_params}
2994
Remove the given key and its corresponding value from the VCPUs/params
2995
field of the given VM. If the key is not in that Map, then do nothing.
2997
\noindent {\bf Signature:}
2998
\begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
3001
\noindent{\bf Arguments:}
3005
\begin{tabular}{|c|c|p{7cm}|}
3007
{\bf type} & {\bf name} & {\bf description} \\ \hline
3008
{\tt VM ref } & self & reference to the object \\ \hline
3010
{\tt string } & key & Key to remove \\ \hline
3016
\noindent {\bf Return Type:}
3026
\subsubsection{RPC name:~get\_VCPUs\_max}
3029
Get the VCPUs/max field of the given VM.
3031
\noindent {\bf Signature:}
3032
\begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
3035
\noindent{\bf Arguments:}
3039
\begin{tabular}{|c|c|p{7cm}|}
3041
{\bf type} & {\bf name} & {\bf description} \\ \hline
3042
{\tt VM ref } & self & reference to the object \\ \hline
3048
\noindent {\bf Return Type:}
3058
\subsubsection{RPC name:~set\_VCPUs\_max}
3061
Set the VCPUs/max field of the given VM.
3063
\noindent {\bf Signature:}
3064
\begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
3067
\noindent{\bf Arguments:}
3071
\begin{tabular}{|c|c|p{7cm}|}
3073
{\bf type} & {\bf name} & {\bf description} \\ \hline
3074
{\tt VM ref } & self & reference to the object \\ \hline
3076
{\tt int } & value & New value to set \\ \hline
3082
\noindent {\bf Return Type:}
3092
\subsubsection{RPC name:~get\_VCPUs\_at\_startup}
3095
Get the VCPUs/at\_startup field of the given VM.
3097
\noindent {\bf Signature:}
3098
\begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
3101
\noindent{\bf Arguments:}
3105
\begin{tabular}{|c|c|p{7cm}|}
3107
{\bf type} & {\bf name} & {\bf description} \\ \hline
3108
{\tt VM ref } & self & reference to the object \\ \hline
3114
\noindent {\bf Return Type:}
3124
\subsubsection{RPC name:~set\_VCPUs\_at\_startup}
3127
Set the VCPUs/at\_startup field of the given VM.
3129
\noindent {\bf Signature:}
3130
\begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
3133
\noindent{\bf Arguments:}
3137
\begin{tabular}{|c|c|p{7cm}|}
3139
{\bf type} & {\bf name} & {\bf description} \\ \hline
3140
{\tt VM ref } & self & reference to the object \\ \hline
3142
{\tt int } & value & New value to set \\ \hline
3148
\noindent {\bf Return Type:}
3158
\subsubsection{RPC name:~get\_actions\_after\_shutdown}
3161
Get the actions/after\_shutdown field of the given VM.
3163
\noindent {\bf Signature:}
3164
\begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
3167
\noindent{\bf Arguments:}
3171
\begin{tabular}{|c|c|p{7cm}|}
3173
{\bf type} & {\bf name} & {\bf description} \\ \hline
3174
{\tt VM ref } & self & reference to the object \\ \hline
3180
\noindent {\bf Return Type:}
3190
\subsubsection{RPC name:~set\_actions\_after\_shutdown}
3193
Set the actions/after\_shutdown field of the given VM.
3195
\noindent {\bf Signature:}
3196
\begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3199
\noindent{\bf Arguments:}
3203
\begin{tabular}{|c|c|p{7cm}|}
3205
{\bf type} & {\bf name} & {\bf description} \\ \hline
3206
{\tt VM ref } & self & reference to the object \\ \hline
3208
{\tt on\_normal\_exit } & value & New value to set \\ \hline
3214
\noindent {\bf Return Type:}
3224
\subsubsection{RPC name:~get\_actions\_after\_reboot}
3227
Get the actions/after\_reboot field of the given VM.
3229
\noindent {\bf Signature:}
3230
\begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
3233
\noindent{\bf Arguments:}
3237
\begin{tabular}{|c|c|p{7cm}|}
3239
{\bf type} & {\bf name} & {\bf description} \\ \hline
3240
{\tt VM ref } & self & reference to the object \\ \hline
3246
\noindent {\bf Return Type:}
3256
\subsubsection{RPC name:~set\_actions\_after\_reboot}
3259
Set the actions/after\_reboot field of the given VM.
3261
\noindent {\bf Signature:}
3262
\begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3265
\noindent{\bf Arguments:}
3269
\begin{tabular}{|c|c|p{7cm}|}
3271
{\bf type} & {\bf name} & {\bf description} \\ \hline
3272
{\tt VM ref } & self & reference to the object \\ \hline
3274
{\tt on\_normal\_exit } & value & New value to set \\ \hline
3280
\noindent {\bf Return Type:}
3290
\subsubsection{RPC name:~get\_actions\_after\_crash}
3293
Get the actions/after\_crash field of the given VM.
3295
\noindent {\bf Signature:}
3296
\begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
3299
\noindent{\bf Arguments:}
3303
\begin{tabular}{|c|c|p{7cm}|}
3305
{\bf type} & {\bf name} & {\bf description} \\ \hline
3306
{\tt VM ref } & self & reference to the object \\ \hline
3312
\noindent {\bf Return Type:}
3314
on\_crash\_behaviour
3322
\subsubsection{RPC name:~set\_actions\_after\_crash}
3325
Set the actions/after\_crash field of the given VM.
3327
\noindent {\bf Signature:}
3328
\begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
3331
\noindent{\bf Arguments:}
3335
\begin{tabular}{|c|c|p{7cm}|}
3337
{\bf type} & {\bf name} & {\bf description} \\ \hline
3338
{\tt VM ref } & self & reference to the object \\ \hline
3340
{\tt on\_crash\_behaviour } & value & New value to set \\ \hline
3346
\noindent {\bf Return Type:}
3356
\subsubsection{RPC name:~get\_consoles}
3359
Get the consoles field of the given VM.
3361
\noindent {\bf Signature:}
3362
\begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
3365
\noindent{\bf Arguments:}
3369
\begin{tabular}{|c|c|p{7cm}|}
3371
{\bf type} & {\bf name} & {\bf description} \\ \hline
3372
{\tt VM ref } & self & reference to the object \\ \hline
3378
\noindent {\bf Return Type:}
3388
\subsubsection{RPC name:~get\_VIFs}
3391
Get the VIFs field of the given VM.
3393
\noindent {\bf Signature:}
3394
\begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
3397
\noindent{\bf Arguments:}
3401
\begin{tabular}{|c|c|p{7cm}|}
3403
{\bf type} & {\bf name} & {\bf description} \\ \hline
3404
{\tt VM ref } & self & reference to the object \\ \hline
3410
\noindent {\bf Return Type:}
3420
\subsubsection{RPC name:~get\_VBDs}
3423
Get the VBDs field of the given VM.
3425
\noindent {\bf Signature:}
3426
\begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
3429
\noindent{\bf Arguments:}
3433
\begin{tabular}{|c|c|p{7cm}|}
3435
{\bf type} & {\bf name} & {\bf description} \\ \hline
3436
{\tt VM ref } & self & reference to the object \\ \hline
3442
\noindent {\bf Return Type:}
3452
\subsubsection{RPC name:~get\_crash\_dumps}
3455
Get the crash\_dumps field of the given VM.
3457
\noindent {\bf Signature:}
3458
\begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
3461
\noindent{\bf Arguments:}
3465
\begin{tabular}{|c|c|p{7cm}|}
3467
{\bf type} & {\bf name} & {\bf description} \\ \hline
3468
{\tt VM ref } & self & reference to the object \\ \hline
3474
\noindent {\bf Return Type:}
3484
\subsubsection{RPC name:~get\_VTPMs}
3487
Get the VTPMs field of the given VM.
3489
\noindent {\bf Signature:}
3490
\begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
3493
\noindent{\bf Arguments:}
3497
\begin{tabular}{|c|c|p{7cm}|}
3499
{\bf type} & {\bf name} & {\bf description} \\ \hline
3500
{\tt VM ref } & self & reference to the object \\ \hline
3506
\noindent {\bf Return Type:}
3516
\subsubsection{RPC name:~get\_DPCIs}
3519
Get the DPCIs field of the given VM.
3521
\noindent {\bf Signature:}
3522
\begin{verbatim} ((DPCI ref) Set) get_DPCIs (session_id s, VM ref self)\end{verbatim}
3525
\noindent{\bf Arguments:}
3529
\begin{tabular}{|c|c|p{7cm}|}
3531
{\bf type} & {\bf name} & {\bf description} \\ \hline
3532
{\tt VM ref } & self & reference to the object \\ \hline
3538
\noindent {\bf Return Type:}
3548
\subsubsection{RPC name:~get\_DSCSIs}
3551
Get the DSCSIs field of the given VM.
3553
\noindent {\bf Signature:}
3554
\begin{verbatim} ((DSCSI ref) Set) get_DSCSIs (session_id s, VM ref self)\end{verbatim}
3557
\noindent{\bf Arguments:}
3561
\begin{tabular}{|c|c|p{7cm}|}
3563
{\bf type} & {\bf name} & {\bf description} \\ \hline
3564
{\tt VM ref } & self & reference to the object \\ \hline
3570
\noindent {\bf Return Type:}
3580
\subsubsection{RPC name:~get\_DSCSI\_HBAs}
3583
Get the DSCSI\_HBAs field of the given VM.
3585
\noindent {\bf Signature:}
3586
\begin{verbatim} ((DSCSI_HBA ref) Set) get_DSCSI_HBAs (session_id s, VM ref self)\end{verbatim}
3589
\noindent{\bf Arguments:}
3593
\begin{tabular}{|c|c|p{7cm}|}
3595
{\bf type} & {\bf name} & {\bf description} \\ \hline
3596
{\tt VM ref } & self & reference to the object \\ \hline
3602
\noindent {\bf Return Type:}
3604
(DSCSI\_HBA ref) Set
3612
\subsubsection{RPC name:~get\_PV\_bootloader}
3615
Get the PV/bootloader field of the given VM.
3617
\noindent {\bf Signature:}
3618
\begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
3621
\noindent{\bf Arguments:}
3625
\begin{tabular}{|c|c|p{7cm}|}
3627
{\bf type} & {\bf name} & {\bf description} \\ \hline
3628
{\tt VM ref } & self & reference to the object \\ \hline
3634
\noindent {\bf Return Type:}
3644
\subsubsection{RPC name:~set\_PV\_bootloader}
3647
Set the PV/bootloader field of the given VM.
3649
\noindent {\bf Signature:}
3650
\begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
3653
\noindent{\bf Arguments:}
3657
\begin{tabular}{|c|c|p{7cm}|}
3659
{\bf type} & {\bf name} & {\bf description} \\ \hline
3660
{\tt VM ref } & self & reference to the object \\ \hline
3662
{\tt string } & value & New value to set \\ \hline
3668
\noindent {\bf Return Type:}
3678
\subsubsection{RPC name:~get\_PV\_kernel}
3681
Get the PV/kernel field of the given VM.
3683
\noindent {\bf Signature:}
3684
\begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
3687
\noindent{\bf Arguments:}
3691
\begin{tabular}{|c|c|p{7cm}|}
3693
{\bf type} & {\bf name} & {\bf description} \\ \hline
3694
{\tt VM ref } & self & reference to the object \\ \hline
3700
\noindent {\bf Return Type:}
3710
\subsubsection{RPC name:~set\_PV\_kernel}
3713
Set the PV/kernel field of the given VM.
3715
\noindent {\bf Signature:}
3716
\begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3719
\noindent{\bf Arguments:}
3723
\begin{tabular}{|c|c|p{7cm}|}
3725
{\bf type} & {\bf name} & {\bf description} \\ \hline
3726
{\tt VM ref } & self & reference to the object \\ \hline
3728
{\tt string } & value & New value to set \\ \hline
3734
\noindent {\bf Return Type:}
3744
\subsubsection{RPC name:~get\_PV\_ramdisk}
3747
Get the PV/ramdisk field of the given VM.
3749
\noindent {\bf Signature:}
3750
\begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3753
\noindent{\bf Arguments:}
3757
\begin{tabular}{|c|c|p{7cm}|}
3759
{\bf type} & {\bf name} & {\bf description} \\ \hline
3760
{\tt VM ref } & self & reference to the object \\ \hline
3766
\noindent {\bf Return Type:}
3776
\subsubsection{RPC name:~set\_PV\_ramdisk}
3779
Set the PV/ramdisk field of the given VM.
3781
\noindent {\bf Signature:}
3782
\begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3785
\noindent{\bf Arguments:}
3789
\begin{tabular}{|c|c|p{7cm}|}
3791
{\bf type} & {\bf name} & {\bf description} \\ \hline
3792
{\tt VM ref } & self & reference to the object \\ \hline
3794
{\tt string } & value & New value to set \\ \hline
3800
\noindent {\bf Return Type:}
3810
\subsubsection{RPC name:~get\_PV\_args}
3813
Get the PV/args field of the given VM.
3815
\noindent {\bf Signature:}
3816
\begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3819
\noindent{\bf Arguments:}
3823
\begin{tabular}{|c|c|p{7cm}|}
3825
{\bf type} & {\bf name} & {\bf description} \\ \hline
3826
{\tt VM ref } & self & reference to the object \\ \hline
3832
\noindent {\bf Return Type:}
3842
\subsubsection{RPC name:~set\_PV\_args}
3845
Set the PV/args field of the given VM.
3847
\noindent {\bf Signature:}
3848
\begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3851
\noindent{\bf Arguments:}
3855
\begin{tabular}{|c|c|p{7cm}|}
3857
{\bf type} & {\bf name} & {\bf description} \\ \hline
3858
{\tt VM ref } & self & reference to the object \\ \hline
3860
{\tt string } & value & New value to set \\ \hline
3866
\noindent {\bf Return Type:}
3876
\subsubsection{RPC name:~get\_PV\_bootloader\_args}
3879
Get the PV/bootloader\_args field of the given VM.
3881
\noindent {\bf Signature:}
3882
\begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3885
\noindent{\bf Arguments:}
3889
\begin{tabular}{|c|c|p{7cm}|}
3891
{\bf type} & {\bf name} & {\bf description} \\ \hline
3892
{\tt VM ref } & self & reference to the object \\ \hline
3898
\noindent {\bf Return Type:}
3908
\subsubsection{RPC name:~set\_PV\_bootloader\_args}
3911
Set the PV/bootloader\_args field of the given VM.
3913
\noindent {\bf Signature:}
3914
\begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3917
\noindent{\bf Arguments:}
3921
\begin{tabular}{|c|c|p{7cm}|}
3923
{\bf type} & {\bf name} & {\bf description} \\ \hline
3924
{\tt VM ref } & self & reference to the object \\ \hline
3926
{\tt string } & value & New value to set \\ \hline
3932
\noindent {\bf Return Type:}
3942
\subsubsection{RPC name:~get\_HVM\_boot\_policy}
3945
Get the HVM/boot\_policy field of the given VM.
3947
\noindent {\bf Signature:}
3948
\begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
3951
\noindent{\bf Arguments:}
3955
\begin{tabular}{|c|c|p{7cm}|}
3957
{\bf type} & {\bf name} & {\bf description} \\ \hline
3958
{\tt VM ref } & self & reference to the object \\ \hline
3964
\noindent {\bf Return Type:}
3974
\subsubsection{RPC name:~set\_HVM\_boot\_policy}
3977
Set the HVM/boot\_policy field of the given VM.
3979
\noindent {\bf Signature:}
3980
\begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
3983
\noindent{\bf Arguments:}
3987
\begin{tabular}{|c|c|p{7cm}|}
3989
{\bf type} & {\bf name} & {\bf description} \\ \hline
3990
{\tt VM ref } & self & reference to the object \\ \hline
3992
{\tt string } & value & New value to set \\ \hline
3998
\noindent {\bf Return Type:}
4008
\subsubsection{RPC name:~get\_HVM\_boot\_params}
4011
Get the HVM/boot\_params field of the given VM.
4013
\noindent {\bf Signature:}
4014
\begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
4017
\noindent{\bf Arguments:}
4021
\begin{tabular}{|c|c|p{7cm}|}
4023
{\bf type} & {\bf name} & {\bf description} \\ \hline
4024
{\tt VM ref } & self & reference to the object \\ \hline
4030
\noindent {\bf Return Type:}
4032
(string $\rightarrow$ string) Map
4040
\subsubsection{RPC name:~set\_HVM\_boot\_params}
4043
Set the HVM/boot\_params field of the given VM.
4045
\noindent {\bf Signature:}
4046
\begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
4049
\noindent{\bf Arguments:}
4053
\begin{tabular}{|c|c|p{7cm}|}
4055
{\bf type} & {\bf name} & {\bf description} \\ \hline
4056
{\tt VM ref } & self & reference to the object \\ \hline
4058
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4064
\noindent {\bf Return Type:}
4074
\subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
4077
Add the given key-value pair to the HVM/boot\_params field of the given VM.
4079
\noindent {\bf Signature:}
4080
\begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
4083
\noindent{\bf Arguments:}
4087
\begin{tabular}{|c|c|p{7cm}|}
4089
{\bf type} & {\bf name} & {\bf description} \\ \hline
4090
{\tt VM ref } & self & reference to the object \\ \hline
4092
{\tt string } & key & Key to add \\ \hline
4094
{\tt string } & value & Value to add \\ \hline
4100
\noindent {\bf Return Type:}
4110
\subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
4113
Remove the given key and its corresponding value from the HVM/boot\_params
4114
field of the given VM. If the key is not in that Map, then do nothing.
4116
\noindent {\bf Signature:}
4117
\begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
4120
\noindent{\bf Arguments:}
4124
\begin{tabular}{|c|c|p{7cm}|}
4126
{\bf type} & {\bf name} & {\bf description} \\ \hline
4127
{\tt VM ref } & self & reference to the object \\ \hline
4129
{\tt string } & key & Key to remove \\ \hline
4135
\noindent {\bf Return Type:}
4145
\subsubsection{RPC name:~get\_platform}
4148
Get the platform field of the given VM.
4150
\noindent {\bf Signature:}
4151
\begin{verbatim} ((string -> string) Map) get_platform (session_id s, VM ref self)\end{verbatim}
4154
\noindent{\bf Arguments:}
4158
\begin{tabular}{|c|c|p{7cm}|}
4160
{\bf type} & {\bf name} & {\bf description} \\ \hline
4161
{\tt VM ref } & self & reference to the object \\ \hline
4167
\noindent {\bf Return Type:}
4169
(string $\rightarrow$ string) Map
4177
\subsubsection{RPC name:~set\_platform}
4180
Set the platform field of the given VM.
4182
\noindent {\bf Signature:}
4183
\begin{verbatim} void set_platform (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
4186
\noindent{\bf Arguments:}
4190
\begin{tabular}{|c|c|p{7cm}|}
4192
{\bf type} & {\bf name} & {\bf description} \\ \hline
4193
{\tt VM ref } & self & reference to the object \\ \hline
4195
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4201
\noindent {\bf Return Type:}
4211
\subsubsection{RPC name:~add\_to\_platform}
4214
Add the given key-value pair to the platform field of the given VM.
4216
\noindent {\bf Signature:}
4217
\begin{verbatim} void add_to_platform (session_id s, VM ref self, string key, string value)\end{verbatim}
4220
\noindent{\bf Arguments:}
4224
\begin{tabular}{|c|c|p{7cm}|}
4226
{\bf type} & {\bf name} & {\bf description} \\ \hline
4227
{\tt VM ref } & self & reference to the object \\ \hline
4229
{\tt string } & key & Key to add \\ \hline
4231
{\tt string } & value & Value to add \\ \hline
4237
\noindent {\bf Return Type:}
4247
\subsubsection{RPC name:~remove\_from\_platform}
4250
Remove the given key and its corresponding value from the platform field of
4251
the given VM. If the key is not in that Map, then do nothing.
4253
\noindent {\bf Signature:}
4254
\begin{verbatim} void remove_from_platform (session_id s, VM ref self, string key)\end{verbatim}
4257
\noindent{\bf Arguments:}
4261
\begin{tabular}{|c|c|p{7cm}|}
4263
{\bf type} & {\bf name} & {\bf description} \\ \hline
4264
{\tt VM ref } & self & reference to the object \\ \hline
4266
{\tt string } & key & Key to remove \\ \hline
4272
\noindent {\bf Return Type:}
4282
\subsubsection{RPC name:~get\_PCI\_bus}
4285
Get the PCI\_bus field of the given VM.
4287
\noindent {\bf Signature:}
4288
\begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
4291
\noindent{\bf Arguments:}
4295
\begin{tabular}{|c|c|p{7cm}|}
4297
{\bf type} & {\bf name} & {\bf description} \\ \hline
4298
{\tt VM ref } & self & reference to the object \\ \hline
4304
\noindent {\bf Return Type:}
4314
\subsubsection{RPC name:~set\_PCI\_bus}
4317
Set the PCI\_bus field of the given VM.
4319
\noindent {\bf Signature:}
4320
\begin{verbatim} void set_PCI_bus (session_id s, VM ref self, string value)\end{verbatim}
4323
\noindent{\bf Arguments:}
4327
\begin{tabular}{|c|c|p{7cm}|}
4329
{\bf type} & {\bf name} & {\bf description} \\ \hline
4330
{\tt VM ref } & self & reference to the object \\ \hline
4332
{\tt string } & value & New value to set \\ \hline
4338
\noindent {\bf Return Type:}
4348
\subsubsection{RPC name:~get\_other\_config}
4351
Get the other\_config field of the given VM.
4353
\noindent {\bf Signature:}
4354
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
4357
\noindent{\bf Arguments:}
4361
\begin{tabular}{|c|c|p{7cm}|}
4363
{\bf type} & {\bf name} & {\bf description} \\ \hline
4364
{\tt VM ref } & self & reference to the object \\ \hline
4370
\noindent {\bf Return Type:}
4372
(string $\rightarrow$ string) Map
4380
\subsubsection{RPC name:~set\_other\_config}
4383
Set the other\_config field of the given VM.
4385
\noindent {\bf Signature:}
4386
\begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
4389
\noindent{\bf Arguments:}
4393
\begin{tabular}{|c|c|p{7cm}|}
4395
{\bf type} & {\bf name} & {\bf description} \\ \hline
4396
{\tt VM ref } & self & reference to the object \\ \hline
4398
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4404
\noindent {\bf Return Type:}
4414
\subsubsection{RPC name:~add\_to\_other\_config}
4417
Add the given key-value pair to the other\_config field of the given VM.
4419
\noindent {\bf Signature:}
4420
\begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
4423
\noindent{\bf Arguments:}
4427
\begin{tabular}{|c|c|p{7cm}|}
4429
{\bf type} & {\bf name} & {\bf description} \\ \hline
4430
{\tt VM ref } & self & reference to the object \\ \hline
4432
{\tt string } & key & Key to add \\ \hline
4434
{\tt string } & value & Value to add \\ \hline
4440
\noindent {\bf Return Type:}
4450
\subsubsection{RPC name:~remove\_from\_other\_config}
4453
Remove the given key and its corresponding value from the other\_config
4454
field of the given VM. If the key is not in that Map, then do nothing.
4456
\noindent {\bf Signature:}
4457
\begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
4460
\noindent{\bf Arguments:}
4464
\begin{tabular}{|c|c|p{7cm}|}
4466
{\bf type} & {\bf name} & {\bf description} \\ \hline
4467
{\tt VM ref } & self & reference to the object \\ \hline
4469
{\tt string } & key & Key to remove \\ \hline
4475
\noindent {\bf Return Type:}
4485
\subsubsection{RPC name:~get\_domid}
4488
Get the domid field of the given VM.
4490
\noindent {\bf Signature:}
4491
\begin{verbatim} int get_domid (session_id s, VM ref self)\end{verbatim}
4494
\noindent{\bf Arguments:}
4498
\begin{tabular}{|c|c|p{7cm}|}
4500
{\bf type} & {\bf name} & {\bf description} \\ \hline
4501
{\tt VM ref } & self & reference to the object \\ \hline
4507
\noindent {\bf Return Type:}
4517
\subsubsection{RPC name:~get\_is\_control\_domain}
4520
Get the is\_control\_domain field of the given VM.
4522
\noindent {\bf Signature:}
4523
\begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
4526
\noindent{\bf Arguments:}
4530
\begin{tabular}{|c|c|p{7cm}|}
4532
{\bf type} & {\bf name} & {\bf description} \\ \hline
4533
{\tt VM ref } & self & reference to the object \\ \hline
4539
\noindent {\bf Return Type:}
4549
\subsubsection{RPC name:~get\_metrics}
4552
Get the metrics field of the given VM.
4554
\noindent {\bf Signature:}
4555
\begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
4558
\noindent{\bf Arguments:}
4562
\begin{tabular}{|c|c|p{7cm}|}
4564
{\bf type} & {\bf name} & {\bf description} \\ \hline
4565
{\tt VM ref } & self & reference to the object \\ \hline
4571
\noindent {\bf Return Type:}
4581
\subsubsection{RPC name:~get\_guest\_metrics}
4584
Get the guest\_metrics field of the given VM.
4586
\noindent {\bf Signature:}
4587
\begin{verbatim} (VM_guest_metrics ref) get_guest_metrics (session_id s, VM ref self)\end{verbatim}
4590
\noindent{\bf Arguments:}
4594
\begin{tabular}{|c|c|p{7cm}|}
4596
{\bf type} & {\bf name} & {\bf description} \\ \hline
4597
{\tt VM ref } & self & reference to the object \\ \hline
4603
\noindent {\bf Return Type:}
4605
VM\_guest\_metrics ref
4613
\subsubsection{RPC name:~get\_security\_label}
4616
Get the security label field of the given VM. Refer to the XSPolicy class
4617
for the format of the security label.
4619
\noindent {\bf Signature:}
4620
\begin{verbatim} string get_security_label (session_id s, VM ref self)\end{verbatim}
4623
\noindent{\bf Arguments:}
4627
\begin{tabular}{|c|c|p{7cm}|}
4629
{\bf type} & {\bf name} & {\bf description} \\ \hline
4630
{\tt VM ref } & self & reference to the object \\ \hline
4636
\noindent {\bf Return Type:}
4646
\subsubsection{RPC name:~set\_security\_label}
4649
Set the security label field of the given VM. Refer to the XSPolicy class
4650
for the format of the security label.
4652
\noindent {\bf Signature:}
4653
\begin{verbatim} int set_security_label (session_id s, VM ref self, string
4654
security_label, string old_label)\end{verbatim}
4657
\noindent{\bf Arguments:}
4661
\begin{tabular}{|c|c|p{7cm}|}
4663
{\bf type} & {\bf name} & {\bf description} \\ \hline
4664
{\tt VM ref } & self & reference to the object \\ \hline
4665
{\tt string } & security\_label & security label for the VM \\ \hline
4666
{\tt string } & old\_label & Label value that the security label \\
4667
& & must currently have for the change to succeed.\\ \hline
4673
\noindent {\bf Return Type:}
4679
Returns the ssidref in case of an VM that is currently running or
4680
paused, zero in case of a dormant VM (halted, suspended).
4684
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
4689
\subsubsection{RPC name:~create}
4692
Create a new VM instance, and return its handle.
4694
\noindent {\bf Signature:}
4695
\begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4698
\noindent{\bf Arguments:}
4702
\begin{tabular}{|c|c|p{7cm}|}
4704
{\bf type} & {\bf name} & {\bf description} \\ \hline
4705
{\tt VM record } & args & All constructor arguments \\ \hline
4711
\noindent {\bf Return Type:}
4717
reference to the newly created object
4721
\subsubsection{RPC name:~destroy}
4724
Destroy the specified VM. The VM is completely removed from the system.
4725
This function can only be called when the VM is in the Halted State.
4727
\noindent {\bf Signature:}
4728
\begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4731
\noindent{\bf Arguments:}
4735
\begin{tabular}{|c|c|p{7cm}|}
4737
{\bf type} & {\bf name} & {\bf description} \\ \hline
4738
{\tt VM ref } & self & reference to the object \\ \hline
4744
\noindent {\bf Return Type:}
4754
\subsubsection{RPC name:~get\_by\_uuid}
4757
Get a reference to the VM instance with the specified UUID.
4759
\noindent {\bf Signature:}
4760
\begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4763
\noindent{\bf Arguments:}
4767
\begin{tabular}{|c|c|p{7cm}|}
4769
{\bf type} & {\bf name} & {\bf description} \\ \hline
4770
{\tt string } & uuid & UUID of object to return \\ \hline
4776
\noindent {\bf Return Type:}
4782
reference to the object
4786
\subsubsection{RPC name:~get\_record}
4789
Get a record containing the current state of the given VM.
4791
\noindent {\bf Signature:}
4792
\begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4795
\noindent{\bf Arguments:}
4799
\begin{tabular}{|c|c|p{7cm}|}
4801
{\bf type} & {\bf name} & {\bf description} \\ \hline
4802
{\tt VM ref } & self & reference to the object \\ \hline
4808
\noindent {\bf Return Type:}
4814
all fields from the object
4818
\subsubsection{RPC name:~get\_by\_name\_label}
4821
Get all the VM instances with the given label.
4823
\noindent {\bf Signature:}
4824
\begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4827
\noindent{\bf Arguments:}
4831
\begin{tabular}{|c|c|p{7cm}|}
4833
{\bf type} & {\bf name} & {\bf description} \\ \hline
4834
{\tt string } & label & label of object to return \\ \hline
4840
\noindent {\bf Return Type:}
4846
references to objects with match names
4853
\section{Class: VM\_metrics}
4854
\subsection{Fields for class: VM\_metrics}
4855
\begin{longtable}{|lllp{0.38\textwidth}|}
4857
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
4858
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
4859
The metrics associated with a VM.}} \\
4861
Quals & Field & Type & Description \\
4863
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4864
$\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
4865
$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
4866
$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
4867
$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/CPU} & (int $\rightarrow$ int) Map & VCPU to PCPU map \\
4868
$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & The live equivalent to VM.VCPUs\_params \\
4869
$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/flags} & (int $\rightarrow$ string Set) Map & CPU flags (blocked,online,running) \\
4870
$\mathit{RO}_\mathit{run}$ & {\tt state} & string Set & The state of the guest, eg blocked, dying etc \\
4871
$\mathit{RO}_\mathit{run}$ & {\tt start\_time} & datetime & Time at which this VM was last booted \\
4872
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
4875
\subsection{RPCs associated with class: VM\_metrics}
4876
\subsubsection{RPC name:~get\_all}
4879
Return a list of all the VM\_metrics instances known to the system.
4881
\noindent {\bf Signature:}
4882
\begin{verbatim} ((VM_metrics ref) Set) get_all (session_id s)\end{verbatim}
4887
\noindent {\bf Return Type:}
4889
(VM\_metrics ref) Set
4893
references to all objects
4897
\subsubsection{RPC name:~get\_uuid}
4900
Get the uuid field of the given VM\_metrics.
4902
\noindent {\bf Signature:}
4903
\begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
4906
\noindent{\bf Arguments:}
4910
\begin{tabular}{|c|c|p{7cm}|}
4912
{\bf type} & {\bf name} & {\bf description} \\ \hline
4913
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
4919
\noindent {\bf Return Type:}
4929
\subsubsection{RPC name:~get\_memory\_actual}
4932
Get the memory/actual field of the given VM\_metrics.
4934
\noindent {\bf Signature:}
4935
\begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
4938
\noindent{\bf Arguments:}
4942
\begin{tabular}{|c|c|p{7cm}|}
4944
{\bf type} & {\bf name} & {\bf description} \\ \hline
4945
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
4951
\noindent {\bf Return Type:}
4961
\subsubsection{RPC name:~get\_VCPUs\_number}
4964
Get the VCPUs/number field of the given VM\_metrics.
4966
\noindent {\bf Signature:}
4967
\begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
4970
\noindent{\bf Arguments:}
4974
\begin{tabular}{|c|c|p{7cm}|}
4976
{\bf type} & {\bf name} & {\bf description} \\ \hline
4977
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
4983
\noindent {\bf Return Type:}
4993
\subsubsection{RPC name:~get\_VCPUs\_utilisation}
4996
Get the VCPUs/utilisation field of the given VM\_metrics.
4998
\noindent {\bf Signature:}
4999
\begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
5002
\noindent{\bf Arguments:}
5006
\begin{tabular}{|c|c|p{7cm}|}
5008
{\bf type} & {\bf name} & {\bf description} \\ \hline
5009
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5015
\noindent {\bf Return Type:}
5017
(int $\rightarrow$ float) Map
5025
\subsubsection{RPC name:~get\_VCPUs\_CPU}
5028
Get the VCPUs/CPU field of the given VM\_metrics.
5030
\noindent {\bf Signature:}
5031
\begin{verbatim} ((int -> int) Map) get_VCPUs_CPU (session_id s, VM_metrics ref self)\end{verbatim}
5034
\noindent{\bf Arguments:}
5038
\begin{tabular}{|c|c|p{7cm}|}
5040
{\bf type} & {\bf name} & {\bf description} \\ \hline
5041
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5047
\noindent {\bf Return Type:}
5049
(int $\rightarrow$ int) Map
5057
\subsubsection{RPC name:~get\_VCPUs\_params}
5060
Get the VCPUs/params field of the given VM\_metrics.
5062
\noindent {\bf Signature:}
5063
\begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM_metrics ref self)\end{verbatim}
5066
\noindent{\bf Arguments:}
5070
\begin{tabular}{|c|c|p{7cm}|}
5072
{\bf type} & {\bf name} & {\bf description} \\ \hline
5073
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5079
\noindent {\bf Return Type:}
5081
(string $\rightarrow$ string) Map
5089
\subsubsection{RPC name:~get\_VCPUs\_flags}
5092
Get the VCPUs/flags field of the given VM\_metrics.
5094
\noindent {\bf Signature:}
5095
\begin{verbatim} ((int -> string Set) Map) get_VCPUs_flags (session_id s, VM_metrics ref self)\end{verbatim}
5098
\noindent{\bf Arguments:}
5102
\begin{tabular}{|c|c|p{7cm}|}
5104
{\bf type} & {\bf name} & {\bf description} \\ \hline
5105
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5111
\noindent {\bf Return Type:}
5113
(int $\rightarrow$ string Set) Map
5121
\subsubsection{RPC name:~get\_state}
5124
Get the state field of the given VM\_metrics.
5126
\noindent {\bf Signature:}
5127
\begin{verbatim} (string Set) get_state (session_id s, VM_metrics ref self)\end{verbatim}
5130
\noindent{\bf Arguments:}
5134
\begin{tabular}{|c|c|p{7cm}|}
5136
{\bf type} & {\bf name} & {\bf description} \\ \hline
5137
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5143
\noindent {\bf Return Type:}
5153
\subsubsection{RPC name:~get\_start\_time}
5156
Get the start\_time field of the given VM\_metrics.
5158
\noindent {\bf Signature:}
5159
\begin{verbatim} datetime get_start_time (session_id s, VM_metrics ref self)\end{verbatim}
5162
\noindent{\bf Arguments:}
5166
\begin{tabular}{|c|c|p{7cm}|}
5168
{\bf type} & {\bf name} & {\bf description} \\ \hline
5169
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5175
\noindent {\bf Return Type:}
5185
\subsubsection{RPC name:~get\_last\_updated}
5188
Get the last\_updated field of the given VM\_metrics.
5190
\noindent {\bf Signature:}
5191
\begin{verbatim} datetime get_last_updated (session_id s, VM_metrics ref self)\end{verbatim}
5194
\noindent{\bf Arguments:}
5198
\begin{tabular}{|c|c|p{7cm}|}
5200
{\bf type} & {\bf name} & {\bf description} \\ \hline
5201
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5207
\noindent {\bf Return Type:}
5217
\subsubsection{RPC name:~get\_by\_uuid}
5220
Get a reference to the VM\_metrics instance with the specified UUID.
5222
\noindent {\bf Signature:}
5223
\begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5226
\noindent{\bf Arguments:}
5230
\begin{tabular}{|c|c|p{7cm}|}
5232
{\bf type} & {\bf name} & {\bf description} \\ \hline
5233
{\tt string } & uuid & UUID of object to return \\ \hline
5239
\noindent {\bf Return Type:}
5245
reference to the object
5249
\subsubsection{RPC name:~get\_record}
5252
Get a record containing the current state of the given VM\_metrics.
5254
\noindent {\bf Signature:}
5255
\begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
5258
\noindent{\bf Arguments:}
5262
\begin{tabular}{|c|c|p{7cm}|}
5264
{\bf type} & {\bf name} & {\bf description} \\ \hline
5265
{\tt VM\_metrics ref } & self & reference to the object \\ \hline
5271
\noindent {\bf Return Type:}
5277
all fields from the object
5284
\section{Class: VM\_guest\_metrics}
5285
\subsection{Fields for class: VM\_guest\_metrics}
5286
\begin{longtable}{|lllp{0.38\textwidth}|}
5288
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_guest\_metrics} \\
5289
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
5290
The metrics reported by the guest (as opposed to inferred from outside).}} \\
5292
Quals & Field & Type & Description \\
5294
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5295
$\mathit{RO}_\mathit{run}$ & {\tt os\_version} & (string $\rightarrow$ string) Map & version of the OS \\
5296
$\mathit{RO}_\mathit{run}$ & {\tt PV\_drivers\_version} & (string $\rightarrow$ string) Map & version of the PV drivers \\
5297
$\mathit{RO}_\mathit{run}$ & {\tt memory} & (string $\rightarrow$ string) Map & free/used/total memory \\
5298
$\mathit{RO}_\mathit{run}$ & {\tt disks} & (string $\rightarrow$ string) Map & disk configuration/free space \\
5299
$\mathit{RO}_\mathit{run}$ & {\tt networks} & (string $\rightarrow$ string) Map & network configuration \\
5300
$\mathit{RO}_\mathit{run}$ & {\tt other} & (string $\rightarrow$ string) Map & anything else \\
5301
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
5304
\subsection{RPCs associated with class: VM\_guest\_metrics}
5305
\subsubsection{RPC name:~get\_all}
5308
Return a list of all the VM\_guest\_metrics instances known to the system.
5310
\noindent {\bf Signature:}
5311
\begin{verbatim} ((VM_guest_metrics ref) Set) get_all (session_id s)\end{verbatim}
5316
\noindent {\bf Return Type:}
5318
(VM\_guest\_metrics ref) Set
5322
references to all objects
5326
\subsubsection{RPC name:~get\_uuid}
5329
Get the uuid field of the given VM\_guest\_metrics.
5331
\noindent {\bf Signature:}
5332
\begin{verbatim} string get_uuid (session_id s, VM_guest_metrics ref self)\end{verbatim}
5335
\noindent{\bf Arguments:}
5339
\begin{tabular}{|c|c|p{7cm}|}
5341
{\bf type} & {\bf name} & {\bf description} \\ \hline
5342
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5348
\noindent {\bf Return Type:}
5358
\subsubsection{RPC name:~get\_os\_version}
5361
Get the os\_version field of the given VM\_guest\_metrics.
5363
\noindent {\bf Signature:}
5364
\begin{verbatim} ((string -> string) Map) get_os_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5367
\noindent{\bf Arguments:}
5371
\begin{tabular}{|c|c|p{7cm}|}
5373
{\bf type} & {\bf name} & {\bf description} \\ \hline
5374
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5380
\noindent {\bf Return Type:}
5382
(string $\rightarrow$ string) Map
5390
\subsubsection{RPC name:~get\_PV\_drivers\_version}
5393
Get the PV\_drivers\_version field of the given VM\_guest\_metrics.
5395
\noindent {\bf Signature:}
5396
\begin{verbatim} ((string -> string) Map) get_PV_drivers_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5399
\noindent{\bf Arguments:}
5403
\begin{tabular}{|c|c|p{7cm}|}
5405
{\bf type} & {\bf name} & {\bf description} \\ \hline
5406
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5412
\noindent {\bf Return Type:}
5414
(string $\rightarrow$ string) Map
5422
\subsubsection{RPC name:~get\_memory}
5425
Get the memory field of the given VM\_guest\_metrics.
5427
\noindent {\bf Signature:}
5428
\begin{verbatim} ((string -> string) Map) get_memory (session_id s, VM_guest_metrics ref self)\end{verbatim}
5431
\noindent{\bf Arguments:}
5435
\begin{tabular}{|c|c|p{7cm}|}
5437
{\bf type} & {\bf name} & {\bf description} \\ \hline
5438
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5444
\noindent {\bf Return Type:}
5446
(string $\rightarrow$ string) Map
5454
\subsubsection{RPC name:~get\_disks}
5457
Get the disks field of the given VM\_guest\_metrics.
5459
\noindent {\bf Signature:}
5460
\begin{verbatim} ((string -> string) Map) get_disks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5463
\noindent{\bf Arguments:}
5467
\begin{tabular}{|c|c|p{7cm}|}
5469
{\bf type} & {\bf name} & {\bf description} \\ \hline
5470
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5476
\noindent {\bf Return Type:}
5478
(string $\rightarrow$ string) Map
5486
\subsubsection{RPC name:~get\_networks}
5489
Get the networks field of the given VM\_guest\_metrics.
5491
\noindent {\bf Signature:}
5492
\begin{verbatim} ((string -> string) Map) get_networks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5495
\noindent{\bf Arguments:}
5499
\begin{tabular}{|c|c|p{7cm}|}
5501
{\bf type} & {\bf name} & {\bf description} \\ \hline
5502
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5508
\noindent {\bf Return Type:}
5510
(string $\rightarrow$ string) Map
5518
\subsubsection{RPC name:~get\_other}
5521
Get the other field of the given VM\_guest\_metrics.
5523
\noindent {\bf Signature:}
5524
\begin{verbatim} ((string -> string) Map) get_other (session_id s, VM_guest_metrics ref self)\end{verbatim}
5527
\noindent{\bf Arguments:}
5531
\begin{tabular}{|c|c|p{7cm}|}
5533
{\bf type} & {\bf name} & {\bf description} \\ \hline
5534
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5540
\noindent {\bf Return Type:}
5542
(string $\rightarrow$ string) Map
5550
\subsubsection{RPC name:~get\_last\_updated}
5553
Get the last\_updated field of the given VM\_guest\_metrics.
5555
\noindent {\bf Signature:}
5556
\begin{verbatim} datetime get_last_updated (session_id s, VM_guest_metrics ref self)\end{verbatim}
5559
\noindent{\bf Arguments:}
5563
\begin{tabular}{|c|c|p{7cm}|}
5565
{\bf type} & {\bf name} & {\bf description} \\ \hline
5566
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5572
\noindent {\bf Return Type:}
5582
\subsubsection{RPC name:~get\_by\_uuid}
5585
Get a reference to the VM\_guest\_metrics instance with the specified UUID.
5587
\noindent {\bf Signature:}
5588
\begin{verbatim} (VM_guest_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5591
\noindent{\bf Arguments:}
5595
\begin{tabular}{|c|c|p{7cm}|}
5597
{\bf type} & {\bf name} & {\bf description} \\ \hline
5598
{\tt string } & uuid & UUID of object to return \\ \hline
5604
\noindent {\bf Return Type:}
5606
VM\_guest\_metrics ref
5610
reference to the object
5614
\subsubsection{RPC name:~get\_record}
5617
Get a record containing the current state of the given VM\_guest\_metrics.
5619
\noindent {\bf Signature:}
5620
\begin{verbatim} (VM_guest_metrics record) get_record (session_id s, VM_guest_metrics ref self)\end{verbatim}
5623
\noindent{\bf Arguments:}
5627
\begin{tabular}{|c|c|p{7cm}|}
5629
{\bf type} & {\bf name} & {\bf description} \\ \hline
5630
{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5636
\noindent {\bf Return Type:}
5638
VM\_guest\_metrics record
5642
all fields from the object
5649
\section{Class: host}
5650
\subsection{Fields for class: host}
5651
\begin{longtable}{|lllp{0.38\textwidth}|}
5653
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
5654
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
5657
Quals & Field & Type & Description \\
5659
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5660
$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
5661
$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
5662
$\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version number \\
5663
$\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\
5664
$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\
5665
$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\
5666
$\mathit{RO}_\mathit{run}$ & {\tt enabled} & bool & True if the host is currently enabled \\
5667
$\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
5668
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
5669
$\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\
5670
$\mathit{RO}_\mathit{run}$ & {\tt cpu\_configuration} & (string $\rightarrow$ string) Map & The CPU configuration on this host. May contain keys such as ``nr\_nodes'', ``sockets\_per\_node'', ``cores\_per\_socket'', or ``threads\_per\_core'' \\
5671
$\mathit{RO}_\mathit{run}$ & {\tt sched\_policy} & string & Scheduler policy currently in force on this host \\
5672
$\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\
5673
$\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
5674
$\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
5675
$\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
5676
$\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
5677
$\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
5678
$\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
5679
$\mathit{RO}_\mathit{run}$ & {\tt PPCIs} & (PPCI ref) Set & physical PCI devices \\
5680
$\mathit{RO}_\mathit{run}$ & {\tt PSCSIs} & (PSCSI ref) Set & physical SCSI devices \\
5681
$\mathit{RO}_\mathit{run}$ & {\tt PSCSI\_HBAs} & (PSCSI\_HBA ref) Set & physical SCSI host bus adapters \\
5682
$\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
5683
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host \\
5686
\subsection{RPCs associated with class: host}
5687
\subsubsection{RPC name:~disable}
5690
Puts the host into a state in which no new VMs can be started. Currently
5691
active VMs on the host continue to execute.
5693
\noindent {\bf Signature:}
5694
\begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
5697
\noindent{\bf Arguments:}
5701
\begin{tabular}{|c|c|p{7cm}|}
5703
{\bf type} & {\bf name} & {\bf description} \\ \hline
5704
{\tt host ref } & host & The Host to disable \\ \hline
5710
\noindent {\bf Return Type:}
5720
\subsubsection{RPC name:~enable}
5723
Puts the host into a state in which new VMs can be started.
5725
\noindent {\bf Signature:}
5726
\begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
5729
\noindent{\bf Arguments:}
5733
\begin{tabular}{|c|c|p{7cm}|}
5735
{\bf type} & {\bf name} & {\bf description} \\ \hline
5736
{\tt host ref } & host & The Host to enable \\ \hline
5742
\noindent {\bf Return Type:}
5752
\subsubsection{RPC name:~shutdown}
5755
Shutdown the host. (This function can only be called if there are no
5756
currently running VMs on the host and it is disabled.).
5758
\noindent {\bf Signature:}
5759
\begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
5762
\noindent{\bf Arguments:}
5766
\begin{tabular}{|c|c|p{7cm}|}
5768
{\bf type} & {\bf name} & {\bf description} \\ \hline
5769
{\tt host ref } & host & The Host to shutdown \\ \hline
5775
\noindent {\bf Return Type:}
5785
\subsubsection{RPC name:~reboot}
5788
Reboot the host. (This function can only be called if there are no
5789
currently running VMs on the host and it is disabled.).
5791
\noindent {\bf Signature:}
5792
\begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
5795
\noindent{\bf Arguments:}
5799
\begin{tabular}{|c|c|p{7cm}|}
5801
{\bf type} & {\bf name} & {\bf description} \\ \hline
5802
{\tt host ref } & host & The Host to reboot \\ \hline
5808
\noindent {\bf Return Type:}
5818
\subsubsection{RPC name:~dmesg}
5821
Get the host xen dmesg.
5823
\noindent {\bf Signature:}
5824
\begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
5827
\noindent{\bf Arguments:}
5831
\begin{tabular}{|c|c|p{7cm}|}
5833
{\bf type} & {\bf name} & {\bf description} \\ \hline
5834
{\tt host ref } & host & The Host to query \\ \hline
5840
\noindent {\bf Return Type:}
5850
\subsubsection{RPC name:~dmesg\_clear}
5853
Get the host xen dmesg, and clear the buffer.
5855
\noindent {\bf Signature:}
5856
\begin{verbatim} string dmesg_clear (session_id s, host ref host)\end{verbatim}
5859
\noindent{\bf Arguments:}
5863
\begin{tabular}{|c|c|p{7cm}|}
5865
{\bf type} & {\bf name} & {\bf description} \\ \hline
5866
{\tt host ref } & host & The Host to query \\ \hline
5872
\noindent {\bf Return Type:}
5882
\subsubsection{RPC name:~get\_log}
5885
Get the host's log file.
5887
\noindent {\bf Signature:}
5888
\begin{verbatim} string get_log (session_id s, host ref host)\end{verbatim}
5891
\noindent{\bf Arguments:}
5895
\begin{tabular}{|c|c|p{7cm}|}
5897
{\bf type} & {\bf name} & {\bf description} \\ \hline
5898
{\tt host ref } & host & The Host to query \\ \hline
5904
\noindent {\bf Return Type:}
5910
The contents of the host's primary log file
5914
\subsubsection{RPC name:~send\_debug\_keys}
5917
Inject the given string as debugging keys into Xen.
5919
\noindent {\bf Signature:}
5920
\begin{verbatim} void send_debug_keys (session_id s, host ref host, string keys)\end{verbatim}
5923
\noindent{\bf Arguments:}
5927
\begin{tabular}{|c|c|p{7cm}|}
5929
{\bf type} & {\bf name} & {\bf description} \\ \hline
5930
{\tt host ref } & host & The host \\ \hline
5932
{\tt string } & keys & The keys to send \\ \hline
5938
\noindent {\bf Return Type:}
5948
\subsubsection{RPC name:~list\_methods}
5951
List all supported methods.
5953
\noindent {\bf Signature:}
5954
\begin{verbatim} (string Set) list_methods (session_id s)\end{verbatim}
5959
\noindent {\bf Return Type:}
5965
The name of every supported method.
5969
\subsubsection{RPC name:~get\_all}
5972
Return a list of all the hosts known to the system.
5974
\noindent {\bf Signature:}
5975
\begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
5980
\noindent {\bf Return Type:}
5986
A list of all the IDs of all the hosts
5990
\subsubsection{RPC name:~get\_uuid}
5993
Get the uuid field of the given host.
5995
\noindent {\bf Signature:}
5996
\begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
5999
\noindent{\bf Arguments:}
6003
\begin{tabular}{|c|c|p{7cm}|}
6005
{\bf type} & {\bf name} & {\bf description} \\ \hline
6006
{\tt host ref } & self & reference to the object \\ \hline
6012
\noindent {\bf Return Type:}
6022
\subsubsection{RPC name:~get\_name\_label}
6025
Get the name/label field of the given host.
6027
\noindent {\bf Signature:}
6028
\begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
6031
\noindent{\bf Arguments:}
6035
\begin{tabular}{|c|c|p{7cm}|}
6037
{\bf type} & {\bf name} & {\bf description} \\ \hline
6038
{\tt host ref } & self & reference to the object \\ \hline
6044
\noindent {\bf Return Type:}
6054
\subsubsection{RPC name:~set\_name\_label}
6057
Set the name/label field of the given host.
6059
\noindent {\bf Signature:}
6060
\begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
6063
\noindent{\bf Arguments:}
6067
\begin{tabular}{|c|c|p{7cm}|}
6069
{\bf type} & {\bf name} & {\bf description} \\ \hline
6070
{\tt host ref } & self & reference to the object \\ \hline
6072
{\tt string } & value & New value to set \\ \hline
6078
\noindent {\bf Return Type:}
6088
\subsubsection{RPC name:~get\_name\_description}
6091
Get the name/description field of the given host.
6093
\noindent {\bf Signature:}
6094
\begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
6097
\noindent{\bf Arguments:}
6101
\begin{tabular}{|c|c|p{7cm}|}
6103
{\bf type} & {\bf name} & {\bf description} \\ \hline
6104
{\tt host ref } & self & reference to the object \\ \hline
6110
\noindent {\bf Return Type:}
6120
\subsubsection{RPC name:~set\_name\_description}
6123
Set the name/description field of the given host.
6125
\noindent {\bf Signature:}
6126
\begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
6129
\noindent{\bf Arguments:}
6133
\begin{tabular}{|c|c|p{7cm}|}
6135
{\bf type} & {\bf name} & {\bf description} \\ \hline
6136
{\tt host ref } & self & reference to the object \\ \hline
6138
{\tt string } & value & New value to set \\ \hline
6144
\noindent {\bf Return Type:}
6154
\subsubsection{RPC name:~get\_API\_version\_major}
6157
Get the API\_version/major field of the given host.
6159
\noindent {\bf Signature:}
6160
\begin{verbatim} int get_API_version_major (session_id s, host ref self)\end{verbatim}
6163
\noindent{\bf Arguments:}
6167
\begin{tabular}{|c|c|p{7cm}|}
6169
{\bf type} & {\bf name} & {\bf description} \\ \hline
6170
{\tt host ref } & self & reference to the object \\ \hline
6176
\noindent {\bf Return Type:}
6186
\subsubsection{RPC name:~get\_API\_version\_minor}
6189
Get the API\_version/minor field of the given host.
6191
\noindent {\bf Signature:}
6192
\begin{verbatim} int get_API_version_minor (session_id s, host ref self)\end{verbatim}
6195
\noindent{\bf Arguments:}
6199
\begin{tabular}{|c|c|p{7cm}|}
6201
{\bf type} & {\bf name} & {\bf description} \\ \hline
6202
{\tt host ref } & self & reference to the object \\ \hline
6208
\noindent {\bf Return Type:}
6218
\subsubsection{RPC name:~get\_API\_version\_vendor}
6221
Get the API\_version/vendor field of the given host.
6223
\noindent {\bf Signature:}
6224
\begin{verbatim} string get_API_version_vendor (session_id s, host ref self)\end{verbatim}
6227
\noindent{\bf Arguments:}
6231
\begin{tabular}{|c|c|p{7cm}|}
6233
{\bf type} & {\bf name} & {\bf description} \\ \hline
6234
{\tt host ref } & self & reference to the object \\ \hline
6240
\noindent {\bf Return Type:}
6250
\subsubsection{RPC name:~get\_API\_version\_vendor\_implementation}
6253
Get the API\_version/vendor\_implementation field of the given host.
6255
\noindent {\bf Signature:}
6256
\begin{verbatim} ((string -> string) Map) get_API_version_vendor_implementation (session_id s, host ref self)\end{verbatim}
6259
\noindent{\bf Arguments:}
6263
\begin{tabular}{|c|c|p{7cm}|}
6265
{\bf type} & {\bf name} & {\bf description} \\ \hline
6266
{\tt host ref } & self & reference to the object \\ \hline
6272
\noindent {\bf Return Type:}
6274
(string $\rightarrow$ string) Map
6282
\subsubsection{RPC name:~get\_enabled}
6285
Get the enabled field of the given host.
6287
\noindent {\bf Signature:}
6288
\begin{verbatim} bool get_enabled (session_id s, host ref self)\end{verbatim}
6291
\noindent{\bf Arguments:}
6295
\begin{tabular}{|c|c|p{7cm}|}
6297
{\bf type} & {\bf name} & {\bf description} \\ \hline
6298
{\tt host ref } & self & reference to the object \\ \hline
6304
\noindent {\bf Return Type:}
6314
\subsubsection{RPC name:~get\_software\_version}
6317
Get the software\_version field of the given host.
6319
\noindent {\bf Signature:}
6320
\begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
6323
\noindent{\bf Arguments:}
6327
\begin{tabular}{|c|c|p{7cm}|}
6329
{\bf type} & {\bf name} & {\bf description} \\ \hline
6330
{\tt host ref } & self & reference to the object \\ \hline
6336
\noindent {\bf Return Type:}
6338
(string $\rightarrow$ string) Map
6346
\subsubsection{RPC name:~get\_other\_config}
6349
Get the other\_config field of the given host.
6351
\noindent {\bf Signature:}
6352
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
6355
\noindent{\bf Arguments:}
6359
\begin{tabular}{|c|c|p{7cm}|}
6361
{\bf type} & {\bf name} & {\bf description} \\ \hline
6362
{\tt host ref } & self & reference to the object \\ \hline
6368
\noindent {\bf Return Type:}
6370
(string $\rightarrow$ string) Map
6378
\subsubsection{RPC name:~set\_other\_config}
6381
Set the other\_config field of the given host.
6383
\noindent {\bf Signature:}
6384
\begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6387
\noindent{\bf Arguments:}
6391
\begin{tabular}{|c|c|p{7cm}|}
6393
{\bf type} & {\bf name} & {\bf description} \\ \hline
6394
{\tt host ref } & self & reference to the object \\ \hline
6396
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6402
\noindent {\bf Return Type:}
6412
\subsubsection{RPC name:~add\_to\_other\_config}
6415
Add the given key-value pair to the other\_config field of the given host.
6417
\noindent {\bf Signature:}
6418
\begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
6421
\noindent{\bf Arguments:}
6425
\begin{tabular}{|c|c|p{7cm}|}
6427
{\bf type} & {\bf name} & {\bf description} \\ \hline
6428
{\tt host ref } & self & reference to the object \\ \hline
6430
{\tt string } & key & Key to add \\ \hline
6432
{\tt string } & value & Value to add \\ \hline
6438
\noindent {\bf Return Type:}
6448
\subsubsection{RPC name:~remove\_from\_other\_config}
6451
Remove the given key and its corresponding value from the other\_config
6452
field of the given host. If the key is not in that Map, then do nothing.
6454
\noindent {\bf Signature:}
6455
\begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
6458
\noindent{\bf Arguments:}
6462
\begin{tabular}{|c|c|p{7cm}|}
6464
{\bf type} & {\bf name} & {\bf description} \\ \hline
6465
{\tt host ref } & self & reference to the object \\ \hline
6467
{\tt string } & key & Key to remove \\ \hline
6473
\noindent {\bf Return Type:}
6483
\subsubsection{RPC name:~get\_capabilities}
6486
Get the capabilities field of the given host.
6488
\noindent {\bf Signature:}
6489
\begin{verbatim} (string Set) get_capabilities (session_id s, host ref self)\end{verbatim}
6492
\noindent{\bf Arguments:}
6496
\begin{tabular}{|c|c|p{7cm}|}
6498
{\bf type} & {\bf name} & {\bf description} \\ \hline
6499
{\tt host ref } & self & reference to the object \\ \hline
6505
\noindent {\bf Return Type:}
6515
\subsubsection{RPC name:~get\_cpu\_configuration}
6518
Get the cpu\_configuration field of the given host.
6520
\noindent {\bf Signature:}
6521
\begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, host ref self)\end{verbatim}
6524
\noindent{\bf Arguments:}
6528
\begin{tabular}{|c|c|p{7cm}|}
6530
{\bf type} & {\bf name} & {\bf description} \\ \hline
6531
{\tt host ref } & self & reference to the object \\ \hline
6537
\noindent {\bf Return Type:}
6539
(string $\rightarrow$ string) Map
6547
\subsubsection{RPC name:~get\_sched\_policy}
6550
Get the sched\_policy field of the given host.
6552
\noindent {\bf Signature:}
6553
\begin{verbatim} string get_sched_policy (session_id s, host ref self)\end{verbatim}
6556
\noindent{\bf Arguments:}
6560
\begin{tabular}{|c|c|p{7cm}|}
6562
{\bf type} & {\bf name} & {\bf description} \\ \hline
6563
{\tt host ref } & self & reference to the object \\ \hline
6569
\noindent {\bf Return Type:}
6579
\subsubsection{RPC name:~get\_supported\_bootloaders}
6582
Get the supported\_bootloaders field of the given host.
6584
\noindent {\bf Signature:}
6585
\begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim}
6588
\noindent{\bf Arguments:}
6592
\begin{tabular}{|c|c|p{7cm}|}
6594
{\bf type} & {\bf name} & {\bf description} \\ \hline
6595
{\tt host ref } & self & reference to the object \\ \hline
6601
\noindent {\bf Return Type:}
6611
\subsubsection{RPC name:~get\_resident\_VMs}
6614
Get the resident\_VMs field of the given host.
6616
\noindent {\bf Signature:}
6617
\begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
6620
\noindent{\bf Arguments:}
6624
\begin{tabular}{|c|c|p{7cm}|}
6626
{\bf type} & {\bf name} & {\bf description} \\ \hline
6627
{\tt host ref } & self & reference to the object \\ \hline
6633
\noindent {\bf Return Type:}
6643
\subsubsection{RPC name:~get\_logging}
6646
Get the logging field of the given host.
6648
\noindent {\bf Signature:}
6649
\begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
6652
\noindent{\bf Arguments:}
6656
\begin{tabular}{|c|c|p{7cm}|}
6658
{\bf type} & {\bf name} & {\bf description} \\ \hline
6659
{\tt host ref } & self & reference to the object \\ \hline
6665
\noindent {\bf Return Type:}
6667
(string $\rightarrow$ string) Map
6675
\subsubsection{RPC name:~set\_logging}
6678
Set the logging field of the given host.
6680
\noindent {\bf Signature:}
6681
\begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6684
\noindent{\bf Arguments:}
6688
\begin{tabular}{|c|c|p{7cm}|}
6690
{\bf type} & {\bf name} & {\bf description} \\ \hline
6691
{\tt host ref } & self & reference to the object \\ \hline
6693
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6699
\noindent {\bf Return Type:}
6709
\subsubsection{RPC name:~add\_to\_logging}
6712
Add the given key-value pair to the logging field of the given host.
6714
\noindent {\bf Signature:}
6715
\begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\end{verbatim}
6718
\noindent{\bf Arguments:}
6722
\begin{tabular}{|c|c|p{7cm}|}
6724
{\bf type} & {\bf name} & {\bf description} \\ \hline
6725
{\tt host ref } & self & reference to the object \\ \hline
6727
{\tt string } & key & Key to add \\ \hline
6729
{\tt string } & value & Value to add \\ \hline
6735
\noindent {\bf Return Type:}
6745
\subsubsection{RPC name:~remove\_from\_logging}
6748
Remove the given key and its corresponding value from the logging field of
6749
the given host. If the key is not in that Map, then do nothing.
6751
\noindent {\bf Signature:}
6752
\begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\end{verbatim}
6755
\noindent{\bf Arguments:}
6759
\begin{tabular}{|c|c|p{7cm}|}
6761
{\bf type} & {\bf name} & {\bf description} \\ \hline
6762
{\tt host ref } & self & reference to the object \\ \hline
6764
{\tt string } & key & Key to remove \\ \hline
6770
\noindent {\bf Return Type:}
6780
\subsubsection{RPC name:~get\_PIFs}
6783
Get the PIFs field of the given host.
6785
\noindent {\bf Signature:}
6786
\begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
6789
\noindent{\bf Arguments:}
6793
\begin{tabular}{|c|c|p{7cm}|}
6795
{\bf type} & {\bf name} & {\bf description} \\ \hline
6796
{\tt host ref } & self & reference to the object \\ \hline
6802
\noindent {\bf Return Type:}
6812
\subsubsection{RPC name:~get\_suspend\_image\_sr}
6815
Get the suspend\_image\_sr field of the given host.
6817
\noindent {\bf Signature:}
6818
\begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
6821
\noindent{\bf Arguments:}
6825
\begin{tabular}{|c|c|p{7cm}|}
6827
{\bf type} & {\bf name} & {\bf description} \\ \hline
6828
{\tt host ref } & self & reference to the object \\ \hline
6834
\noindent {\bf Return Type:}
6844
\subsubsection{RPC name:~set\_suspend\_image\_sr}
6847
Set the suspend\_image\_sr field of the given host.
6849
\noindent {\bf Signature:}
6850
\begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6853
\noindent{\bf Arguments:}
6857
\begin{tabular}{|c|c|p{7cm}|}
6859
{\bf type} & {\bf name} & {\bf description} \\ \hline
6860
{\tt host ref } & self & reference to the object \\ \hline
6862
{\tt SR ref } & value & New value to set \\ \hline
6868
\noindent {\bf Return Type:}
6878
\subsubsection{RPC name:~get\_crash\_dump\_sr}
6881
Get the crash\_dump\_sr field of the given host.
6883
\noindent {\bf Signature:}
6884
\begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
6887
\noindent{\bf Arguments:}
6891
\begin{tabular}{|c|c|p{7cm}|}
6893
{\bf type} & {\bf name} & {\bf description} \\ \hline
6894
{\tt host ref } & self & reference to the object \\ \hline
6900
\noindent {\bf Return Type:}
6910
\subsubsection{RPC name:~set\_crash\_dump\_sr}
6913
Set the crash\_dump\_sr field of the given host.
6915
\noindent {\bf Signature:}
6916
\begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6919
\noindent{\bf Arguments:}
6923
\begin{tabular}{|c|c|p{7cm}|}
6925
{\bf type} & {\bf name} & {\bf description} \\ \hline
6926
{\tt host ref } & self & reference to the object \\ \hline
6928
{\tt SR ref } & value & New value to set \\ \hline
6934
\noindent {\bf Return Type:}
6944
\subsubsection{RPC name:~get\_PBDs}
6947
Get the PBDs field of the given host.
6949
\noindent {\bf Signature:}
6950
\begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
6953
\noindent{\bf Arguments:}
6957
\begin{tabular}{|c|c|p{7cm}|}
6959
{\bf type} & {\bf name} & {\bf description} \\ \hline
6960
{\tt host ref } & self & reference to the object \\ \hline
6966
\noindent {\bf Return Type:}
6976
\subsubsection{RPC name:~get\_PPCIs}
6979
Get the PPCIs field of the given host.
6981
\noindent {\bf Signature:}
6982
\begin{verbatim} ((PPCI ref) Set) get_PPCIs (session_id s, host ref self)\end{verbatim}
6985
\noindent{\bf Arguments:}
6989
\begin{tabular}{|c|c|p{7cm}|}
6991
{\bf type} & {\bf name} & {\bf description} \\ \hline
6992
{\tt host ref } & self & reference to the object \\ \hline
6998
\noindent {\bf Return Type:}
7008
\subsubsection{RPC name:~get\_PSCSIs}
7011
Get the PSCSIs field of the given host.
7013
\noindent {\bf Signature:}
7014
\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, host ref self)\end{verbatim}
7017
\noindent{\bf Arguments:}
7021
\begin{tabular}{|c|c|p{7cm}|}
7023
{\bf type} & {\bf name} & {\bf description} \\ \hline
7024
{\tt host ref } & self & reference to the object \\ \hline
7030
\noindent {\bf Return Type:}
7040
\subsubsection{RPC name:~get\_PSCSI\_HBAs}
7043
Get the PSCSI\_HBAs field of the given host.
7045
\noindent {\bf Signature:}
7046
\begin{verbatim} ((PSCSI_HBA ref) Set) get_PSCSI_HBAs (session_id s, host ref self)\end{verbatim}
7049
\noindent{\bf Arguments:}
7053
\begin{tabular}{|c|c|p{7cm}|}
7055
{\bf type} & {\bf name} & {\bf description} \\ \hline
7056
{\tt host ref } & self & reference to the object \\ \hline
7062
\noindent {\bf Return Type:}
7064
(PSCSI\_HBA ref) Set
7072
\subsubsection{RPC name:~get\_host\_CPUs}
7075
Get the host\_CPUs field of the given host.
7077
\noindent {\bf Signature:}
7078
\begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
7081
\noindent{\bf Arguments:}
7085
\begin{tabular}{|c|c|p{7cm}|}
7087
{\bf type} & {\bf name} & {\bf description} \\ \hline
7088
{\tt host ref } & self & reference to the object \\ \hline
7094
\noindent {\bf Return Type:}
7104
\subsubsection{RPC name:~get\_metrics}
7107
Get the metrics field of the given host.
7109
\noindent {\bf Signature:}
7110
\begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
7113
\noindent{\bf Arguments:}
7117
\begin{tabular}{|c|c|p{7cm}|}
7119
{\bf type} & {\bf name} & {\bf description} \\ \hline
7120
{\tt host ref } & self & reference to the object \\ \hline
7126
\noindent {\bf Return Type:}
7136
\subsubsection{RPC name:~get\_by\_uuid}
7139
Get a reference to the host instance with the specified UUID.
7141
\noindent {\bf Signature:}
7142
\begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7145
\noindent{\bf Arguments:}
7149
\begin{tabular}{|c|c|p{7cm}|}
7151
{\bf type} & {\bf name} & {\bf description} \\ \hline
7152
{\tt string } & uuid & UUID of object to return \\ \hline
7158
\noindent {\bf Return Type:}
7164
reference to the object
7168
\subsubsection{RPC name:~get\_record}
7171
Get a record containing the current state of the given host.
7173
\noindent {\bf Signature:}
7174
\begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
7177
\noindent{\bf Arguments:}
7181
\begin{tabular}{|c|c|p{7cm}|}
7183
{\bf type} & {\bf name} & {\bf description} \\ \hline
7184
{\tt host ref } & self & reference to the object \\ \hline
7190
\noindent {\bf Return Type:}
7196
all fields from the object
7200
\subsubsection{RPC name:~get\_by\_name\_label}
7203
Get all the host instances with the given label.
7205
\noindent {\bf Signature:}
7206
\begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
7209
\noindent{\bf Arguments:}
7213
\begin{tabular}{|c|c|p{7cm}|}
7215
{\bf type} & {\bf name} & {\bf description} \\ \hline
7216
{\tt string } & label & label of object to return \\ \hline
7222
\noindent {\bf Return Type:}
7228
references to objects with match names
7235
\section{Class: host\_metrics}
7236
\subsection{Fields for class: host\_metrics}
7237
\begin{longtable}{|lllp{0.38\textwidth}|}
7239
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
7240
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
7241
The metrics associated with a host.}} \\
7243
Quals & Field & Type & Description \\
7245
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7246
$\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
7247
$\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
7248
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
7251
\subsection{RPCs associated with class: host\_metrics}
7252
\subsubsection{RPC name:~get\_all}
7255
Return a list of all the host\_metrics instances known to the system.
7257
\noindent {\bf Signature:}
7258
\begin{verbatim} ((host_metrics ref) Set) get_all (session_id s)\end{verbatim}
7263
\noindent {\bf Return Type:}
7265
(host\_metrics ref) Set
7269
references to all objects
7273
\subsubsection{RPC name:~get\_uuid}
7276
Get the uuid field of the given host\_metrics.
7278
\noindent {\bf Signature:}
7279
\begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
7282
\noindent{\bf Arguments:}
7286
\begin{tabular}{|c|c|p{7cm}|}
7288
{\bf type} & {\bf name} & {\bf description} \\ \hline
7289
{\tt host\_metrics ref } & self & reference to the object \\ \hline
7295
\noindent {\bf Return Type:}
7305
\subsubsection{RPC name:~get\_memory\_total}
7308
Get the memory/total field of the given host\_metrics.
7310
\noindent {\bf Signature:}
7311
\begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
7314
\noindent{\bf Arguments:}
7318
\begin{tabular}{|c|c|p{7cm}|}
7320
{\bf type} & {\bf name} & {\bf description} \\ \hline
7321
{\tt host\_metrics ref } & self & reference to the object \\ \hline
7327
\noindent {\bf Return Type:}
7337
\subsubsection{RPC name:~get\_memory\_free}
7340
Get the memory/free field of the given host\_metrics.
7342
\noindent {\bf Signature:}
7343
\begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
7346
\noindent{\bf Arguments:}
7350
\begin{tabular}{|c|c|p{7cm}|}
7352
{\bf type} & {\bf name} & {\bf description} \\ \hline
7353
{\tt host\_metrics ref } & self & reference to the object \\ \hline
7359
\noindent {\bf Return Type:}
7369
\subsubsection{RPC name:~get\_last\_updated}
7372
Get the last\_updated field of the given host\_metrics.
7374
\noindent {\bf Signature:}
7375
\begin{verbatim} datetime get_last_updated (session_id s, host_metrics ref self)\end{verbatim}
7378
\noindent{\bf Arguments:}
7382
\begin{tabular}{|c|c|p{7cm}|}
7384
{\bf type} & {\bf name} & {\bf description} \\ \hline
7385
{\tt host\_metrics ref } & self & reference to the object \\ \hline
7391
\noindent {\bf Return Type:}
7401
\subsubsection{RPC name:~get\_by\_uuid}
7404
Get a reference to the host\_metrics instance with the specified UUID.
7406
\noindent {\bf Signature:}
7407
\begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7410
\noindent{\bf Arguments:}
7414
\begin{tabular}{|c|c|p{7cm}|}
7416
{\bf type} & {\bf name} & {\bf description} \\ \hline
7417
{\tt string } & uuid & UUID of object to return \\ \hline
7423
\noindent {\bf Return Type:}
7429
reference to the object
7433
\subsubsection{RPC name:~get\_record}
7436
Get a record containing the current state of the given host\_metrics.
7438
\noindent {\bf Signature:}
7439
\begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
7442
\noindent{\bf Arguments:}
7446
\begin{tabular}{|c|c|p{7cm}|}
7448
{\bf type} & {\bf name} & {\bf description} \\ \hline
7449
{\tt host\_metrics ref } & self & reference to the object \\ \hline
7455
\noindent {\bf Return Type:}
7457
host\_metrics record
7461
all fields from the object
7468
\section{Class: host\_cpu}
7469
\subsection{Fields for class: host\_cpu}
7470
\begin{longtable}{|lllp{0.38\textwidth}|}
7472
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
7473
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
7475
Quals & Field & Type & Description \\
7477
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7478
$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the host the CPU is in \\
7479
$\mathit{RO}_\mathit{run}$ & {\tt number} & int & the number of the physical CPU within the host \\
7480
$\mathit{RO}_\mathit{run}$ & {\tt vendor} & string & the vendor of the physical CPU \\
7481
$\mathit{RO}_\mathit{run}$ & {\tt speed} & int & the speed of the physical CPU \\
7482
$\mathit{RO}_\mathit{run}$ & {\tt modelname} & string & the model name of the physical CPU \\
7483
$\mathit{RO}_\mathit{run}$ & {\tt stepping} & string & the stepping of the physical CPU \\
7484
$\mathit{RO}_\mathit{run}$ & {\tt flags} & string & the flags of the physical CPU (a decoded version of the features field) \\
7485
$\mathit{RO}_\mathit{run}$ & {\tt features} & string & the physical CPU feature bitmap \\
7486
$\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
7489
\subsection{RPCs associated with class: host\_cpu}
7490
\subsubsection{RPC name:~get\_all}
7493
Return a list of all the host\_cpus known to the system.
7495
\noindent {\bf Signature:}
7496
\begin{verbatim} ((host_cpu ref) Set) get_all (session_id s)\end{verbatim}
7501
\noindent {\bf Return Type:}
7507
references to all objects
7511
\subsubsection{RPC name:~get\_uuid}
7514
Get the uuid field of the given host\_cpu.
7516
\noindent {\bf Signature:}
7517
\begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
7520
\noindent{\bf Arguments:}
7524
\begin{tabular}{|c|c|p{7cm}|}
7526
{\bf type} & {\bf name} & {\bf description} \\ \hline
7527
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7533
\noindent {\bf Return Type:}
7543
\subsubsection{RPC name:~get\_host}
7546
Get the host field of the given host\_cpu.
7548
\noindent {\bf Signature:}
7549
\begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
7552
\noindent{\bf Arguments:}
7556
\begin{tabular}{|c|c|p{7cm}|}
7558
{\bf type} & {\bf name} & {\bf description} \\ \hline
7559
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7565
\noindent {\bf Return Type:}
7575
\subsubsection{RPC name:~get\_number}
7578
Get the number field of the given host\_cpu.
7580
\noindent {\bf Signature:}
7581
\begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
7584
\noindent{\bf Arguments:}
7588
\begin{tabular}{|c|c|p{7cm}|}
7590
{\bf type} & {\bf name} & {\bf description} \\ \hline
7591
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7597
\noindent {\bf Return Type:}
7607
\subsubsection{RPC name:~get\_vendor}
7610
Get the vendor field of the given host\_cpu.
7612
\noindent {\bf Signature:}
7613
\begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
7616
\noindent{\bf Arguments:}
7620
\begin{tabular}{|c|c|p{7cm}|}
7622
{\bf type} & {\bf name} & {\bf description} \\ \hline
7623
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7629
\noindent {\bf Return Type:}
7639
\subsubsection{RPC name:~get\_speed}
7642
Get the speed field of the given host\_cpu.
7644
\noindent {\bf Signature:}
7645
\begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
7648
\noindent{\bf Arguments:}
7652
\begin{tabular}{|c|c|p{7cm}|}
7654
{\bf type} & {\bf name} & {\bf description} \\ \hline
7655
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7661
\noindent {\bf Return Type:}
7671
\subsubsection{RPC name:~get\_modelname}
7674
Get the modelname field of the given host\_cpu.
7676
\noindent {\bf Signature:}
7677
\begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
7680
\noindent{\bf Arguments:}
7684
\begin{tabular}{|c|c|p{7cm}|}
7686
{\bf type} & {\bf name} & {\bf description} \\ \hline
7687
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7693
\noindent {\bf Return Type:}
7703
\subsubsection{RPC name:~get\_stepping}
7706
Get the stepping field of the given host\_cpu.
7708
\noindent {\bf Signature:}
7709
\begin{verbatim} string get_stepping (session_id s, host_cpu ref self)\end{verbatim}
7712
\noindent{\bf Arguments:}
7716
\begin{tabular}{|c|c|p{7cm}|}
7718
{\bf type} & {\bf name} & {\bf description} \\ \hline
7719
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7725
\noindent {\bf Return Type:}
7735
\subsubsection{RPC name:~get\_flags}
7738
Get the flags field of the given host\_cpu. As of this version of the
7739
API, the semantics of the returned string are explicitly unspecified,
7740
and may change in the future.
7742
\noindent {\bf Signature:}
7743
\begin{verbatim} string get_flags (session_id s, host_cpu ref self)\end{verbatim}
7746
\noindent{\bf Arguments:}
7750
\begin{tabular}{|c|c|p{7cm}|}
7752
{\bf type} & {\bf name} & {\bf description} \\ \hline
7753
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7759
\noindent {\bf Return Type:}
7769
\subsubsection{RPC name:~get\_features}
7772
Get the features field of the given host\_cpu. As of this version of the
7773
API, the semantics of the returned string are explicitly unspecified,
7774
and may change in the future.
7776
\noindent {\bf Signature:}
7777
\begin{verbatim} string get_features (session_id s, host_cpu ref self)\end{verbatim}
7780
\noindent{\bf Arguments:}
7784
\begin{tabular}{|c|c|p{7cm}|}
7786
{\bf type} & {\bf name} & {\bf description} \\ \hline
7787
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7793
\noindent {\bf Return Type:}
7803
\subsubsection{RPC name:~get\_utilisation}
7806
Get the utilisation field of the given host\_cpu.
7808
\noindent {\bf Signature:}
7809
\begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
7812
\noindent{\bf Arguments:}
7816
\begin{tabular}{|c|c|p{7cm}|}
7818
{\bf type} & {\bf name} & {\bf description} \\ \hline
7819
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7825
\noindent {\bf Return Type:}
7835
\subsubsection{RPC name:~get\_by\_uuid}
7838
Get a reference to the host\_cpu instance with the specified UUID.
7840
\noindent {\bf Signature:}
7841
\begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7844
\noindent{\bf Arguments:}
7848
\begin{tabular}{|c|c|p{7cm}|}
7850
{\bf type} & {\bf name} & {\bf description} \\ \hline
7851
{\tt string } & uuid & UUID of object to return \\ \hline
7857
\noindent {\bf Return Type:}
7863
reference to the object
7867
\subsubsection{RPC name:~get\_record}
7870
Get a record containing the current state of the given host\_cpu.
7872
\noindent {\bf Signature:}
7873
\begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
7876
\noindent{\bf Arguments:}
7880
\begin{tabular}{|c|c|p{7cm}|}
7882
{\bf type} & {\bf name} & {\bf description} \\ \hline
7883
{\tt host\_cpu ref } & self & reference to the object \\ \hline
7889
\noindent {\bf Return Type:}
7895
all fields from the object
7902
\section{Class: network}
7903
\subsection{Fields for class: network}
7904
\begin{longtable}{|lllp{0.38\textwidth}|}
7906
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
7907
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7908
virtual network.}} \\
7910
Quals & Field & Type & Description \\
7912
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7913
$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7914
$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7915
$\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
7916
$\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
7917
$\mathit{RW}$ & {\tt default\_gateway} & string & default gateway \\
7918
$\mathit{RW}$ & {\tt default\_netmask} & string & default netmask \\
7919
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
7922
\subsection{RPCs associated with class: network}
7923
\subsubsection{RPC name:~get\_all}
7926
Return a list of all the networks known to the system
7928
\noindent {\bf Signature:}
7929
\begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
7934
\noindent {\bf Return Type:}
7940
A list of all the IDs of all the networks
7944
\subsubsection{RPC name:~get\_uuid}
7947
Get the uuid field of the given network.
7949
\noindent {\bf Signature:}
7950
\begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
7953
\noindent{\bf Arguments:}
7957
\begin{tabular}{|c|c|p{7cm}|}
7959
{\bf type} & {\bf name} & {\bf description} \\ \hline
7960
{\tt network ref } & self & reference to the object \\ \hline
7966
\noindent {\bf Return Type:}
7976
\subsubsection{RPC name:~get\_name\_label}
7979
Get the name/label field of the given network.
7981
\noindent {\bf Signature:}
7982
\begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
7985
\noindent{\bf Arguments:}
7989
\begin{tabular}{|c|c|p{7cm}|}
7991
{\bf type} & {\bf name} & {\bf description} \\ \hline
7992
{\tt network ref } & self & reference to the object \\ \hline
7998
\noindent {\bf Return Type:}
8008
\subsubsection{RPC name:~set\_name\_label}
8011
Set the name/label field of the given network.
8013
\noindent {\bf Signature:}
8014
\begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
8017
\noindent{\bf Arguments:}
8021
\begin{tabular}{|c|c|p{7cm}|}
8023
{\bf type} & {\bf name} & {\bf description} \\ \hline
8024
{\tt network ref } & self & reference to the object \\ \hline
8026
{\tt string } & value & New value to set \\ \hline
8032
\noindent {\bf Return Type:}
8042
\subsubsection{RPC name:~get\_name\_description}
8045
Get the name/description field of the given network.
8047
\noindent {\bf Signature:}
8048
\begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
8051
\noindent{\bf Arguments:}
8055
\begin{tabular}{|c|c|p{7cm}|}
8057
{\bf type} & {\bf name} & {\bf description} \\ \hline
8058
{\tt network ref } & self & reference to the object \\ \hline
8064
\noindent {\bf Return Type:}
8074
\subsubsection{RPC name:~set\_name\_description}
8077
Set the name/description field of the given network.
8079
\noindent {\bf Signature:}
8080
\begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
8083
\noindent{\bf Arguments:}
8087
\begin{tabular}{|c|c|p{7cm}|}
8089
{\bf type} & {\bf name} & {\bf description} \\ \hline
8090
{\tt network ref } & self & reference to the object \\ \hline
8092
{\tt string } & value & New value to set \\ \hline
8098
\noindent {\bf Return Type:}
8108
\subsubsection{RPC name:~get\_VIFs}
8111
Get the VIFs field of the given network.
8113
\noindent {\bf Signature:}
8114
\begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
8117
\noindent{\bf Arguments:}
8121
\begin{tabular}{|c|c|p{7cm}|}
8123
{\bf type} & {\bf name} & {\bf description} \\ \hline
8124
{\tt network ref } & self & reference to the object \\ \hline
8130
\noindent {\bf Return Type:}
8140
\subsubsection{RPC name:~get\_PIFs}
8143
Get the PIFs field of the given network.
8145
\noindent {\bf Signature:}
8146
\begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
8149
\noindent{\bf Arguments:}
8153
\begin{tabular}{|c|c|p{7cm}|}
8155
{\bf type} & {\bf name} & {\bf description} \\ \hline
8156
{\tt network ref } & self & reference to the object \\ \hline
8162
\noindent {\bf Return Type:}
8172
\subsubsection{RPC name:~get\_default\_gateway}
8175
Get the default\_gateway field of the given network.
8177
\noindent {\bf Signature:}
8178
\begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
8181
\noindent{\bf Arguments:}
8185
\begin{tabular}{|c|c|p{7cm}|}
8187
{\bf type} & {\bf name} & {\bf description} \\ \hline
8188
{\tt network ref } & self & reference to the object \\ \hline
8194
\noindent {\bf Return Type:}
8204
\subsubsection{RPC name:~set\_default\_gateway}
8207
Set the default\_gateway field of the given network.
8209
\noindent {\bf Signature:}
8210
\begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
8213
\noindent{\bf Arguments:}
8217
\begin{tabular}{|c|c|p{7cm}|}
8219
{\bf type} & {\bf name} & {\bf description} \\ \hline
8220
{\tt network ref } & self & reference to the object \\ \hline
8222
{\tt string } & value & New value to set \\ \hline
8228
\noindent {\bf Return Type:}
8238
\subsubsection{RPC name:~get\_default\_netmask}
8241
Get the default\_netmask field of the given network.
8243
\noindent {\bf Signature:}
8244
\begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
8247
\noindent{\bf Arguments:}
8251
\begin{tabular}{|c|c|p{7cm}|}
8253
{\bf type} & {\bf name} & {\bf description} \\ \hline
8254
{\tt network ref } & self & reference to the object \\ \hline
8260
\noindent {\bf Return Type:}
8270
\subsubsection{RPC name:~set\_default\_netmask}
8273
Set the default\_netmask field of the given network.
8275
\noindent {\bf Signature:}
8276
\begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
8279
\noindent{\bf Arguments:}
8283
\begin{tabular}{|c|c|p{7cm}|}
8285
{\bf type} & {\bf name} & {\bf description} \\ \hline
8286
{\tt network ref } & self & reference to the object \\ \hline
8288
{\tt string } & value & New value to set \\ \hline
8294
\noindent {\bf Return Type:}
8304
\subsubsection{RPC name:~get\_other\_config}
8307
Get the other\_config field of the given network.
8309
\noindent {\bf Signature:}
8310
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, network ref self)\end{verbatim}
8313
\noindent{\bf Arguments:}
8317
\begin{tabular}{|c|c|p{7cm}|}
8319
{\bf type} & {\bf name} & {\bf description} \\ \hline
8320
{\tt network ref } & self & reference to the object \\ \hline
8326
\noindent {\bf Return Type:}
8328
(string $\rightarrow$ string) Map
8336
\subsubsection{RPC name:~set\_other\_config}
8339
Set the other\_config field of the given network.
8341
\noindent {\bf Signature:}
8342
\begin{verbatim} void set_other_config (session_id s, network ref self, (string -> string) Map value)\end{verbatim}
8345
\noindent{\bf Arguments:}
8349
\begin{tabular}{|c|c|p{7cm}|}
8351
{\bf type} & {\bf name} & {\bf description} \\ \hline
8352
{\tt network ref } & self & reference to the object \\ \hline
8354
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
8360
\noindent {\bf Return Type:}
8370
\subsubsection{RPC name:~add\_to\_other\_config}
8373
Add the given key-value pair to the other\_config field of the given
8376
\noindent {\bf Signature:}
8377
\begin{verbatim} void add_to_other_config (session_id s, network ref self, string key, string value)\end{verbatim}
8380
\noindent{\bf Arguments:}
8384
\begin{tabular}{|c|c|p{7cm}|}
8386
{\bf type} & {\bf name} & {\bf description} \\ \hline
8387
{\tt network ref } & self & reference to the object \\ \hline
8389
{\tt string } & key & Key to add \\ \hline
8391
{\tt string } & value & Value to add \\ \hline
8397
\noindent {\bf Return Type:}
8407
\subsubsection{RPC name:~remove\_from\_other\_config}
8410
Remove the given key and its corresponding value from the other\_config
8411
field of the given network. If the key is not in that Map, then do
8414
\noindent {\bf Signature:}
8415
\begin{verbatim} void remove_from_other_config (session_id s, network ref self, string key)\end{verbatim}
8418
\noindent{\bf Arguments:}
8422
\begin{tabular}{|c|c|p{7cm}|}
8424
{\bf type} & {\bf name} & {\bf description} \\ \hline
8425
{\tt network ref } & self & reference to the object \\ \hline
8427
{\tt string } & key & Key to remove \\ \hline
8433
\noindent {\bf Return Type:}
8443
\subsubsection{RPC name:~create}
8446
Create a new network instance, and return its handle.
8448
\noindent {\bf Signature:}
8449
\begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
8452
\noindent{\bf Arguments:}
8456
\begin{tabular}{|c|c|p{7cm}|}
8458
{\bf type} & {\bf name} & {\bf description} \\ \hline
8459
{\tt network record } & args & All constructor arguments \\ \hline
8465
\noindent {\bf Return Type:}
8471
reference to the newly created object
8475
\subsubsection{RPC name:~destroy}
8478
Destroy the specified network instance.
8480
\noindent {\bf Signature:}
8481
\begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
8484
\noindent{\bf Arguments:}
8488
\begin{tabular}{|c|c|p{7cm}|}
8490
{\bf type} & {\bf name} & {\bf description} \\ \hline
8491
{\tt network ref } & self & reference to the object \\ \hline
8497
\noindent {\bf Return Type:}
8507
\subsubsection{RPC name:~get\_by\_uuid}
8510
Get a reference to the network instance with the specified UUID.
8512
\noindent {\bf Signature:}
8513
\begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8516
\noindent{\bf Arguments:}
8520
\begin{tabular}{|c|c|p{7cm}|}
8522
{\bf type} & {\bf name} & {\bf description} \\ \hline
8523
{\tt string } & uuid & UUID of object to return \\ \hline
8529
\noindent {\bf Return Type:}
8535
reference to the object
8539
\subsubsection{RPC name:~get\_record}
8542
Get a record containing the current state of the given network.
8544
\noindent {\bf Signature:}
8545
\begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
8548
\noindent{\bf Arguments:}
8552
\begin{tabular}{|c|c|p{7cm}|}
8554
{\bf type} & {\bf name} & {\bf description} \\ \hline
8555
{\tt network ref } & self & reference to the object \\ \hline
8561
\noindent {\bf Return Type:}
8567
all fields from the object
8571
\subsubsection{RPC name:~get\_by\_name\_label}
8574
Get all the network instances with the given label.
8576
\noindent {\bf Signature:}
8577
\begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8580
\noindent{\bf Arguments:}
8584
\begin{tabular}{|c|c|p{7cm}|}
8586
{\bf type} & {\bf name} & {\bf description} \\ \hline
8587
{\tt string } & label & label of object to return \\ \hline
8593
\noindent {\bf Return Type:}
8599
references to objects with match names
8606
\section{Class: VIF}
8607
\subsection{Fields for class: VIF}
8608
\begin{longtable}{|lllp{0.38\textwidth}|}
8610
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
8611
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8612
virtual network interface.}} \\
8614
Quals & Field & Type & Description \\
8616
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8617
$\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
8618
$\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
8619
$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
8620
$\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
8621
$\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
8622
$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
8623
$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
8624
$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
8625
$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
8626
$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
8627
$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
8628
$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\
8629
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF \\
8632
\subsection{RPCs associated with class: VIF}
8633
\subsubsection{RPC name:~plug}
8636
Hotplug the specified VIF, dynamically attaching it to the running VM.
8638
\noindent {\bf Signature:}
8639
\begin{verbatim} void plug (session_id s, VIF ref self)\end{verbatim}
8642
\noindent{\bf Arguments:}
8646
\begin{tabular}{|c|c|p{7cm}|}
8648
{\bf type} & {\bf name} & {\bf description} \\ \hline
8649
{\tt VIF ref } & self & The VIF to hotplug \\ \hline
8655
\noindent {\bf Return Type:}
8665
\subsubsection{RPC name:~unplug}
8668
Hot-unplug the specified VIF, dynamically unattaching it from the running
8671
\noindent {\bf Signature:}
8672
\begin{verbatim} void unplug (session_id s, VIF ref self)\end{verbatim}
8675
\noindent{\bf Arguments:}
8679
\begin{tabular}{|c|c|p{7cm}|}
8681
{\bf type} & {\bf name} & {\bf description} \\ \hline
8682
{\tt VIF ref } & self & The VIF to hot-unplug \\ \hline
8688
\noindent {\bf Return Type:}
8698
\subsubsection{RPC name:~get\_all}
8701
Return a list of all the VIFs known to the system.
8703
\noindent {\bf Signature:}
8704
\begin{verbatim} ((VIF ref) Set) get_all (session_id s)\end{verbatim}
8709
\noindent {\bf Return Type:}
8715
references to all objects
8719
\subsubsection{RPC name:~get\_uuid}
8722
Get the uuid field of the given VIF.
8724
\noindent {\bf Signature:}
8725
\begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
8728
\noindent{\bf Arguments:}
8732
\begin{tabular}{|c|c|p{7cm}|}
8734
{\bf type} & {\bf name} & {\bf description} \\ \hline
8735
{\tt VIF ref } & self & reference to the object \\ \hline
8741
\noindent {\bf Return Type:}
8751
\subsubsection{RPC name:~get\_device}
8754
Get the device field of the given VIF.
8756
\noindent {\bf Signature:}
8757
\begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
8760
\noindent{\bf Arguments:}
8764
\begin{tabular}{|c|c|p{7cm}|}
8766
{\bf type} & {\bf name} & {\bf description} \\ \hline
8767
{\tt VIF ref } & self & reference to the object \\ \hline
8773
\noindent {\bf Return Type:}
8783
\subsubsection{RPC name:~set\_device}
8786
Set the device field of the given VIF.
8788
\noindent {\bf Signature:}
8789
\begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
8792
\noindent{\bf Arguments:}
8796
\begin{tabular}{|c|c|p{7cm}|}
8798
{\bf type} & {\bf name} & {\bf description} \\ \hline
8799
{\tt VIF ref } & self & reference to the object \\ \hline
8801
{\tt string } & value & New value to set \\ \hline
8807
\noindent {\bf Return Type:}
8817
\subsubsection{RPC name:~get\_network}
8820
Get the network field of the given VIF.
8822
\noindent {\bf Signature:}
8823
\begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
8826
\noindent{\bf Arguments:}
8830
\begin{tabular}{|c|c|p{7cm}|}
8832
{\bf type} & {\bf name} & {\bf description} \\ \hline
8833
{\tt VIF ref } & self & reference to the object \\ \hline
8839
\noindent {\bf Return Type:}
8849
\subsubsection{RPC name:~get\_VM}
8852
Get the VM field of the given VIF.
8854
\noindent {\bf Signature:}
8855
\begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
8858
\noindent{\bf Arguments:}
8862
\begin{tabular}{|c|c|p{7cm}|}
8864
{\bf type} & {\bf name} & {\bf description} \\ \hline
8865
{\tt VIF ref } & self & reference to the object \\ \hline
8871
\noindent {\bf Return Type:}
8881
\subsubsection{RPC name:~get\_MAC}
8884
Get the MAC field of the given VIF.
8886
\noindent {\bf Signature:}
8887
\begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
8890
\noindent{\bf Arguments:}
8894
\begin{tabular}{|c|c|p{7cm}|}
8896
{\bf type} & {\bf name} & {\bf description} \\ \hline
8897
{\tt VIF ref } & self & reference to the object \\ \hline
8903
\noindent {\bf Return Type:}
8913
\subsubsection{RPC name:~set\_MAC}
8916
Set the MAC field of the given VIF.
8918
\noindent {\bf Signature:}
8919
\begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
8922
\noindent{\bf Arguments:}
8926
\begin{tabular}{|c|c|p{7cm}|}
8928
{\bf type} & {\bf name} & {\bf description} \\ \hline
8929
{\tt VIF ref } & self & reference to the object \\ \hline
8931
{\tt string } & value & New value to set \\ \hline
8937
\noindent {\bf Return Type:}
8947
\subsubsection{RPC name:~get\_MTU}
8950
Get the MTU field of the given VIF.
8952
\noindent {\bf Signature:}
8953
\begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
8956
\noindent{\bf Arguments:}
8960
\begin{tabular}{|c|c|p{7cm}|}
8962
{\bf type} & {\bf name} & {\bf description} \\ \hline
8963
{\tt VIF ref } & self & reference to the object \\ \hline
8969
\noindent {\bf Return Type:}
8979
\subsubsection{RPC name:~set\_MTU}
8982
Set the MTU field of the given VIF.
8984
\noindent {\bf Signature:}
8985
\begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
8988
\noindent{\bf Arguments:}
8992
\begin{tabular}{|c|c|p{7cm}|}
8994
{\bf type} & {\bf name} & {\bf description} \\ \hline
8995
{\tt VIF ref } & self & reference to the object \\ \hline
8997
{\tt int } & value & New value to set \\ \hline
9003
\noindent {\bf Return Type:}
9013
\subsubsection{RPC name:~get\_currently\_attached}
9016
Get the currently\_attached field of the given VIF.
9018
\noindent {\bf Signature:}
9019
\begin{verbatim} bool get_currently_attached (session_id s, VIF ref self)\end{verbatim}
9022
\noindent{\bf Arguments:}
9026
\begin{tabular}{|c|c|p{7cm}|}
9028
{\bf type} & {\bf name} & {\bf description} \\ \hline
9029
{\tt VIF ref } & self & reference to the object \\ \hline
9035
\noindent {\bf Return Type:}
9045
\subsubsection{RPC name:~get\_status\_code}
9048
Get the status\_code field of the given VIF.
9050
\noindent {\bf Signature:}
9051
\begin{verbatim} int get_status_code (session_id s, VIF ref self)\end{verbatim}
9054
\noindent{\bf Arguments:}
9058
\begin{tabular}{|c|c|p{7cm}|}
9060
{\bf type} & {\bf name} & {\bf description} \\ \hline
9061
{\tt VIF ref } & self & reference to the object \\ \hline
9067
\noindent {\bf Return Type:}
9077
\subsubsection{RPC name:~get\_status\_detail}
9080
Get the status\_detail field of the given VIF.
9082
\noindent {\bf Signature:}
9083
\begin{verbatim} string get_status_detail (session_id s, VIF ref self)\end{verbatim}
9086
\noindent{\bf Arguments:}
9090
\begin{tabular}{|c|c|p{7cm}|}
9092
{\bf type} & {\bf name} & {\bf description} \\ \hline
9093
{\tt VIF ref } & self & reference to the object \\ \hline
9099
\noindent {\bf Return Type:}
9109
\subsubsection{RPC name:~get\_runtime\_properties}
9112
Get the runtime\_properties field of the given VIF.
9114
\noindent {\bf Signature:}
9115
\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VIF ref self)\end{verbatim}
9118
\noindent{\bf Arguments:}
9122
\begin{tabular}{|c|c|p{7cm}|}
9124
{\bf type} & {\bf name} & {\bf description} \\ \hline
9125
{\tt VIF ref } & self & reference to the object \\ \hline
9131
\noindent {\bf Return Type:}
9133
(string $\rightarrow$ string) Map
9141
\subsubsection{RPC name:~get\_qos\_algorithm\_type}
9144
Get the qos/algorithm\_type field of the given VIF.
9146
\noindent {\bf Signature:}
9147
\begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim}
9150
\noindent{\bf Arguments:}
9154
\begin{tabular}{|c|c|p{7cm}|}
9156
{\bf type} & {\bf name} & {\bf description} \\ \hline
9157
{\tt VIF ref } & self & reference to the object \\ \hline
9163
\noindent {\bf Return Type:}
9173
\subsubsection{RPC name:~set\_qos\_algorithm\_type}
9176
Set the qos/algorithm\_type field of the given VIF.
9178
\noindent {\bf Signature:}
9179
\begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim}
9182
\noindent{\bf Arguments:}
9186
\begin{tabular}{|c|c|p{7cm}|}
9188
{\bf type} & {\bf name} & {\bf description} \\ \hline
9189
{\tt VIF ref } & self & reference to the object \\ \hline
9191
{\tt string } & value & New value to set \\ \hline
9197
\noindent {\bf Return Type:}
9207
\subsubsection{RPC name:~get\_qos\_algorithm\_params}
9210
Get the qos/algorithm\_params field of the given VIF.
9212
\noindent {\bf Signature:}
9213
\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim}
9216
\noindent{\bf Arguments:}
9220
\begin{tabular}{|c|c|p{7cm}|}
9222
{\bf type} & {\bf name} & {\bf description} \\ \hline
9223
{\tt VIF ref } & self & reference to the object \\ \hline
9229
\noindent {\bf Return Type:}
9231
(string $\rightarrow$ string) Map
9239
\subsubsection{RPC name:~set\_qos\_algorithm\_params}
9242
Set the qos/algorithm\_params field of the given VIF.
9244
\noindent {\bf Signature:}
9245
\begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim}
9248
\noindent{\bf Arguments:}
9252
\begin{tabular}{|c|c|p{7cm}|}
9254
{\bf type} & {\bf name} & {\bf description} \\ \hline
9255
{\tt VIF ref } & self & reference to the object \\ \hline
9257
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
9263
\noindent {\bf Return Type:}
9273
\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
9276
Add the given key-value pair to the qos/algorithm\_params field of the
9279
\noindent {\bf Signature:}
9280
\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim}
9283
\noindent{\bf Arguments:}
9287
\begin{tabular}{|c|c|p{7cm}|}
9289
{\bf type} & {\bf name} & {\bf description} \\ \hline
9290
{\tt VIF ref } & self & reference to the object \\ \hline
9292
{\tt string } & key & Key to add \\ \hline
9294
{\tt string } & value & Value to add \\ \hline
9300
\noindent {\bf Return Type:}
9310
\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
9313
Remove the given key and its corresponding value from the
9314
qos/algorithm\_params field of the given VIF. If the key is not in that
9315
Map, then do nothing.
9317
\noindent {\bf Signature:}
9318
\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim}
9321
\noindent{\bf Arguments:}
9325
\begin{tabular}{|c|c|p{7cm}|}
9327
{\bf type} & {\bf name} & {\bf description} \\ \hline
9328
{\tt VIF ref } & self & reference to the object \\ \hline
9330
{\tt string } & key & Key to remove \\ \hline
9336
\noindent {\bf Return Type:}
9346
\subsubsection{RPC name:~get\_qos\_supported\_algorithms}
9349
Get the qos/supported\_algorithms field of the given VIF.
9351
\noindent {\bf Signature:}
9352
\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim}
9355
\noindent{\bf Arguments:}
9359
\begin{tabular}{|c|c|p{7cm}|}
9361
{\bf type} & {\bf name} & {\bf description} \\ \hline
9362
{\tt VIF ref } & self & reference to the object \\ \hline
9368
\noindent {\bf Return Type:}
9378
\subsubsection{RPC name:~get\_metrics}
9381
Get the metrics field of the given VIF.
9383
\noindent {\bf Signature:}
9384
\begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim}
9387
\noindent{\bf Arguments:}
9391
\begin{tabular}{|c|c|p{7cm}|}
9393
{\bf type} & {\bf name} & {\bf description} \\ \hline
9394
{\tt VIF ref } & self & reference to the object \\ \hline
9400
\noindent {\bf Return Type:}
9410
\subsubsection{RPC name:~set\_security\_label}
9413
Set the security label of the given VIF. Refer to the XSPolicy class
9414
for the format of the security label.
9416
\noindent {\bf Signature:}
9417
\begin{verbatim} void set_security_label (session_id s, VIF ref self, string
9418
security_label, string old_label)\end{verbatim}
9421
\noindent{\bf Arguments:}
9425
\begin{tabular}{|c|c|p{7cm}|}
9427
{\bf type} & {\bf name} & {\bf description} \\ \hline
9428
{\tt VIF ref } & self & reference to the object \\ \hline
9430
{\tt string } & security\_label & New value of the security label \\ \hline
9431
{\tt string } & old\_label & Label value that the security label \\
9432
& & must currently have for the change to succeed.\\ \hline
9437
\noindent {\bf Return Type:}
9445
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
9450
\subsubsection{RPC name:~get\_security\_label}
9453
Get the security label of the given VIF.
9455
\noindent {\bf Signature:}
9456
\begin{verbatim} string get_security_label (session_id s, VIF ref self)\end{verbatim}
9459
\noindent{\bf Arguments:}
9464
\begin{tabular}{|c|c|p{7cm}|}
9466
{\bf type} & {\bf name} & {\bf description} \\ \hline
9467
{\tt VIF ref } & self & reference to the object \\ \hline
9473
\noindent {\bf Return Type:}
9479
value of the given field
9483
\subsubsection{RPC name:~create}
9486
Create a new VIF instance, and return its handle.
9488
\noindent {\bf Signature:}
9489
\begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
9492
\noindent{\bf Arguments:}
9496
\begin{tabular}{|c|c|p{7cm}|}
9498
{\bf type} & {\bf name} & {\bf description} \\ \hline
9499
{\tt VIF record } & args & All constructor arguments \\ \hline
9505
\noindent {\bf Return Type:}
9511
reference to the newly created object
9515
\subsubsection{RPC name:~destroy}
9518
Destroy the specified VIF instance.
9520
\noindent {\bf Signature:}
9521
\begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
9524
\noindent{\bf Arguments:}
9528
\begin{tabular}{|c|c|p{7cm}|}
9530
{\bf type} & {\bf name} & {\bf description} \\ \hline
9531
{\tt VIF ref } & self & reference to the object \\ \hline
9537
\noindent {\bf Return Type:}
9547
\subsubsection{RPC name:~get\_by\_uuid}
9550
Get a reference to the VIF instance with the specified UUID.
9552
\noindent {\bf Signature:}
9553
\begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9556
\noindent{\bf Arguments:}
9560
\begin{tabular}{|c|c|p{7cm}|}
9562
{\bf type} & {\bf name} & {\bf description} \\ \hline
9563
{\tt string } & uuid & UUID of object to return \\ \hline
9569
\noindent {\bf Return Type:}
9575
reference to the object
9579
\subsubsection{RPC name:~get\_record}
9582
Get a record containing the current state of the given VIF.
9584
\noindent {\bf Signature:}
9585
\begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
9588
\noindent{\bf Arguments:}
9592
\begin{tabular}{|c|c|p{7cm}|}
9594
{\bf type} & {\bf name} & {\bf description} \\ \hline
9595
{\tt VIF ref } & self & reference to the object \\ \hline
9601
\noindent {\bf Return Type:}
9607
all fields from the object
9614
\section{Class: VIF\_metrics}
9615
\subsection{Fields for class: VIF\_metrics}
9616
\begin{longtable}{|lllp{0.38\textwidth}|}
9618
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\
9619
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
9620
The metrics associated with a virtual network device.}} \\
9622
Quals & Field & Type & Description \\
9624
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9625
$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
9626
$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
9627
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
9630
\subsection{RPCs associated with class: VIF\_metrics}
9631
\subsubsection{RPC name:~get\_all}
9634
Return a list of all the VIF\_metrics instances known to the system.
9636
\noindent {\bf Signature:}
9637
\begin{verbatim} ((VIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
9642
\noindent {\bf Return Type:}
9644
(VIF\_metrics ref) Set
9648
references to all objects
9652
\subsubsection{RPC name:~get\_uuid}
9655
Get the uuid field of the given VIF\_metrics.
9657
\noindent {\bf Signature:}
9658
\begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim}
9661
\noindent{\bf Arguments:}
9665
\begin{tabular}{|c|c|p{7cm}|}
9667
{\bf type} & {\bf name} & {\bf description} \\ \hline
9668
{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9674
\noindent {\bf Return Type:}
9684
\subsubsection{RPC name:~get\_io\_read\_kbs}
9687
Get the io/read\_kbs field of the given VIF\_metrics.
9689
\noindent {\bf Signature:}
9690
\begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9693
\noindent{\bf Arguments:}
9697
\begin{tabular}{|c|c|p{7cm}|}
9699
{\bf type} & {\bf name} & {\bf description} \\ \hline
9700
{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9706
\noindent {\bf Return Type:}
9716
\subsubsection{RPC name:~get\_io\_write\_kbs}
9719
Get the io/write\_kbs field of the given VIF\_metrics.
9721
\noindent {\bf Signature:}
9722
\begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9725
\noindent{\bf Arguments:}
9729
\begin{tabular}{|c|c|p{7cm}|}
9731
{\bf type} & {\bf name} & {\bf description} \\ \hline
9732
{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9738
\noindent {\bf Return Type:}
9748
\subsubsection{RPC name:~get\_last\_updated}
9751
Get the last\_updated field of the given VIF\_metrics.
9753
\noindent {\bf Signature:}
9754
\begin{verbatim} datetime get_last_updated (session_id s, VIF_metrics ref self)\end{verbatim}
9757
\noindent{\bf Arguments:}
9761
\begin{tabular}{|c|c|p{7cm}|}
9763
{\bf type} & {\bf name} & {\bf description} \\ \hline
9764
{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9770
\noindent {\bf Return Type:}
9780
\subsubsection{RPC name:~get\_by\_uuid}
9783
Get a reference to the VIF\_metrics instance with the specified UUID.
9785
\noindent {\bf Signature:}
9786
\begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9789
\noindent{\bf Arguments:}
9793
\begin{tabular}{|c|c|p{7cm}|}
9795
{\bf type} & {\bf name} & {\bf description} \\ \hline
9796
{\tt string } & uuid & UUID of object to return \\ \hline
9802
\noindent {\bf Return Type:}
9808
reference to the object
9812
\subsubsection{RPC name:~get\_record}
9815
Get a record containing the current state of the given VIF\_metrics.
9817
\noindent {\bf Signature:}
9818
\begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim}
9821
\noindent{\bf Arguments:}
9825
\begin{tabular}{|c|c|p{7cm}|}
9827
{\bf type} & {\bf name} & {\bf description} \\ \hline
9828
{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9834
\noindent {\bf Return Type:}
9840
all fields from the object
9847
\section{Class: PIF}
9848
\subsection{Fields for class: PIF}
9849
\begin{longtable}{|lllp{0.38\textwidth}|}
9851
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
9852
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
9853
physical network interface (note separate VLANs are represented as several
9856
Quals & Field & Type & Description \\
9858
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9859
$\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
9860
$\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
9861
$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
9862
$\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
9863
$\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
9864
$\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
9865
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF \\
9868
\subsection{RPCs associated with class: PIF}
9869
\subsubsection{RPC name:~create\_VLAN}
9872
Create a VLAN interface from an existing physical interface.
9874
\noindent {\bf Signature:}
9875
\begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
9878
\noindent{\bf Arguments:}
9882
\begin{tabular}{|c|c|p{7cm}|}
9884
{\bf type} & {\bf name} & {\bf description} \\ \hline
9885
{\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
9887
{\tt network ref } & network & network to which this interface should be connected \\ \hline
9889
{\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
9891
{\tt int } & VLAN & VLAN tag for the new interface \\ \hline
9897
\noindent {\bf Return Type:}
9903
The reference of the created PIF object
9906
\noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
9909
\subsubsection{RPC name:~destroy}
9912
Destroy the interface (provided it is a synthetic interface like a VLAN;
9913
fail if it is a physical interface).
9915
\noindent {\bf Signature:}
9916
\begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
9919
\noindent{\bf Arguments:}
9923
\begin{tabular}{|c|c|p{7cm}|}
9925
{\bf type} & {\bf name} & {\bf description} \\ \hline
9926
{\tt PIF ref } & self & the PIF object to destroy \\ \hline
9932
\noindent {\bf Return Type:}
9941
\noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
9944
\subsubsection{RPC name:~get\_all}
9947
Return a list of all the PIFs known to the system.
9949
\noindent {\bf Signature:}
9950
\begin{verbatim} ((PIF ref) Set) get_all (session_id s)\end{verbatim}
9955
\noindent {\bf Return Type:}
9961
references to all objects
9965
\subsubsection{RPC name:~get\_uuid}
9968
Get the uuid field of the given PIF.
9970
\noindent {\bf Signature:}
9971
\begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
9974
\noindent{\bf Arguments:}
9978
\begin{tabular}{|c|c|p{7cm}|}
9980
{\bf type} & {\bf name} & {\bf description} \\ \hline
9981
{\tt PIF ref } & self & reference to the object \\ \hline
9987
\noindent {\bf Return Type:}
9997
\subsubsection{RPC name:~get\_device}
10000
Get the device field of the given PIF.
10002
\noindent {\bf Signature:}
10003
\begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
10006
\noindent{\bf Arguments:}
10010
\begin{tabular}{|c|c|p{7cm}|}
10012
{\bf type} & {\bf name} & {\bf description} \\ \hline
10013
{\tt PIF ref } & self & reference to the object \\ \hline
10019
\noindent {\bf Return Type:}
10029
\subsubsection{RPC name:~set\_device}
10032
Set the device field of the given PIF.
10034
\noindent {\bf Signature:}
10035
\begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
10038
\noindent{\bf Arguments:}
10042
\begin{tabular}{|c|c|p{7cm}|}
10044
{\bf type} & {\bf name} & {\bf description} \\ \hline
10045
{\tt PIF ref } & self & reference to the object \\ \hline
10047
{\tt string } & value & New value to set \\ \hline
10053
\noindent {\bf Return Type:}
10063
\subsubsection{RPC name:~get\_network}
10066
Get the network field of the given PIF.
10068
\noindent {\bf Signature:}
10069
\begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
10072
\noindent{\bf Arguments:}
10076
\begin{tabular}{|c|c|p{7cm}|}
10078
{\bf type} & {\bf name} & {\bf description} \\ \hline
10079
{\tt PIF ref } & self & reference to the object \\ \hline
10085
\noindent {\bf Return Type:}
10095
\subsubsection{RPC name:~get\_host}
10098
Get the host field of the given PIF.
10100
\noindent {\bf Signature:}
10101
\begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
10104
\noindent{\bf Arguments:}
10108
\begin{tabular}{|c|c|p{7cm}|}
10110
{\bf type} & {\bf name} & {\bf description} \\ \hline
10111
{\tt PIF ref } & self & reference to the object \\ \hline
10117
\noindent {\bf Return Type:}
10127
\subsubsection{RPC name:~get\_MAC}
10130
Get the MAC field of the given PIF.
10132
\noindent {\bf Signature:}
10133
\begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
10136
\noindent{\bf Arguments:}
10140
\begin{tabular}{|c|c|p{7cm}|}
10142
{\bf type} & {\bf name} & {\bf description} \\ \hline
10143
{\tt PIF ref } & self & reference to the object \\ \hline
10149
\noindent {\bf Return Type:}
10159
\subsubsection{RPC name:~set\_MAC}
10162
Set the MAC field of the given PIF.
10164
\noindent {\bf Signature:}
10165
\begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
10168
\noindent{\bf Arguments:}
10172
\begin{tabular}{|c|c|p{7cm}|}
10174
{\bf type} & {\bf name} & {\bf description} \\ \hline
10175
{\tt PIF ref } & self & reference to the object \\ \hline
10177
{\tt string } & value & New value to set \\ \hline
10183
\noindent {\bf Return Type:}
10193
\subsubsection{RPC name:~get\_MTU}
10196
Get the MTU field of the given PIF.
10198
\noindent {\bf Signature:}
10199
\begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
10202
\noindent{\bf Arguments:}
10206
\begin{tabular}{|c|c|p{7cm}|}
10208
{\bf type} & {\bf name} & {\bf description} \\ \hline
10209
{\tt PIF ref } & self & reference to the object \\ \hline
10215
\noindent {\bf Return Type:}
10225
\subsubsection{RPC name:~set\_MTU}
10228
Set the MTU field of the given PIF.
10230
\noindent {\bf Signature:}
10231
\begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
10234
\noindent{\bf Arguments:}
10238
\begin{tabular}{|c|c|p{7cm}|}
10240
{\bf type} & {\bf name} & {\bf description} \\ \hline
10241
{\tt PIF ref } & self & reference to the object \\ \hline
10243
{\tt int } & value & New value to set \\ \hline
10249
\noindent {\bf Return Type:}
10259
\subsubsection{RPC name:~get\_VLAN}
10262
Get the VLAN field of the given PIF.
10264
\noindent {\bf Signature:}
10265
\begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
10268
\noindent{\bf Arguments:}
10272
\begin{tabular}{|c|c|p{7cm}|}
10274
{\bf type} & {\bf name} & {\bf description} \\ \hline
10275
{\tt PIF ref } & self & reference to the object \\ \hline
10281
\noindent {\bf Return Type:}
10291
\subsubsection{RPC name:~set\_VLAN}
10294
Set the VLAN field of the given PIF.
10296
\noindent {\bf Signature:}
10297
\begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
10300
\noindent{\bf Arguments:}
10304
\begin{tabular}{|c|c|p{7cm}|}
10306
{\bf type} & {\bf name} & {\bf description} \\ \hline
10307
{\tt PIF ref } & self & reference to the object \\ \hline
10309
{\tt int } & value & New value to set \\ \hline
10315
\noindent {\bf Return Type:}
10325
\subsubsection{RPC name:~get\_metrics}
10328
Get the metrics field of the given PIF.
10330
\noindent {\bf Signature:}
10331
\begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
10334
\noindent{\bf Arguments:}
10338
\begin{tabular}{|c|c|p{7cm}|}
10340
{\bf type} & {\bf name} & {\bf description} \\ \hline
10341
{\tt PIF ref } & self & reference to the object \\ \hline
10347
\noindent {\bf Return Type:}
10357
\subsubsection{RPC name:~get\_by\_uuid}
10360
Get a reference to the PIF instance with the specified UUID.
10362
\noindent {\bf Signature:}
10363
\begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10366
\noindent{\bf Arguments:}
10370
\begin{tabular}{|c|c|p{7cm}|}
10372
{\bf type} & {\bf name} & {\bf description} \\ \hline
10373
{\tt string } & uuid & UUID of object to return \\ \hline
10379
\noindent {\bf Return Type:}
10385
reference to the object
10389
\subsubsection{RPC name:~get\_record}
10392
Get a record containing the current state of the given PIF.
10394
\noindent {\bf Signature:}
10395
\begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
10398
\noindent{\bf Arguments:}
10402
\begin{tabular}{|c|c|p{7cm}|}
10404
{\bf type} & {\bf name} & {\bf description} \\ \hline
10405
{\tt PIF ref } & self & reference to the object \\ \hline
10411
\noindent {\bf Return Type:}
10417
all fields from the object
10424
\section{Class: PIF\_metrics}
10425
\subsection{Fields for class: PIF\_metrics}
10426
\begin{longtable}{|lllp{0.38\textwidth}|}
10428
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
10429
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10430
The metrics associated with a physical network interface.}} \\
10432
Quals & Field & Type & Description \\
10434
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10435
$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
10436
$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
10437
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
10440
\subsection{RPCs associated with class: PIF\_metrics}
10441
\subsubsection{RPC name:~get\_all}
10444
Return a list of all the PIF\_metrics instances known to the system.
10446
\noindent {\bf Signature:}
10447
\begin{verbatim} ((PIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
10452
\noindent {\bf Return Type:}
10454
(PIF\_metrics ref) Set
10458
references to all objects
10462
\subsubsection{RPC name:~get\_uuid}
10465
Get the uuid field of the given PIF\_metrics.
10467
\noindent {\bf Signature:}
10468
\begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
10471
\noindent{\bf Arguments:}
10475
\begin{tabular}{|c|c|p{7cm}|}
10477
{\bf type} & {\bf name} & {\bf description} \\ \hline
10478
{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10484
\noindent {\bf Return Type:}
10494
\subsubsection{RPC name:~get\_io\_read\_kbs}
10497
Get the io/read\_kbs field of the given PIF\_metrics.
10499
\noindent {\bf Signature:}
10500
\begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10503
\noindent{\bf Arguments:}
10507
\begin{tabular}{|c|c|p{7cm}|}
10509
{\bf type} & {\bf name} & {\bf description} \\ \hline
10510
{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10516
\noindent {\bf Return Type:}
10526
\subsubsection{RPC name:~get\_io\_write\_kbs}
10529
Get the io/write\_kbs field of the given PIF\_metrics.
10531
\noindent {\bf Signature:}
10532
\begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10535
\noindent{\bf Arguments:}
10539
\begin{tabular}{|c|c|p{7cm}|}
10541
{\bf type} & {\bf name} & {\bf description} \\ \hline
10542
{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10548
\noindent {\bf Return Type:}
10558
\subsubsection{RPC name:~get\_last\_updated}
10561
Get the last\_updated field of the given PIF\_metrics.
10563
\noindent {\bf Signature:}
10564
\begin{verbatim} datetime get_last_updated (session_id s, PIF_metrics ref self)\end{verbatim}
10567
\noindent{\bf Arguments:}
10571
\begin{tabular}{|c|c|p{7cm}|}
10573
{\bf type} & {\bf name} & {\bf description} \\ \hline
10574
{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10580
\noindent {\bf Return Type:}
10590
\subsubsection{RPC name:~get\_by\_uuid}
10593
Get a reference to the PIF\_metrics instance with the specified UUID.
10595
\noindent {\bf Signature:}
10596
\begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10599
\noindent{\bf Arguments:}
10603
\begin{tabular}{|c|c|p{7cm}|}
10605
{\bf type} & {\bf name} & {\bf description} \\ \hline
10606
{\tt string } & uuid & UUID of object to return \\ \hline
10612
\noindent {\bf Return Type:}
10618
reference to the object
10622
\subsubsection{RPC name:~get\_record}
10625
Get a record containing the current state of the given PIF\_metrics.
10627
\noindent {\bf Signature:}
10628
\begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
10631
\noindent{\bf Arguments:}
10635
\begin{tabular}{|c|c|p{7cm}|}
10637
{\bf type} & {\bf name} & {\bf description} \\ \hline
10638
{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10644
\noindent {\bf Return Type:}
10646
PIF\_metrics record
10650
all fields from the object
10657
\section{Class: SR}
10658
\subsection{Fields for class: SR}
10659
\begin{longtable}{|lllp{0.38\textwidth}|}
10661
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
10662
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10663
storage repository.}} \\
10665
Quals & Field & Type & Description \\
10667
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10668
$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
10669
$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
10670
$\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
10671
$\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
10672
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
10673
$\mathit{RO}_\mathit{run}$ & {\tt physical\_utilisation} & int & physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical\_utilisation may be less than virtual\_allocation \\
10674
$\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
10675
$\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
10676
$\mathit{RO}_\mathit{ins}$ & {\tt content\_type} & string & the type of the SR's content, if required (e.g. ISOs) \\
10679
\subsection{RPCs associated with class: SR}
10680
\subsubsection{RPC name:~get\_supported\_types}
10683
Return a set of all the SR types supported by the system.
10685
\noindent {\bf Signature:}
10686
\begin{verbatim} (string Set) get_supported_types (session_id s)\end{verbatim}
10691
\noindent {\bf Return Type:}
10697
the supported SR types
10701
\subsubsection{RPC name:~get\_all}
10704
Return a list of all the SRs known to the system.
10706
\noindent {\bf Signature:}
10707
\begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
10712
\noindent {\bf Return Type:}
10718
references to all objects
10722
\subsubsection{RPC name:~get\_uuid}
10725
Get the uuid field of the given SR.
10727
\noindent {\bf Signature:}
10728
\begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
10731
\noindent{\bf Arguments:}
10735
\begin{tabular}{|c|c|p{7cm}|}
10737
{\bf type} & {\bf name} & {\bf description} \\ \hline
10738
{\tt SR ref } & self & reference to the object \\ \hline
10744
\noindent {\bf Return Type:}
10754
\subsubsection{RPC name:~get\_name\_label}
10757
Get the name/label field of the given SR.
10759
\noindent {\bf Signature:}
10760
\begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
10763
\noindent{\bf Arguments:}
10767
\begin{tabular}{|c|c|p{7cm}|}
10769
{\bf type} & {\bf name} & {\bf description} \\ \hline
10770
{\tt SR ref } & self & reference to the object \\ \hline
10776
\noindent {\bf Return Type:}
10786
\subsubsection{RPC name:~set\_name\_label}
10789
Set the name/label field of the given SR.
10791
\noindent {\bf Signature:}
10792
\begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
10795
\noindent{\bf Arguments:}
10799
\begin{tabular}{|c|c|p{7cm}|}
10801
{\bf type} & {\bf name} & {\bf description} \\ \hline
10802
{\tt SR ref } & self & reference to the object \\ \hline
10804
{\tt string } & value & New value to set \\ \hline
10810
\noindent {\bf Return Type:}
10820
\subsubsection{RPC name:~get\_name\_description}
10823
Get the name/description field of the given SR.
10825
\noindent {\bf Signature:}
10826
\begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
10829
\noindent{\bf Arguments:}
10833
\begin{tabular}{|c|c|p{7cm}|}
10835
{\bf type} & {\bf name} & {\bf description} \\ \hline
10836
{\tt SR ref } & self & reference to the object \\ \hline
10842
\noindent {\bf Return Type:}
10852
\subsubsection{RPC name:~set\_name\_description}
10855
Set the name/description field of the given SR.
10857
\noindent {\bf Signature:}
10858
\begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
10861
\noindent{\bf Arguments:}
10865
\begin{tabular}{|c|c|p{7cm}|}
10867
{\bf type} & {\bf name} & {\bf description} \\ \hline
10868
{\tt SR ref } & self & reference to the object \\ \hline
10870
{\tt string } & value & New value to set \\ \hline
10876
\noindent {\bf Return Type:}
10886
\subsubsection{RPC name:~get\_VDIs}
10889
Get the VDIs field of the given SR.
10891
\noindent {\bf Signature:}
10892
\begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
10895
\noindent{\bf Arguments:}
10899
\begin{tabular}{|c|c|p{7cm}|}
10901
{\bf type} & {\bf name} & {\bf description} \\ \hline
10902
{\tt SR ref } & self & reference to the object \\ \hline
10908
\noindent {\bf Return Type:}
10918
\subsubsection{RPC name:~get\_PBDs}
10921
Get the PBDs field of the given SR.
10923
\noindent {\bf Signature:}
10924
\begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
10927
\noindent{\bf Arguments:}
10931
\begin{tabular}{|c|c|p{7cm}|}
10933
{\bf type} & {\bf name} & {\bf description} \\ \hline
10934
{\tt SR ref } & self & reference to the object \\ \hline
10940
\noindent {\bf Return Type:}
10950
\subsubsection{RPC name:~get\_virtual\_allocation}
10953
Get the virtual\_allocation field of the given SR.
10955
\noindent {\bf Signature:}
10956
\begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
10959
\noindent{\bf Arguments:}
10963
\begin{tabular}{|c|c|p{7cm}|}
10965
{\bf type} & {\bf name} & {\bf description} \\ \hline
10966
{\tt SR ref } & self & reference to the object \\ \hline
10972
\noindent {\bf Return Type:}
10982
\subsubsection{RPC name:~get\_physical\_utilisation}
10985
Get the physical\_utilisation field of the given SR.
10987
\noindent {\bf Signature:}
10988
\begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
10991
\noindent{\bf Arguments:}
10995
\begin{tabular}{|c|c|p{7cm}|}
10997
{\bf type} & {\bf name} & {\bf description} \\ \hline
10998
{\tt SR ref } & self & reference to the object \\ \hline
11004
\noindent {\bf Return Type:}
11014
\subsubsection{RPC name:~get\_physical\_size}
11017
Get the physical\_size field of the given SR.
11019
\noindent {\bf Signature:}
11020
\begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
11023
\noindent{\bf Arguments:}
11027
\begin{tabular}{|c|c|p{7cm}|}
11029
{\bf type} & {\bf name} & {\bf description} \\ \hline
11030
{\tt SR ref } & self & reference to the object \\ \hline
11036
\noindent {\bf Return Type:}
11046
\subsubsection{RPC name:~get\_type}
11049
Get the type field of the given SR.
11051
\noindent {\bf Signature:}
11052
\begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
11055
\noindent{\bf Arguments:}
11059
\begin{tabular}{|c|c|p{7cm}|}
11061
{\bf type} & {\bf name} & {\bf description} \\ \hline
11062
{\tt SR ref } & self & reference to the object \\ \hline
11068
\noindent {\bf Return Type:}
11078
\subsubsection{RPC name:~get\_content\_type}
11081
Get the content\_type field of the given SR.
11083
\noindent {\bf Signature:}
11084
\begin{verbatim} string get_content_type (session_id s, SR ref self)\end{verbatim}
11087
\noindent{\bf Arguments:}
11091
\begin{tabular}{|c|c|p{7cm}|}
11093
{\bf type} & {\bf name} & {\bf description} \\ \hline
11094
{\tt SR ref } & self & reference to the object \\ \hline
11100
\noindent {\bf Return Type:}
11110
\subsubsection{RPC name:~get\_by\_uuid}
11113
Get a reference to the SR instance with the specified UUID.
11115
\noindent {\bf Signature:}
11116
\begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
11119
\noindent{\bf Arguments:}
11123
\begin{tabular}{|c|c|p{7cm}|}
11125
{\bf type} & {\bf name} & {\bf description} \\ \hline
11126
{\tt string } & uuid & UUID of object to return \\ \hline
11132
\noindent {\bf Return Type:}
11138
reference to the object
11142
\subsubsection{RPC name:~get\_record}
11145
Get a record containing the current state of the given SR.
11147
\noindent {\bf Signature:}
11148
\begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
11151
\noindent{\bf Arguments:}
11155
\begin{tabular}{|c|c|p{7cm}|}
11157
{\bf type} & {\bf name} & {\bf description} \\ \hline
11158
{\tt SR ref } & self & reference to the object \\ \hline
11164
\noindent {\bf Return Type:}
11170
all fields from the object
11174
\subsubsection{RPC name:~get\_by\_name\_label}
11177
Get all the SR instances with the given label.
11179
\noindent {\bf Signature:}
11180
\begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
11183
\noindent{\bf Arguments:}
11187
\begin{tabular}{|c|c|p{7cm}|}
11189
{\bf type} & {\bf name} & {\bf description} \\ \hline
11190
{\tt string } & label & label of object to return \\ \hline
11196
\noindent {\bf Return Type:}
11202
references to objects with match names
11209
\section{Class: VDI}
11210
\subsection{Fields for class: VDI}
11211
\begin{longtable}{|lllp{0.38\textwidth}|}
11213
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
11214
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
11215
virtual disk image.}} \\
11217
Quals & Field & Type & Description \\
11219
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
11220
$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
11221
$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
11222
$\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
11223
$\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
11224
$\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
11225
$\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly \\
11226
$\mathit{RO}_\mathit{run}$ & {\tt physical\_utilisation} & int & amount of physical space that the disk image is currently taking up on the storage repository (in bytes) \\
11227
$\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
11228
$\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
11229
$\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
11230
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
11231
$\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
11234
\subsection{RPCs associated with class: VDI}
11235
\subsubsection{RPC name:~get\_all}
11238
Return a list of all the VDIs known to the system.
11240
\noindent {\bf Signature:}
11241
\begin{verbatim} ((VDI ref) Set) get_all (session_id s)\end{verbatim}
11246
\noindent {\bf Return Type:}
11252
references to all objects
11256
\subsubsection{RPC name:~get\_uuid}
11259
Get the uuid field of the given VDI.
11261
\noindent {\bf Signature:}
11262
\begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
11265
\noindent{\bf Arguments:}
11269
\begin{tabular}{|c|c|p{7cm}|}
11271
{\bf type} & {\bf name} & {\bf description} \\ \hline
11272
{\tt VDI ref } & self & reference to the object \\ \hline
11278
\noindent {\bf Return Type:}
11288
\subsubsection{RPC name:~get\_name\_label}
11291
Get the name/label field of the given VDI.
11293
\noindent {\bf Signature:}
11294
\begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
11297
\noindent{\bf Arguments:}
11301
\begin{tabular}{|c|c|p{7cm}|}
11303
{\bf type} & {\bf name} & {\bf description} \\ \hline
11304
{\tt VDI ref } & self & reference to the object \\ \hline
11310
\noindent {\bf Return Type:}
11320
\subsubsection{RPC name:~set\_name\_label}
11323
Set the name/label field of the given VDI.
11325
\noindent {\bf Signature:}
11326
\begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
11329
\noindent{\bf Arguments:}
11333
\begin{tabular}{|c|c|p{7cm}|}
11335
{\bf type} & {\bf name} & {\bf description} \\ \hline
11336
{\tt VDI ref } & self & reference to the object \\ \hline
11338
{\tt string } & value & New value to set \\ \hline
11344
\noindent {\bf Return Type:}
11354
\subsubsection{RPC name:~get\_name\_description}
11357
Get the name/description field of the given VDI.
11359
\noindent {\bf Signature:}
11360
\begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
11363
\noindent{\bf Arguments:}
11367
\begin{tabular}{|c|c|p{7cm}|}
11369
{\bf type} & {\bf name} & {\bf description} \\ \hline
11370
{\tt VDI ref } & self & reference to the object \\ \hline
11376
\noindent {\bf Return Type:}
11386
\subsubsection{RPC name:~set\_name\_description}
11389
Set the name/description field of the given VDI.
11391
\noindent {\bf Signature:}
11392
\begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
11395
\noindent{\bf Arguments:}
11399
\begin{tabular}{|c|c|p{7cm}|}
11401
{\bf type} & {\bf name} & {\bf description} \\ \hline
11402
{\tt VDI ref } & self & reference to the object \\ \hline
11404
{\tt string } & value & New value to set \\ \hline
11410
\noindent {\bf Return Type:}
11420
\subsubsection{RPC name:~get\_SR}
11423
Get the SR field of the given VDI.
11425
\noindent {\bf Signature:}
11426
\begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
11429
\noindent{\bf Arguments:}
11433
\begin{tabular}{|c|c|p{7cm}|}
11435
{\bf type} & {\bf name} & {\bf description} \\ \hline
11436
{\tt VDI ref } & self & reference to the object \\ \hline
11442
\noindent {\bf Return Type:}
11452
\subsubsection{RPC name:~get\_VBDs}
11455
Get the VBDs field of the given VDI.
11457
\noindent {\bf Signature:}
11458
\begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
11461
\noindent{\bf Arguments:}
11465
\begin{tabular}{|c|c|p{7cm}|}
11467
{\bf type} & {\bf name} & {\bf description} \\ \hline
11468
{\tt VDI ref } & self & reference to the object \\ \hline
11474
\noindent {\bf Return Type:}
11484
\subsubsection{RPC name:~get\_crash\_dumps}
11487
Get the crash\_dumps field of the given VDI.
11489
\noindent {\bf Signature:}
11490
\begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VDI ref self)\end{verbatim}
11493
\noindent{\bf Arguments:}
11497
\begin{tabular}{|c|c|p{7cm}|}
11499
{\bf type} & {\bf name} & {\bf description} \\ \hline
11500
{\tt VDI ref } & self & reference to the object \\ \hline
11506
\noindent {\bf Return Type:}
11508
(crashdump ref) Set
11516
\subsubsection{RPC name:~get\_virtual\_size}
11519
Get the virtual\_size field of the given VDI.
11521
\noindent {\bf Signature:}
11522
\begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
11525
\noindent{\bf Arguments:}
11529
\begin{tabular}{|c|c|p{7cm}|}
11531
{\bf type} & {\bf name} & {\bf description} \\ \hline
11532
{\tt VDI ref } & self & reference to the object \\ \hline
11538
\noindent {\bf Return Type:}
11548
\subsubsection{RPC name:~set\_virtual\_size}
11551
Set the virtual\_size field of the given VDI.
11553
\noindent {\bf Signature:}
11554
\begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
11557
\noindent{\bf Arguments:}
11561
\begin{tabular}{|c|c|p{7cm}|}
11563
{\bf type} & {\bf name} & {\bf description} \\ \hline
11564
{\tt VDI ref } & self & reference to the object \\ \hline
11566
{\tt int } & value & New value to set \\ \hline
11572
\noindent {\bf Return Type:}
11582
\subsubsection{RPC name:~get\_physical\_utilisation}
11585
Get the physical\_utilisation field of the given VDI.
11587
\noindent {\bf Signature:}
11588
\begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\end{verbatim}
11591
\noindent{\bf Arguments:}
11595
\begin{tabular}{|c|c|p{7cm}|}
11597
{\bf type} & {\bf name} & {\bf description} \\ \hline
11598
{\tt VDI ref } & self & reference to the object \\ \hline
11604
\noindent {\bf Return Type:}
11614
\subsubsection{RPC name:~get\_type}
11617
Get the type field of the given VDI.
11619
\noindent {\bf Signature:}
11620
\begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
11623
\noindent{\bf Arguments:}
11627
\begin{tabular}{|c|c|p{7cm}|}
11629
{\bf type} & {\bf name} & {\bf description} \\ \hline
11630
{\tt VDI ref } & self & reference to the object \\ \hline
11636
\noindent {\bf Return Type:}
11646
\subsubsection{RPC name:~get\_sharable}
11649
Get the sharable field of the given VDI.
11651
\noindent {\bf Signature:}
11652
\begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
11655
\noindent{\bf Arguments:}
11659
\begin{tabular}{|c|c|p{7cm}|}
11661
{\bf type} & {\bf name} & {\bf description} \\ \hline
11662
{\tt VDI ref } & self & reference to the object \\ \hline
11668
\noindent {\bf Return Type:}
11678
\subsubsection{RPC name:~set\_sharable}
11681
Set the sharable field of the given VDI.
11683
\noindent {\bf Signature:}
11684
\begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
11687
\noindent{\bf Arguments:}
11691
\begin{tabular}{|c|c|p{7cm}|}
11693
{\bf type} & {\bf name} & {\bf description} \\ \hline
11694
{\tt VDI ref } & self & reference to the object \\ \hline
11696
{\tt bool } & value & New value to set \\ \hline
11702
\noindent {\bf Return Type:}
11712
\subsubsection{RPC name:~get\_read\_only}
11715
Get the read\_only field of the given VDI.
11717
\noindent {\bf Signature:}
11718
\begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
11721
\noindent{\bf Arguments:}
11725
\begin{tabular}{|c|c|p{7cm}|}
11727
{\bf type} & {\bf name} & {\bf description} \\ \hline
11728
{\tt VDI ref } & self & reference to the object \\ \hline
11734
\noindent {\bf Return Type:}
11744
\subsubsection{RPC name:~set\_read\_only}
11747
Set the read\_only field of the given VDI.
11749
\noindent {\bf Signature:}
11750
\begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
11753
\noindent{\bf Arguments:}
11757
\begin{tabular}{|c|c|p{7cm}|}
11759
{\bf type} & {\bf name} & {\bf description} \\ \hline
11760
{\tt VDI ref } & self & reference to the object \\ \hline
11762
{\tt bool } & value & New value to set \\ \hline
11768
\noindent {\bf Return Type:}
11778
\subsubsection{RPC name:~get\_other\_config}
11781
Get the other\_config field of the given VDI.
11783
\noindent {\bf Signature:}
11784
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VDI ref self)\end{verbatim}
11787
\noindent{\bf Arguments:}
11791
\begin{tabular}{|c|c|p{7cm}|}
11793
{\bf type} & {\bf name} & {\bf description} \\ \hline
11794
{\tt VDI ref } & self & reference to the object \\ \hline
11800
\noindent {\bf Return Type:}
11802
(string $\rightarrow$ string) Map
11810
\subsubsection{RPC name:~set\_other\_config}
11813
Set the other\_config field of the given VDI.
11815
\noindent {\bf Signature:}
11816
\begin{verbatim} void set_other_config (session_id s, VDI ref self, (string -> string) Map value)\end{verbatim}
11819
\noindent{\bf Arguments:}
11823
\begin{tabular}{|c|c|p{7cm}|}
11825
{\bf type} & {\bf name} & {\bf description} \\ \hline
11826
{\tt VDI ref } & self & reference to the object \\ \hline
11828
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
11834
\noindent {\bf Return Type:}
11844
\subsubsection{RPC name:~add\_to\_other\_config}
11847
Add the given key-value pair to the other\_config field of the given VDI.
11849
\noindent {\bf Signature:}
11850
\begin{verbatim} void add_to_other_config (session_id s, VDI ref self, string key, string value)\end{verbatim}
11853
\noindent{\bf Arguments:}
11857
\begin{tabular}{|c|c|p{7cm}|}
11859
{\bf type} & {\bf name} & {\bf description} \\ \hline
11860
{\tt VDI ref } & self & reference to the object \\ \hline
11862
{\tt string } & key & Key to add \\ \hline
11864
{\tt string } & value & Value to add \\ \hline
11870
\noindent {\bf Return Type:}
11880
\subsubsection{RPC name:~remove\_from\_other\_config}
11883
Remove the given key and its corresponding value from the other\_config
11884
field of the given VDI. If the key is not in that Map, then do nothing.
11886
\noindent {\bf Signature:}
11887
\begin{verbatim} void remove_from_other_config (session_id s, VDI ref self, string key)\end{verbatim}
11890
\noindent{\bf Arguments:}
11894
\begin{tabular}{|c|c|p{7cm}|}
11896
{\bf type} & {\bf name} & {\bf description} \\ \hline
11897
{\tt VDI ref } & self & reference to the object \\ \hline
11899
{\tt string } & key & Key to remove \\ \hline
11905
\noindent {\bf Return Type:}
11915
\subsubsection{RPC name:~set\_security\_label}
11918
Set the security label of the given VDI. Refer to the XSPolicy class
11919
for the format of the security label.
11921
\noindent {\bf Signature:}
11922
\begin{verbatim} void set_security_label (session_id s, VDI ref self, string
11923
security_label, string old_label)\end{verbatim}
11926
\noindent{\bf Arguments:}
11930
\begin{tabular}{|c|c|p{7cm}|}
11932
{\bf type} & {\bf name} & {\bf description} \\ \hline
11933
{\tt VDI ref } & self & reference to the object \\ \hline
11935
{\tt string } & security\_label & New value of the security label \\ \hline
11936
{\tt string } & old\_label & Label value that the security label \\
11937
& & must currently have for the change to succeed.\\ \hline
11942
\noindent {\bf Return Type:}
11950
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
11955
\subsubsection{RPC name:~get\_security\_label}
11958
Get the security label of the given VDI.
11960
\noindent {\bf Signature:}
11961
\begin{verbatim} string get_security_label (session_id s, VDI ref self)\end{verbatim}
11964
\noindent{\bf Arguments:}
11969
\begin{tabular}{|c|c|p{7cm}|}
11971
{\bf type} & {\bf name} & {\bf description} \\ \hline
11972
{\tt VDI ref } & self & reference to the object \\ \hline
11978
\noindent {\bf Return Type:}
11984
value of the given field
11988
\subsubsection{RPC name:~create}
11991
Create a new VDI instance, and return its handle.
11993
\noindent {\bf Signature:}
11994
\begin{verbatim} (VDI ref) create (session_id s, VDI record args)\end{verbatim}
11997
\noindent{\bf Arguments:}
12001
\begin{tabular}{|c|c|p{7cm}|}
12003
{\bf type} & {\bf name} & {\bf description} \\ \hline
12004
{\tt VDI record } & args & All constructor arguments \\ \hline
12010
\noindent {\bf Return Type:}
12016
reference to the newly created object
12020
\subsubsection{RPC name:~destroy}
12023
Destroy the specified VDI instance.
12025
\noindent {\bf Signature:}
12026
\begin{verbatim} void destroy (session_id s, VDI ref self)\end{verbatim}
12029
\noindent{\bf Arguments:}
12033
\begin{tabular}{|c|c|p{7cm}|}
12035
{\bf type} & {\bf name} & {\bf description} \\ \hline
12036
{\tt VDI ref } & self & reference to the object \\ \hline
12042
\noindent {\bf Return Type:}
12052
\subsubsection{RPC name:~get\_by\_uuid}
12055
Get a reference to the VDI instance with the specified UUID.
12057
\noindent {\bf Signature:}
12058
\begin{verbatim} (VDI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
12061
\noindent{\bf Arguments:}
12065
\begin{tabular}{|c|c|p{7cm}|}
12067
{\bf type} & {\bf name} & {\bf description} \\ \hline
12068
{\tt string } & uuid & UUID of object to return \\ \hline
12074
\noindent {\bf Return Type:}
12080
reference to the object
12084
\subsubsection{RPC name:~get\_record}
12087
Get a record containing the current state of the given VDI.
12089
\noindent {\bf Signature:}
12090
\begin{verbatim} (VDI record) get_record (session_id s, VDI ref self)\end{verbatim}
12093
\noindent{\bf Arguments:}
12097
\begin{tabular}{|c|c|p{7cm}|}
12099
{\bf type} & {\bf name} & {\bf description} \\ \hline
12100
{\tt VDI ref } & self & reference to the object \\ \hline
12106
\noindent {\bf Return Type:}
12112
all fields from the object
12116
\subsubsection{RPC name:~get\_by\_name\_label}
12119
Get all the VDI instances with the given label.
12121
\noindent {\bf Signature:}
12122
\begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
12125
\noindent{\bf Arguments:}
12129
\begin{tabular}{|c|c|p{7cm}|}
12131
{\bf type} & {\bf name} & {\bf description} \\ \hline
12132
{\tt string } & label & label of object to return \\ \hline
12138
\noindent {\bf Return Type:}
12144
references to objects with match names
12151
\section{Class: VBD}
12152
\subsection{Fields for class: VBD}
12153
\begin{longtable}{|lllp{0.38\textwidth}|}
12155
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
12156
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
12157
virtual block device.}} \\
12159
Quals & Field & Type & Description \\
12161
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
12162
$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
12163
$\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
12164
$\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
12165
$\mathit{RW}$ & {\tt bootable} & bool & true if this VBD is bootable \\
12166
$\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the VBD should be mounted with \\
12167
$\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
12168
$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
12169
$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
12170
$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
12171
$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
12172
$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
12173
$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
12174
$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VBD \\
12175
$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VBD\_metrics ref & metrics associated with this VBD \\
12178
\subsection{RPCs associated with class: VBD}
12179
\subsubsection{RPC name:~media\_change}
12182
Change the media in the device for CDROM-like devices only. For other
12183
devices, detach the VBD and attach a new one.
12185
\noindent {\bf Signature:}
12186
\begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
12189
\noindent{\bf Arguments:}
12193
\begin{tabular}{|c|c|p{7cm}|}
12195
{\bf type} & {\bf name} & {\bf description} \\ \hline
12196
{\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
12198
{\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
12204
\noindent {\bf Return Type:}
12214
\subsubsection{RPC name:~plug}
12217
Hotplug the specified VBD, dynamically attaching it to the running VM.
12219
\noindent {\bf Signature:}
12220
\begin{verbatim} void plug (session_id s, VBD ref self)\end{verbatim}
12223
\noindent{\bf Arguments:}
12227
\begin{tabular}{|c|c|p{7cm}|}
12229
{\bf type} & {\bf name} & {\bf description} \\ \hline
12230
{\tt VBD ref } & self & The VBD to hotplug \\ \hline
12236
\noindent {\bf Return Type:}
12246
\subsubsection{RPC name:~unplug}
12249
Hot-unplug the specified VBD, dynamically unattaching it from the running
12252
\noindent {\bf Signature:}
12253
\begin{verbatim} void unplug (session_id s, VBD ref self)\end{verbatim}
12256
\noindent{\bf Arguments:}
12260
\begin{tabular}{|c|c|p{7cm}|}
12262
{\bf type} & {\bf name} & {\bf description} \\ \hline
12263
{\tt VBD ref } & self & The VBD to hot-unplug \\ \hline
12269
\noindent {\bf Return Type:}
12279
\subsubsection{RPC name:~get\_all}
12282
Return a list of all the VBDs known to the system.
12284
\noindent {\bf Signature:}
12285
\begin{verbatim} ((VBD ref) Set) get_all (session_id s)\end{verbatim}
12290
\noindent {\bf Return Type:}
12296
references to all objects
12300
\subsubsection{RPC name:~get\_uuid}
12303
Get the uuid field of the given VBD.
12305
\noindent {\bf Signature:}
12306
\begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
12309
\noindent{\bf Arguments:}
12313
\begin{tabular}{|c|c|p{7cm}|}
12315
{\bf type} & {\bf name} & {\bf description} \\ \hline
12316
{\tt VBD ref } & self & reference to the object \\ \hline
12322
\noindent {\bf Return Type:}
12332
\subsubsection{RPC name:~get\_VM}
12335
Get the VM field of the given VBD.
12337
\noindent {\bf Signature:}
12338
\begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
12341
\noindent{\bf Arguments:}
12345
\begin{tabular}{|c|c|p{7cm}|}
12347
{\bf type} & {\bf name} & {\bf description} \\ \hline
12348
{\tt VBD ref } & self & reference to the object \\ \hline
12354
\noindent {\bf Return Type:}
12364
\subsubsection{RPC name:~get\_VDI}
12367
Get the VDI field of the given VBD.
12369
\noindent {\bf Signature:}
12370
\begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
12373
\noindent{\bf Arguments:}
12377
\begin{tabular}{|c|c|p{7cm}|}
12379
{\bf type} & {\bf name} & {\bf description} \\ \hline
12380
{\tt VBD ref } & self & reference to the object \\ \hline
12386
\noindent {\bf Return Type:}
12396
\subsubsection{RPC name:~get\_device}
12399
Get the device field of the given VBD.
12401
\noindent {\bf Signature:}
12402
\begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
12405
\noindent{\bf Arguments:}
12409
\begin{tabular}{|c|c|p{7cm}|}
12411
{\bf type} & {\bf name} & {\bf description} \\ \hline
12412
{\tt VBD ref } & self & reference to the object \\ \hline
12418
\noindent {\bf Return Type:}
12428
\subsubsection{RPC name:~set\_device}
12431
Set the device field of the given VBD.
12433
\noindent {\bf Signature:}
12434
\begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim}
12437
\noindent{\bf Arguments:}
12441
\begin{tabular}{|c|c|p{7cm}|}
12443
{\bf type} & {\bf name} & {\bf description} \\ \hline
12444
{\tt VBD ref } & self & reference to the object \\ \hline
12446
{\tt string } & value & New value to set \\ \hline
12452
\noindent {\bf Return Type:}
12462
\subsubsection{RPC name:~get\_bootable}
12465
Get the bootable field of the given VBD.
12467
\noindent {\bf Signature:}
12468
\begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim}
12471
\noindent{\bf Arguments:}
12475
\begin{tabular}{|c|c|p{7cm}|}
12477
{\bf type} & {\bf name} & {\bf description} \\ \hline
12478
{\tt VBD ref } & self & reference to the object \\ \hline
12484
\noindent {\bf Return Type:}
12494
\subsubsection{RPC name:~set\_bootable}
12497
Set the bootable field of the given VBD.
12499
\noindent {\bf Signature:}
12500
\begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim}
12503
\noindent{\bf Arguments:}
12507
\begin{tabular}{|c|c|p{7cm}|}
12509
{\bf type} & {\bf name} & {\bf description} \\ \hline
12510
{\tt VBD ref } & self & reference to the object \\ \hline
12512
{\tt bool } & value & New value to set \\ \hline
12518
\noindent {\bf Return Type:}
12528
\subsubsection{RPC name:~get\_mode}
12531
Get the mode field of the given VBD.
12533
\noindent {\bf Signature:}
12534
\begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
12537
\noindent{\bf Arguments:}
12541
\begin{tabular}{|c|c|p{7cm}|}
12543
{\bf type} & {\bf name} & {\bf description} \\ \hline
12544
{\tt VBD ref } & self & reference to the object \\ \hline
12550
\noindent {\bf Return Type:}
12560
\subsubsection{RPC name:~set\_mode}
12563
Set the mode field of the given VBD.
12565
\noindent {\bf Signature:}
12566
\begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
12569
\noindent{\bf Arguments:}
12573
\begin{tabular}{|c|c|p{7cm}|}
12575
{\bf type} & {\bf name} & {\bf description} \\ \hline
12576
{\tt VBD ref } & self & reference to the object \\ \hline
12578
{\tt vbd\_mode } & value & New value to set \\ \hline
12584
\noindent {\bf Return Type:}
12594
\subsubsection{RPC name:~get\_type}
12597
Get the type field of the given VBD.
12599
\noindent {\bf Signature:}
12600
\begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
12603
\noindent{\bf Arguments:}
12607
\begin{tabular}{|c|c|p{7cm}|}
12609
{\bf type} & {\bf name} & {\bf description} \\ \hline
12610
{\tt VBD ref } & self & reference to the object \\ \hline
12616
\noindent {\bf Return Type:}
12626
\subsubsection{RPC name:~set\_type}
12629
Set the type field of the given VBD.
12631
\noindent {\bf Signature:}
12632
\begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
12635
\noindent{\bf Arguments:}
12639
\begin{tabular}{|c|c|p{7cm}|}
12641
{\bf type} & {\bf name} & {\bf description} \\ \hline
12642
{\tt VBD ref } & self & reference to the object \\ \hline
12644
{\tt vbd\_type } & value & New value to set \\ \hline
12650
\noindent {\bf Return Type:}
12660
\subsubsection{RPC name:~get\_currently\_attached}
12663
Get the currently\_attached field of the given VBD.
12665
\noindent {\bf Signature:}
12666
\begin{verbatim} bool get_currently_attached (session_id s, VBD ref self)\end{verbatim}
12669
\noindent{\bf Arguments:}
12673
\begin{tabular}{|c|c|p{7cm}|}
12675
{\bf type} & {\bf name} & {\bf description} \\ \hline
12676
{\tt VBD ref } & self & reference to the object \\ \hline
12682
\noindent {\bf Return Type:}
12692
\subsubsection{RPC name:~get\_status\_code}
12695
Get the status\_code field of the given VBD.
12697
\noindent {\bf Signature:}
12698
\begin{verbatim} int get_status_code (session_id s, VBD ref self)\end{verbatim}
12701
\noindent{\bf Arguments:}
12705
\begin{tabular}{|c|c|p{7cm}|}
12707
{\bf type} & {\bf name} & {\bf description} \\ \hline
12708
{\tt VBD ref } & self & reference to the object \\ \hline
12714
\noindent {\bf Return Type:}
12724
\subsubsection{RPC name:~get\_status\_detail}
12727
Get the status\_detail field of the given VBD.
12729
\noindent {\bf Signature:}
12730
\begin{verbatim} string get_status_detail (session_id s, VBD ref self)\end{verbatim}
12733
\noindent{\bf Arguments:}
12737
\begin{tabular}{|c|c|p{7cm}|}
12739
{\bf type} & {\bf name} & {\bf description} \\ \hline
12740
{\tt VBD ref } & self & reference to the object \\ \hline
12746
\noindent {\bf Return Type:}
12756
\subsubsection{RPC name:~get\_runtime\_properties}
12759
Get the runtime\_properties field of the given VBD.
12761
\noindent {\bf Signature:}
12762
\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VBD ref self)\end{verbatim}
12765
\noindent{\bf Arguments:}
12769
\begin{tabular}{|c|c|p{7cm}|}
12771
{\bf type} & {\bf name} & {\bf description} \\ \hline
12772
{\tt VBD ref } & self & reference to the object \\ \hline
12778
\noindent {\bf Return Type:}
12780
(string $\rightarrow$ string) Map
12788
\subsubsection{RPC name:~get\_qos\_algorithm\_type}
12791
Get the qos/algorithm\_type field of the given VBD.
12793
\noindent {\bf Signature:}
12794
\begin{verbatim} string get_qos_algorithm_type (session_id s, VBD ref self)\end{verbatim}
12797
\noindent{\bf Arguments:}
12801
\begin{tabular}{|c|c|p{7cm}|}
12803
{\bf type} & {\bf name} & {\bf description} \\ \hline
12804
{\tt VBD ref } & self & reference to the object \\ \hline
12810
\noindent {\bf Return Type:}
12820
\subsubsection{RPC name:~set\_qos\_algorithm\_type}
12823
Set the qos/algorithm\_type field of the given VBD.
12825
\noindent {\bf Signature:}
12826
\begin{verbatim} void set_qos_algorithm_type (session_id s, VBD ref self, string value)\end{verbatim}
12829
\noindent{\bf Arguments:}
12833
\begin{tabular}{|c|c|p{7cm}|}
12835
{\bf type} & {\bf name} & {\bf description} \\ \hline
12836
{\tt VBD ref } & self & reference to the object \\ \hline
12838
{\tt string } & value & New value to set \\ \hline
12844
\noindent {\bf Return Type:}
12854
\subsubsection{RPC name:~get\_qos\_algorithm\_params}
12857
Get the qos/algorithm\_params field of the given VBD.
12859
\noindent {\bf Signature:}
12860
\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VBD ref self)\end{verbatim}
12863
\noindent{\bf Arguments:}
12867
\begin{tabular}{|c|c|p{7cm}|}
12869
{\bf type} & {\bf name} & {\bf description} \\ \hline
12870
{\tt VBD ref } & self & reference to the object \\ \hline
12876
\noindent {\bf Return Type:}
12878
(string $\rightarrow$ string) Map
12886
\subsubsection{RPC name:~set\_qos\_algorithm\_params}
12889
Set the qos/algorithm\_params field of the given VBD.
12891
\noindent {\bf Signature:}
12892
\begin{verbatim} void set_qos_algorithm_params (session_id s, VBD ref self, (string -> string) Map value)\end{verbatim}
12895
\noindent{\bf Arguments:}
12899
\begin{tabular}{|c|c|p{7cm}|}
12901
{\bf type} & {\bf name} & {\bf description} \\ \hline
12902
{\tt VBD ref } & self & reference to the object \\ \hline
12904
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
12910
\noindent {\bf Return Type:}
12920
\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
12923
Add the given key-value pair to the qos/algorithm\_params field of the
12926
\noindent {\bf Signature:}
12927
\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VBD ref self, string key, string value)\end{verbatim}
12930
\noindent{\bf Arguments:}
12934
\begin{tabular}{|c|c|p{7cm}|}
12936
{\bf type} & {\bf name} & {\bf description} \\ \hline
12937
{\tt VBD ref } & self & reference to the object \\ \hline
12939
{\tt string } & key & Key to add \\ \hline
12941
{\tt string } & value & Value to add \\ \hline
12947
\noindent {\bf Return Type:}
12957
\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
12960
Remove the given key and its corresponding value from the
12961
qos/algorithm\_params field of the given VBD. If the key is not in that
12962
Map, then do nothing.
12964
\noindent {\bf Signature:}
12965
\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VBD ref self, string key)\end{verbatim}
12968
\noindent{\bf Arguments:}
12972
\begin{tabular}{|c|c|p{7cm}|}
12974
{\bf type} & {\bf name} & {\bf description} \\ \hline
12975
{\tt VBD ref } & self & reference to the object \\ \hline
12977
{\tt string } & key & Key to remove \\ \hline
12983
\noindent {\bf Return Type:}
12993
\subsubsection{RPC name:~get\_qos\_supported\_algorithms}
12996
Get the qos/supported\_algorithms field of the given VBD.
12998
\noindent {\bf Signature:}
12999
\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VBD ref self)\end{verbatim}
13002
\noindent{\bf Arguments:}
13006
\begin{tabular}{|c|c|p{7cm}|}
13008
{\bf type} & {\bf name} & {\bf description} \\ \hline
13009
{\tt VBD ref } & self & reference to the object \\ \hline
13015
\noindent {\bf Return Type:}
13025
\subsubsection{RPC name:~get\_metrics}
13028
Get the metrics field of the given VBD.
13030
\noindent {\bf Signature:}
13031
\begin{verbatim} (VBD_metrics ref) get_metrics (session_id s, VBD ref self)\end{verbatim}
13034
\noindent{\bf Arguments:}
13038
\begin{tabular}{|c|c|p{7cm}|}
13040
{\bf type} & {\bf name} & {\bf description} \\ \hline
13041
{\tt VBD ref } & self & reference to the object \\ \hline
13047
\noindent {\bf Return Type:}
13057
\subsubsection{RPC name:~create}
13060
Create a new VBD instance, and return its handle.
13062
\noindent {\bf Signature:}
13063
\begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
13066
\noindent{\bf Arguments:}
13070
\begin{tabular}{|c|c|p{7cm}|}
13072
{\bf type} & {\bf name} & {\bf description} \\ \hline
13073
{\tt VBD record } & args & All constructor arguments \\ \hline
13079
\noindent {\bf Return Type:}
13085
reference to the newly created object
13089
\subsubsection{RPC name:~destroy}
13092
Destroy the specified VBD instance.
13094
\noindent {\bf Signature:}
13095
\begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
13098
\noindent{\bf Arguments:}
13102
\begin{tabular}{|c|c|p{7cm}|}
13104
{\bf type} & {\bf name} & {\bf description} \\ \hline
13105
{\tt VBD ref } & self & reference to the object \\ \hline
13111
\noindent {\bf Return Type:}
13121
\subsubsection{RPC name:~get\_by\_uuid}
13124
Get a reference to the VBD instance with the specified UUID.
13126
\noindent {\bf Signature:}
13127
\begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
13130
\noindent{\bf Arguments:}
13134
\begin{tabular}{|c|c|p{7cm}|}
13136
{\bf type} & {\bf name} & {\bf description} \\ \hline
13137
{\tt string } & uuid & UUID of object to return \\ \hline
13143
\noindent {\bf Return Type:}
13149
reference to the object
13153
\subsubsection{RPC name:~get\_record}
13156
Get a record containing the current state of the given VBD.
13158
\noindent {\bf Signature:}
13159
\begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
13162
\noindent{\bf Arguments:}
13166
\begin{tabular}{|c|c|p{7cm}|}
13168
{\bf type} & {\bf name} & {\bf description} \\ \hline
13169
{\tt VBD ref } & self & reference to the object \\ \hline
13175
\noindent {\bf Return Type:}
13181
all fields from the object
13188
\section{Class: VBD\_metrics}
13189
\subsection{Fields for class: VBD\_metrics}
13190
\begin{longtable}{|lllp{0.38\textwidth}|}
13192
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD\_metrics} \\
13193
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
13194
The metrics associated with a virtual block device.}} \\
13196
Quals & Field & Type & Description \\
13198
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
13199
$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
13200
$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
13201
$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
13204
\subsection{RPCs associated with class: VBD\_metrics}
13205
\subsubsection{RPC name:~get\_all}
13208
Return a list of all the VBD\_metrics instances known to the system.
13210
\noindent {\bf Signature:}
13211
\begin{verbatim} ((VBD_metrics ref) Set) get_all (session_id s)\end{verbatim}
13216
\noindent {\bf Return Type:}
13218
(VBD\_metrics ref) Set
13222
references to all objects
13226
\subsubsection{RPC name:~get\_uuid}
13229
Get the uuid field of the given VBD\_metrics.
13231
\noindent {\bf Signature:}
13232
\begin{verbatim} string get_uuid (session_id s, VBD_metrics ref self)\end{verbatim}
13235
\noindent{\bf Arguments:}
13239
\begin{tabular}{|c|c|p{7cm}|}
13241
{\bf type} & {\bf name} & {\bf description} \\ \hline
13242
{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
13248
\noindent {\bf Return Type:}
13258
\subsubsection{RPC name:~get\_io\_read\_kbs}
13261
Get the io/read\_kbs field of the given VBD\_metrics.
13263
\noindent {\bf Signature:}
13264
\begin{verbatim} float get_io_read_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
13267
\noindent{\bf Arguments:}
13271
\begin{tabular}{|c|c|p{7cm}|}
13273
{\bf type} & {\bf name} & {\bf description} \\ \hline
13274
{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
13280
\noindent {\bf Return Type:}
13290
\subsubsection{RPC name:~get\_io\_write\_kbs}
13293
Get the io/write\_kbs field of the given VBD\_metrics.
13295
\noindent {\bf Signature:}
13296
\begin{verbatim} float get_io_write_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
13299
\noindent{\bf Arguments:}
13303
\begin{tabular}{|c|c|p{7cm}|}
13305
{\bf type} & {\bf name} & {\bf description} \\ \hline
13306
{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
13312
\noindent {\bf Return Type:}
13322
\subsubsection{RPC name:~get\_last\_updated}
13325
Get the last\_updated field of the given VBD\_metrics.
13327
\noindent {\bf Signature:}
13328
\begin{verbatim} datetime get_last_updated (session_id s, VBD_metrics ref self)\end{verbatim}
13331
\noindent{\bf Arguments:}
13335
\begin{tabular}{|c|c|p{7cm}|}
13337
{\bf type} & {\bf name} & {\bf description} \\ \hline
13338
{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
13344
\noindent {\bf Return Type:}
13354
\subsubsection{RPC name:~get\_by\_uuid}
13357
Get a reference to the VBD\_metrics instance with the specified UUID.
13359
\noindent {\bf Signature:}
13360
\begin{verbatim} (VBD_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
13363
\noindent{\bf Arguments:}
13367
\begin{tabular}{|c|c|p{7cm}|}
13369
{\bf type} & {\bf name} & {\bf description} \\ \hline
13370
{\tt string } & uuid & UUID of object to return \\ \hline
13376
\noindent {\bf Return Type:}
13382
reference to the object
13386
\subsubsection{RPC name:~get\_record}
13389
Get a record containing the current state of the given VBD\_metrics.
13391
\noindent {\bf Signature:}
13392
\begin{verbatim} (VBD_metrics record) get_record (session_id s, VBD_metrics ref self)\end{verbatim}
13395
\noindent{\bf Arguments:}
13399
\begin{tabular}{|c|c|p{7cm}|}
13401
{\bf type} & {\bf name} & {\bf description} \\ \hline
13402
{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
13408
\noindent {\bf Return Type:}
13410
VBD\_metrics record
13414
all fields from the object
13421
\section{Class: PBD}
13422
\subsection{Fields for class: PBD}
13423
\begin{longtable}{|lllp{0.38\textwidth}|}
13425
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PBD} \\
13426
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
13427
The physical block devices through which hosts access SRs.}} \\
13429
Quals & Field & Type & Description \\
13431
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
13432
$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine on which the pbd is available \\
13433
$\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & the storage repository that the pbd realises \\
13434
$\mathit{RO}_\mathit{ins}$ & {\tt device\_config} & (string $\rightarrow$ string) Map & a config string to string map that is provided to the host's SR-backend-driver \\
13435
$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the SR currently attached on this host? \\
13438
\subsection{RPCs associated with class: PBD}
13439
\subsubsection{RPC name:~get\_all}
13442
Return a list of all the PBDs known to the system.
13444
\noindent {\bf Signature:}
13445
\begin{verbatim} ((PBD ref) Set) get_all (session_id s)\end{verbatim}
13450
\noindent {\bf Return Type:}
13456
references to all objects
13460
\subsubsection{RPC name:~get\_uuid}
13463
Get the uuid field of the given PBD.
13465
\noindent {\bf Signature:}
13466
\begin{verbatim} string get_uuid (session_id s, PBD ref self)\end{verbatim}
13469
\noindent{\bf Arguments:}
13473
\begin{tabular}{|c|c|p{7cm}|}
13475
{\bf type} & {\bf name} & {\bf description} \\ \hline
13476
{\tt PBD ref } & self & reference to the object \\ \hline
13482
\noindent {\bf Return Type:}
13492
\subsubsection{RPC name:~get\_host}
13495
Get the host field of the given PBD.
13497
\noindent {\bf Signature:}
13498
\begin{verbatim} (host ref) get_host (session_id s, PBD ref self)\end{verbatim}
13501
\noindent{\bf Arguments:}
13505
\begin{tabular}{|c|c|p{7cm}|}
13507
{\bf type} & {\bf name} & {\bf description} \\ \hline
13508
{\tt PBD ref } & self & reference to the object \\ \hline
13514
\noindent {\bf Return Type:}
13524
\subsubsection{RPC name:~get\_SR}
13527
Get the SR field of the given PBD.
13529
\noindent {\bf Signature:}
13530
\begin{verbatim} (SR ref) get_SR (session_id s, PBD ref self)\end{verbatim}
13533
\noindent{\bf Arguments:}
13537
\begin{tabular}{|c|c|p{7cm}|}
13539
{\bf type} & {\bf name} & {\bf description} \\ \hline
13540
{\tt PBD ref } & self & reference to the object \\ \hline
13546
\noindent {\bf Return Type:}
13556
\subsubsection{RPC name:~get\_device\_config}
13559
Get the device\_config field of the given PBD.
13561
\noindent {\bf Signature:}
13562
\begin{verbatim} ((string -> string) Map) get_device_config (session_id s, PBD ref self)\end{verbatim}
13565
\noindent{\bf Arguments:}
13569
\begin{tabular}{|c|c|p{7cm}|}
13571
{\bf type} & {\bf name} & {\bf description} \\ \hline
13572
{\tt PBD ref } & self & reference to the object \\ \hline
13578
\noindent {\bf Return Type:}
13580
(string $\rightarrow$ string) Map
13588
\subsubsection{RPC name:~get\_currently\_attached}
13591
Get the currently\_attached field of the given PBD.
13593
\noindent {\bf Signature:}
13594
\begin{verbatim} bool get_currently_attached (session_id s, PBD ref self)\end{verbatim}
13597
\noindent{\bf Arguments:}
13601
\begin{tabular}{|c|c|p{7cm}|}
13603
{\bf type} & {\bf name} & {\bf description} \\ \hline
13604
{\tt PBD ref } & self & reference to the object \\ \hline
13610
\noindent {\bf Return Type:}
13620
\subsubsection{RPC name:~create}
13623
Create a new PBD instance, and return its handle.
13625
\noindent {\bf Signature:}
13626
\begin{verbatim} (PBD ref) create (session_id s, PBD record args)\end{verbatim}
13629
\noindent{\bf Arguments:}
13633
\begin{tabular}{|c|c|p{7cm}|}
13635
{\bf type} & {\bf name} & {\bf description} \\ \hline
13636
{\tt PBD record } & args & All constructor arguments \\ \hline
13642
\noindent {\bf Return Type:}
13648
reference to the newly created object
13652
\subsubsection{RPC name:~destroy}
13655
Destroy the specified PBD instance.
13657
\noindent {\bf Signature:}
13658
\begin{verbatim} void destroy (session_id s, PBD ref self)\end{verbatim}
13661
\noindent{\bf Arguments:}
13665
\begin{tabular}{|c|c|p{7cm}|}
13667
{\bf type} & {\bf name} & {\bf description} \\ \hline
13668
{\tt PBD ref } & self & reference to the object \\ \hline
13674
\noindent {\bf Return Type:}
13684
\subsubsection{RPC name:~get\_by\_uuid}
13687
Get a reference to the PBD instance with the specified UUID.
13689
\noindent {\bf Signature:}
13690
\begin{verbatim} (PBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
13693
\noindent{\bf Arguments:}
13697
\begin{tabular}{|c|c|p{7cm}|}
13699
{\bf type} & {\bf name} & {\bf description} \\ \hline
13700
{\tt string } & uuid & UUID of object to return \\ \hline
13706
\noindent {\bf Return Type:}
13712
reference to the object
13716
\subsubsection{RPC name:~get\_record}
13719
Get a record containing the current state of the given PBD.
13721
\noindent {\bf Signature:}
13722
\begin{verbatim} (PBD record) get_record (session_id s, PBD ref self)\end{verbatim}
13725
\noindent{\bf Arguments:}
13729
\begin{tabular}{|c|c|p{7cm}|}
13731
{\bf type} & {\bf name} & {\bf description} \\ \hline
13732
{\tt PBD ref } & self & reference to the object \\ \hline
13738
\noindent {\bf Return Type:}
13744
all fields from the object
13751
\section{Class: crashdump}
13752
\subsection{Fields for class: crashdump}
13753
\begin{longtable}{|lllp{0.38\textwidth}|}
13755
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf crashdump} \\
13756
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
13759
Quals & Field & Type & Description \\
13761
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
13762
$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
13763
$\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
13766
\subsection{RPCs associated with class: crashdump}
13767
\subsubsection{RPC name:~destroy}
13770
Destroy the specified crashdump.
13772
\noindent {\bf Signature:}
13773
\begin{verbatim} void destroy (session_id s, crashdump ref self)\end{verbatim}
13776
\noindent{\bf Arguments:}
13780
\begin{tabular}{|c|c|p{7cm}|}
13782
{\bf type} & {\bf name} & {\bf description} \\ \hline
13783
{\tt crashdump ref } & self & The crashdump to destroy \\ \hline
13789
\noindent {\bf Return Type:}
13799
\subsubsection{RPC name:~get\_all}
13802
Return a list of all the crashdumps known to the system.
13804
\noindent {\bf Signature:}
13805
\begin{verbatim} ((crashdump ref) Set) get_all (session_id s)\end{verbatim}
13810
\noindent {\bf Return Type:}
13812
(crashdump ref) Set
13816
references to all objects
13820
\subsubsection{RPC name:~get\_uuid}
13823
Get the uuid field of the given crashdump.
13825
\noindent {\bf Signature:}
13826
\begin{verbatim} string get_uuid (session_id s, crashdump ref self)\end{verbatim}
13829
\noindent{\bf Arguments:}
13833
\begin{tabular}{|c|c|p{7cm}|}
13835
{\bf type} & {\bf name} & {\bf description} \\ \hline
13836
{\tt crashdump ref } & self & reference to the object \\ \hline
13842
\noindent {\bf Return Type:}
13852
\subsubsection{RPC name:~get\_VM}
13855
Get the VM field of the given crashdump.
13857
\noindent {\bf Signature:}
13858
\begin{verbatim} (VM ref) get_VM (session_id s, crashdump ref self)\end{verbatim}
13861
\noindent{\bf Arguments:}
13865
\begin{tabular}{|c|c|p{7cm}|}
13867
{\bf type} & {\bf name} & {\bf description} \\ \hline
13868
{\tt crashdump ref } & self & reference to the object \\ \hline
13874
\noindent {\bf Return Type:}
13884
\subsubsection{RPC name:~get\_VDI}
13887
Get the VDI field of the given crashdump.
13889
\noindent {\bf Signature:}
13890
\begin{verbatim} (VDI ref) get_VDI (session_id s, crashdump ref self)\end{verbatim}
13893
\noindent{\bf Arguments:}
13897
\begin{tabular}{|c|c|p{7cm}|}
13899
{\bf type} & {\bf name} & {\bf description} \\ \hline
13900
{\tt crashdump ref } & self & reference to the object \\ \hline
13906
\noindent {\bf Return Type:}
13916
\subsubsection{RPC name:~get\_by\_uuid}
13919
Get a reference to the crashdump instance with the specified UUID.
13921
\noindent {\bf Signature:}
13922
\begin{verbatim} (crashdump ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
13925
\noindent{\bf Arguments:}
13929
\begin{tabular}{|c|c|p{7cm}|}
13931
{\bf type} & {\bf name} & {\bf description} \\ \hline
13932
{\tt string } & uuid & UUID of object to return \\ \hline
13938
\noindent {\bf Return Type:}
13944
reference to the object
13948
\subsubsection{RPC name:~get\_record}
13951
Get a record containing the current state of the given crashdump.
13953
\noindent {\bf Signature:}
13954
\begin{verbatim} (crashdump record) get_record (session_id s, crashdump ref self)\end{verbatim}
13957
\noindent{\bf Arguments:}
13961
\begin{tabular}{|c|c|p{7cm}|}
13963
{\bf type} & {\bf name} & {\bf description} \\ \hline
13964
{\tt crashdump ref } & self & reference to the object \\ \hline
13970
\noindent {\bf Return Type:}
13976
all fields from the object
13983
\section{Class: VTPM}
13984
\subsection{Fields for class: VTPM}
13985
\begin{longtable}{|lllp{0.38\textwidth}|}
13987
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
13988
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
13989
virtual TPM device.}} \\
13991
Quals & Field & Type & Description \\
13993
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
13994
$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
13995
$\mathit{RO}_\mathit{ins}$ & {\tt backend} & VM ref & the domain where the backend is located \\
13996
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
13999
\subsection{RPCs associated with class: VTPM}
14000
\subsubsection{RPC name:~get\_uuid}
14003
Get the uuid field of the given VTPM.
14005
\noindent {\bf Signature:}
14006
\begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
14009
\noindent{\bf Arguments:}
14013
\begin{tabular}{|c|c|p{7cm}|}
14015
{\bf type} & {\bf name} & {\bf description} \\ \hline
14016
{\tt VTPM ref } & self & reference to the object \\ \hline
14022
\noindent {\bf Return Type:}
14032
\subsubsection{RPC name:~get\_VM}
14035
Get the VM field of the given VTPM.
14037
\noindent {\bf Signature:}
14038
\begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
14041
\noindent{\bf Arguments:}
14045
\begin{tabular}{|c|c|p{7cm}|}
14047
{\bf type} & {\bf name} & {\bf description} \\ \hline
14048
{\tt VTPM ref } & self & reference to the object \\ \hline
14054
\noindent {\bf Return Type:}
14064
\subsubsection{RPC name:~get\_backend}
14067
Get the backend field of the given VTPM.
14069
\noindent {\bf Signature:}
14070
\begin{verbatim} (VM ref) get_backend (session_id s, VTPM ref self)\end{verbatim}
14073
\noindent{\bf Arguments:}
14077
\begin{tabular}{|c|c|p{7cm}|}
14079
{\bf type} & {\bf name} & {\bf description} \\ \hline
14080
{\tt VTPM ref } & self & reference to the object \\ \hline
14086
\noindent {\bf Return Type:}
14096
\subsubsection{RPC name:~get\_other\_config}
14099
Get the other\_config field of the given VTPM.
14101
\noindent {\bf Signature:}
14102
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VTPM ref self)\end{verbatim}
14105
\noindent{\bf Arguments:}
14109
\begin{tabular}{|c|c|p{7cm}|}
14111
{\bf type} & {\bf name} & {\bf description} \\ \hline
14112
{\tt VTPM ref } & self & reference to the object \\ \hline
14118
\noindent {\bf Return Type:}
14120
(string $\rightarrow$ string) Map
14128
\subsubsection{RPC name:~set\_other\_config}
14131
Set the other\_config field of the given VTPM.
14133
\noindent {\bf Signature:}
14134
\begin{verbatim} void set_other_config (session_id s, VTPM ref self, (string -> string) Map value)\end{verbatim}
14137
\noindent{\bf Arguments:}
14141
\begin{tabular}{|c|c|p{7cm}|}
14143
{\bf type} & {\bf name} & {\bf description} \\ \hline
14144
{\tt VTPM ref } & self & reference to the object \\ \hline
14146
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
14152
\noindent {\bf Return Type:}
14162
\subsubsection{RPC name:~get\_runtime\_properties}
14165
Get the runtime\_properties field of the given VTPM.
14167
\noindent {\bf Signature:}
14168
\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VTPM ref self)\end{verbatim}
14171
\noindent{\bf Arguments:}
14175
\begin{tabular}{|c|c|p{7cm}|}
14177
{\bf type} & {\bf name} & {\bf description} \\ \hline
14178
{\tt VTPM ref } & self & reference to the object \\ \hline
14184
\noindent {\bf Return Type:}
14186
(string $\rightarrow$ string) Map
14194
\subsubsection{RPC name:~create}
14197
Create a new VTPM instance, and return its handle.
14199
\noindent {\bf Signature:}
14200
\begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\end{verbatim}
14203
\noindent{\bf Arguments:}
14207
\begin{tabular}{|c|c|p{7cm}|}
14209
{\bf type} & {\bf name} & {\bf description} \\ \hline
14210
{\tt VTPM record } & args & All constructor arguments \\ \hline
14216
\noindent {\bf Return Type:}
14222
reference to the newly created object
14226
\subsubsection{RPC name:~destroy}
14229
Destroy the specified VTPM instance.
14231
\noindent {\bf Signature:}
14232
\begin{verbatim} void destroy (session_id s, VTPM ref self)\end{verbatim}
14235
\noindent{\bf Arguments:}
14239
\begin{tabular}{|c|c|p{7cm}|}
14241
{\bf type} & {\bf name} & {\bf description} \\ \hline
14242
{\tt VTPM ref } & self & reference to the object \\ \hline
14248
\noindent {\bf Return Type:}
14258
\subsubsection{RPC name:~get\_by\_uuid}
14261
Get a reference to the VTPM instance with the specified UUID.
14263
\noindent {\bf Signature:}
14264
\begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
14267
\noindent{\bf Arguments:}
14271
\begin{tabular}{|c|c|p{7cm}|}
14273
{\bf type} & {\bf name} & {\bf description} \\ \hline
14274
{\tt string } & uuid & UUID of object to return \\ \hline
14280
\noindent {\bf Return Type:}
14286
reference to the object
14290
\subsubsection{RPC name:~get\_record}
14293
Get a record containing the current state of the given VTPM.
14295
\noindent {\bf Signature:}
14296
\begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
14299
\noindent{\bf Arguments:}
14303
\begin{tabular}{|c|c|p{7cm}|}
14305
{\bf type} & {\bf name} & {\bf description} \\ \hline
14306
{\tt VTPM ref } & self & reference to the object \\ \hline
14312
\noindent {\bf Return Type:}
14318
all fields from the object
14325
\section{Class: console}
14326
\subsection{Fields for class: console}
14327
\begin{longtable}{|lllp{0.38\textwidth}|}
14329
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf console} \\
14330
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
14333
Quals & Field & Type & Description \\
14335
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
14336
$\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\
14337
$\mathit{RO}_\mathit{run}$ & {\tt location} & string & URI for the console service \\
14338
$\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\
14339
$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
14342
\subsection{RPCs associated with class: console}
14343
\subsubsection{RPC name:~get\_all}
14346
Return a list of all the consoles known to the system.
14348
\noindent {\bf Signature:}
14349
\begin{verbatim} ((console ref) Set) get_all (session_id s)\end{verbatim}
14354
\noindent {\bf Return Type:}
14360
references to all objects
14364
\subsubsection{RPC name:~get\_uuid}
14367
Get the uuid field of the given console.
14369
\noindent {\bf Signature:}
14370
\begin{verbatim} string get_uuid (session_id s, console ref self)\end{verbatim}
14373
\noindent{\bf Arguments:}
14377
\begin{tabular}{|c|c|p{7cm}|}
14379
{\bf type} & {\bf name} & {\bf description} \\ \hline
14380
{\tt console ref } & self & reference to the object \\ \hline
14386
\noindent {\bf Return Type:}
14396
\subsubsection{RPC name:~get\_protocol}
14399
Get the protocol field of the given console.
14401
\noindent {\bf Signature:}
14402
\begin{verbatim} (console_protocol) get_protocol (session_id s, console ref self)\end{verbatim}
14405
\noindent{\bf Arguments:}
14409
\begin{tabular}{|c|c|p{7cm}|}
14411
{\bf type} & {\bf name} & {\bf description} \\ \hline
14412
{\tt console ref } & self & reference to the object \\ \hline
14418
\noindent {\bf Return Type:}
14428
\subsubsection{RPC name:~get\_location}
14431
Get the location field of the given console.
14433
\noindent {\bf Signature:}
14434
\begin{verbatim} string get_location (session_id s, console ref self)\end{verbatim}
14437
\noindent{\bf Arguments:}
14441
\begin{tabular}{|c|c|p{7cm}|}
14443
{\bf type} & {\bf name} & {\bf description} \\ \hline
14444
{\tt console ref } & self & reference to the object \\ \hline
14450
\noindent {\bf Return Type:}
14460
\subsubsection{RPC name:~get\_VM}
14463
Get the VM field of the given console.
14465
\noindent {\bf Signature:}
14466
\begin{verbatim} (VM ref) get_VM (session_id s, console ref self)\end{verbatim}
14469
\noindent{\bf Arguments:}
14473
\begin{tabular}{|c|c|p{7cm}|}
14475
{\bf type} & {\bf name} & {\bf description} \\ \hline
14476
{\tt console ref } & self & reference to the object \\ \hline
14482
\noindent {\bf Return Type:}
14492
\subsubsection{RPC name:~get\_other\_config}
14495
Get the other\_config field of the given console.
14497
\noindent {\bf Signature:}
14498
\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, console ref self)\end{verbatim}
14501
\noindent{\bf Arguments:}
14505
\begin{tabular}{|c|c|p{7cm}|}
14507
{\bf type} & {\bf name} & {\bf description} \\ \hline
14508
{\tt console ref } & self & reference to the object \\ \hline
14514
\noindent {\bf Return Type:}
14516
(string $\rightarrow$ string) Map
14524
\subsubsection{RPC name:~set\_other\_config}
14527
Set the other\_config field of the given console.
14529
\noindent {\bf Signature:}
14530
\begin{verbatim} void set_other_config (session_id s, console ref self, (string -> string) Map value)\end{verbatim}
14533
\noindent{\bf Arguments:}
14537
\begin{tabular}{|c|c|p{7cm}|}
14539
{\bf type} & {\bf name} & {\bf description} \\ \hline
14540
{\tt console ref } & self & reference to the object \\ \hline
14542
{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
14548
\noindent {\bf Return Type:}
14558
\subsubsection{RPC name:~add\_to\_other\_config}
14561
Add the given key-value pair to the other\_config field of the given
14564
\noindent {\bf Signature:}
14565
\begin{verbatim} void add_to_other_config (session_id s, console ref self, string key, string value)\end{verbatim}
14568
\noindent{\bf Arguments:}
14572
\begin{tabular}{|c|c|p{7cm}|}
14574
{\bf type} & {\bf name} & {\bf description} \\ \hline
14575
{\tt console ref } & self & reference to the object \\ \hline
14577
{\tt string } & key & Key to add \\ \hline
14579
{\tt string } & value & Value to add \\ \hline
14585
\noindent {\bf Return Type:}
14595
\subsubsection{RPC name:~remove\_from\_other\_config}
14598
Remove the given key and its corresponding value from the other\_config
14599
field of the given console. If the key is not in that Map, then do
14602
\noindent {\bf Signature:}
14603
\begin{verbatim} void remove_from_other_config (session_id s, console ref self, string key)\end{verbatim}
14606
\noindent{\bf Arguments:}
14610
\begin{tabular}{|c|c|p{7cm}|}
14612
{\bf type} & {\bf name} & {\bf description} \\ \hline
14613
{\tt console ref } & self & reference to the object \\ \hline
14615
{\tt string } & key & Key to remove \\ \hline
14621
\noindent {\bf Return Type:}
14631
\subsubsection{RPC name:~create}
14634
Create a new console instance, and return its handle.
14636
\noindent {\bf Signature:}
14637
\begin{verbatim} (console ref) create (session_id s, console record args)\end{verbatim}
14640
\noindent{\bf Arguments:}
14644
\begin{tabular}{|c|c|p{7cm}|}
14646
{\bf type} & {\bf name} & {\bf description} \\ \hline
14647
{\tt console record } & args & All constructor arguments \\ \hline
14653
\noindent {\bf Return Type:}
14659
reference to the newly created object
14663
\subsubsection{RPC name:~destroy}
14666
Destroy the specified console instance.
14668
\noindent {\bf Signature:}
14669
\begin{verbatim} void destroy (session_id s, console ref self)\end{verbatim}
14672
\noindent{\bf Arguments:}
14676
\begin{tabular}{|c|c|p{7cm}|}
14678
{\bf type} & {\bf name} & {\bf description} \\ \hline
14679
{\tt console ref } & self & reference to the object \\ \hline
14685
\noindent {\bf Return Type:}
14695
\subsubsection{RPC name:~get\_by\_uuid}
14698
Get a reference to the console instance with the specified UUID.
14700
\noindent {\bf Signature:}
14701
\begin{verbatim} (console ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
14704
\noindent{\bf Arguments:}
14708
\begin{tabular}{|c|c|p{7cm}|}
14710
{\bf type} & {\bf name} & {\bf description} \\ \hline
14711
{\tt string } & uuid & UUID of object to return \\ \hline
14717
\noindent {\bf Return Type:}
14723
reference to the object
14727
\subsubsection{RPC name:~get\_record}
14730
Get a record containing the current state of the given console.
14732
\noindent {\bf Signature:}
14733
\begin{verbatim} (console record) get_record (session_id s, console ref self)\end{verbatim}
14736
\noindent{\bf Arguments:}
14740
\begin{tabular}{|c|c|p{7cm}|}
14742
{\bf type} & {\bf name} & {\bf description} \\ \hline
14743
{\tt console ref } & self & reference to the object \\ \hline
14749
\noindent {\bf Return Type:}
14755
all fields from the object
14762
\section{Class: DPCI}
14763
\subsection{Fields for class: DPCI}
14764
\begin{longtable}{|lllp{0.38\textwidth}|}
14766
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DPCI} \\
14767
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
14768
pass-through PCI device.}} \\
14770
Quals & Field & Type & Description \\
14772
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
14773
$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
14774
$\mathit{RO}_\mathit{inst}$ & {\tt PPCI} & PPCI ref & the physical PCI device \\
14775
$\mathit{RO}_\mathit{inst}$ & {\tt hotplug\_slot} & int & the slot number to which this PCI device is inserted \\
14776
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_domain} & int & the virtual domain number \\
14777
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_bus} & int & the virtual bus number \\
14778
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_slot} & int & the virtual slot number \\
14779
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_func} & int & the virtual func number \\
14780
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_name} & string & the virtual PCI name \\
14783
\subsection{RPCs associated with class: DPCI}
14784
\subsubsection{RPC name:~get\_all}
14787
Return a list of all the DPCIs known to the system.
14789
\noindent {\bf Signature:}
14790
\begin{verbatim} ((DPCI ref) Set) get_all (session_id s)\end{verbatim}
14795
\noindent {\bf Return Type:}
14801
references to all objects
14805
\subsubsection{RPC name:~get\_uuid}
14808
Get the uuid field of the given DPCI.
14810
\noindent {\bf Signature:}
14811
\begin{verbatim} string get_uuid (session_id s, DPCI ref self)\end{verbatim}
14814
\noindent{\bf Arguments:}
14818
\begin{tabular}{|c|c|p{7cm}|}
14820
{\bf type} & {\bf name} & {\bf description} \\ \hline
14821
{\tt DPCI ref } & self & reference to the object \\ \hline
14827
\noindent {\bf Return Type:}
14837
\subsubsection{RPC name:~get\_VM}
14840
Get the VM field of the given DPCI.
14842
\noindent {\bf Signature:}
14843
\begin{verbatim} (VM ref) get_VM (session_id s, DPCI ref self)\end{verbatim}
14846
\noindent{\bf Arguments:}
14850
\begin{tabular}{|c|c|p{7cm}|}
14852
{\bf type} & {\bf name} & {\bf description} \\ \hline
14853
{\tt DPCI ref } & self & reference to the object \\ \hline
14859
\noindent {\bf Return Type:}
14869
\subsubsection{RPC name:~get\_PPCI}
14872
Get the PPCI field of the given DPCI.
14874
\noindent {\bf Signature:}
14875
\begin{verbatim} (PPCI ref) get_PPCI (session_id s, DPCI ref self)\end{verbatim}
14878
\noindent{\bf Arguments:}
14882
\begin{tabular}{|c|c|p{7cm}|}
14884
{\bf type} & {\bf name} & {\bf description} \\ \hline
14885
{\tt DPCI ref } & self & reference to the object \\ \hline
14891
\noindent {\bf Return Type:}
14901
\subsubsection{RPC name:~get\_hotplug\_slot}
14904
Get the hotplug\_slot field of the given DPCI.
14906
\noindent {\bf Signature:}
14907
\begin{verbatim} int get_hotplug_slot (session_id s, DPCI ref self)\end{verbatim}
14910
\noindent{\bf Arguments:}
14914
\begin{tabular}{|c|c|p{7cm}|}
14916
{\bf type} & {\bf name} & {\bf description} \\ \hline
14917
{\tt DPCI ref } & self & reference to the object \\ \hline
14923
\noindent {\bf Return Type:}
14933
\subsubsection{RPC name:~get\_virtual\_domain}
14936
Get the virtual\_domain field of the given DPCI.
14938
\noindent {\bf Signature:}
14939
\begin{verbatim} int get_virtual_domain (session_id s, DPCI ref self)\end{verbatim}
14942
\noindent{\bf Arguments:}
14946
\begin{tabular}{|c|c|p{7cm}|}
14948
{\bf type} & {\bf name} & {\bf description} \\ \hline
14949
{\tt DPCI ref } & self & reference to the object \\ \hline
14955
\noindent {\bf Return Type:}
14965
\subsubsection{RPC name:~get\_virtual\_bus}
14968
Get the virtual\_bus field of the given DPCI.
14970
\noindent {\bf Signature:}
14971
\begin{verbatim} int get_virtual_bus (session_id s, DPCI ref self)\end{verbatim}
14974
\noindent{\bf Arguments:}
14978
\begin{tabular}{|c|c|p{7cm}|}
14980
{\bf type} & {\bf name} & {\bf description} \\ \hline
14981
{\tt DPCI ref } & self & reference to the object \\ \hline
14987
\noindent {\bf Return Type:}
14997
\subsubsection{RPC name:~get\_virtual\_slot}
15000
Get the virtual\_slot field of the given DPCI.
15002
\noindent {\bf Signature:}
15003
\begin{verbatim} int get_virtual_slot (session_id s, DPCI ref self)\end{verbatim}
15006
\noindent{\bf Arguments:}
15010
\begin{tabular}{|c|c|p{7cm}|}
15012
{\bf type} & {\bf name} & {\bf description} \\ \hline
15013
{\tt DPCI ref } & self & reference to the object \\ \hline
15019
\noindent {\bf Return Type:}
15029
\subsubsection{RPC name:~get\_virtual\_func}
15032
Get the virtual\_func field of the given DPCI.
15034
\noindent {\bf Signature:}
15035
\begin{verbatim} int get_virtual_func (session_id s, DPCI ref self)\end{verbatim}
15038
\noindent{\bf Arguments:}
15042
\begin{tabular}{|c|c|p{7cm}|}
15044
{\bf type} & {\bf name} & {\bf description} \\ \hline
15045
{\tt DPCI ref } & self & reference to the object \\ \hline
15051
\noindent {\bf Return Type:}
15061
\subsubsection{RPC name:~get\_virtual\_name}
15064
Get the virtual\_name field of the given DPCI.
15066
\noindent {\bf Signature:}
15067
\begin{verbatim} string get_virtual_name (session_id s, DPCI ref self)\end{verbatim}
15070
\noindent{\bf Arguments:}
15074
\begin{tabular}{|c|c|p{7cm}|}
15076
{\bf type} & {\bf name} & {\bf description} \\ \hline
15077
{\tt DPCI ref } & self & reference to the object \\ \hline
15083
\noindent {\bf Return Type:}
15093
\subsubsection{RPC name:~create}
15096
Create a new DPCI instance, and return its handle.
15098
\noindent {\bf Signature:}
15099
\begin{verbatim} (DPCI ref) create (session_id s, DPCI record args)\end{verbatim}
15102
\noindent{\bf Arguments:}
15106
\begin{tabular}{|c|c|p{7cm}|}
15108
{\bf type} & {\bf name} & {\bf description} \\ \hline
15109
{\tt DPCI record } & args & All constructor arguments \\ \hline
15115
\noindent {\bf Return Type:}
15121
reference to the newly created object
15125
\subsubsection{RPC name:~destroy}
15128
Destroy the specified DPCI instance.
15130
\noindent {\bf Signature:}
15131
\begin{verbatim} void destroy (session_id s, DPCI ref self)\end{verbatim}
15134
\noindent{\bf Arguments:}
15138
\begin{tabular}{|c|c|p{7cm}|}
15140
{\bf type} & {\bf name} & {\bf description} \\ \hline
15141
{\tt DPCI ref } & self & reference to the object \\ \hline
15147
\noindent {\bf Return Type:}
15156
\subsubsection{RPC name:~get\_by\_uuid}
15159
Get a reference to the DPCI instance with the specified UUID.
15161
\noindent {\bf Signature:}
15162
\begin{verbatim} (DPCI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
15165
\noindent{\bf Arguments:}
15169
\begin{tabular}{|c|c|p{7cm}|}
15171
{\bf type} & {\bf name} & {\bf description} \\ \hline
15172
{\tt string } & uuid & UUID of object to return \\ \hline
15178
\noindent {\bf Return Type:}
15184
reference to the object
15188
\subsubsection{RPC name:~get\_record}
15191
Get a record containing the current state of the given DPCI.
15193
\noindent {\bf Signature:}
15194
\begin{verbatim} (DPCI record) get_record (session_id s, DPCI ref self)\end{verbatim}
15197
\noindent{\bf Arguments:}
15201
\begin{tabular}{|c|c|p{7cm}|}
15203
{\bf type} & {\bf name} & {\bf description} \\ \hline
15204
{\tt DPCI ref } & self & reference to the object \\ \hline
15210
\noindent {\bf Return Type:}
15216
all fields from the object
15223
\section{Class: PPCI}
15224
\subsection{Fields for class: PPCI}
15225
\begin{longtable}{|lllp{0.38\textwidth}|}
15227
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PPCI} \\
15228
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
15229
physical PCI device.}} \\
15231
Quals & Field & Type & Description \\
15233
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
15234
$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PPCI is connected \\
15235
$\mathit{RO}_\mathit{run}$ & {\tt domain} & int & the domain number \\
15236
$\mathit{RO}_\mathit{run}$ & {\tt bus} & int & the bus number \\
15237
$\mathit{RO}_\mathit{run}$ & {\tt slot} & int & the slot number \\
15238
$\mathit{RO}_\mathit{run}$ & {\tt func} & int & the func number \\
15239
$\mathit{RO}_\mathit{run}$ & {\tt name} & string & the PCI name \\
15240
$\mathit{RO}_\mathit{run}$ & {\tt vendor\_id} & int & the vendor ID \\
15241
$\mathit{RO}_\mathit{run}$ & {\tt vendor\_name} & string & the vendor name \\
15242
$\mathit{RO}_\mathit{run}$ & {\tt device\_id} & int & the device ID \\
15243
$\mathit{RO}_\mathit{run}$ & {\tt device\_name} & string & the device name \\
15244
$\mathit{RO}_\mathit{run}$ & {\tt revision\_id} & int & the revision ID \\
15245
$\mathit{RO}_\mathit{run}$ & {\tt class\_code} & int & the class code \\
15246
$\mathit{RO}_\mathit{run}$ & {\tt class\_name} & string & the class name \\
15247
$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_vendor\_id} & int & the subsystem vendor ID \\
15248
$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_vendor\_name} & string & the subsystem vendor name \\
15249
$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_id} & int & the subsystem ID \\
15250
$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_name} & string & the subsystem name \\
15251
$\mathit{RO}_\mathit{run}$ & {\tt driver} & string & the driver name \\
15254
\subsection{RPCs associated with class: PPCI}
15255
\subsubsection{RPC name:~get\_all}
15258
Return a list of all the PPCIs known to the system.
15260
\noindent {\bf Signature:}
15261
\begin{verbatim} ((PPCI ref) Set) get_all (session_id s)\end{verbatim}
15266
\noindent {\bf Return Type:}
15272
references to all objects
15276
\subsubsection{RPC name:~get\_uuid}
15279
Get the uuid field of the given PPCI.
15281
\noindent {\bf Signature:}
15282
\begin{verbatim} string get_uuid (session_id s, PPCI ref self)\end{verbatim}
15285
\noindent{\bf Arguments:}
15289
\begin{tabular}{|c|c|p{7cm}|}
15291
{\bf type} & {\bf name} & {\bf description} \\ \hline
15292
{\tt PPCI ref } & self & reference to the object \\ \hline
15298
\noindent {\bf Return Type:}
15308
\subsubsection{RPC name:~get\_host}
15311
Get the host field of the given PPCI.
15313
\noindent {\bf Signature:}
15314
\begin{verbatim} (host ref) get_host (session_id s, PPCI ref self)\end{verbatim}
15317
\noindent{\bf Arguments:}
15321
\begin{tabular}{|c|c|p{7cm}|}
15323
{\bf type} & {\bf name} & {\bf description} \\ \hline
15324
{\tt PPCI ref } & self & reference to the object \\ \hline
15330
\noindent {\bf Return Type:}
15340
\subsubsection{RPC name:~get\_domain}
15343
Get the domain field of the given PPCI.
15345
\noindent {\bf Signature:}
15346
\begin{verbatim} int get_domain (session_id s, PPCI ref self)\end{verbatim}
15349
\noindent{\bf Arguments:}
15353
\begin{tabular}{|c|c|p{7cm}|}
15355
{\bf type} & {\bf name} & {\bf description} \\ \hline
15356
{\tt PPCI ref } & self & reference to the object \\ \hline
15362
\noindent {\bf Return Type:}
15372
\subsubsection{RPC name:~get\_bus}
15375
Get the bus field of the given PPCI.
15377
\noindent {\bf Signature:}
15378
\begin{verbatim} int get_bus (session_id s, PPCI ref self)\end{verbatim}
15381
\noindent{\bf Arguments:}
15385
\begin{tabular}{|c|c|p{7cm}|}
15387
{\bf type} & {\bf name} & {\bf description} \\ \hline
15388
{\tt PPCI ref } & self & reference to the object \\ \hline
15394
\noindent {\bf Return Type:}
15404
\subsubsection{RPC name:~get\_slot}
15407
Get the slot field of the given PPCI.
15409
\noindent {\bf Signature:}
15410
\begin{verbatim} int get_slot (session_id s, PPCI ref self)\end{verbatim}
15413
\noindent{\bf Arguments:}
15417
\begin{tabular}{|c|c|p{7cm}|}
15419
{\bf type} & {\bf name} & {\bf description} \\ \hline
15420
{\tt PPCI ref } & self & reference to the object \\ \hline
15426
\noindent {\bf Return Type:}
15436
\subsubsection{RPC name:~get\_func}
15439
Get the func field of the given PPCI.
15441
\noindent {\bf Signature:}
15442
\begin{verbatim} int get_func (session_id s, PPCI ref self)\end{verbatim}
15445
\noindent{\bf Arguments:}
15449
\begin{tabular}{|c|c|p{7cm}|}
15451
{\bf type} & {\bf name} & {\bf description} \\ \hline
15452
{\tt PPCI ref } & self & reference to the object \\ \hline
15458
\noindent {\bf Return Type:}
15468
\subsubsection{RPC name:~get\_name}
15471
Get the name field of the given PPCI.
15473
\noindent {\bf Signature:}
15474
\begin{verbatim} string get_name (session_id s, PPCI ref self)\end{verbatim}
15477
\noindent{\bf Arguments:}
15481
\begin{tabular}{|c|c|p{7cm}|}
15483
{\bf type} & {\bf name} & {\bf description} \\ \hline
15484
{\tt PPCI ref } & self & reference to the object \\ \hline
15490
\noindent {\bf Return Type:}
15500
\subsubsection{RPC name:~get\_vendor\_id}
15503
Get the vendor\_id field of the given PPCI.
15505
\noindent {\bf Signature:}
15506
\begin{verbatim} int get_vendor_id (session_id s, PPCI ref self)\end{verbatim}
15509
\noindent{\bf Arguments:}
15513
\begin{tabular}{|c|c|p{7cm}|}
15515
{\bf type} & {\bf name} & {\bf description} \\ \hline
15516
{\tt PPCI ref } & self & reference to the object \\ \hline
15522
\noindent {\bf Return Type:}
15532
\subsubsection{RPC name:~get\_vendor\_name}
15535
Get the vendor\_name field of the given PPCI.
15537
\noindent {\bf Signature:}
15538
\begin{verbatim} string get_vendor_name (session_id s, PPCI ref self)\end{verbatim}
15541
\noindent{\bf Arguments:}
15545
\begin{tabular}{|c|c|p{7cm}|}
15547
{\bf type} & {\bf name} & {\bf description} \\ \hline
15548
{\tt PPCI ref } & self & reference to the object \\ \hline
15554
\noindent {\bf Return Type:}
15564
\subsubsection{RPC name:~get\_device\_id}
15567
Get the device\_id field of the given PPCI.
15569
\noindent {\bf Signature:}
15570
\begin{verbatim} int get_device_id (session_id s, PPCI ref self)\end{verbatim}
15573
\noindent{\bf Arguments:}
15577
\begin{tabular}{|c|c|p{7cm}|}
15579
{\bf type} & {\bf name} & {\bf description} \\ \hline
15580
{\tt PPCI ref } & self & reference to the object \\ \hline
15586
\noindent {\bf Return Type:}
15596
\subsubsection{RPC name:~get\_device\_name}
15599
Get the device\_name field of the given PPCI.
15601
\noindent {\bf Signature:}
15602
\begin{verbatim} string get_device_name (session_id s, PPCI ref self)\end{verbatim}
15605
\noindent{\bf Arguments:}
15609
\begin{tabular}{|c|c|p{7cm}|}
15611
{\bf type} & {\bf name} & {\bf description} \\ \hline
15612
{\tt PPCI ref } & self & reference to the object \\ \hline
15618
\noindent {\bf Return Type:}
15628
\subsubsection{RPC name:~get\_revision\_id}
15631
Get the revision\_id field of the given PPCI.
15633
\noindent {\bf Signature:}
15634
\begin{verbatim} int get_revision_id (session_id s, PPCI ref self)\end{verbatim}
15637
\noindent{\bf Arguments:}
15641
\begin{tabular}{|c|c|p{7cm}|}
15643
{\bf type} & {\bf name} & {\bf description} \\ \hline
15644
{\tt PPCI ref } & self & reference to the object \\ \hline
15650
\noindent {\bf Return Type:}
15660
\subsubsection{RPC name:~get\_class\_code}
15663
Get the class\_code field of the given PPCI.
15665
\noindent {\bf Signature:}
15666
\begin{verbatim} int get_class_code (session_id s, PPCI ref self)\end{verbatim}
15669
\noindent{\bf Arguments:}
15673
\begin{tabular}{|c|c|p{7cm}|}
15675
{\bf type} & {\bf name} & {\bf description} \\ \hline
15676
{\tt PPCI ref } & self & reference to the object \\ \hline
15682
\noindent {\bf Return Type:}
15692
\subsubsection{RPC name:~get\_class\_name}
15695
Get the class\_name field of the given PPCI.
15697
\noindent {\bf Signature:}
15698
\begin{verbatim} string get_class_name (session_id s, PPCI ref self)\end{verbatim}
15701
\noindent{\bf Arguments:}
15705
\begin{tabular}{|c|c|p{7cm}|}
15707
{\bf type} & {\bf name} & {\bf description} \\ \hline
15708
{\tt PPCI ref } & self & reference to the object \\ \hline
15714
\noindent {\bf Return Type:}
15724
\subsubsection{RPC name:~get\_subsystem\_vendor\_id}
15727
Get the subsystem\_vendor\_id field of the given PPCI.
15729
\noindent {\bf Signature:}
15730
\begin{verbatim} int get_subsystem_vendor_id (session_id s, PPCI ref self)\end{verbatim}
15733
\noindent{\bf Arguments:}
15737
\begin{tabular}{|c|c|p{7cm}|}
15739
{\bf type} & {\bf name} & {\bf description} \\ \hline
15740
{\tt PPCI ref } & self & reference to the object \\ \hline
15746
\noindent {\bf Return Type:}
15756
\subsubsection{RPC name:~get\_subsystem\_vendor\_name}
15759
Get the subsystem\_vendor\_name field of the given PPCI.
15761
\noindent {\bf Signature:}
15762
\begin{verbatim} string get_subsystem_vendor_name (session_id s, PPCI ref self)\end{verbatim}
15765
\noindent{\bf Arguments:}
15769
\begin{tabular}{|c|c|p{7cm}|}
15771
{\bf type} & {\bf name} & {\bf description} \\ \hline
15772
{\tt PPCI ref } & self & reference to the object \\ \hline
15778
\noindent {\bf Return Type:}
15788
\subsubsection{RPC name:~get\_subsystem\_id}
15791
Get the subsystem\_id field of the given PPCI.
15793
\noindent {\bf Signature:}
15794
\begin{verbatim} int get_subsystem_id (session_id s, PPCI ref self)\end{verbatim}
15797
\noindent{\bf Arguments:}
15801
\begin{tabular}{|c|c|p{7cm}|}
15803
{\bf type} & {\bf name} & {\bf description} \\ \hline
15804
{\tt PPCI ref } & self & reference to the object \\ \hline
15810
\noindent {\bf Return Type:}
15820
\subsubsection{RPC name:~get\_subsystem\_name}
15823
Get the subsystem\_name field of the given PPCI.
15825
\noindent {\bf Signature:}
15826
\begin{verbatim} string get_subsystem_name (session_id s, PPCI ref self)\end{verbatim}
15829
\noindent{\bf Arguments:}
15833
\begin{tabular}{|c|c|p{7cm}|}
15835
{\bf type} & {\bf name} & {\bf description} \\ \hline
15836
{\tt PPCI ref } & self & reference to the object \\ \hline
15842
\noindent {\bf Return Type:}
15852
\subsubsection{RPC name:~get\_driver}
15855
Get the driver field of the given PPCI.
15857
\noindent {\bf Signature:}
15858
\begin{verbatim} string get_driver (session_id s, PPCI ref self)\end{verbatim}
15861
\noindent{\bf Arguments:}
15865
\begin{tabular}{|c|c|p{7cm}|}
15867
{\bf type} & {\bf name} & {\bf description} \\ \hline
15868
{\tt PPCI ref } & self & reference to the object \\ \hline
15874
\noindent {\bf Return Type:}
15884
\subsubsection{RPC name:~get\_by\_uuid}
15887
Get a reference to the PPCI instance with the specified UUID.
15889
\noindent {\bf Signature:}
15890
\begin{verbatim} (PPCI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
15893
\noindent{\bf Arguments:}
15897
\begin{tabular}{|c|c|p{7cm}|}
15899
{\bf type} & {\bf name} & {\bf description} \\ \hline
15900
{\tt string } & uuid & UUID of object to return \\ \hline
15906
\noindent {\bf Return Type:}
15912
reference to the object
15916
\subsubsection{RPC name:~get\_record}
15919
Get a record containing the current state of the given PPCI.
15921
\noindent {\bf Signature:}
15922
\begin{verbatim} (PPCI record) get_record (session_id s, PPCI ref self)\end{verbatim}
15925
\noindent{\bf Arguments:}
15929
\begin{tabular}{|c|c|p{7cm}|}
15931
{\bf type} & {\bf name} & {\bf description} \\ \hline
15932
{\tt PPCI ref } & self & reference to the object \\ \hline
15938
\noindent {\bf Return Type:}
15944
all fields from the object
15951
\section{Class: DSCSI}
15952
\subsection{Fields for class: DSCSI}
15953
\begin{longtable}{|lllp{0.38\textwidth}|}
15955
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DSCSI} \\
15956
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
15957
half-virtualized SCSI device.}} \\
15959
Quals & Field & Type & Description \\
15961
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
15962
$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
15963
$\mathit{RO}_\mathit{inst}$ & {\tt PSCSI} & PSCSI ref & the physical SCSI device \\
15964
$\mathit{RO}_\mathit{run}$ & {\tt HBA} & DSCSI\_HBA ref & the half-virtualized SCSI host bus adapter \\
15965
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_host} & int & the virtual host number \\
15966
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_channel} & int & the virtual channel number \\
15967
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_target} & int & the virtual target number \\
15968
$\mathit{RO}_\mathit{run}$ & {\tt virtual\_lun} & int & the virtual logical unit number \\
15969
$\mathit{RO}_\mathit{inst}$ & {\tt virtual\_HCTL} & string & the virtual HCTL \\
15970
$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
15973
\subsection{RPCs associated with class: DSCSI}
15974
\subsubsection{RPC name:~get\_all}
15977
Return a list of all the DSCSIs known to the system.
15979
\noindent {\bf Signature:}
15980
\begin{verbatim} ((DSCSI ref) Set) get_all (session_id s)\end{verbatim}
15985
\noindent {\bf Return Type:}
15991
references to all objects
15995
\subsubsection{RPC name:~get\_uuid}
15998
Get the uuid field of the given DSCSI.
16000
\noindent {\bf Signature:}
16001
\begin{verbatim} string get_uuid (session_id s, DSCSI ref self)\end{verbatim}
16004
\noindent{\bf Arguments:}
16008
\begin{tabular}{|c|c|p{7cm}|}
16010
{\bf type} & {\bf name} & {\bf description} \\ \hline
16011
{\tt DSCSI ref } & self & reference to the object \\ \hline
16017
\noindent {\bf Return Type:}
16027
\subsubsection{RPC name:~get\_VM}
16030
Get the VM field of the given DSCSI.
16032
\noindent {\bf Signature:}
16033
\begin{verbatim} (VM ref) get_VM (session_id s, DSCSI ref self)\end{verbatim}
16036
\noindent{\bf Arguments:}
16040
\begin{tabular}{|c|c|p{7cm}|}
16042
{\bf type} & {\bf name} & {\bf description} \\ \hline
16043
{\tt DSCSI ref } & self & reference to the object \\ \hline
16049
\noindent {\bf Return Type:}
16059
\subsubsection{RPC name:~get\_PSCSI}
16062
Get the PSCSI field of the given DSCSI.
16064
\noindent {\bf Signature:}
16065
\begin{verbatim} (PSCSI ref) get_PSCSI (session_id s, DSCSI ref self)\end{verbatim}
16068
\noindent{\bf Arguments:}
16072
\begin{tabular}{|c|c|p{7cm}|}
16074
{\bf type} & {\bf name} & {\bf description} \\ \hline
16075
{\tt DSCSI ref } & self & reference to the object \\ \hline
16081
\noindent {\bf Return Type:}
16091
\subsubsection{RPC name:~get\_HBA}
16094
Get the HBA field of the given DSCSI.
16096
\noindent {\bf Signature:}
16097
\begin{verbatim} (DSCSI_HBA ref) get_HBA (session_id s, DSCSI ref self)\end{verbatim}
16100
\noindent{\bf Arguments:}
16104
\begin{tabular}{|c|c|p{7cm}|}
16106
{\bf type} & {\bf name} & {\bf description} \\ \hline
16107
{\tt DSCSI ref } & self & reference to the object \\ \hline
16113
\noindent {\bf Return Type:}
16123
\subsubsection{RPC name:~get\_virtual\_host}
16126
Get the virtual\_host field of the given DSCSI.
16128
\noindent {\bf Signature:}
16129
\begin{verbatim} int get_virtual_host (session_id s, DSCSI ref self)\end{verbatim}
16132
\noindent{\bf Arguments:}
16136
\begin{tabular}{|c|c|p{7cm}|}
16138
{\bf type} & {\bf name} & {\bf description} \\ \hline
16139
{\tt DSCSI ref } & self & reference to the object \\ \hline
16145
\noindent {\bf Return Type:}
16155
\subsubsection{RPC name:~get\_virtual\_channel}
16158
Get the virtual\_channel field of the given DSCSI.
16160
\noindent {\bf Signature:}
16161
\begin{verbatim} int get_virtual_channel (session_id s, DSCSI ref self)\end{verbatim}
16164
\noindent{\bf Arguments:}
16168
\begin{tabular}{|c|c|p{7cm}|}
16170
{\bf type} & {\bf name} & {\bf description} \\ \hline
16171
{\tt DSCSI ref } & self & reference to the object \\ \hline
16177
\noindent {\bf Return Type:}
16187
\subsubsection{RPC name:~get\_virtual\_target}
16190
Get the virtual\_target field of the given DSCSI.
16192
\noindent {\bf Signature:}
16193
\begin{verbatim} int get_virtual_target (session_id s, DSCSI ref self)\end{verbatim}
16196
\noindent{\bf Arguments:}
16200
\begin{tabular}{|c|c|p{7cm}|}
16202
{\bf type} & {\bf name} & {\bf description} \\ \hline
16203
{\tt DSCSI ref } & self & reference to the object \\ \hline
16209
\noindent {\bf Return Type:}
16219
\subsubsection{RPC name:~get\_virtual\_lun}
16222
Get the virtual\_lun field of the given DSCSI.
16224
\noindent {\bf Signature:}
16225
\begin{verbatim} int get_virtual_lun (session_id s, DSCSI ref self)\end{verbatim}
16228
\noindent{\bf Arguments:}
16232
\begin{tabular}{|c|c|p{7cm}|}
16234
{\bf type} & {\bf name} & {\bf description} \\ \hline
16235
{\tt DSCSI ref } & self & reference to the object \\ \hline
16241
\noindent {\bf Return Type:}
16251
\subsubsection{RPC name:~get\_virtual\_HCTL}
16254
Get the virtual\_HCTL field of the given DSCSI.
16256
\noindent {\bf Signature:}
16257
\begin{verbatim} string get_virtual_HCTL (session_id s, DSCSI ref self)\end{verbatim}
16260
\noindent{\bf Arguments:}
16264
\begin{tabular}{|c|c|p{7cm}|}
16266
{\bf type} & {\bf name} & {\bf description} \\ \hline
16267
{\tt DSCSI ref } & self & reference to the object \\ \hline
16273
\noindent {\bf Return Type:}
16283
\subsubsection{RPC name:~get\_runtime\_properties}
16286
Get the runtime\_properties field of the given DSCSI.
16288
\noindent {\bf Signature:}
16289
\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, DSCSI ref self)\end{verbatim}
16292
\noindent{\bf Arguments:}
16296
\begin{tabular}{|c|c|p{7cm}|}
16298
{\bf type} & {\bf name} & {\bf description} \\ \hline
16299
{\tt DSCSI ref } & self & reference to the object \\ \hline
16305
\noindent {\bf Return Type:}
16307
(string $\rightarrow$ string) Map
16315
\subsubsection{RPC name:~create}
16318
Create a new DSCSI instance, and create a new DSCSI\_HBA instance as needed
16319
that the new DSCSI instance connects to, and return the handle of the new
16322
\noindent {\bf Signature:}
16323
\begin{verbatim} (DSCSI ref) create (session_id s, DSCSI record args)\end{verbatim}
16326
\noindent{\bf Arguments:}
16330
\begin{tabular}{|c|c|p{7cm}|}
16332
{\bf type} & {\bf name} & {\bf description} \\ \hline
16333
{\tt DSCSI record } & args & All constructor arguments \\ \hline
16339
\noindent {\bf Return Type:}
16345
reference to the newly created object
16349
\subsubsection{RPC name:~destroy}
16352
Destroy the specified DSCSI instance, and destroy a DSCSI\_HBA instance as
16353
needed that the specified DSCSI instance connects to.
16355
\noindent {\bf Signature:}
16356
\begin{verbatim} void destroy (session_id s, DSCSI ref self)\end{verbatim}
16359
\noindent{\bf Arguments:}
16363
\begin{tabular}{|c|c|p{7cm}|}
16365
{\bf type} & {\bf name} & {\bf description} \\ \hline
16366
{\tt DSCSI ref } & self & reference to the object \\ \hline
16372
\noindent {\bf Return Type:}
16381
\subsubsection{RPC name:~get\_by\_uuid}
16384
Get a reference to the DSCSI instance with the specified UUID.
16386
\noindent {\bf Signature:}
16387
\begin{verbatim} (DSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
16390
\noindent{\bf Arguments:}
16394
\begin{tabular}{|c|c|p{7cm}|}
16396
{\bf type} & {\bf name} & {\bf description} \\ \hline
16397
{\tt string } & uuid & UUID of object to return \\ \hline
16403
\noindent {\bf Return Type:}
16409
reference to the object
16413
\subsubsection{RPC name:~get\_record}
16416
Get a record containing the current state of the given DSCSI.
16418
\noindent {\bf Signature:}
16419
\begin{verbatim} (DSCSI record) get_record (session_id s, DSCSI ref self)\end{verbatim}
16422
\noindent{\bf Arguments:}
16426
\begin{tabular}{|c|c|p{7cm}|}
16428
{\bf type} & {\bf name} & {\bf description} \\ \hline
16429
{\tt DSCSI ref } & self & reference to the object \\ \hline
16435
\noindent {\bf Return Type:}
16441
all fields from the object
16448
\section{Class: DSCSI\_HBA}
16449
\subsection{Fields for class: DSCSI\_HBA}
16450
\begin{longtable}{|lllp{0.38\textwidth}|}
16452
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DSCSI\_HBA} \\
16453
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
16454
half-virtualized SCSI host bus adapter.}} \\
16456
Quals & Field & Type & Description \\
16458
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
16459
$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
16460
$\mathit{RO}_\mathit{run}$ & {\tt PSCSI\_HBAs} & (PSCSI\_HBA ref) Set & the physical SCSI HBAs \\
16461
$\mathit{RO}_\mathit{run}$ & {\tt DSCSIs} & (DSCSI ref) Set & the half-virtualized SCSI devices which are connected to this DSCSI HBA \\
16462
$\mathit{RO}_\mathit{inst}$ & {\tt virtual\_host} & int & the virtual host number \\
16463
$\mathit{RO}_\mathit{inst}$ & {\tt assignment\_mode} & string & the assignment mode of the half-virtualized SCSI devices which are connected to this DSCSI HBA \\
16466
\subsection{RPCs associated with class: DSCSI\_HBA}
16467
\subsubsection{RPC name:~get\_all}
16470
Return a list of all the DSCSI HBAs known to the system.
16472
\noindent {\bf Signature:}
16473
\begin{verbatim} ((DSCSI_HBA ref) Set) get_all (session_id s)\end{verbatim}
16478
\noindent {\bf Return Type:}
16480
(DSCSI\_HBA ref) Set
16484
references to all objects
16488
\subsubsection{RPC name:~get\_uuid}
16491
Get the uuid field of the given DSCSI HBA.
16493
\noindent {\bf Signature:}
16494
\begin{verbatim} string get_uuid (session_id s, DSCSI_HBA ref self)\end{verbatim}
16497
\noindent{\bf Arguments:}
16501
\begin{tabular}{|c|c|p{7cm}|}
16503
{\bf type} & {\bf name} & {\bf description} \\ \hline
16504
{\tt DSCSI ref } & self & reference to the object \\ \hline
16510
\noindent {\bf Return Type:}
16520
\subsubsection{RPC name:~get\_VM}
16523
Get the VM field of the given DSCSI HBA.
16525
\noindent {\bf Signature:}
16526
\begin{verbatim} (VM ref) get_VM (session_id s, DSCSI_HBA ref self)\end{verbatim}
16529
\noindent{\bf Arguments:}
16533
\begin{tabular}{|c|c|p{7cm}|}
16535
{\bf type} & {\bf name} & {\bf description} \\ \hline
16536
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16542
\noindent {\bf Return Type:}
16552
\subsubsection{RPC name:~get\_PSCSI\_HBAs}
16555
Get the PSCSI\_HBAs field of the given DSCSI HBA.
16557
\noindent {\bf Signature:}
16558
\begin{verbatim} ((PSCSI_HBA ref) Set) get_PSCSI_HBAs (session_id s, DSCSI_HBA ref self)\end{verbatim}
16561
\noindent{\bf Arguments:}
16565
\begin{tabular}{|c|c|p{7cm}|}
16567
{\bf type} & {\bf name} & {\bf description} \\ \hline
16568
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16574
\noindent {\bf Return Type:}
16576
(PSCSI\_HBA ref) Set
16584
\subsubsection{RPC name:~get\_DSCSIs}
16587
Get the DSCSIs field of the given DSCSI HBA.
16589
\noindent {\bf Signature:}
16590
\begin{verbatim} ((DSCSI ref) Set) get_DSCSIs (session_id s, DSCSI_HBA ref self)\end{verbatim}
16593
\noindent{\bf Arguments:}
16597
\begin{tabular}{|c|c|p{7cm}|}
16599
{\bf type} & {\bf name} & {\bf description} \\ \hline
16600
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16606
\noindent {\bf Return Type:}
16616
\subsubsection{RPC name:~get\_virtual\_host}
16619
Get the virtual\_host field of the given DSCSI HBA.
16621
\noindent {\bf Signature:}
16622
\begin{verbatim} int get_virtual_host (session_id s, DSCSI_HBA ref self)\end{verbatim}
16625
\noindent{\bf Arguments:}
16629
\begin{tabular}{|c|c|p{7cm}|}
16631
{\bf type} & {\bf name} & {\bf description} \\ \hline
16632
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16638
\noindent {\bf Return Type:}
16648
\subsubsection{RPC name:~get\_assignment\_mode}
16651
Get the assignment\_mode field of the given DSCSI HBA.
16653
\noindent {\bf Signature:}
16654
\begin{verbatim} string get_assignment_mode (session_id s, DSCSI_HBA ref self)\end{verbatim}
16657
\noindent{\bf Arguments:}
16661
\begin{tabular}{|c|c|p{7cm}|}
16663
{\bf type} & {\bf name} & {\bf description} \\ \hline
16664
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16670
\noindent {\bf Return Type:}
16680
\subsubsection{RPC name:~create}
16683
Create a new DSCSI\_HBA instance, and create new DSCSI instances of
16684
half-virtualized SCSI devices which are connected to the half-virtualized
16685
SCSI host bus adapter, and return the handle of the new DSCSI\_HBA instance.
16687
\noindent {\bf Signature:}
16688
\begin{verbatim} (DSCSI_HBA ref) create (session_id s, DSCSI_HBA record args)\end{verbatim}
16691
\noindent{\bf Arguments:}
16695
\begin{tabular}{|c|c|p{7cm}|}
16697
{\bf type} & {\bf name} & {\bf description} \\ \hline
16698
{\tt DSCSI\_HBA record } & args & All constructor arguments \\ \hline
16704
\noindent {\bf Return Type:}
16710
reference to the newly created object
16714
\subsubsection{RPC name:~destroy}
16717
Destroy the specified DSCSI\_HBA instance, and destroy DSCSI instances of
16718
half-virtualized SCSI devices which are connected to the half-virtualized SCSI
16721
\noindent {\bf Signature:}
16722
\begin{verbatim} void destroy (session_id s, DSCSI_HBA ref self)\end{verbatim}
16725
\noindent{\bf Arguments:}
16729
\begin{tabular}{|c|c|p{7cm}|}
16731
{\bf type} & {\bf name} & {\bf description} \\ \hline
16732
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16738
\noindent {\bf Return Type:}
16747
\subsubsection{RPC name:~get\_by\_uuid}
16750
Get a reference to the DSCSI\_HBA instance with the specified UUID.
16752
\noindent {\bf Signature:}
16753
\begin{verbatim} (DSCSI_HBA ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
16756
\noindent{\bf Arguments:}
16760
\begin{tabular}{|c|c|p{7cm}|}
16762
{\bf type} & {\bf name} & {\bf description} \\ \hline
16763
{\tt string } & uuid & UUID of object to return \\ \hline
16769
\noindent {\bf Return Type:}
16775
reference to the object
16779
\subsubsection{RPC name:~get\_record}
16782
Get a record containing the current state of the given DSCSI HBA.
16784
\noindent {\bf Signature:}
16785
\begin{verbatim} (DSCSI_HBA record) get_record (session_id s, DSCSI_HBA ref self)\end{verbatim}
16788
\noindent{\bf Arguments:}
16792
\begin{tabular}{|c|c|p{7cm}|}
16794
{\bf type} & {\bf name} & {\bf description} \\ \hline
16795
{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
16801
\noindent {\bf Return Type:}
16807
all fields from the object
16814
\section{Class: PSCSI}
16815
\subsection{Fields for class: PSCSI}
16816
\begin{longtable}{|lllp{0.38\textwidth}|}
16818
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI} \\
16819
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
16820
physical SCSI device.}} \\
16822
Quals & Field & Type & Description \\
16824
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
16825
$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PSCSI is connected \\
16826
$\mathit{RO}_\mathit{run}$ & {\tt HBA} & PSCSI\_HBA ref & the physical SCSI host bus adapter \\
16827
$\mathit{RO}_\mathit{run}$ & {\tt physical\_host} & int & the physical host number \\
16828
$\mathit{RO}_\mathit{run}$ & {\tt physical\_channel} & int & the physical channel number \\
16829
$\mathit{RO}_\mathit{run}$ & {\tt physical\_target} & int & the physical target number \\
16830
$\mathit{RO}_\mathit{run}$ & {\tt physical\_lun} & int & the physical logical unit number \\
16831
$\mathit{RO}_\mathit{run}$ & {\tt physical\_HCTL} & string & the physical HCTL \\
16832
$\mathit{RO}_\mathit{run}$ & {\tt vendor\_name} & string & the vendor name \\
16833
$\mathit{RO}_\mathit{run}$ & {\tt model} & string & the model \\
16834
$\mathit{RO}_\mathit{run}$ & {\tt type\_id} & int & the SCSI type ID \\
16835
$\mathit{RO}_\mathit{run}$ & {\tt type} & string & the SCSI type \\
16836
$\mathit{RO}_\mathit{run}$ & {\tt dev\_name} & string & the SCSI device name (e.g. sda or st0) \\
16837
$\mathit{RO}_\mathit{run}$ & {\tt sg\_name} & string & the SCSI generic device name (e.g. sg0) \\
16838
$\mathit{RO}_\mathit{run}$ & {\tt revision} & string & the revision \\
16839
$\mathit{RO}_\mathit{run}$ & {\tt scsi\_id} & string & the SCSI ID \\
16840
$\mathit{RO}_\mathit{run}$ & {\tt scsi\_level} & int & the SCSI level \\
16843
\subsection{RPCs associated with class: PSCSI}
16844
\subsubsection{RPC name:~get\_all}
16847
Return a list of all the PSCSIs known to the system.
16849
\noindent {\bf Signature:}
16850
\begin{verbatim} ((PSCSI ref) Set) get_all (session_id s)\end{verbatim}
16855
\noindent {\bf Return Type:}
16861
references to all objects
16865
\subsubsection{RPC name:~get\_uuid}
16868
Get the uuid field of the given PSCSI.
16870
\noindent {\bf Signature:}
16871
\begin{verbatim} string get_uuid (session_id s, PSCSI ref self)\end{verbatim}
16874
\noindent{\bf Arguments:}
16878
\begin{tabular}{|c|c|p{7cm}|}
16880
{\bf type} & {\bf name} & {\bf description} \\ \hline
16881
{\tt PSCSI ref } & self & reference to the object \\ \hline
16887
\noindent {\bf Return Type:}
16897
\subsubsection{RPC name:~get\_host}
16900
Get the host field of the given PSCSI.
16902
\noindent {\bf Signature:}
16903
\begin{verbatim} (host ref) get_host (session_id s, PSCSI ref self)\end{verbatim}
16906
\noindent{\bf Arguments:}
16910
\begin{tabular}{|c|c|p{7cm}|}
16912
{\bf type} & {\bf name} & {\bf description} \\ \hline
16913
{\tt PSCSI ref } & self & reference to the object \\ \hline
16919
\noindent {\bf Return Type:}
16929
\subsubsection{RPC name:~get\_HBA}
16932
Get the HBA field of the given PSCSI.
16934
\noindent {\bf Signature:}
16935
\begin{verbatim} (PSCSI_HBA ref) get_HBA (session_id s, PSCSI ref self)\end{verbatim}
16938
\noindent{\bf Arguments:}
16942
\begin{tabular}{|c|c|p{7cm}|}
16944
{\bf type} & {\bf name} & {\bf description} \\ \hline
16945
{\tt PSCSI ref } & self & reference to the object \\ \hline
16951
\noindent {\bf Return Type:}
16961
\subsubsection{RPC name:~get\_physical\_host}
16964
Get the physical\_host field of the given PSCSI.
16966
\noindent {\bf Signature:}
16967
\begin{verbatim} int get_physical_host (session_id s, PSCSI ref self)\end{verbatim}
16970
\noindent{\bf Arguments:}
16974
\begin{tabular}{|c|c|p{7cm}|}
16976
{\bf type} & {\bf name} & {\bf description} \\ \hline
16977
{\tt PSCSI ref } & self & reference to the object \\ \hline
16983
\noindent {\bf Return Type:}
16993
\subsubsection{RPC name:~get\_physical\_channel}
16996
Get the physical\_channel field of the given PSCSI.
16998
\noindent {\bf Signature:}
16999
\begin{verbatim} int get_physical_channel (session_id s, PSCSI ref self)\end{verbatim}
17002
\noindent{\bf Arguments:}
17006
\begin{tabular}{|c|c|p{7cm}|}
17008
{\bf type} & {\bf name} & {\bf description} \\ \hline
17009
{\tt PSCSI ref } & self & reference to the object \\ \hline
17015
\noindent {\bf Return Type:}
17025
\subsubsection{RPC name:~get\_physical\_target}
17028
Get the physical\_target field of the given PSCSI.
17030
\noindent {\bf Signature:}
17031
\begin{verbatim} int get_physical_target (session_id s, PSCSI ref self)\end{verbatim}
17034
\noindent{\bf Arguments:}
17038
\begin{tabular}{|c|c|p{7cm}|}
17040
{\bf type} & {\bf name} & {\bf description} \\ \hline
17041
{\tt PSCSI ref } & self & reference to the object \\ \hline
17047
\noindent {\bf Return Type:}
17057
\subsubsection{RPC name:~get\_physical\_lun}
17060
Get the physical\_lun field of the given PSCSI.
17062
\noindent {\bf Signature:}
17063
\begin{verbatim} int get_physical_lun (session_id s, PSCSI ref self)\end{verbatim}
17066
\noindent{\bf Arguments:}
17070
\begin{tabular}{|c|c|p{7cm}|}
17072
{\bf type} & {\bf name} & {\bf description} \\ \hline
17073
{\tt PSCSI ref } & self & reference to the object \\ \hline
17079
\noindent {\bf Return Type:}
17089
\subsubsection{RPC name:~get\_physical\_HCTL}
17092
Get the physical\_HCTL field of the given PSCSI.
17094
\noindent {\bf Signature:}
17095
\begin{verbatim} string get_physical_HCTL (session_id s, PSCSI ref self)\end{verbatim}
17098
\noindent{\bf Arguments:}
17102
\begin{tabular}{|c|c|p{7cm}|}
17104
{\bf type} & {\bf name} & {\bf description} \\ \hline
17105
{\tt PSCSI ref } & self & reference to the object \\ \hline
17111
\noindent {\bf Return Type:}
17121
\subsubsection{RPC name:~get\_vendor\_name}
17124
Get the vendor\_name field of the given PSCSI.
17126
\noindent {\bf Signature:}
17127
\begin{verbatim} string get_vendor_name (session_id s, PSCSI ref self)\end{verbatim}
17130
\noindent{\bf Arguments:}
17134
\begin{tabular}{|c|c|p{7cm}|}
17136
{\bf type} & {\bf name} & {\bf description} \\ \hline
17137
{\tt PSCSI ref } & self & reference to the object \\ \hline
17143
\noindent {\bf Return Type:}
17153
\subsubsection{RPC name:~get\_model}
17156
Get the model field of the given PSCSI.
17158
\noindent {\bf Signature:}
17159
\begin{verbatim} string get_model (session_id s, PSCSI ref self)\end{verbatim}
17162
\noindent{\bf Arguments:}
17166
\begin{tabular}{|c|c|p{7cm}|}
17168
{\bf type} & {\bf name} & {\bf description} \\ \hline
17169
{\tt PSCSI ref } & self & reference to the object \\ \hline
17175
\noindent {\bf Return Type:}
17185
\subsubsection{RPC name:~get\_type\_id}
17188
Get the type\_id field of the given PSCSI.
17190
\noindent {\bf Signature:}
17191
\begin{verbatim} int get_type_id (session_id s, PSCSI ref self)\end{verbatim}
17194
\noindent{\bf Arguments:}
17198
\begin{tabular}{|c|c|p{7cm}|}
17200
{\bf type} & {\bf name} & {\bf description} \\ \hline
17201
{\tt PSCSI ref } & self & reference to the object \\ \hline
17207
\noindent {\bf Return Type:}
17217
\subsubsection{RPC name:~get\_type}
17220
Get the type field of the given PSCSI.
17222
\noindent {\bf Signature:}
17223
\begin{verbatim} string get_type (session_id s, PSCSI ref self)\end{verbatim}
17226
\noindent{\bf Arguments:}
17230
\begin{tabular}{|c|c|p{7cm}|}
17232
{\bf type} & {\bf name} & {\bf description} \\ \hline
17233
{\tt PSCSI ref } & self & reference to the object \\ \hline
17239
\noindent {\bf Return Type:}
17249
\subsubsection{RPC name:~get\_dev\_name}
17252
Get the dev\_name field of the given PSCSI.
17254
\noindent {\bf Signature:}
17255
\begin{verbatim} string get_dev_name (session_id s, PSCSI ref self)\end{verbatim}
17258
\noindent{\bf Arguments:}
17262
\begin{tabular}{|c|c|p{7cm}|}
17264
{\bf type} & {\bf name} & {\bf description} \\ \hline
17265
{\tt PSCSI ref } & self & reference to the object \\ \hline
17271
\noindent {\bf Return Type:}
17281
\subsubsection{RPC name:~get\_sg\_name}
17284
Get the sg\_name field of the given PSCSI.
17286
\noindent {\bf Signature:}
17287
\begin{verbatim} string get_sg_name (session_id s, PSCSI ref self)\end{verbatim}
17290
\noindent{\bf Arguments:}
17294
\begin{tabular}{|c|c|p{7cm}|}
17296
{\bf type} & {\bf name} & {\bf description} \\ \hline
17297
{\tt PSCSI ref } & self & reference to the object \\ \hline
17303
\noindent {\bf Return Type:}
17313
\subsubsection{RPC name:~get\_revision}
17316
Get the revision field of the given PSCSI.
17318
\noindent {\bf Signature:}
17319
\begin{verbatim} string get_revision (session_id s, PSCSI ref self)\end{verbatim}
17322
\noindent{\bf Arguments:}
17326
\begin{tabular}{|c|c|p{7cm}|}
17328
{\bf type} & {\bf name} & {\bf description} \\ \hline
17329
{\tt PSCSI ref } & self & reference to the object \\ \hline
17335
\noindent {\bf Return Type:}
17345
\subsubsection{RPC name:~get\_scsi\_id}
17348
Get the scsi\_id field of the given PSCSI.
17350
\noindent {\bf Signature:}
17351
\begin{verbatim} string get_scsi_id (session_id s, PSCSI ref self)\end{verbatim}
17354
\noindent{\bf Arguments:}
17358
\begin{tabular}{|c|c|p{7cm}|}
17360
{\bf type} & {\bf name} & {\bf description} \\ \hline
17361
{\tt PSCSI ref } & self & reference to the object \\ \hline
17367
\noindent {\bf Return Type:}
17377
\subsubsection{RPC name:~get\_scsi\_level}
17380
Get the scsi\_level field of the given PSCSI.
17382
\noindent {\bf Signature:}
17383
\begin{verbatim} int get_scsi_level (session_id s, PSCSI ref self)\end{verbatim}
17386
\noindent{\bf Arguments:}
17390
\begin{tabular}{|c|c|p{7cm}|}
17392
{\bf type} & {\bf name} & {\bf description} \\ \hline
17393
{\tt PSCSI ref } & self & reference to the object \\ \hline
17399
\noindent {\bf Return Type:}
17409
\subsubsection{RPC name:~get\_by\_uuid}
17412
Get a reference to the PSCSI instance with the specified UUID.
17414
\noindent {\bf Signature:}
17415
\begin{verbatim} (PSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
17418
\noindent{\bf Arguments:}
17422
\begin{tabular}{|c|c|p{7cm}|}
17424
{\bf type} & {\bf name} & {\bf description} \\ \hline
17425
{\tt string } & uuid & UUID of object to return \\ \hline
17431
\noindent {\bf Return Type:}
17437
reference to the object
17441
\subsubsection{RPC name:~get\_record}
17444
Get a record containing the current state of the given PSCSI.
17446
\noindent {\bf Signature:}
17447
\begin{verbatim} (PSCSI record) get_record (session_id s, PSCSI ref self)\end{verbatim}
17450
\noindent{\bf Arguments:}
17454
\begin{tabular}{|c|c|p{7cm}|}
17456
{\bf type} & {\bf name} & {\bf description} \\ \hline
17457
{\tt PSCSI ref } & self & reference to the object \\ \hline
17463
\noindent {\bf Return Type:}
17469
all fields from the object
17476
\section{Class: PSCSI\_HBA}
17477
\subsection{Fields for class: PSCSI\_HBA}
17478
\begin{longtable}{|lllp{0.38\textwidth}|}
17480
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI\_HBA} \\
17481
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
17482
physical SCSI host bus adapter.}} \\
17484
Quals & Field & Type & Description \\
17486
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
17487
$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PSCSI HBA is connected \\
17488
$\mathit{RO}_\mathit{run}$ & {\tt physical\_host} & int & the physical host number \\
17489
$\mathit{RO}_\mathit{run}$ & {\tt PSCSIs} & (PSCSI ref) Set & the physical SCSI devices which are connected to this PSCSI HBA \\
17492
\subsection{RPCs associated with class: PSCSI\_HBA}
17493
\subsubsection{RPC name:~get\_all}
17496
Return a list of all the PSCSI HBAs known to the system.
17498
\noindent {\bf Signature:}
17499
\begin{verbatim} ((PSCSI_HBA ref) Set) get_all (session_id s)\end{verbatim}
17504
\noindent {\bf Return Type:}
17506
(PSCSI\_HBA ref) Set
17510
references to all objects
17514
\subsubsection{RPC name:~get\_uuid}
17517
Get the uuid field of the given PSCSI HBA.
17519
\noindent {\bf Signature:}
17520
\begin{verbatim} string get_uuid (session_id s, PSCSI_HBA ref self)\end{verbatim}
17523
\noindent{\bf Arguments:}
17527
\begin{tabular}{|c|c|p{7cm}|}
17529
{\bf type} & {\bf name} & {\bf description} \\ \hline
17530
{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
17536
\noindent {\bf Return Type:}
17546
\subsubsection{RPC name:~get\_host}
17549
Get the host field of the given PSCSI HBA.
17551
\noindent {\bf Signature:}
17552
\begin{verbatim} (host ref) get_host (session_id s, PSCSI_HBA ref self)\end{verbatim}
17555
\noindent{\bf Arguments:}
17559
\begin{tabular}{|c|c|p{7cm}|}
17561
{\bf type} & {\bf name} & {\bf description} \\ \hline
17562
{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
17568
\noindent {\bf Return Type:}
17578
\subsubsection{RPC name:~get\_physical\_host}
17581
Get the physical\_host field of the given PSCSI HBA.
17583
\noindent {\bf Signature:}
17584
\begin{verbatim} int get_physical_host (session_id s, PSCSI_HBA ref self)\end{verbatim}
17587
\noindent{\bf Arguments:}
17591
\begin{tabular}{|c|c|p{7cm}|}
17593
{\bf type} & {\bf name} & {\bf description} \\ \hline
17594
{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
17600
\noindent {\bf Return Type:}
17610
\subsubsection{RPC name:~get\_PSCSIs}
17613
Get the PSCSIs field of the given PSCSI HBA.
17615
\noindent {\bf Signature:}
17616
\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, PSCSI_HBA ref self)\end{verbatim}
17619
\noindent{\bf Arguments:}
17623
\begin{tabular}{|c|c|p{7cm}|}
17625
{\bf type} & {\bf name} & {\bf description} \\ \hline
17626
{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
17632
\noindent {\bf Return Type:}
17642
\subsubsection{RPC name:~get\_by\_uuid}
17645
Get a reference to the PSCSI HBA instance with the specified UUID.
17647
\noindent {\bf Signature:}
17648
\begin{verbatim} (PSCSI_HBA ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
17651
\noindent{\bf Arguments:}
17655
\begin{tabular}{|c|c|p{7cm}|}
17657
{\bf type} & {\bf name} & {\bf description} \\ \hline
17658
{\tt string } & uuid & UUID of object to return \\ \hline
17664
\noindent {\bf Return Type:}
17670
reference to the object
17674
\subsubsection{RPC name:~get\_record}
17677
Get a record containing the current state of the given PSCSI HBA.
17679
\noindent {\bf Signature:}
17680
\begin{verbatim} (PSCSI_HBA record) get_record (session_id s, PSCSI_HBA ref self)\end{verbatim}
17683
\noindent{\bf Arguments:}
17687
\begin{tabular}{|c|c|p{7cm}|}
17689
{\bf type} & {\bf name} & {\bf description} \\ \hline
17690
{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
17696
\noindent {\bf Return Type:}
17702
all fields from the object
17709
\section{Class: user}
17710
\subsection{Fields for class: user}
17711
\begin{longtable}{|lllp{0.38\textwidth}|}
17713
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf user} \\
17714
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
17715
user of the system.}} \\
17717
Quals & Field & Type & Description \\
17719
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
17720
$\mathit{RO}_\mathit{ins}$ & {\tt short\_name} & string & short name (e.g. userid) \\
17721
$\mathit{RW}$ & {\tt fullname} & string & full name \\
17724
\subsection{RPCs associated with class: user}
17725
\subsubsection{RPC name:~get\_uuid}
17728
Get the uuid field of the given user.
17730
\noindent {\bf Signature:}
17731
\begin{verbatim} string get_uuid (session_id s, user ref self)\end{verbatim}
17734
\noindent{\bf Arguments:}
17738
\begin{tabular}{|c|c|p{7cm}|}
17740
{\bf type} & {\bf name} & {\bf description} \\ \hline
17741
{\tt user ref } & self & reference to the object \\ \hline
17747
\noindent {\bf Return Type:}
17757
\subsubsection{RPC name:~get\_short\_name}
17760
Get the short\_name field of the given user.
17762
\noindent {\bf Signature:}
17763
\begin{verbatim} string get_short_name (session_id s, user ref self)\end{verbatim}
17766
\noindent{\bf Arguments:}
17770
\begin{tabular}{|c|c|p{7cm}|}
17772
{\bf type} & {\bf name} & {\bf description} \\ \hline
17773
{\tt user ref } & self & reference to the object \\ \hline
17779
\noindent {\bf Return Type:}
17789
\subsubsection{RPC name:~get\_fullname}
17792
Get the fullname field of the given user.
17794
\noindent {\bf Signature:}
17795
\begin{verbatim} string get_fullname (session_id s, user ref self)\end{verbatim}
17798
\noindent{\bf Arguments:}
17802
\begin{tabular}{|c|c|p{7cm}|}
17804
{\bf type} & {\bf name} & {\bf description} \\ \hline
17805
{\tt user ref } & self & reference to the object \\ \hline
17811
\noindent {\bf Return Type:}
17821
\subsubsection{RPC name:~set\_fullname}
17824
Set the fullname field of the given user.
17826
\noindent {\bf Signature:}
17827
\begin{verbatim} void set_fullname (session_id s, user ref self, string value)\end{verbatim}
17830
\noindent{\bf Arguments:}
17834
\begin{tabular}{|c|c|p{7cm}|}
17836
{\bf type} & {\bf name} & {\bf description} \\ \hline
17837
{\tt user ref } & self & reference to the object \\ \hline
17839
{\tt string } & value & New value to set \\ \hline
17845
\noindent {\bf Return Type:}
17855
\subsubsection{RPC name:~create}
17858
Create a new user instance, and return its handle.
17860
\noindent {\bf Signature:}
17861
\begin{verbatim} (user ref) create (session_id s, user record args)\end{verbatim}
17864
\noindent{\bf Arguments:}
17868
\begin{tabular}{|c|c|p{7cm}|}
17870
{\bf type} & {\bf name} & {\bf description} \\ \hline
17871
{\tt user record } & args & All constructor arguments \\ \hline
17877
\noindent {\bf Return Type:}
17883
reference to the newly created object
17887
\subsubsection{RPC name:~destroy}
17890
Destroy the specified user instance.
17892
\noindent {\bf Signature:}
17893
\begin{verbatim} void destroy (session_id s, user ref self)\end{verbatim}
17896
\noindent{\bf Arguments:}
17900
\begin{tabular}{|c|c|p{7cm}|}
17902
{\bf type} & {\bf name} & {\bf description} \\ \hline
17903
{\tt user ref } & self & reference to the object \\ \hline
17909
\noindent {\bf Return Type:}
17919
\subsubsection{RPC name:~get\_by\_uuid}
17922
Get a reference to the user instance with the specified UUID.
17924
\noindent {\bf Signature:}
17925
\begin{verbatim} (user ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
17928
\noindent{\bf Arguments:}
17932
\begin{tabular}{|c|c|p{7cm}|}
17934
{\bf type} & {\bf name} & {\bf description} \\ \hline
17935
{\tt string } & uuid & UUID of object to return \\ \hline
17941
\noindent {\bf Return Type:}
17947
reference to the object
17951
\subsubsection{RPC name:~get\_record}
17954
Get a record containing the current state of the given user.
17956
\noindent {\bf Signature:}
17957
\begin{verbatim} (user record) get_record (session_id s, user ref self)\end{verbatim}
17960
\noindent{\bf Arguments:}
17964
\begin{tabular}{|c|c|p{7cm}|}
17966
{\bf type} & {\bf name} & {\bf description} \\ \hline
17967
{\tt user ref } & self & reference to the object \\ \hline
17973
\noindent {\bf Return Type:}
17979
all fields from the object
17986
\section{Class: XSPolicy}
17987
\subsection{Fields for class: XSPolicy}
17988
\begin{longtable}{|lllp{0.38\textwidth}|}
17990
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf XSPolicy} \\
17991
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A Xen Security Policy}} \\
17993
Quals & Field & Type & Description \\
17995
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier / object reference \\
17996
$\mathit{RW}$ & {\tt repr} & string & representation of policy, i.e., XML \\
17997
$\mathit{RO}_\mathit{run}$ & {\tt type} & xs\_type & type of the policy \\
17998
$\mathit{RO}_\mathit{run}$ & {\tt flags} & xs\_instantiationflags & policy
18002
\subsection{Semantics of the class: XSPolicy}
18004
The XSPolicy class is used for administering Xen Security policies. Through
18005
this class a new policy can be uploaded to the system, loaded into the
18006
Xen hypervisor for enforcement and be set as the policy that the
18007
system is automatically loading when the machine is started.
18009
This class returns information about the currently administered policy,
18010
including a reference to the policy. This reference can then be used with
18011
policy-specific classes, i.e., the ACMPolicy class, to allow retrieval of
18012
information or changes to be made to a particular policy.
18014
\subsection{Structure and datatypes of class: XSPolicy}
18016
Format of the security label:
18018
A security label consist of the three different parts {\it policy type},
18019
{\it policy name} and {\it label} separated with colons. To specify
18020
the virtual machine label for an ACM-type policy {\it xm-test}, the
18021
security label string would be {\it ACM:xm-test:blue}, where blue
18022
denotes the virtual machine's label. The format of resource labels is
18024
The following flags are used by this class:
18026
\begin{longtable}{|l|l|l|}
18028
{\tt xs\_type} & value & meaning \\
18030
\hspace{0.5cm}{\tt XS\_POLICY\_ACM} & (1 $<<$ 0) & ACM-type policy \\
18034
\begin{longtable}{|l|l|l|}
18036
{\tt xs\_instantiationflags} & value & meaning \\
18038
\hspace{0.5cm}{\tt XS\_INST\_NONE} & 0 & do nothing \\
18039
\hspace{0.5cm}{\tt XS\_INST\_BOOT} & (1 $<<$ 0) & make system boot with this policy \\
18040
\hspace{0.5cm}{\tt XS\_INST\_LOAD} & (1 $<<$ 1) & load policy immediately \\
18044
\begin{longtable}{|l|l|l|}
18046
{\tt xs\_policystate} & type & meaning \\
18048
\hspace{0.5cm}{\tt xserr} & int & Error code from operation (if applicable) \\
18049
\hspace{0.5cm}{\tt xs\_ref} & XSPolicy ref & reference to the XS policy as returned by the API \\
18050
\hspace{0.5cm}{\tt repr} & string & representation of the policy, i.e., XML \\
18051
\hspace{0.5cm}{\tt type} & xs\_type & the type of the policy \\
18052
\hspace{0.5cm}{\tt flags } & xs\_instantiationflags & instantiation flags of the policy \\
18053
\hspace{0.5cm}{\tt version} & string & version of the policy \\
18054
\hspace{0.5cm}{\tt errors} & string & Base64-encoded sequence of integer tuples consisting \\
18055
& & of (error code, detail); will be returned as part \\
18056
& & of the xs\_setpolicy function. \\
18060
\subsection{Additional RPCs associated with class: XSPolicy}
18061
\subsubsection{RPC name:~get\_xstype}
18064
Return the Xen Security Policy types supported by this system
18066
\noindent {\bf Signature:}
18067
\begin{verbatim} xs_type get_xstype (session_id s)\end{verbatim}
18069
\noindent {\bf Return Type:}
18074
flags representing the supported Xen security policy types
18078
\subsubsection{RPC name:~set\_xspolicy}
18081
Set the current XSPolicy. This function can also be be used for updating of
18082
an existing policy whose name must be equivalent to the one of the
18083
currently running policy.
18085
\noindent {\bf Signature:}
18086
\begin{verbatim} xs_policystate set_xspolicy (session_id s, xs_type type, string repr,
18087
xs_instantiationflags flags, bool overwrite)\end{verbatim}
18089
\noindent{\bf Arguments:}
18093
\begin{tabular}{|c|c|p{7cm}|}
18095
{\bf type} & {\bf name} & {\bf description} \\ \hline
18096
{\tt xs\_type } & type & the type of policy \\ \hline
18097
{\tt string} & repr & representation of the policy, i.e., XML \\ \hline
18098
{\tt xs\_instantiationflags} & flags & flags for the setting of the policy \\ \hline
18099
{\tt bool} & overwrite & whether to overwrite an existing policy \\ \hline
18106
\noindent {\bf Return Type:}
18112
State information about the policy. In case an error occurred, the 'xs\_err'
18113
field contains the error code. The 'errors' may contain further information
18118
\subsubsection{RPC name:~reset\_xspolicy}
18121
Attempt to reset the system's policy by installing the default policy.
18122
Since this function is implemented as an update to the current policy, it
18123
underlies the same restrictions. This function may fail if for example
18124
other domains than Domain-0 are running and use a different label than
18127
\noindent {\bf Signature:}
18128
\begin{verbatim} xs_policystate reset_xspolicy (session_id s, xs_type type)
18131
\noindent{\bf Arguments:}
18135
\begin{tabular}{|c|c|p{7cm}|}
18137
{\bf type} & {\bf name} & {\bf description} \\ \hline
18138
{\tt xs\_type } & type & the type of policy \\ \hline
18145
\noindent {\bf Return Type:}
18151
State information about the policy. In case an error occurred, the 'xs\_err'
18152
field contains the error code. The 'errors' may contain further information
18157
\subsubsection{RPC name:~get\_xspolicy}
18160
Get information regarding the currently set Xen Security Policy
18162
\noindent {\bf Signature:}
18163
\begin{verbatim} xs_policystate get_xspolicy (session_id s)\end{verbatim}
18167
\noindent {\bf Return Type:}
18173
Policy state information.
18177
\subsubsection{RPC name:~rm\_xsbootpolicy}
18180
Remove any policy from the default boot configuration.
18182
\noindent {\bf Signature:}
18183
\begin{verbatim} void rm_xsbootpolicy (session_id s)\end{verbatim}
18187
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
18192
\subsubsection{RPC name:~get\_labeled\_resources}
18195
Get a list of resources that have been labeled.
18197
\noindent {\bf Signature:}
18198
\begin{verbatim} ((string -> string) Map) get_labeled_resources (session_id s)\end{verbatim}
18203
\noindent {\bf Return Type:}
18205
(string $\rightarrow$ string) Map
18209
A map of resources with their labels.
18213
\subsubsection{RPC name:~set\_resource\_label}
18216
Label the given resource with the given label. An empty label removes any label
18219
\noindent {\bf Signature:}
18220
\begin{verbatim} void set_resource_label (session_id s, string resource, string
18221
label, string old_label)\end{verbatim}
18224
\noindent{\bf Arguments:}
18228
\begin{tabular}{|c|c|p{7cm}|}
18230
{\bf type} & {\bf name} & {\bf description} \\ \hline
18231
{\tt string } & resource & resource to label \\ \hline
18232
{\tt string } & label & label for the resource \\ \hline
18233
{\tt string } & old\_label & Optional label value that the security label \\
18234
& & must currently have for the change to succeed. \\ \hline
18240
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
18245
\subsubsection{RPC name:~get\_resource\_label}
18248
Get the label of the given resource.
18250
\noindent {\bf Signature:}
18251
\begin{verbatim} string get_resource_label (session_id s, string resource)\end{verbatim}
18254
\noindent{\bf Arguments:}
18258
\begin{tabular}{|c|c|p{7cm}|}
18260
{\bf type} & {\bf name} & {\bf description} \\ \hline
18261
{\tt string } & resource & resource to label \\ \hline
18267
\noindent {\bf Return Type:}
18273
The label of the given resource.
18277
\subsubsection{RPC name:~can\_run}
18280
Check whether a VM with the given security label could run on the system.
18282
\noindent {\bf Signature:}
18283
\begin{verbatim} int can_run (session_id s, string security_label)\end{verbatim}
18286
\noindent{\bf Arguments:}
18290
\begin{tabular}{|c|c|p{7cm}|}
18292
{\bf type} & {\bf name} & {\bf description} \\ \hline
18293
{\tt string } & security\_label & reference to the object \\ \hline
18299
\noindent {\bf Return Type:}
18305
Error code indicating whether a VM with the given security label could run.
18306
If zero, it can run.
18310
\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
18312
\subsubsection{RPC name:~get\_all}
18315
Return a list of all the XSPolicies known to the system.
18317
\noindent {\bf Signature:}
18318
\begin{verbatim} ((XSPolicy ref) Set) get_all (session_id s)\end{verbatim}
18323
\noindent {\bf Return Type:}
18329
A list of all the IDs of all the XSPolicies
18333
\subsubsection{RPC name:~get\_uuid}
18336
Get the uuid field of the given XSPolicy.
18338
\noindent {\bf Signature:}
18339
\begin{verbatim} string get_uuid (session_id s, XSPolicy ref self)\end{verbatim}
18342
\noindent{\bf Arguments:}
18346
\begin{tabular}{|c|c|p{7cm}|}
18348
{\bf type} & {\bf name} & {\bf description} \\ \hline
18349
{\tt XSPolicy ref } & self & reference to the object \\ \hline
18355
\noindent {\bf Return Type:}
18365
\subsubsection{RPC name:~get\_record}
18368
Get a record of the referenced XSPolicy.
18370
\noindent {\bf Signature:}
18371
\begin{verbatim} (XSPolicy record) get_record (session_id s, xs_ref xspolicy)\end{verbatim}
18374
\noindent{\bf Arguments:}
18378
\begin{tabular}{|c|c|p{7cm}|}
18380
{\bf type} & {\bf name} & {\bf description} \\ \hline
18381
{\tt xs ref } & self & reference to the object \\ \hline
18387
\noindent {\bf Return Type:}
18393
all fields from the object
18398
\section{Class: ACMPolicy}
18399
\subsection{Fields for class: ACMPolicy}
18400
\begin{longtable}{|lllp{0.38\textwidth}|}
18402
\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf ACMPolicy} \\
18403
\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em An ACM Security Policy}} \\
18405
Quals & Field & Type & Description \\
18407
$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier / object reference \\
18408
$\mathit{RW}$ & {\tt repr} & string & representation of policy, in XML \\
18409
$\mathit{RO}_\mathit{run}$ & {\tt type} & xs\_type & type of the policy \\
18410
$\mathit{RO}_\mathit{run}$ & {\tt flags} & xs\_instantiationflags & policy
18415
\subsection{Structure and datatypes of class: ACMPolicy}
18418
The following data structures are used:
18420
\begin{longtable}{|l|l|l|}
18422
{\tt RIP acm\_policyheader} & type & meaning \\
18424
\hspace{0.5cm}{\tt policyname} & string & name of the policy \\
18425
\hspace{0.5cm}{\tt policyurl } & string & URL of the policy \\
18426
\hspace{0.5cm}{\tt date} & string & data of the policy \\
18427
\hspace{0.5cm}{\tt reference} & string & reference of the policy \\
18428
\hspace{0.5cm}{\tt namespaceurl} & string & namespaceurl of the policy \\
18429
\hspace{0.5cm}{\tt version} & string & version of the policy \\
18436
\subsubsection{RPC name:~get\_header}
18439
Get the referenced policy's header information.
18441
\noindent {\bf Signature:}
18442
\begin{verbatim} acm_policyheader get_header (session_id s, xs ref self)\end{verbatim}
18445
\noindent{\bf Arguments:}
18449
\begin{tabular}{|c|c|p{7cm}|}
18451
{\bf type} & {\bf name} & {\bf description} \\ \hline
18452
{\tt xs ref } & self & reference to the object \\ \hline
18458
\noindent {\bf Return Type:}
18464
The policy's header information.
18468
\subsubsection{RPC name:~get\_xml}
18471
Get the XML representation of the given policy.
18473
\noindent {\bf Signature:}
18474
\begin{verbatim} string get_XML (session_id s, xs ref self)\end{verbatim}
18477
\noindent{\bf Arguments:}
18481
\begin{tabular}{|c|c|p{7cm}|}
18483
{\bf type} & {\bf name} & {\bf description} \\ \hline
18484
{\tt xs ref } & self & reference to the object \\ \hline
18490
\noindent {\bf Return Type:}
18496
XML representation of the referenced policy
18500
\subsubsection{RPC name:~get\_map}
18503
Get the mapping information of the given policy.
18505
\noindent {\bf Signature:}
18506
\begin{verbatim} string get_map (session_id s, xs ref self)\end{verbatim}
18509
\noindent{\bf Arguments:}
18513
\begin{tabular}{|c|c|p{7cm}|}
18515
{\bf type} & {\bf name} & {\bf description} \\ \hline
18516
{\tt xs ref } & self & reference to the object \\ \hline
18522
\noindent {\bf Return Type:}
18528
Mapping information of the referenced policy.
18532
\subsubsection{RPC name:~get\_binary}
18535
Get the binary policy representation of the referenced policy.
18537
\noindent {\bf Signature:}
18538
\begin{verbatim} string get_binary (session_id s, xs ref self)\end{verbatim}
18541
\noindent{\bf Arguments:}
18545
\begin{tabular}{|c|c|p{7cm}|}
18547
{\bf type} & {\bf name} & {\bf description} \\ \hline
18548
{\tt xs ref } & self & reference to the object \\ \hline
18554
\noindent {\bf Return Type:}
18560
Base64-encoded representation of the binary policy.
18564
\subsubsection{RPC name:~get\_enforced\_binary}
18567
Get the binary policy representation of the currently enforced ACM policy.
18568
In case the default policy is loaded in the hypervisor, a policy may be
18569
managed by xend that is not yet loaded into the hypervisor.
18571
\noindent {\bf Signature:}
18572
\begin{verbatim} string get_enforced_binary (session_id s, xs ref self)\end{verbatim}
18575
\noindent{\bf Arguments:}
18579
\begin{tabular}{|c|c|p{7cm}|}
18581
{\bf type} & {\bf name} & {\bf description} \\ \hline
18582
{\tt xs ref } & self & reference to the object \\ \hline
18588
\noindent {\bf Return Type:}
18594
Base64-encoded representation of the binary policy.
18598
\subsubsection{RPC name:~get\_VM\_ssidref}
18601
Get the ACM ssidref of the given virtual machine.
18603
\noindent {\bf Signature:}
18604
\begin{verbatim} string get_VM_ssidref (session_id s, vm ref vm)\end{verbatim}
18607
\noindent{\bf Arguments:}
18611
\begin{tabular}{|c|c|p{7cm}|}
18613
{\bf type} & {\bf name} & {\bf description} \\ \hline
18614
{\tt vm ref } & vm & reference to a valid VM \\ \hline
18620
\noindent {\bf Return Type:}
18626
The ssidref of the given virtual machine.
18630
\noindent{\bf Possible Error Codes:}
18631
{\tt HANDLE\_INVALID, VM\_BAD\_POWER\_STATE, SECURITY\_ERROR}
18636
\subsubsection{RPC name:~get\_all}
18639
Return a list of all the ACMPolicies known to the system.
18641
\noindent {\bf Signature:}
18642
\begin{verbatim} ((ACMPolicy ref) Set) get_all (session_id s)\end{verbatim}
18647
\noindent {\bf Return Type:}
18649
(ACMPolicy ref) Set
18653
A list of all the IDs of all the ACMPolicies
18657
\subsubsection{RPC name:~get\_uuid}
18660
Get the uuid field of the given ACMPolicy.
18662
\noindent {\bf Signature:}
18663
\begin{verbatim} string get_uuid (session_id s, ACMPolicy ref self)\end{verbatim}
18666
\noindent{\bf Arguments:}
18670
\begin{tabular}{|c|c|p{7cm}|}
18672
{\bf type} & {\bf name} & {\bf description} \\ \hline
18673
{\tt ACMPolicy ref } & self & reference to the object \\ \hline
18679
\noindent {\bf Return Type:}
18689
\subsubsection{RPC name:~get\_record}
18692
Get a record of the referenced ACMPolicy.
18694
\noindent {\bf Signature:}
18695
\begin{verbatim} (XSPolicy record) get_record (session_id s, xs_ref xspolicy)\end{verbatim}
18698
\noindent{\bf Arguments:}
18702
\begin{tabular}{|c|c|p{7cm}|}
18704
{\bf type} & {\bf name} & {\bf description} \\ \hline
18705
{\tt xs ref } & self & reference to the object \\ \hline
18711
\noindent {\bf Return Type:}
18717
all fields from the object
18720
\section{Class: debug}
18721
\subsection{Fields for class: debug}
18722
{\bf Class debug has no fields.}
18723
\subsection{RPCs associated with class: debug}
18724
\subsubsection{RPC name:~get\_all}
18727
Return a list of all the debug records known to the system
18729
\noindent {\bf Signature:}
18730
\begin{verbatim} ((debug ref) Set) get_all (session_id s)\end{verbatim}
18735
\noindent {\bf Return Type:}
18741
A list of all the IDs of all the debug records
18745
\subsubsection{RPC name:~return\_failure}
18748
Return an API 'successful' failure.
18750
\noindent {\bf Signature:}
18751
\begin{verbatim} void return_failure (session_id s)\end{verbatim}
18756
\noindent {\bf Return Type:}
18766
\subsubsection{RPC name:~create}
18769
Create a new debug instance, and return its handle.
18771
\noindent {\bf Signature:}
18772
\begin{verbatim} (debug ref) create (session_id s, debug record args)\end{verbatim}
18775
\noindent{\bf Arguments:}
18779
\begin{tabular}{|c|c|p{7cm}|}
18781
{\bf type} & {\bf name} & {\bf description} \\ \hline
18782
{\tt debug record } & args & All constructor arguments \\ \hline
18788
\noindent {\bf Return Type:}
18794
reference to the newly created object
18798
\subsubsection{RPC name:~destroy}
18801
Destroy the specified debug instance.
18803
\noindent {\bf Signature:}
18804
\begin{verbatim} void destroy (session_id s, debug ref self)\end{verbatim}
18807
\noindent{\bf Arguments:}
18811
\begin{tabular}{|c|c|p{7cm}|}
18813
{\bf type} & {\bf name} & {\bf description} \\ \hline
18814
{\tt debug ref } & self & reference to the object \\ \hline
18820
\noindent {\bf Return Type:}
18830
\subsubsection{RPC name:~get\_by\_uuid}
18833
Get a reference to the debug instance with the specified UUID.
18835
\noindent {\bf Signature:}
18836
\begin{verbatim} (debug ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
18839
\noindent{\bf Arguments:}
18843
\begin{tabular}{|c|c|p{7cm}|}
18845
{\bf type} & {\bf name} & {\bf description} \\ \hline
18846
{\tt string } & uuid & UUID of object to return \\ \hline
18852
\noindent {\bf Return Type:}
18858
reference to the object
18862
\subsubsection{RPC name:~get\_record}
18865
Get a record containing the current state of the given debug.
18867
\noindent {\bf Signature:}
18868
\begin{verbatim} (debug record) get_record (session_id s, debug ref self)\end{verbatim}
18871
\noindent{\bf Arguments:}
18875
\begin{tabular}{|c|c|p{7cm}|}
18877
{\bf type} & {\bf name} & {\bf description} \\ \hline
18878
{\tt debug ref } & self & reference to the object \\ \hline
18884
\noindent {\bf Return Type:}
18890
all fields from the object