ia64/xen-unstable

view docs/xen-api/xenapi-datamodel.tex @ 17965:14fd83fe71c3

Add facility to get notification of domain suspend by event channel.
This event channel will be notified when the domain transitions to the
suspended state, which can be much faster than raising VIRQ_DOM_EXC
and waiting for the notification to be propagated via xenstore.

No attempt is made here to prevent multiple subscribers (last one
wins), or to detect that the subscriber has gone away. Userspace tools
should take care.

Signed-off-by: Brendan Cully <brendan@cs.ubc.ca>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jul 04 12:00:24 2008 +0100 (2008-07-04)
parents 3ecc9ab1f5df
children fa8a39619154
line source
1 %
2 % Copyright (c) 2006-2007 XenSource, Inc.
3 %
4 % Permission is granted to copy, distribute and/or modify this document under
5 % the terms of the GNU Free Documentation License, Version 1.2 or any later
6 % version published by the Free Software Foundation; with no Invariant
7 % Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
8 % license is included in the section entitled
9 % "GNU Free Documentation License" or the file fdl.tex.
10 %
11 % Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
12 %
14 \chapter{API Reference}
15 \label{api-reference}
18 \section{Classes}
19 The following classes are defined:
21 \begin{center}\begin{tabular}{|lp{10cm}|}
22 \hline
23 Name & Description \\
24 \hline
25 {\tt session} & A session \\
26 {\tt task} & A long-running asynchronous task \\
27 {\tt event} & Asynchronous event registration and handling \\
28 {\tt VM} & A virtual machine (or 'guest') \\
29 {\tt VM\_metrics} & The metrics associated with a VM \\
30 {\tt VM\_guest\_metrics} & The metrics reported by the guest (as opposed to inferred from outside) \\
31 {\tt host} & A physical host \\
32 {\tt host\_metrics} & The metrics associated with a host \\
33 {\tt host\_cpu} & A physical CPU \\
34 {\tt network} & A virtual network \\
35 {\tt VIF} & A virtual network interface \\
36 {\tt VIF\_metrics} & The metrics associated with a virtual network device \\
37 {\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
38 {\tt PIF\_metrics} & The metrics associated with a physical network interface \\
39 {\tt SR} & A storage repository \\
40 {\tt VDI} & A virtual disk image \\
41 {\tt VBD} & A virtual block device \\
42 {\tt VBD\_metrics} & The metrics associated with a virtual block device \\
43 {\tt PBD} & The physical block devices through which hosts access SRs \\
44 {\tt crashdump} & A VM crashdump \\
45 {\tt VTPM} & A virtual TPM device \\
46 {\tt console} & A console \\
47 {\tt user} & A user of the system \\
48 {\tt debug} & A basic class for testing \\
49 {\tt XSPolicy} & A class for handling Xen Security Policies \\
50 {\tt ACMPolicy} & A class for handling ACM-type policies \\
51 \hline
52 \end{tabular}\end{center}
53 \section{Relationships Between Classes}
54 Fields that are bound together are shown in the following table:
55 \begin{center}\begin{tabular}{|ll|l|}
56 \hline
57 {\em object.field} & {\em object.field} & {\em relationship} \\
59 \hline
60 host.PBDs & PBD.host & many-to-one\\
61 SR.PBDs & PBD.SR & many-to-one\\
62 VDI.VBDs & VBD.VDI & many-to-one\\
63 VDI.crash\_dumps & crashdump.VDI & many-to-one\\
64 VBD.VM & VM.VBDs & one-to-many\\
65 crashdump.VM & VM.crash\_dumps & one-to-many\\
66 VIF.VM & VM.VIFs & one-to-many\\
67 VIF.network & network.VIFs & one-to-many\\
68 PIF.host & host.PIFs & one-to-many\\
69 PIF.network & network.PIFs & one-to-many\\
70 SR.VDIs & VDI.SR & many-to-one\\
71 VTPM.VM & VM.VTPMs & one-to-many\\
72 console.VM & VM.consoles & one-to-many\\
73 host.resident\_VMs & VM.resident\_on & many-to-one\\
74 host.host\_CPUs & host\_cpu.host & many-to-one\\
75 \hline
76 \end{tabular}\end{center}
78 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
79 relationships:
81 \begin{center}\resizebox{0.8\textwidth}{!}{
82 \includegraphics{xenapi-datamodel-graph}
83 }\end{center}
84 \
85 \subsection{List of bound fields}
86 \section{Types}
87 \subsection{Primitives}
88 The following primitive types are used to specify methods and fields in the API Reference:
90 \begin{center}\begin{tabular}{|ll|}
91 \hline
92 Type & Description \\
93 \hline
94 String & text strings \\
95 Int & 64-bit integers \\
96 Float & IEEE double-precision floating-point numbers \\
97 Bool & boolean \\
98 DateTime & date and timestamp \\
99 Ref (object name) & reference to an object of class name \\
100 \hline
101 \end{tabular}\end{center}
102 \subsection{Higher order types}
103 The following type constructors are used:
105 \begin{center}\begin{tabular}{|ll|}
106 \hline
107 Type & Description \\
108 \hline
109 List (t) & an arbitrary-length list of elements of type t \\
110 Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
111 \hline
112 \end{tabular}\end{center}
113 \subsection{Enumeration types}
114 The following enumeration types are used:
116 \begin{longtable}{|ll|}
117 \hline
118 {\tt enum event\_operation} & \\
119 \hline
120 \hspace{0.5cm}{\tt add} & An object has been created \\
121 \hspace{0.5cm}{\tt del} & An object has been deleted \\
122 \hspace{0.5cm}{\tt mod} & An object has been modified \\
123 \hline
124 \end{longtable}
126 \vspace{1cm}
127 \begin{longtable}{|ll|}
128 \hline
129 {\tt enum console\_protocol} & \\
130 \hline
131 \hspace{0.5cm}{\tt vt100} & VT100 terminal \\
132 \hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
133 \hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
134 \hline
135 \end{longtable}
137 \vspace{1cm}
138 \begin{longtable}{|ll|}
139 \hline
140 {\tt enum vdi\_type} & \\
141 \hline
142 \hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
143 \hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
144 \hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
145 \hspace{0.5cm}{\tt suspend} & a disk that stores a suspend image \\
146 \hspace{0.5cm}{\tt crashdump} & a disk that stores VM crashdump information \\
147 \hline
148 \end{longtable}
150 \vspace{1cm}
151 \begin{longtable}{|ll|}
152 \hline
153 {\tt enum vm\_power\_state} & \\
154 \hline
155 \hspace{0.5cm}{\tt Halted} & Halted \\
156 \hspace{0.5cm}{\tt Paused} & Paused \\
157 \hspace{0.5cm}{\tt Running} & Running \\
158 \hspace{0.5cm}{\tt Suspended} & Suspended \\
159 \hspace{0.5cm}{\tt Crashed} & Crashed \\
160 \hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
161 \hline
162 \end{longtable}
164 \vspace{1cm}
165 \begin{longtable}{|ll|}
166 \hline
167 {\tt enum task\_allowed\_operations} & \\
168 \hline
169 \hspace{0.5cm}{\tt Cancel} & Cancel \\
170 \hline
171 \end{longtable}
173 \vspace{1cm}
174 \begin{longtable}{|ll|}
175 \hline
176 {\tt enum task\_status\_type} & \\
177 \hline
178 \hspace{0.5cm}{\tt pending} & task is in progress \\
179 \hspace{0.5cm}{\tt success} & task was completed successfully \\
180 \hspace{0.5cm}{\tt failure} & task has failed \\
181 \hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
182 \hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
183 \hline
184 \end{longtable}
186 \vspace{1cm}
187 \begin{longtable}{|ll|}
188 \hline
189 {\tt enum on\_normal\_exit} & \\
190 \hline
191 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
192 \hspace{0.5cm}{\tt restart} & restart the VM \\
193 \hline
194 \end{longtable}
196 \vspace{1cm}
197 \begin{longtable}{|ll|}
198 \hline
199 {\tt enum on\_crash\_behaviour} & \\
200 \hline
201 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
202 \hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
203 \hspace{0.5cm}{\tt restart} & restart the VM \\
204 \hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
205 \hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
206 \hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
207 \hline
208 \end{longtable}
210 \vspace{1cm}
211 \begin{longtable}{|ll|}
212 \hline
213 {\tt enum vbd\_mode} & \\
214 \hline
215 \hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
216 \hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
217 \hline
218 \end{longtable}
220 \vspace{1cm}
221 \begin{longtable}{|ll|}
222 \hline
223 {\tt enum vbd\_type} & \\
224 \hline
225 \hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
226 \hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
227 \hline
228 \end{longtable}
230 \vspace{1cm}
231 \newpage
233 \section{Error Handling}
234 When a low-level transport error occurs, or a request is malformed at the HTTP
235 or XML-RPC level, the server may send an XML-RPC Fault response, or the client
236 may simulate the same. The client must be prepared to handle these errors,
237 though they may be treated as fatal. On the wire, these are transmitted in a
238 form similar to this:
240 \begin{verbatim}
241 <methodResponse>
242 <fault>
243 <value>
244 <struct>
245 <member>
246 <name>faultCode</name>
247 <value><int>-1</int></value>
248 </member>
249 <member>
250 <name>faultString</name>
251 <value><string>Malformed request</string></value>
252 </member>
253 </struct>
254 </value>
255 </fault>
256 </methodResponse>
257 \end{verbatim}
259 All other failures are reported with a more structured error response, to
260 allow better automatic response to failures, proper internationalisation of
261 any error message, and easier debugging. On the wire, these are transmitted
262 like this:
264 \begin{verbatim}
265 <struct>
266 <member>
267 <name>Status</name>
268 <value>Failure</value>
269 </member>
270 <member>
271 <name>ErrorDescription</name>
272 <value>
273 <array>
274 <data>
275 <value>MAP_DUPLICATE_KEY</value>
276 <value>Customer</value>
277 <value>eSpeil Inc.</value>
278 <value>eSpeil Incorporated</value>
279 </data>
280 </array>
281 </value>
282 </member>
283 </struct>
284 \end{verbatim}
286 Note that {\tt ErrorDescription} value is an array of string values. The
287 first element of the array is an error code; the remainder of the array are
288 strings representing error parameters relating to that code. In this case,
289 the client has attempted to add the mapping {\tt Customer $\rightarrow$
290 eSpiel Incorporated} to a Map, but it already contains the mapping
291 {\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
293 The reference below lists each possible error returned by each method.
294 As well as the errors explicitly listed, any method may return low-level
295 errors as described above, or any of the following generic errors:
297 \begin{itemize}
298 \item HANDLE\_INVALID
299 \item INTERNAL\_ERROR
300 \item MAP\_DUPLICATE\_KEY
301 \item MESSAGE\_METHOD\_UNKNOWN
302 \item MESSAGE\_PARAMETER\_COUNT\_MISMATCH
303 \item OPERATION\_NOT\_ALLOWED
304 \item PERMISSION\_DENIED
305 \item SESSION\_INVALID
306 \end{itemize}
308 Each possible error code is documented in the following section.
310 \subsection{Error Codes}
312 \subsubsection{HANDLE\_INVALID}
314 You gave an invalid handle. The object may have recently been deleted.
315 The class parameter gives the type of reference given, and the handle
316 parameter echoes the bad value given.
318 \vspace{0.3cm}
319 {\bf Signature:}
320 \begin{verbatim}HANDLE_INVALID(class, handle)\end{verbatim}
321 \begin{center}\rule{10em}{0.1pt}\end{center}
323 \subsubsection{INTERNAL\_ERROR}
325 The server failed to handle your request, due to an internal error. The
326 given message may give details useful for debugging the problem.
328 \vspace{0.3cm}
329 {\bf Signature:}
330 \begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
331 \begin{center}\rule{10em}{0.1pt}\end{center}
333 \subsubsection{MAP\_DUPLICATE\_KEY}
335 You tried to add a key-value pair to a map, but that key is already there.
336 The key, current value, and the new value that you tried to set are all
337 echoed.
339 \vspace{0.3cm}
340 {\bf Signature:}
341 \begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
342 \begin{center}\rule{10em}{0.1pt}\end{center}
344 \subsubsection{MESSAGE\_METHOD\_UNKNOWN}
346 You tried to call a method that does not exist. The method name that you
347 used is echoed.
349 \vspace{0.3cm}
350 {\bf Signature:}
351 \begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
352 \begin{center}\rule{10em}{0.1pt}\end{center}
354 \subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
356 You tried to call a method with the incorrect number of parameters. The
357 fully-qualified method name that you used, and the number of received and
358 expected parameters are returned.
360 \vspace{0.3cm}
361 {\bf Signature:}
362 \begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
363 \begin{center}\rule{10em}{0.1pt}\end{center}
365 \subsubsection{NETWORK\_ALREADY\_CONNECTED}
367 You tried to create a PIF, but the network you tried to attach it to is
368 already attached to some other PIF, and so the creation failed.
370 \vspace{0.3cm}
371 {\bf Signature:}
372 \begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
373 \begin{center}\rule{10em}{0.1pt}\end{center}
375 \subsubsection{OPERATION\_NOT\_ALLOWED}
377 You attempted an operation that was not allowed.
379 \vspace{0.3cm}
380 No parameters.
381 \begin{center}\rule{10em}{0.1pt}\end{center}
383 \subsubsection{PERMISSION\_DENIED}
385 You do not have the required permissions to perform the operation.
387 \vspace{0.3cm}
388 No parameters.
389 \begin{center}\rule{10em}{0.1pt}\end{center}
391 \subsubsection{PIF\_IS\_PHYSICAL}
393 You tried to destroy a PIF, but it represents an aspect of the physical
394 host configuration, and so cannot be destroyed. The parameter echoes the
395 PIF handle you gave.
397 \vspace{0.3cm}
398 {\bf Signature:}
399 \begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim}
400 \begin{center}\rule{10em}{0.1pt}\end{center}
402 \subsubsection{SESSION\_AUTHENTICATION\_FAILED}
404 The credentials given by the user are incorrect, so access has been denied,
405 and you have not been issued a session handle.
407 \vspace{0.3cm}
408 No parameters.
409 \begin{center}\rule{10em}{0.1pt}\end{center}
411 \subsubsection{SESSION\_INVALID}
413 You gave an invalid session handle. It may have been invalidated by a
414 server restart, or timed out. You should get a new session handle, using
415 one of the session.login\_ calls. This error does not invalidate the
416 current connection. The handle parameter echoes the bad value given.
418 \vspace{0.3cm}
419 {\bf Signature:}
420 \begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
421 \begin{center}\rule{10em}{0.1pt}\end{center}
423 \subsubsection{SESSION\_NOT\_REGISTERED}
425 This session is not registered to receive events. You must call
426 event.register before event.next. The session handle you are using is
427 echoed.
429 \vspace{0.3cm}
430 {\bf Signature:}
431 \begin{verbatim}SESSION_NOT_REGISTERED(handle)\end{verbatim}
432 \begin{center}\rule{10em}{0.1pt}\end{center}
434 \subsubsection{VALUE\_NOT\_SUPPORTED}
436 You attempted to set a value that is not supported by this implementation.
437 The fully-qualified field name and the value that you tried to set are
438 returned. Also returned is a developer-only diagnostic reason.
440 \vspace{0.3cm}
441 {\bf Signature:}
442 \begin{verbatim}VALUE_NOT_SUPPORTED(field, value, reason)\end{verbatim}
443 \begin{center}\rule{10em}{0.1pt}\end{center}
445 \subsubsection{VLAN\_TAG\_INVALID}
447 You tried to create a VLAN, but the tag you gave was invalid -- it must be
448 between 0 and 4095. The parameter echoes the VLAN tag you gave.
450 \vspace{0.3cm}
451 {\bf Signature:}
452 \begin{verbatim}VLAN_TAG_INVALID(VLAN)\end{verbatim}
453 \begin{center}\rule{10em}{0.1pt}\end{center}
455 \subsubsection{VM\_BAD\_POWER\_STATE}
457 You attempted an operation on a VM that was not in an appropriate power
458 state at the time; for example, you attempted to start a VM that was
459 already running. The parameters returned are the VM's handle, and the
460 expected and actual VM state at the time of the call.
462 \vspace{0.3cm}
463 {\bf Signature:}
464 \begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
465 \begin{center}\rule{10em}{0.1pt}\end{center}
467 \subsubsection{VM\_HVM\_REQUIRED}
469 HVM is required for this operation
471 \vspace{0.3cm}
472 {\bf Signature:}
473 \begin{verbatim}VM_HVM_REQUIRED(vm)\end{verbatim}
474 \begin{center}\rule{10em}{0.1pt}\end{center}
476 \subsubsection{SECURITY\_ERROR}
478 A security error occurred. The parameter provides the xen security
479 error code and a message describing the error.
481 \vspace{0.3cm}
482 {\bf Signature:}
483 \begin{verbatim}SECURITY_ERROR(xserr, message)\end{verbatim}
484 \begin{center}\rule{10em}{0.1pt}\end{center}
487 \newpage
488 \section{Class: session}
489 \subsection{Fields for class: session}
490 \begin{longtable}{|lllp{0.38\textwidth}|}
491 \hline
492 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
493 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
494 session.}} \\
495 \hline
496 Quals & Field & Type & Description \\
497 \hline
498 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
499 $\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
500 $\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
501 $\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
502 \hline
503 \end{longtable}
504 \subsection{RPCs associated with class: session}
505 \subsubsection{RPC name:~login\_with\_password}
507 {\bf Overview:}
508 Attempt to authenticate the user, returning a session\_id if successful.
510 \noindent {\bf Signature:}
511 \begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
514 \noindent{\bf Arguments:}
517 \vspace{0.3cm}
518 \begin{tabular}{|c|c|p{7cm}|}
519 \hline
520 {\bf type} & {\bf name} & {\bf description} \\ \hline
521 {\tt string } & uname & Username for login. \\ \hline
523 {\tt string } & pwd & Password for login. \\ \hline
525 \end{tabular}
527 \vspace{0.3cm}
529 \noindent {\bf Return Type:}
530 {\tt
531 session ref
532 }
535 ID of newly created session
537 \vspace{0.3cm}
539 \noindent{\bf Possible Error Codes:} {\tt SESSION\_AUTHENTICATION\_FAILED}
541 \vspace{0.3cm}
542 \vspace{0.3cm}
543 \vspace{0.3cm}
544 \subsubsection{RPC name:~logout}
546 {\bf Overview:}
547 Log out of a session.
549 \noindent {\bf Signature:}
550 \begin{verbatim} void logout (session_id s)\end{verbatim}
553 \vspace{0.3cm}
555 \noindent {\bf Return Type:}
556 {\tt
557 void
558 }
562 \vspace{0.3cm}
563 \vspace{0.3cm}
564 \vspace{0.3cm}
565 \subsubsection{RPC name:~get\_uuid}
567 {\bf Overview:}
568 Get the uuid field of the given session.
570 \noindent {\bf Signature:}
571 \begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
574 \noindent{\bf Arguments:}
577 \vspace{0.3cm}
578 \begin{tabular}{|c|c|p{7cm}|}
579 \hline
580 {\bf type} & {\bf name} & {\bf description} \\ \hline
581 {\tt session ref } & self & reference to the object \\ \hline
583 \end{tabular}
585 \vspace{0.3cm}
587 \noindent {\bf Return Type:}
588 {\tt
589 string
590 }
593 value of the field
594 \vspace{0.3cm}
595 \vspace{0.3cm}
596 \vspace{0.3cm}
597 \subsubsection{RPC name:~get\_this\_host}
599 {\bf Overview:}
600 Get the this\_host field of the given session.
602 \noindent {\bf Signature:}
603 \begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
606 \noindent{\bf Arguments:}
609 \vspace{0.3cm}
610 \begin{tabular}{|c|c|p{7cm}|}
611 \hline
612 {\bf type} & {\bf name} & {\bf description} \\ \hline
613 {\tt session ref } & self & reference to the object \\ \hline
615 \end{tabular}
617 \vspace{0.3cm}
619 \noindent {\bf Return Type:}
620 {\tt
621 host ref
622 }
625 value of the field
626 \vspace{0.3cm}
627 \vspace{0.3cm}
628 \vspace{0.3cm}
629 \subsubsection{RPC name:~get\_this\_user}
631 {\bf Overview:}
632 Get the this\_user field of the given session.
634 \noindent {\bf Signature:}
635 \begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
638 \noindent{\bf Arguments:}
641 \vspace{0.3cm}
642 \begin{tabular}{|c|c|p{7cm}|}
643 \hline
644 {\bf type} & {\bf name} & {\bf description} \\ \hline
645 {\tt session ref } & self & reference to the object \\ \hline
647 \end{tabular}
649 \vspace{0.3cm}
651 \noindent {\bf Return Type:}
652 {\tt
653 user ref
654 }
657 value of the field
658 \vspace{0.3cm}
659 \vspace{0.3cm}
660 \vspace{0.3cm}
661 \subsubsection{RPC name:~get\_last\_active}
663 {\bf Overview:}
664 Get the last\_active field of the given session.
666 \noindent {\bf Signature:}
667 \begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
670 \noindent{\bf Arguments:}
673 \vspace{0.3cm}
674 \begin{tabular}{|c|c|p{7cm}|}
675 \hline
676 {\bf type} & {\bf name} & {\bf description} \\ \hline
677 {\tt session ref } & self & reference to the object \\ \hline
679 \end{tabular}
681 \vspace{0.3cm}
683 \noindent {\bf Return Type:}
684 {\tt
685 int
686 }
689 value of the field
690 \vspace{0.3cm}
691 \vspace{0.3cm}
692 \vspace{0.3cm}
693 \subsubsection{RPC name:~get\_by\_uuid}
695 {\bf Overview:}
696 Get a reference to the session instance with the specified UUID.
698 \noindent {\bf Signature:}
699 \begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
702 \noindent{\bf Arguments:}
705 \vspace{0.3cm}
706 \begin{tabular}{|c|c|p{7cm}|}
707 \hline
708 {\bf type} & {\bf name} & {\bf description} \\ \hline
709 {\tt string } & uuid & UUID of object to return \\ \hline
711 \end{tabular}
713 \vspace{0.3cm}
715 \noindent {\bf Return Type:}
716 {\tt
717 session ref
718 }
721 reference to the object
722 \vspace{0.3cm}
723 \vspace{0.3cm}
724 \vspace{0.3cm}
725 \subsubsection{RPC name:~get\_record}
727 {\bf Overview:}
728 Get a record containing the current state of the given session.
730 \noindent {\bf Signature:}
731 \begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
734 \noindent{\bf Arguments:}
737 \vspace{0.3cm}
738 \begin{tabular}{|c|c|p{7cm}|}
739 \hline
740 {\bf type} & {\bf name} & {\bf description} \\ \hline
741 {\tt session ref } & self & reference to the object \\ \hline
743 \end{tabular}
745 \vspace{0.3cm}
747 \noindent {\bf Return Type:}
748 {\tt
749 session record
750 }
753 all fields from the object
754 \vspace{0.3cm}
755 \vspace{0.3cm}
756 \vspace{0.3cm}
758 \vspace{1cm}
759 \newpage
760 \section{Class: task}
761 \subsection{Fields for class: task}
762 \begin{longtable}{|lllp{0.38\textwidth}|}
763 \hline
764 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
765 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
766 long-running asynchronous task.}} \\
767 \hline
768 Quals & Field & Type & Description \\
769 \hline
770 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
771 $\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
772 $\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
773 $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
774 $\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
775 $\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. \\
776 $\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. \\
777 $\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. \\
778 $\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. \\
779 $\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
780 \hline
781 \end{longtable}
782 \subsection{RPCs associated with class: task}
783 \subsubsection{RPC name:~cancel}
785 {\bf Overview:}
786 Cancel this task. If task.allowed\_operations does not contain Cancel,
787 then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
788 status 'cancelling', and you should continue to check its status until it
789 shows 'cancelled'. There is no guarantee as to the time within which this
790 task will be cancelled.
792 \noindent {\bf Signature:}
793 \begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
796 \noindent{\bf Arguments:}
799 \vspace{0.3cm}
800 \begin{tabular}{|c|c|p{7cm}|}
801 \hline
802 {\bf type} & {\bf name} & {\bf description} \\ \hline
803 {\tt task ref } & task & The task \\ \hline
805 \end{tabular}
807 \vspace{0.3cm}
809 \noindent {\bf Return Type:}
810 {\tt
811 void
812 }
816 \vspace{0.3cm}
818 \noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
820 \vspace{0.6cm}
821 \subsubsection{RPC name:~get\_all}
823 {\bf Overview:}
824 Return a list of all the tasks known to the system.
826 \noindent {\bf Signature:}
827 \begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
830 \vspace{0.3cm}
832 \noindent {\bf Return Type:}
833 {\tt
834 (task ref) Set
835 }
838 references to all objects
839 \vspace{0.3cm}
840 \vspace{0.3cm}
841 \vspace{0.3cm}
842 \subsubsection{RPC name:~get\_uuid}
844 {\bf Overview:}
845 Get the uuid field of the given task.
847 \noindent {\bf Signature:}
848 \begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
851 \noindent{\bf Arguments:}
854 \vspace{0.3cm}
855 \begin{tabular}{|c|c|p{7cm}|}
856 \hline
857 {\bf type} & {\bf name} & {\bf description} \\ \hline
858 {\tt task ref } & self & reference to the object \\ \hline
860 \end{tabular}
862 \vspace{0.3cm}
864 \noindent {\bf Return Type:}
865 {\tt
866 string
867 }
870 value of the field
871 \vspace{0.3cm}
872 \vspace{0.3cm}
873 \vspace{0.3cm}
874 \subsubsection{RPC name:~get\_name\_label}
876 {\bf Overview:}
877 Get the name/label field of the given task.
879 \noindent {\bf Signature:}
880 \begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
883 \noindent{\bf Arguments:}
886 \vspace{0.3cm}
887 \begin{tabular}{|c|c|p{7cm}|}
888 \hline
889 {\bf type} & {\bf name} & {\bf description} \\ \hline
890 {\tt task ref } & self & reference to the object \\ \hline
892 \end{tabular}
894 \vspace{0.3cm}
896 \noindent {\bf Return Type:}
897 {\tt
898 string
899 }
902 value of the field
903 \vspace{0.3cm}
904 \vspace{0.3cm}
905 \vspace{0.3cm}
906 \subsubsection{RPC name:~get\_name\_description}
908 {\bf Overview:}
909 Get the name/description field of the given task.
911 \noindent {\bf Signature:}
912 \begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
915 \noindent{\bf Arguments:}
918 \vspace{0.3cm}
919 \begin{tabular}{|c|c|p{7cm}|}
920 \hline
921 {\bf type} & {\bf name} & {\bf description} \\ \hline
922 {\tt task ref } & self & reference to the object \\ \hline
924 \end{tabular}
926 \vspace{0.3cm}
928 \noindent {\bf Return Type:}
929 {\tt
930 string
931 }
934 value of the field
935 \vspace{0.3cm}
936 \vspace{0.3cm}
937 \vspace{0.3cm}
938 \subsubsection{RPC name:~get\_status}
940 {\bf Overview:}
941 Get the status field of the given task.
943 \noindent {\bf Signature:}
944 \begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
947 \noindent{\bf Arguments:}
950 \vspace{0.3cm}
951 \begin{tabular}{|c|c|p{7cm}|}
952 \hline
953 {\bf type} & {\bf name} & {\bf description} \\ \hline
954 {\tt task ref } & self & reference to the object \\ \hline
956 \end{tabular}
958 \vspace{0.3cm}
960 \noindent {\bf Return Type:}
961 {\tt
962 task\_status\_type
963 }
966 value of the field
967 \vspace{0.3cm}
968 \vspace{0.3cm}
969 \vspace{0.3cm}
970 \subsubsection{RPC name:~get\_session}
972 {\bf Overview:}
973 Get the session field of the given task.
975 \noindent {\bf Signature:}
976 \begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
979 \noindent{\bf Arguments:}
982 \vspace{0.3cm}
983 \begin{tabular}{|c|c|p{7cm}|}
984 \hline
985 {\bf type} & {\bf name} & {\bf description} \\ \hline
986 {\tt task ref } & self & reference to the object \\ \hline
988 \end{tabular}
990 \vspace{0.3cm}
992 \noindent {\bf Return Type:}
993 {\tt
994 session ref
995 }
998 value of the field
999 \vspace{0.3cm}
1000 \vspace{0.3cm}
1001 \vspace{0.3cm}
1002 \subsubsection{RPC name:~get\_progress}
1004 {\bf Overview:}
1005 Get the progress field of the given task.
1007 \noindent {\bf Signature:}
1008 \begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
1011 \noindent{\bf Arguments:}
1014 \vspace{0.3cm}
1015 \begin{tabular}{|c|c|p{7cm}|}
1016 \hline
1017 {\bf type} & {\bf name} & {\bf description} \\ \hline
1018 {\tt task ref } & self & reference to the object \\ \hline
1020 \end{tabular}
1022 \vspace{0.3cm}
1024 \noindent {\bf Return Type:}
1025 {\tt
1026 int
1030 value of the field
1031 \vspace{0.3cm}
1032 \vspace{0.3cm}
1033 \vspace{0.3cm}
1034 \subsubsection{RPC name:~get\_type}
1036 {\bf Overview:}
1037 Get the type field of the given task.
1039 \noindent {\bf Signature:}
1040 \begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
1043 \noindent{\bf Arguments:}
1046 \vspace{0.3cm}
1047 \begin{tabular}{|c|c|p{7cm}|}
1048 \hline
1049 {\bf type} & {\bf name} & {\bf description} \\ \hline
1050 {\tt task ref } & self & reference to the object \\ \hline
1052 \end{tabular}
1054 \vspace{0.3cm}
1056 \noindent {\bf Return Type:}
1057 {\tt
1058 string
1062 value of the field
1063 \vspace{0.3cm}
1064 \vspace{0.3cm}
1065 \vspace{0.3cm}
1066 \subsubsection{RPC name:~get\_result}
1068 {\bf Overview:}
1069 Get the result field of the given task.
1071 \noindent {\bf Signature:}
1072 \begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
1075 \noindent{\bf Arguments:}
1078 \vspace{0.3cm}
1079 \begin{tabular}{|c|c|p{7cm}|}
1080 \hline
1081 {\bf type} & {\bf name} & {\bf description} \\ \hline
1082 {\tt task ref } & self & reference to the object \\ \hline
1084 \end{tabular}
1086 \vspace{0.3cm}
1088 \noindent {\bf Return Type:}
1089 {\tt
1090 string
1094 value of the field
1095 \vspace{0.3cm}
1096 \vspace{0.3cm}
1097 \vspace{0.3cm}
1098 \subsubsection{RPC name:~get\_error\_info}
1100 {\bf Overview:}
1101 Get the error\_info field of the given task.
1103 \noindent {\bf Signature:}
1104 \begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
1107 \noindent{\bf Arguments:}
1110 \vspace{0.3cm}
1111 \begin{tabular}{|c|c|p{7cm}|}
1112 \hline
1113 {\bf type} & {\bf name} & {\bf description} \\ \hline
1114 {\tt task ref } & self & reference to the object \\ \hline
1116 \end{tabular}
1118 \vspace{0.3cm}
1120 \noindent {\bf Return Type:}
1121 {\tt
1122 string Set
1126 value of the field
1127 \vspace{0.3cm}
1128 \vspace{0.3cm}
1129 \vspace{0.3cm}
1130 \subsubsection{RPC name:~get\_allowed\_operations}
1132 {\bf Overview:}
1133 Get the allowed\_operations field of the given task.
1135 \noindent {\bf Signature:}
1136 \begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
1139 \noindent{\bf Arguments:}
1142 \vspace{0.3cm}
1143 \begin{tabular}{|c|c|p{7cm}|}
1144 \hline
1145 {\bf type} & {\bf name} & {\bf description} \\ \hline
1146 {\tt task ref } & self & reference to the object \\ \hline
1148 \end{tabular}
1150 \vspace{0.3cm}
1152 \noindent {\bf Return Type:}
1153 {\tt
1154 (task\_allowed\_operations) Set
1158 value of the field
1159 \vspace{0.3cm}
1160 \vspace{0.3cm}
1161 \vspace{0.3cm}
1162 \subsubsection{RPC name:~get\_by\_uuid}
1164 {\bf Overview:}
1165 Get a reference to the task instance with the specified UUID.
1167 \noindent {\bf Signature:}
1168 \begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
1171 \noindent{\bf Arguments:}
1174 \vspace{0.3cm}
1175 \begin{tabular}{|c|c|p{7cm}|}
1176 \hline
1177 {\bf type} & {\bf name} & {\bf description} \\ \hline
1178 {\tt string } & uuid & UUID of object to return \\ \hline
1180 \end{tabular}
1182 \vspace{0.3cm}
1184 \noindent {\bf Return Type:}
1185 {\tt
1186 task ref
1190 reference to the object
1191 \vspace{0.3cm}
1192 \vspace{0.3cm}
1193 \vspace{0.3cm}
1194 \subsubsection{RPC name:~get\_record}
1196 {\bf Overview:}
1197 Get a record containing the current state of the given task.
1199 \noindent {\bf Signature:}
1200 \begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
1203 \noindent{\bf Arguments:}
1206 \vspace{0.3cm}
1207 \begin{tabular}{|c|c|p{7cm}|}
1208 \hline
1209 {\bf type} & {\bf name} & {\bf description} \\ \hline
1210 {\tt task ref } & self & reference to the object \\ \hline
1212 \end{tabular}
1214 \vspace{0.3cm}
1216 \noindent {\bf Return Type:}
1217 {\tt
1218 task record
1222 all fields from the object
1223 \vspace{0.3cm}
1224 \vspace{0.3cm}
1225 \vspace{0.3cm}
1226 \subsubsection{RPC name:~get\_by\_name\_label}
1228 {\bf Overview:}
1229 Get all the task instances with the given label.
1231 \noindent {\bf Signature:}
1232 \begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
1235 \noindent{\bf Arguments:}
1238 \vspace{0.3cm}
1239 \begin{tabular}{|c|c|p{7cm}|}
1240 \hline
1241 {\bf type} & {\bf name} & {\bf description} \\ \hline
1242 {\tt string } & label & label of object to return \\ \hline
1244 \end{tabular}
1246 \vspace{0.3cm}
1248 \noindent {\bf Return Type:}
1249 {\tt
1250 (task ref) Set
1254 references to objects with match names
1255 \vspace{0.3cm}
1256 \vspace{0.3cm}
1257 \vspace{0.3cm}
1259 \vspace{1cm}
1260 \newpage
1261 \section{Class: event}
1262 \subsection{Fields for class: event}
1263 \begin{longtable}{|lllp{0.38\textwidth}|}
1264 \hline
1265 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf event} \\
1266 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
1267 Asynchronous event registration and handling.}} \\
1268 \hline
1269 Quals & Field & Type & Description \\
1270 \hline
1271 $\mathit{RO}_\mathit{ins}$ & {\tt id} & int & An ID, monotonically increasing, and local to the current session \\
1272 $\mathit{RO}_\mathit{ins}$ & {\tt timestamp} & datetime & The time at which the event occurred \\
1273 $\mathit{RO}_\mathit{ins}$ & {\tt class} & string & The name of the class of the object that changed \\
1274 $\mathit{RO}_\mathit{ins}$ & {\tt operation} & event\_operation & The operation that was performed \\
1275 $\mathit{RO}_\mathit{ins}$ & {\tt ref} & string & A reference to the object that changed \\
1276 $\mathit{RO}_\mathit{ins}$ & {\tt obj\_uuid} & string & The uuid of the object that changed \\
1277 \hline
1278 \end{longtable}
1279 \subsection{RPCs associated with class: event}
1280 \subsubsection{RPC name:~register}
1282 {\bf Overview:}
1283 Registers this session with the event system. Specifying the empty list
1284 will register for all classes.
1286 \noindent {\bf Signature:}
1287 \begin{verbatim} void register (session_id s, string Set classes)\end{verbatim}
1290 \noindent{\bf Arguments:}
1293 \vspace{0.3cm}
1294 \begin{tabular}{|c|c|p{7cm}|}
1295 \hline
1296 {\bf type} & {\bf name} & {\bf description} \\ \hline
1297 {\tt string Set } & classes & register for events for the indicated classes \\ \hline
1299 \end{tabular}
1301 \vspace{0.3cm}
1303 \noindent {\bf Return Type:}
1304 {\tt
1305 void
1310 \vspace{0.3cm}
1311 \vspace{0.3cm}
1312 \vspace{0.3cm}
1313 \subsubsection{RPC name:~unregister}
1315 {\bf Overview:}
1316 Unregisters this session with the event system.
1318 \noindent {\bf Signature:}
1319 \begin{verbatim} void unregister (session_id s, string Set classes)\end{verbatim}
1322 \noindent{\bf Arguments:}
1325 \vspace{0.3cm}
1326 \begin{tabular}{|c|c|p{7cm}|}
1327 \hline
1328 {\bf type} & {\bf name} & {\bf description} \\ \hline
1329 {\tt string Set } & classes & remove this session's registration for the indicated classes \\ \hline
1331 \end{tabular}
1333 \vspace{0.3cm}
1335 \noindent {\bf Return Type:}
1336 {\tt
1337 void
1342 \vspace{0.3cm}
1343 \vspace{0.3cm}
1344 \vspace{0.3cm}
1345 \subsubsection{RPC name:~next}
1347 {\bf Overview:}
1348 Blocking call which returns a (possibly empty) batch of events.
1350 \noindent {\bf Signature:}
1351 \begin{verbatim} ((event record) Set) next (session_id s)\end{verbatim}
1354 \vspace{0.3cm}
1356 \noindent {\bf Return Type:}
1357 {\tt
1358 (event record) Set
1362 the batch of events
1363 \vspace{0.3cm}
1365 \noindent{\bf Possible Error Codes:} {\tt SESSION\_NOT\_REGISTERED}
1367 \vspace{0.6cm}
1369 \vspace{1cm}
1370 \newpage
1371 \section{Class: VM}
1372 \subsection{Fields for class: VM}
1373 \begin{longtable}{|lllp{0.38\textwidth}|}
1374 \hline
1375 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1376 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
1377 virtual machine (or 'guest').}} \\
1378 \hline
1379 Quals & Field & Type & Description \\
1380 \hline
1381 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1382 $\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1383 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1384 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1385 $\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1386 $\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 \\
1387 $\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1388 $\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) \\
1389 $\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1390 $\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1391 $\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1392 $\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1393 $\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) minimum (bytes) \\
1394 $\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
1395 $\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
1396 $\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
1397 $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1398 $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1399 $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1400 $\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1401 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1402 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1403 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
1404 $\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1405 $\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1406 $\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
1407 $\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
1408 $\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1409 $\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1410 $\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
1411 $\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
1412 $\mathit{RW}$ & {\tt platform} & (string $\rightarrow$ string) Map & platform-specific configuration \\
1413 $\mathit{RW}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1414 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
1415 $\mathit{RO}_\mathit{run}$ & {\tt domid} & int & domain ID (if available, -1 otherwise) \\
1416 $\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
1417 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM \\
1418 $\mathit{RO}_\mathit{run}$ & {\tt guest\_metrics} & VM\_guest\_metrics ref & metrics associated with the running guest \\
1419 $\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
1420 \hline
1421 \end{longtable}
1422 \subsection{RPCs associated with class: VM}
1423 \subsubsection{RPC name:~clone}
1425 {\bf Overview:}
1426 Clones the specified VM, making a new VM. Clone automatically exploits the
1427 capabilities of the underlying storage repository in which the VM's disk
1428 images are stored (e.g. Copy on Write). This function can only be called
1429 when the VM is in the Halted State.
1431 \noindent {\bf Signature:}
1432 \begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1435 \noindent{\bf Arguments:}
1438 \vspace{0.3cm}
1439 \begin{tabular}{|c|c|p{7cm}|}
1440 \hline
1441 {\bf type} & {\bf name} & {\bf description} \\ \hline
1442 {\tt VM ref } & vm & The VM to be cloned \\ \hline
1444 {\tt string } & new\_name & The name of the cloned VM \\ \hline
1446 \end{tabular}
1448 \vspace{0.3cm}
1450 \noindent {\bf Return Type:}
1451 {\tt
1452 VM ref
1456 The ID of the newly created VM.
1457 \vspace{0.3cm}
1459 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1461 \vspace{0.6cm}
1462 \subsubsection{RPC name:~start}
1464 {\bf Overview:}
1465 Start the specified VM. This function can only be called with the VM is in
1466 the Halted State.
1468 \noindent {\bf Signature:}
1469 \begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1472 \noindent{\bf Arguments:}
1475 \vspace{0.3cm}
1476 \begin{tabular}{|c|c|p{7cm}|}
1477 \hline
1478 {\bf type} & {\bf name} & {\bf description} \\ \hline
1479 {\tt VM ref } & vm & The VM to start \\ \hline
1481 {\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1483 \end{tabular}
1485 \vspace{0.3cm}
1487 \noindent {\bf Return Type:}
1488 {\tt
1489 void
1494 \vspace{0.3cm}
1496 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}, {\tt
1497 VM\_HVM\_REQUIRED}
1499 \vspace{0.6cm}
1500 \subsubsection{RPC name:~pause}
1502 {\bf Overview:}
1503 Pause the specified VM. This can only be called when the specified VM is in
1504 the Running state.
1506 \noindent {\bf Signature:}
1507 \begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1510 \noindent{\bf Arguments:}
1513 \vspace{0.3cm}
1514 \begin{tabular}{|c|c|p{7cm}|}
1515 \hline
1516 {\bf type} & {\bf name} & {\bf description} \\ \hline
1517 {\tt VM ref } & vm & The VM to pause \\ \hline
1519 \end{tabular}
1521 \vspace{0.3cm}
1523 \noindent {\bf Return Type:}
1524 {\tt
1525 void
1530 \vspace{0.3cm}
1532 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1534 \vspace{0.6cm}
1535 \subsubsection{RPC name:~unpause}
1537 {\bf Overview:}
1538 Resume the specified VM. This can only be called when the specified VM is
1539 in the Paused state.
1541 \noindent {\bf Signature:}
1542 \begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1545 \noindent{\bf Arguments:}
1548 \vspace{0.3cm}
1549 \begin{tabular}{|c|c|p{7cm}|}
1550 \hline
1551 {\bf type} & {\bf name} & {\bf description} \\ \hline
1552 {\tt VM ref } & vm & The VM to unpause \\ \hline
1554 \end{tabular}
1556 \vspace{0.3cm}
1558 \noindent {\bf Return Type:}
1559 {\tt
1560 void
1565 \vspace{0.3cm}
1567 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1569 \vspace{0.6cm}
1570 \subsubsection{RPC name:~clean\_shutdown}
1572 {\bf Overview:}
1573 Attempt to cleanly shutdown the specified VM. (Note: this may not be
1574 supported---e.g. if a guest agent is not installed).
1576 Once shutdown has been completed perform poweroff action specified in guest
1577 configuration.
1579 This can only be called when the specified VM is in the Running state.
1581 \noindent {\bf Signature:}
1582 \begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1585 \noindent{\bf Arguments:}
1588 \vspace{0.3cm}
1589 \begin{tabular}{|c|c|p{7cm}|}
1590 \hline
1591 {\bf type} & {\bf name} & {\bf description} \\ \hline
1592 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1594 \end{tabular}
1596 \vspace{0.3cm}
1598 \noindent {\bf Return Type:}
1599 {\tt
1600 void
1605 \vspace{0.3cm}
1607 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1609 \vspace{0.6cm}
1610 \subsubsection{RPC name:~clean\_reboot}
1612 {\bf Overview:}
1613 Attempt to cleanly shutdown the specified VM (Note: this may not be
1614 supported---e.g. if a guest agent is not installed).
1616 Once shutdown has been completed perform reboot action specified in guest
1617 configuration.
1619 This can only be called when the specified VM is in the Running state.
1621 \noindent {\bf Signature:}
1622 \begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1625 \noindent{\bf Arguments:}
1628 \vspace{0.3cm}
1629 \begin{tabular}{|c|c|p{7cm}|}
1630 \hline
1631 {\bf type} & {\bf name} & {\bf description} \\ \hline
1632 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1634 \end{tabular}
1636 \vspace{0.3cm}
1638 \noindent {\bf Return Type:}
1639 {\tt
1640 void
1645 \vspace{0.3cm}
1647 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1649 \vspace{0.6cm}
1650 \subsubsection{RPC name:~hard\_shutdown}
1652 {\bf Overview:}
1653 Stop executing the specified VM without attempting a clean shutdown. Then
1654 perform poweroff action specified in VM configuration.
1656 \noindent {\bf Signature:}
1657 \begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1660 \noindent{\bf Arguments:}
1663 \vspace{0.3cm}
1664 \begin{tabular}{|c|c|p{7cm}|}
1665 \hline
1666 {\bf type} & {\bf name} & {\bf description} \\ \hline
1667 {\tt VM ref } & vm & The VM to destroy \\ \hline
1669 \end{tabular}
1671 \vspace{0.3cm}
1673 \noindent {\bf Return Type:}
1674 {\tt
1675 void
1680 \vspace{0.3cm}
1682 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1684 \vspace{0.6cm}
1685 \subsubsection{RPC name:~hard\_reboot}
1687 {\bf Overview:}
1688 Stop executing the specified VM without attempting a clean shutdown. Then
1689 perform reboot action specified in VM configuration.
1691 \noindent {\bf Signature:}
1692 \begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1695 \noindent{\bf Arguments:}
1698 \vspace{0.3cm}
1699 \begin{tabular}{|c|c|p{7cm}|}
1700 \hline
1701 {\bf type} & {\bf name} & {\bf description} \\ \hline
1702 {\tt VM ref } & vm & The VM to reboot \\ \hline
1704 \end{tabular}
1706 \vspace{0.3cm}
1708 \noindent {\bf Return Type:}
1709 {\tt
1710 void
1715 \vspace{0.3cm}
1716 \vspace{0.3cm}
1717 \vspace{0.3cm}
1718 \subsubsection{RPC name:~suspend}
1720 {\bf Overview:}
1721 Suspend the specified VM to disk. This can only be called when the
1722 specified VM is in the Running state.
1724 \noindent {\bf Signature:}
1725 \begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1728 \noindent{\bf Arguments:}
1731 \vspace{0.3cm}
1732 \begin{tabular}{|c|c|p{7cm}|}
1733 \hline
1734 {\bf type} & {\bf name} & {\bf description} \\ \hline
1735 {\tt VM ref } & vm & The VM to suspend \\ \hline
1737 \end{tabular}
1739 \vspace{0.3cm}
1741 \noindent {\bf Return Type:}
1742 {\tt
1743 void
1748 \vspace{0.3cm}
1750 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1752 \vspace{0.6cm}
1753 \subsubsection{RPC name:~resume}
1755 {\bf Overview:}
1756 Awaken the specified VM and resume it. This can only be called when the
1757 specified VM is in the Suspended state.
1759 \noindent {\bf Signature:}
1760 \begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1763 \noindent{\bf Arguments:}
1766 \vspace{0.3cm}
1767 \begin{tabular}{|c|c|p{7cm}|}
1768 \hline
1769 {\bf type} & {\bf name} & {\bf description} \\ \hline
1770 {\tt VM ref } & vm & The VM to resume \\ \hline
1772 {\tt bool } & start\_paused & Resume VM in paused state if set to true. \\ \hline
1774 \end{tabular}
1776 \vspace{0.3cm}
1778 \noindent {\bf Return Type:}
1779 {\tt
1780 void
1785 \vspace{0.3cm}
1787 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1789 \vspace{0.6cm}
1790 \subsubsection{RPC name:~set\_VCPUs\_number\_live}
1792 {\bf Overview:}
1793 Set this VM's VCPUs/at\_startup value, and set the same value on the VM, if
1794 running.
1796 \noindent {\bf Signature:}
1797 \begin{verbatim} void set_VCPUs_number_live (session_id s, VM ref self, int nvcpu)\end{verbatim}
1800 \noindent{\bf Arguments:}
1803 \vspace{0.3cm}
1804 \begin{tabular}{|c|c|p{7cm}|}
1805 \hline
1806 {\bf type} & {\bf name} & {\bf description} \\ \hline
1807 {\tt VM ref } & self & The VM \\ \hline
1809 {\tt int } & nvcpu & The number of VCPUs \\ \hline
1811 \end{tabular}
1813 \vspace{0.3cm}
1815 \noindent {\bf Return Type:}
1816 {\tt
1817 void
1822 \vspace{0.3cm}
1823 \vspace{0.3cm}
1824 \vspace{0.3cm}
1825 \subsubsection{RPC name:~add\_to\_VCPUs\_params\_live}
1827 {\bf Overview:}
1828 Add the given key-value pair to VM.VCPUs\_params, and apply that value on
1829 the running VM.
1831 \noindent {\bf Signature:}
1832 \begin{verbatim} void add_to_VCPUs_params_live (session_id s, VM ref self, string key, string value)\end{verbatim}
1835 \noindent{\bf Arguments:}
1838 \vspace{0.3cm}
1839 \begin{tabular}{|c|c|p{7cm}|}
1840 \hline
1841 {\bf type} & {\bf name} & {\bf description} \\ \hline
1842 {\tt VM ref } & self & The VM \\ \hline
1844 {\tt string } & key & The key \\ \hline
1846 {\tt string } & value & The value \\ \hline
1848 \end{tabular}
1850 \vspace{0.3cm}
1852 \noindent {\bf Return Type:}
1853 {\tt
1854 void
1859 \vspace{0.3cm}
1860 \vspace{0.3cm}
1861 \vspace{0.3cm}
1862 \subsubsection{RPC name:~set\_memory\_dynamic\_max\_live}
1864 {\bf Overview:}
1865 Set memory\_dynamic\_max in database and on running VM.
1867 \noindent {\bf Signature:}
1868 \begin{verbatim} void set_memory_dynamic_max_live (session_id s, VM ref self, int max)\end{verbatim}
1871 \noindent{\bf Arguments:}
1874 \vspace{0.3cm}
1875 \begin{tabular}{|c|c|p{7cm}|}
1876 \hline
1877 {\bf type} & {\bf name} & {\bf description} \\ \hline
1878 {\tt VM ref } & self & The VM \\ \hline
1880 {\tt int } & max & The memory\_dynamic\_max value \\ \hline
1882 \end{tabular}
1884 \vspace{0.3cm}
1886 \noindent {\bf Return Type:}
1887 {\tt
1888 void
1893 \vspace{0.3cm}
1894 \vspace{0.3cm}
1895 \vspace{0.3cm}
1896 \subsubsection{RPC name:~set\_memory\_dynamic\_min\_live}
1898 {\bf Overview:}
1899 Set memory\_dynamic\_min in database and on running VM.
1901 \noindent {\bf Signature:}
1902 \begin{verbatim} void set_memory_dynamic_min_live (session_id s, VM ref self, int min)\end{verbatim}
1905 \noindent{\bf Arguments:}
1908 \vspace{0.3cm}
1909 \begin{tabular}{|c|c|p{7cm}|}
1910 \hline
1911 {\bf type} & {\bf name} & {\bf description} \\ \hline
1912 {\tt VM ref } & self & The VM \\ \hline
1914 {\tt int } & min & The memory\_dynamic\_min value \\ \hline
1916 \end{tabular}
1918 \vspace{0.3cm}
1920 \noindent {\bf Return Type:}
1921 {\tt
1922 void
1927 \vspace{0.3cm}
1928 \vspace{0.3cm}
1929 \vspace{0.3cm}
1930 \subsubsection{RPC name:~send\_sysrq}
1932 {\bf Overview:}
1933 Send the given key as a sysrq to this VM. The key is specified as a single
1934 character (a String of length 1). This can only be called when the
1935 specified VM is in the Running state.
1937 \noindent {\bf Signature:}
1938 \begin{verbatim} void send_sysrq (session_id s, VM ref vm, string key)\end{verbatim}
1941 \noindent{\bf Arguments:}
1944 \vspace{0.3cm}
1945 \begin{tabular}{|c|c|p{7cm}|}
1946 \hline
1947 {\bf type} & {\bf name} & {\bf description} \\ \hline
1948 {\tt VM ref } & vm & The VM \\ \hline
1950 {\tt string } & key & The key to send \\ \hline
1952 \end{tabular}
1954 \vspace{0.3cm}
1956 \noindent {\bf Return Type:}
1957 {\tt
1958 void
1963 \vspace{0.3cm}
1965 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1967 \vspace{0.6cm}
1968 \subsubsection{RPC name:~send\_trigger}
1970 {\bf Overview:}
1971 Send the named trigger to this VM. This can only be called when the
1972 specified VM is in the Running state.
1974 \noindent {\bf Signature:}
1975 \begin{verbatim} void send_trigger (session_id s, VM ref vm, string trigger)\end{verbatim}
1978 \noindent{\bf Arguments:}
1981 \vspace{0.3cm}
1982 \begin{tabular}{|c|c|p{7cm}|}
1983 \hline
1984 {\bf type} & {\bf name} & {\bf description} \\ \hline
1985 {\tt VM ref } & vm & The VM \\ \hline
1987 {\tt string } & trigger & The trigger to send \\ \hline
1989 \end{tabular}
1991 \vspace{0.3cm}
1993 \noindent {\bf Return Type:}
1994 {\tt
1995 void
2000 \vspace{0.3cm}
2002 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2004 \vspace{0.6cm}
2005 \subsubsection{RPC name:~migrate}
2007 {\bf Overview:}
2008 Migrate the VM to another host. This can only be called when the specified
2009 VM is in the Running state.
2011 \noindent {\bf Signature:}
2012 \begin{verbatim} void migrate (session_id s, VM ref vm, string dest, bool live, (string -> string) Map options)\end{verbatim}
2015 \noindent{\bf Arguments:}
2018 \vspace{0.3cm}
2019 \begin{tabular}{|c|c|p{7cm}|}
2020 \hline
2021 {\bf type} & {\bf name} & {\bf description} \\ \hline
2022 {\tt VM ref } & vm & The VM \\ \hline
2024 {\tt string } & dest & The destination host \\ \hline
2026 {\tt bool } & live & Live migration \\ \hline
2028 {\tt (string $\rightarrow$ string) Map } & options & Other parameters \\ \hline
2030 \end{tabular}
2032 \vspace{0.3cm}
2034 \noindent {\bf Return Type:}
2035 {\tt
2036 void
2041 \vspace{0.3cm}
2043 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2045 \vspace{0.6cm}
2046 \subsubsection{RPC name:~get\_all}
2048 {\bf Overview:}
2049 Return a list of all the VMs known to the system.
2051 \noindent {\bf Signature:}
2052 \begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
2055 \vspace{0.3cm}
2057 \noindent {\bf Return Type:}
2058 {\tt
2059 (VM ref) Set
2063 A list of all the IDs of all the VMs
2064 \vspace{0.3cm}
2065 \vspace{0.3cm}
2066 \vspace{0.3cm}
2067 \subsubsection{RPC name:~get\_uuid}
2069 {\bf Overview:}
2070 Get the uuid field of the given VM.
2072 \noindent {\bf Signature:}
2073 \begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
2076 \noindent{\bf Arguments:}
2079 \vspace{0.3cm}
2080 \begin{tabular}{|c|c|p{7cm}|}
2081 \hline
2082 {\bf type} & {\bf name} & {\bf description} \\ \hline
2083 {\tt VM ref } & self & reference to the object \\ \hline
2085 \end{tabular}
2087 \vspace{0.3cm}
2089 \noindent {\bf Return Type:}
2090 {\tt
2091 string
2095 value of the field
2096 \vspace{0.3cm}
2097 \vspace{0.3cm}
2098 \vspace{0.3cm}
2099 \subsubsection{RPC name:~get\_power\_state}
2101 {\bf Overview:}
2102 Get the power\_state field of the given VM.
2104 \noindent {\bf Signature:}
2105 \begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
2108 \noindent{\bf Arguments:}
2111 \vspace{0.3cm}
2112 \begin{tabular}{|c|c|p{7cm}|}
2113 \hline
2114 {\bf type} & {\bf name} & {\bf description} \\ \hline
2115 {\tt VM ref } & self & reference to the object \\ \hline
2117 \end{tabular}
2119 \vspace{0.3cm}
2121 \noindent {\bf Return Type:}
2122 {\tt
2123 vm\_power\_state
2127 value of the field
2128 \vspace{0.3cm}
2129 \vspace{0.3cm}
2130 \vspace{0.3cm}
2131 \subsubsection{RPC name:~get\_name\_label}
2133 {\bf Overview:}
2134 Get the name/label field of the given VM.
2136 \noindent {\bf Signature:}
2137 \begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
2140 \noindent{\bf Arguments:}
2143 \vspace{0.3cm}
2144 \begin{tabular}{|c|c|p{7cm}|}
2145 \hline
2146 {\bf type} & {\bf name} & {\bf description} \\ \hline
2147 {\tt VM ref } & self & reference to the object \\ \hline
2149 \end{tabular}
2151 \vspace{0.3cm}
2153 \noindent {\bf Return Type:}
2154 {\tt
2155 string
2159 value of the field
2160 \vspace{0.3cm}
2161 \vspace{0.3cm}
2162 \vspace{0.3cm}
2163 \subsubsection{RPC name:~set\_name\_label}
2165 {\bf Overview:}
2166 Set the name/label field of the given VM.
2168 \noindent {\bf Signature:}
2169 \begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
2172 \noindent{\bf Arguments:}
2175 \vspace{0.3cm}
2176 \begin{tabular}{|c|c|p{7cm}|}
2177 \hline
2178 {\bf type} & {\bf name} & {\bf description} \\ \hline
2179 {\tt VM ref } & self & reference to the object \\ \hline
2181 {\tt string } & value & New value to set \\ \hline
2183 \end{tabular}
2185 \vspace{0.3cm}
2187 \noindent {\bf Return Type:}
2188 {\tt
2189 void
2194 \vspace{0.3cm}
2195 \vspace{0.3cm}
2196 \vspace{0.3cm}
2197 \subsubsection{RPC name:~get\_name\_description}
2199 {\bf Overview:}
2200 Get the name/description field of the given VM.
2202 \noindent {\bf Signature:}
2203 \begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
2206 \noindent{\bf Arguments:}
2209 \vspace{0.3cm}
2210 \begin{tabular}{|c|c|p{7cm}|}
2211 \hline
2212 {\bf type} & {\bf name} & {\bf description} \\ \hline
2213 {\tt VM ref } & self & reference to the object \\ \hline
2215 \end{tabular}
2217 \vspace{0.3cm}
2219 \noindent {\bf Return Type:}
2220 {\tt
2221 string
2225 value of the field
2226 \vspace{0.3cm}
2227 \vspace{0.3cm}
2228 \vspace{0.3cm}
2229 \subsubsection{RPC name:~set\_name\_description}
2231 {\bf Overview:}
2232 Set the name/description field of the given VM.
2234 \noindent {\bf Signature:}
2235 \begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
2238 \noindent{\bf Arguments:}
2241 \vspace{0.3cm}
2242 \begin{tabular}{|c|c|p{7cm}|}
2243 \hline
2244 {\bf type} & {\bf name} & {\bf description} \\ \hline
2245 {\tt VM ref } & self & reference to the object \\ \hline
2247 {\tt string } & value & New value to set \\ \hline
2249 \end{tabular}
2251 \vspace{0.3cm}
2253 \noindent {\bf Return Type:}
2254 {\tt
2255 void
2260 \vspace{0.3cm}
2261 \vspace{0.3cm}
2262 \vspace{0.3cm}
2263 \subsubsection{RPC name:~get\_user\_version}
2265 {\bf Overview:}
2266 Get the user\_version field of the given VM.
2268 \noindent {\bf Signature:}
2269 \begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
2272 \noindent{\bf Arguments:}
2275 \vspace{0.3cm}
2276 \begin{tabular}{|c|c|p{7cm}|}
2277 \hline
2278 {\bf type} & {\bf name} & {\bf description} \\ \hline
2279 {\tt VM ref } & self & reference to the object \\ \hline
2281 \end{tabular}
2283 \vspace{0.3cm}
2285 \noindent {\bf Return Type:}
2286 {\tt
2287 int
2291 value of the field
2292 \vspace{0.3cm}
2293 \vspace{0.3cm}
2294 \vspace{0.3cm}
2295 \subsubsection{RPC name:~set\_user\_version}
2297 {\bf Overview:}
2298 Set the user\_version field of the given VM.
2300 \noindent {\bf Signature:}
2301 \begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
2304 \noindent{\bf Arguments:}
2307 \vspace{0.3cm}
2308 \begin{tabular}{|c|c|p{7cm}|}
2309 \hline
2310 {\bf type} & {\bf name} & {\bf description} \\ \hline
2311 {\tt VM ref } & self & reference to the object \\ \hline
2313 {\tt int } & value & New value to set \\ \hline
2315 \end{tabular}
2317 \vspace{0.3cm}
2319 \noindent {\bf Return Type:}
2320 {\tt
2321 void
2326 \vspace{0.3cm}
2327 \vspace{0.3cm}
2328 \vspace{0.3cm}
2329 \subsubsection{RPC name:~get\_is\_a\_template}
2331 {\bf Overview:}
2332 Get the is\_a\_template field of the given VM.
2334 \noindent {\bf Signature:}
2335 \begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
2338 \noindent{\bf Arguments:}
2341 \vspace{0.3cm}
2342 \begin{tabular}{|c|c|p{7cm}|}
2343 \hline
2344 {\bf type} & {\bf name} & {\bf description} \\ \hline
2345 {\tt VM ref } & self & reference to the object \\ \hline
2347 \end{tabular}
2349 \vspace{0.3cm}
2351 \noindent {\bf Return Type:}
2352 {\tt
2353 bool
2357 value of the field
2358 \vspace{0.3cm}
2359 \vspace{0.3cm}
2360 \vspace{0.3cm}
2361 \subsubsection{RPC name:~set\_is\_a\_template}
2363 {\bf Overview:}
2364 Set the is\_a\_template field of the given VM.
2366 \noindent {\bf Signature:}
2367 \begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
2370 \noindent{\bf Arguments:}
2373 \vspace{0.3cm}
2374 \begin{tabular}{|c|c|p{7cm}|}
2375 \hline
2376 {\bf type} & {\bf name} & {\bf description} \\ \hline
2377 {\tt VM ref } & self & reference to the object \\ \hline
2379 {\tt bool } & value & New value to set \\ \hline
2381 \end{tabular}
2383 \vspace{0.3cm}
2385 \noindent {\bf Return Type:}
2386 {\tt
2387 void
2392 \vspace{0.3cm}
2393 \vspace{0.3cm}
2394 \vspace{0.3cm}
2395 \subsubsection{RPC name:~get\_auto\_power\_on}
2397 {\bf Overview:}
2398 Get the auto\_power\_on field of the given VM.
2400 \noindent {\bf Signature:}
2401 \begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
2404 \noindent{\bf Arguments:}
2407 \vspace{0.3cm}
2408 \begin{tabular}{|c|c|p{7cm}|}
2409 \hline
2410 {\bf type} & {\bf name} & {\bf description} \\ \hline
2411 {\tt VM ref } & self & reference to the object \\ \hline
2413 \end{tabular}
2415 \vspace{0.3cm}
2417 \noindent {\bf Return Type:}
2418 {\tt
2419 bool
2423 value of the field
2424 \vspace{0.3cm}
2425 \vspace{0.3cm}
2426 \vspace{0.3cm}
2427 \subsubsection{RPC name:~set\_auto\_power\_on}
2429 {\bf Overview:}
2430 Set the auto\_power\_on field of the given VM.
2432 \noindent {\bf Signature:}
2433 \begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
2436 \noindent{\bf Arguments:}
2439 \vspace{0.3cm}
2440 \begin{tabular}{|c|c|p{7cm}|}
2441 \hline
2442 {\bf type} & {\bf name} & {\bf description} \\ \hline
2443 {\tt VM ref } & self & reference to the object \\ \hline
2445 {\tt bool } & value & New value to set \\ \hline
2447 \end{tabular}
2449 \vspace{0.3cm}
2451 \noindent {\bf Return Type:}
2452 {\tt
2453 void
2458 \vspace{0.3cm}
2459 \vspace{0.3cm}
2460 \vspace{0.3cm}
2461 \subsubsection{RPC name:~get\_suspend\_VDI}
2463 {\bf Overview:}
2464 Get the suspend\_VDI field of the given VM.
2466 \noindent {\bf Signature:}
2467 \begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
2470 \noindent{\bf Arguments:}
2473 \vspace{0.3cm}
2474 \begin{tabular}{|c|c|p{7cm}|}
2475 \hline
2476 {\bf type} & {\bf name} & {\bf description} \\ \hline
2477 {\tt VM ref } & self & reference to the object \\ \hline
2479 \end{tabular}
2481 \vspace{0.3cm}
2483 \noindent {\bf Return Type:}
2484 {\tt
2485 VDI ref
2489 value of the field
2490 \vspace{0.3cm}
2491 \vspace{0.3cm}
2492 \vspace{0.3cm}
2493 \subsubsection{RPC name:~get\_resident\_on}
2495 {\bf Overview:}
2496 Get the resident\_on field of the given VM.
2498 \noindent {\bf Signature:}
2499 \begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
2502 \noindent{\bf Arguments:}
2505 \vspace{0.3cm}
2506 \begin{tabular}{|c|c|p{7cm}|}
2507 \hline
2508 {\bf type} & {\bf name} & {\bf description} \\ \hline
2509 {\tt VM ref } & self & reference to the object \\ \hline
2511 \end{tabular}
2513 \vspace{0.3cm}
2515 \noindent {\bf Return Type:}
2516 {\tt
2517 host ref
2521 value of the field
2522 \vspace{0.3cm}
2523 \vspace{0.3cm}
2524 \vspace{0.3cm}
2525 \subsubsection{RPC name:~get\_memory\_static\_max}
2527 {\bf Overview:}
2528 Get the memory/static\_max field of the given VM.
2530 \noindent {\bf Signature:}
2531 \begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
2534 \noindent{\bf Arguments:}
2537 \vspace{0.3cm}
2538 \begin{tabular}{|c|c|p{7cm}|}
2539 \hline
2540 {\bf type} & {\bf name} & {\bf description} \\ \hline
2541 {\tt VM ref } & self & reference to the object \\ \hline
2543 \end{tabular}
2545 \vspace{0.3cm}
2547 \noindent {\bf Return Type:}
2548 {\tt
2549 int
2553 value of the field
2554 \vspace{0.3cm}
2555 \vspace{0.3cm}
2556 \vspace{0.3cm}
2557 \subsubsection{RPC name:~set\_memory\_static\_max}
2559 {\bf Overview:}
2560 Set the memory/static\_max field of the given VM.
2562 \noindent {\bf Signature:}
2563 \begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
2566 \noindent{\bf Arguments:}
2569 \vspace{0.3cm}
2570 \begin{tabular}{|c|c|p{7cm}|}
2571 \hline
2572 {\bf type} & {\bf name} & {\bf description} \\ \hline
2573 {\tt VM ref } & self & reference to the object \\ \hline
2575 {\tt int } & value & New value to set \\ \hline
2577 \end{tabular}
2579 \vspace{0.3cm}
2581 \noindent {\bf Return Type:}
2582 {\tt
2583 void
2588 \vspace{0.3cm}
2589 \vspace{0.3cm}
2590 \vspace{0.3cm}
2591 \subsubsection{RPC name:~get\_memory\_dynamic\_max}
2593 {\bf Overview:}
2594 Get the memory/dynamic\_max field of the given VM.
2596 \noindent {\bf Signature:}
2597 \begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
2600 \noindent{\bf Arguments:}
2603 \vspace{0.3cm}
2604 \begin{tabular}{|c|c|p{7cm}|}
2605 \hline
2606 {\bf type} & {\bf name} & {\bf description} \\ \hline
2607 {\tt VM ref } & self & reference to the object \\ \hline
2609 \end{tabular}
2611 \vspace{0.3cm}
2613 \noindent {\bf Return Type:}
2614 {\tt
2615 int
2619 value of the field
2620 \vspace{0.3cm}
2621 \vspace{0.3cm}
2622 \vspace{0.3cm}
2623 \subsubsection{RPC name:~set\_memory\_dynamic\_max}
2625 {\bf Overview:}
2626 Set the memory/dynamic\_max field of the given VM.
2628 \noindent {\bf Signature:}
2629 \begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2632 \noindent{\bf Arguments:}
2635 \vspace{0.3cm}
2636 \begin{tabular}{|c|c|p{7cm}|}
2637 \hline
2638 {\bf type} & {\bf name} & {\bf description} \\ \hline
2639 {\tt VM ref } & self & reference to the object \\ \hline
2641 {\tt int } & value & New value to set \\ \hline
2643 \end{tabular}
2645 \vspace{0.3cm}
2647 \noindent {\bf Return Type:}
2648 {\tt
2649 void
2654 \vspace{0.3cm}
2655 \vspace{0.3cm}
2656 \vspace{0.3cm}
2657 \subsubsection{RPC name:~get\_memory\_dynamic\_min}
2659 {\bf Overview:}
2660 Get the memory/dynamic\_min field of the given VM.
2662 \noindent {\bf Signature:}
2663 \begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2666 \noindent{\bf Arguments:}
2669 \vspace{0.3cm}
2670 \begin{tabular}{|c|c|p{7cm}|}
2671 \hline
2672 {\bf type} & {\bf name} & {\bf description} \\ \hline
2673 {\tt VM ref } & self & reference to the object \\ \hline
2675 \end{tabular}
2677 \vspace{0.3cm}
2679 \noindent {\bf Return Type:}
2680 {\tt
2681 int
2685 value of the field
2686 \vspace{0.3cm}
2687 \vspace{0.3cm}
2688 \vspace{0.3cm}
2689 \subsubsection{RPC name:~set\_memory\_dynamic\_min}
2691 {\bf Overview:}
2692 Set the memory/dynamic\_min field of the given VM.
2694 \noindent {\bf Signature:}
2695 \begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2698 \noindent{\bf Arguments:}
2701 \vspace{0.3cm}
2702 \begin{tabular}{|c|c|p{7cm}|}
2703 \hline
2704 {\bf type} & {\bf name} & {\bf description} \\ \hline
2705 {\tt VM ref } & self & reference to the object \\ \hline
2707 {\tt int } & value & New value to set \\ \hline
2709 \end{tabular}
2711 \vspace{0.3cm}
2713 \noindent {\bf Return Type:}
2714 {\tt
2715 void
2720 \vspace{0.3cm}
2721 \vspace{0.3cm}
2722 \vspace{0.3cm}
2723 \subsubsection{RPC name:~get\_memory\_static\_min}
2725 {\bf Overview:}
2726 Get the memory/static\_min field of the given VM.
2728 \noindent {\bf Signature:}
2729 \begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2732 \noindent{\bf Arguments:}
2735 \vspace{0.3cm}
2736 \begin{tabular}{|c|c|p{7cm}|}
2737 \hline
2738 {\bf type} & {\bf name} & {\bf description} \\ \hline
2739 {\tt VM ref } & self & reference to the object \\ \hline
2741 \end{tabular}
2743 \vspace{0.3cm}
2745 \noindent {\bf Return Type:}
2746 {\tt
2747 int
2751 value of the field
2752 \vspace{0.3cm}
2753 \vspace{0.3cm}
2754 \vspace{0.3cm}
2755 \subsubsection{RPC name:~set\_memory\_static\_min}
2757 {\bf Overview:}
2758 Set the memory/static\_min field of the given VM.
2760 \noindent {\bf Signature:}
2761 \begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
2764 \noindent{\bf Arguments:}
2767 \vspace{0.3cm}
2768 \begin{tabular}{|c|c|p{7cm}|}
2769 \hline
2770 {\bf type} & {\bf name} & {\bf description} \\ \hline
2771 {\tt VM ref } & self & reference to the object \\ \hline
2773 {\tt int } & value & New value to set \\ \hline
2775 \end{tabular}
2777 \vspace{0.3cm}
2779 \noindent {\bf Return Type:}
2780 {\tt
2781 void
2786 \vspace{0.3cm}
2787 \vspace{0.3cm}
2788 \vspace{0.3cm}
2789 \subsubsection{RPC name:~get\_VCPUs\_params}
2791 {\bf Overview:}
2792 Get the VCPUs/params field of the given VM.
2794 \noindent {\bf Signature:}
2795 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2798 \noindent{\bf Arguments:}
2801 \vspace{0.3cm}
2802 \begin{tabular}{|c|c|p{7cm}|}
2803 \hline
2804 {\bf type} & {\bf name} & {\bf description} \\ \hline
2805 {\tt VM ref } & self & reference to the object \\ \hline
2807 \end{tabular}
2809 \vspace{0.3cm}
2811 \noindent {\bf Return Type:}
2812 {\tt
2813 (string $\rightarrow$ string) Map
2817 value of the field
2818 \vspace{0.3cm}
2819 \vspace{0.3cm}
2820 \vspace{0.3cm}
2821 \subsubsection{RPC name:~set\_VCPUs\_params}
2823 {\bf Overview:}
2824 Set the VCPUs/params field of the given VM.
2826 \noindent {\bf Signature:}
2827 \begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
2830 \noindent{\bf Arguments:}
2833 \vspace{0.3cm}
2834 \begin{tabular}{|c|c|p{7cm}|}
2835 \hline
2836 {\bf type} & {\bf name} & {\bf description} \\ \hline
2837 {\tt VM ref } & self & reference to the object \\ \hline
2839 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
2841 \end{tabular}
2843 \vspace{0.3cm}
2845 \noindent {\bf Return Type:}
2846 {\tt
2847 void
2852 \vspace{0.3cm}
2853 \vspace{0.3cm}
2854 \vspace{0.3cm}
2855 \subsubsection{RPC name:~add\_to\_VCPUs\_params}
2857 {\bf Overview:}
2858 Add the given key-value pair to the VCPUs/params field of the given VM.
2860 \noindent {\bf Signature:}
2861 \begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
2864 \noindent{\bf Arguments:}
2867 \vspace{0.3cm}
2868 \begin{tabular}{|c|c|p{7cm}|}
2869 \hline
2870 {\bf type} & {\bf name} & {\bf description} \\ \hline
2871 {\tt VM ref } & self & reference to the object \\ \hline
2873 {\tt string } & key & Key to add \\ \hline
2875 {\tt string } & value & Value to add \\ \hline
2877 \end{tabular}
2879 \vspace{0.3cm}
2881 \noindent {\bf Return Type:}
2882 {\tt
2883 void
2888 \vspace{0.3cm}
2889 \vspace{0.3cm}
2890 \vspace{0.3cm}
2891 \subsubsection{RPC name:~remove\_from\_VCPUs\_params}
2893 {\bf Overview:}
2894 Remove the given key and its corresponding value from the VCPUs/params
2895 field of the given VM. If the key is not in that Map, then do nothing.
2897 \noindent {\bf Signature:}
2898 \begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
2901 \noindent{\bf Arguments:}
2904 \vspace{0.3cm}
2905 \begin{tabular}{|c|c|p{7cm}|}
2906 \hline
2907 {\bf type} & {\bf name} & {\bf description} \\ \hline
2908 {\tt VM ref } & self & reference to the object \\ \hline
2910 {\tt string } & key & Key to remove \\ \hline
2912 \end{tabular}
2914 \vspace{0.3cm}
2916 \noindent {\bf Return Type:}
2917 {\tt
2918 void
2923 \vspace{0.3cm}
2924 \vspace{0.3cm}
2925 \vspace{0.3cm}
2926 \subsubsection{RPC name:~get\_VCPUs\_max}
2928 {\bf Overview:}
2929 Get the VCPUs/max field of the given VM.
2931 \noindent {\bf Signature:}
2932 \begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
2935 \noindent{\bf Arguments:}
2938 \vspace{0.3cm}
2939 \begin{tabular}{|c|c|p{7cm}|}
2940 \hline
2941 {\bf type} & {\bf name} & {\bf description} \\ \hline
2942 {\tt VM ref } & self & reference to the object \\ \hline
2944 \end{tabular}
2946 \vspace{0.3cm}
2948 \noindent {\bf Return Type:}
2949 {\tt
2950 int
2954 value of the field
2955 \vspace{0.3cm}
2956 \vspace{0.3cm}
2957 \vspace{0.3cm}
2958 \subsubsection{RPC name:~set\_VCPUs\_max}
2960 {\bf Overview:}
2961 Set the VCPUs/max field of the given VM.
2963 \noindent {\bf Signature:}
2964 \begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
2967 \noindent{\bf Arguments:}
2970 \vspace{0.3cm}
2971 \begin{tabular}{|c|c|p{7cm}|}
2972 \hline
2973 {\bf type} & {\bf name} & {\bf description} \\ \hline
2974 {\tt VM ref } & self & reference to the object \\ \hline
2976 {\tt int } & value & New value to set \\ \hline
2978 \end{tabular}
2980 \vspace{0.3cm}
2982 \noindent {\bf Return Type:}
2983 {\tt
2984 void
2989 \vspace{0.3cm}
2990 \vspace{0.3cm}
2991 \vspace{0.3cm}
2992 \subsubsection{RPC name:~get\_VCPUs\_at\_startup}
2994 {\bf Overview:}
2995 Get the VCPUs/at\_startup field of the given VM.
2997 \noindent {\bf Signature:}
2998 \begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
3001 \noindent{\bf Arguments:}
3004 \vspace{0.3cm}
3005 \begin{tabular}{|c|c|p{7cm}|}
3006 \hline
3007 {\bf type} & {\bf name} & {\bf description} \\ \hline
3008 {\tt VM ref } & self & reference to the object \\ \hline
3010 \end{tabular}
3012 \vspace{0.3cm}
3014 \noindent {\bf Return Type:}
3015 {\tt
3016 int
3020 value of the field
3021 \vspace{0.3cm}
3022 \vspace{0.3cm}
3023 \vspace{0.3cm}
3024 \subsubsection{RPC name:~set\_VCPUs\_at\_startup}
3026 {\bf Overview:}
3027 Set the VCPUs/at\_startup field of the given VM.
3029 \noindent {\bf Signature:}
3030 \begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
3033 \noindent{\bf Arguments:}
3036 \vspace{0.3cm}
3037 \begin{tabular}{|c|c|p{7cm}|}
3038 \hline
3039 {\bf type} & {\bf name} & {\bf description} \\ \hline
3040 {\tt VM ref } & self & reference to the object \\ \hline
3042 {\tt int } & value & New value to set \\ \hline
3044 \end{tabular}
3046 \vspace{0.3cm}
3048 \noindent {\bf Return Type:}
3049 {\tt
3050 void
3055 \vspace{0.3cm}
3056 \vspace{0.3cm}
3057 \vspace{0.3cm}
3058 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
3060 {\bf Overview:}
3061 Get the actions/after\_shutdown field of the given VM.
3063 \noindent {\bf Signature:}
3064 \begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
3067 \noindent{\bf Arguments:}
3070 \vspace{0.3cm}
3071 \begin{tabular}{|c|c|p{7cm}|}
3072 \hline
3073 {\bf type} & {\bf name} & {\bf description} \\ \hline
3074 {\tt VM ref } & self & reference to the object \\ \hline
3076 \end{tabular}
3078 \vspace{0.3cm}
3080 \noindent {\bf Return Type:}
3081 {\tt
3082 on\_normal\_exit
3086 value of the field
3087 \vspace{0.3cm}
3088 \vspace{0.3cm}
3089 \vspace{0.3cm}
3090 \subsubsection{RPC name:~set\_actions\_after\_shutdown}
3092 {\bf Overview:}
3093 Set the actions/after\_shutdown field of the given VM.
3095 \noindent {\bf Signature:}
3096 \begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3099 \noindent{\bf Arguments:}
3102 \vspace{0.3cm}
3103 \begin{tabular}{|c|c|p{7cm}|}
3104 \hline
3105 {\bf type} & {\bf name} & {\bf description} \\ \hline
3106 {\tt VM ref } & self & reference to the object \\ \hline
3108 {\tt on\_normal\_exit } & value & New value to set \\ \hline
3110 \end{tabular}
3112 \vspace{0.3cm}
3114 \noindent {\bf Return Type:}
3115 {\tt
3116 void
3121 \vspace{0.3cm}
3122 \vspace{0.3cm}
3123 \vspace{0.3cm}
3124 \subsubsection{RPC name:~get\_actions\_after\_reboot}
3126 {\bf Overview:}
3127 Get the actions/after\_reboot field of the given VM.
3129 \noindent {\bf Signature:}
3130 \begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
3133 \noindent{\bf Arguments:}
3136 \vspace{0.3cm}
3137 \begin{tabular}{|c|c|p{7cm}|}
3138 \hline
3139 {\bf type} & {\bf name} & {\bf description} \\ \hline
3140 {\tt VM ref } & self & reference to the object \\ \hline
3142 \end{tabular}
3144 \vspace{0.3cm}
3146 \noindent {\bf Return Type:}
3147 {\tt
3148 on\_normal\_exit
3152 value of the field
3153 \vspace{0.3cm}
3154 \vspace{0.3cm}
3155 \vspace{0.3cm}
3156 \subsubsection{RPC name:~set\_actions\_after\_reboot}
3158 {\bf Overview:}
3159 Set the actions/after\_reboot field of the given VM.
3161 \noindent {\bf Signature:}
3162 \begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3165 \noindent{\bf Arguments:}
3168 \vspace{0.3cm}
3169 \begin{tabular}{|c|c|p{7cm}|}
3170 \hline
3171 {\bf type} & {\bf name} & {\bf description} \\ \hline
3172 {\tt VM ref } & self & reference to the object \\ \hline
3174 {\tt on\_normal\_exit } & value & New value to set \\ \hline
3176 \end{tabular}
3178 \vspace{0.3cm}
3180 \noindent {\bf Return Type:}
3181 {\tt
3182 void
3187 \vspace{0.3cm}
3188 \vspace{0.3cm}
3189 \vspace{0.3cm}
3190 \subsubsection{RPC name:~get\_actions\_after\_crash}
3192 {\bf Overview:}
3193 Get the actions/after\_crash field of the given VM.
3195 \noindent {\bf Signature:}
3196 \begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
3199 \noindent{\bf Arguments:}
3202 \vspace{0.3cm}
3203 \begin{tabular}{|c|c|p{7cm}|}
3204 \hline
3205 {\bf type} & {\bf name} & {\bf description} \\ \hline
3206 {\tt VM ref } & self & reference to the object \\ \hline
3208 \end{tabular}
3210 \vspace{0.3cm}
3212 \noindent {\bf Return Type:}
3213 {\tt
3214 on\_crash\_behaviour
3218 value of the field
3219 \vspace{0.3cm}
3220 \vspace{0.3cm}
3221 \vspace{0.3cm}
3222 \subsubsection{RPC name:~set\_actions\_after\_crash}
3224 {\bf Overview:}
3225 Set the actions/after\_crash field of the given VM.
3227 \noindent {\bf Signature:}
3228 \begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
3231 \noindent{\bf Arguments:}
3234 \vspace{0.3cm}
3235 \begin{tabular}{|c|c|p{7cm}|}
3236 \hline
3237 {\bf type} & {\bf name} & {\bf description} \\ \hline
3238 {\tt VM ref } & self & reference to the object \\ \hline
3240 {\tt on\_crash\_behaviour } & value & New value to set \\ \hline
3242 \end{tabular}
3244 \vspace{0.3cm}
3246 \noindent {\bf Return Type:}
3247 {\tt
3248 void
3253 \vspace{0.3cm}
3254 \vspace{0.3cm}
3255 \vspace{0.3cm}
3256 \subsubsection{RPC name:~get\_consoles}
3258 {\bf Overview:}
3259 Get the consoles field of the given VM.
3261 \noindent {\bf Signature:}
3262 \begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
3265 \noindent{\bf Arguments:}
3268 \vspace{0.3cm}
3269 \begin{tabular}{|c|c|p{7cm}|}
3270 \hline
3271 {\bf type} & {\bf name} & {\bf description} \\ \hline
3272 {\tt VM ref } & self & reference to the object \\ \hline
3274 \end{tabular}
3276 \vspace{0.3cm}
3278 \noindent {\bf Return Type:}
3279 {\tt
3280 (console ref) Set
3284 value of the field
3285 \vspace{0.3cm}
3286 \vspace{0.3cm}
3287 \vspace{0.3cm}
3288 \subsubsection{RPC name:~get\_VIFs}
3290 {\bf Overview:}
3291 Get the VIFs field of the given VM.
3293 \noindent {\bf Signature:}
3294 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
3297 \noindent{\bf Arguments:}
3300 \vspace{0.3cm}
3301 \begin{tabular}{|c|c|p{7cm}|}
3302 \hline
3303 {\bf type} & {\bf name} & {\bf description} \\ \hline
3304 {\tt VM ref } & self & reference to the object \\ \hline
3306 \end{tabular}
3308 \vspace{0.3cm}
3310 \noindent {\bf Return Type:}
3311 {\tt
3312 (VIF ref) Set
3316 value of the field
3317 \vspace{0.3cm}
3318 \vspace{0.3cm}
3319 \vspace{0.3cm}
3320 \subsubsection{RPC name:~get\_VBDs}
3322 {\bf Overview:}
3323 Get the VBDs field of the given VM.
3325 \noindent {\bf Signature:}
3326 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
3329 \noindent{\bf Arguments:}
3332 \vspace{0.3cm}
3333 \begin{tabular}{|c|c|p{7cm}|}
3334 \hline
3335 {\bf type} & {\bf name} & {\bf description} \\ \hline
3336 {\tt VM ref } & self & reference to the object \\ \hline
3338 \end{tabular}
3340 \vspace{0.3cm}
3342 \noindent {\bf Return Type:}
3343 {\tt
3344 (VBD ref) Set
3348 value of the field
3349 \vspace{0.3cm}
3350 \vspace{0.3cm}
3351 \vspace{0.3cm}
3352 \subsubsection{RPC name:~get\_crash\_dumps}
3354 {\bf Overview:}
3355 Get the crash\_dumps field of the given VM.
3357 \noindent {\bf Signature:}
3358 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
3361 \noindent{\bf Arguments:}
3364 \vspace{0.3cm}
3365 \begin{tabular}{|c|c|p{7cm}|}
3366 \hline
3367 {\bf type} & {\bf name} & {\bf description} \\ \hline
3368 {\tt VM ref } & self & reference to the object \\ \hline
3370 \end{tabular}
3372 \vspace{0.3cm}
3374 \noindent {\bf Return Type:}
3375 {\tt
3376 (crashdump ref) Set
3380 value of the field
3381 \vspace{0.3cm}
3382 \vspace{0.3cm}
3383 \vspace{0.3cm}
3384 \subsubsection{RPC name:~get\_VTPMs}
3386 {\bf Overview:}
3387 Get the VTPMs field of the given VM.
3389 \noindent {\bf Signature:}
3390 \begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
3393 \noindent{\bf Arguments:}
3396 \vspace{0.3cm}
3397 \begin{tabular}{|c|c|p{7cm}|}
3398 \hline
3399 {\bf type} & {\bf name} & {\bf description} \\ \hline
3400 {\tt VM ref } & self & reference to the object \\ \hline
3402 \end{tabular}
3404 \vspace{0.3cm}
3406 \noindent {\bf Return Type:}
3407 {\tt
3408 (VTPM ref) Set
3412 value of the field
3413 \vspace{0.3cm}
3414 \vspace{0.3cm}
3415 \vspace{0.3cm}
3416 \subsubsection{RPC name:~get\_PV\_bootloader}
3418 {\bf Overview:}
3419 Get the PV/bootloader field of the given VM.
3421 \noindent {\bf Signature:}
3422 \begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
3425 \noindent{\bf Arguments:}
3428 \vspace{0.3cm}
3429 \begin{tabular}{|c|c|p{7cm}|}
3430 \hline
3431 {\bf type} & {\bf name} & {\bf description} \\ \hline
3432 {\tt VM ref } & self & reference to the object \\ \hline
3434 \end{tabular}
3436 \vspace{0.3cm}
3438 \noindent {\bf Return Type:}
3439 {\tt
3440 string
3444 value of the field
3445 \vspace{0.3cm}
3446 \vspace{0.3cm}
3447 \vspace{0.3cm}
3448 \subsubsection{RPC name:~set\_PV\_bootloader}
3450 {\bf Overview:}
3451 Set the PV/bootloader field of the given VM.
3453 \noindent {\bf Signature:}
3454 \begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
3457 \noindent{\bf Arguments:}
3460 \vspace{0.3cm}
3461 \begin{tabular}{|c|c|p{7cm}|}
3462 \hline
3463 {\bf type} & {\bf name} & {\bf description} \\ \hline
3464 {\tt VM ref } & self & reference to the object \\ \hline
3466 {\tt string } & value & New value to set \\ \hline
3468 \end{tabular}
3470 \vspace{0.3cm}
3472 \noindent {\bf Return Type:}
3473 {\tt
3474 void
3479 \vspace{0.3cm}
3480 \vspace{0.3cm}
3481 \vspace{0.3cm}
3482 \subsubsection{RPC name:~get\_PV\_kernel}
3484 {\bf Overview:}
3485 Get the PV/kernel field of the given VM.
3487 \noindent {\bf Signature:}
3488 \begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
3491 \noindent{\bf Arguments:}
3494 \vspace{0.3cm}
3495 \begin{tabular}{|c|c|p{7cm}|}
3496 \hline
3497 {\bf type} & {\bf name} & {\bf description} \\ \hline
3498 {\tt VM ref } & self & reference to the object \\ \hline
3500 \end{tabular}
3502 \vspace{0.3cm}
3504 \noindent {\bf Return Type:}
3505 {\tt
3506 string
3510 value of the field
3511 \vspace{0.3cm}
3512 \vspace{0.3cm}
3513 \vspace{0.3cm}
3514 \subsubsection{RPC name:~set\_PV\_kernel}
3516 {\bf Overview:}
3517 Set the PV/kernel field of the given VM.
3519 \noindent {\bf Signature:}
3520 \begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3523 \noindent{\bf Arguments:}
3526 \vspace{0.3cm}
3527 \begin{tabular}{|c|c|p{7cm}|}
3528 \hline
3529 {\bf type} & {\bf name} & {\bf description} \\ \hline
3530 {\tt VM ref } & self & reference to the object \\ \hline
3532 {\tt string } & value & New value to set \\ \hline
3534 \end{tabular}
3536 \vspace{0.3cm}
3538 \noindent {\bf Return Type:}
3539 {\tt
3540 void
3545 \vspace{0.3cm}
3546 \vspace{0.3cm}
3547 \vspace{0.3cm}
3548 \subsubsection{RPC name:~get\_PV\_ramdisk}
3550 {\bf Overview:}
3551 Get the PV/ramdisk field of the given VM.
3553 \noindent {\bf Signature:}
3554 \begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3557 \noindent{\bf Arguments:}
3560 \vspace{0.3cm}
3561 \begin{tabular}{|c|c|p{7cm}|}
3562 \hline
3563 {\bf type} & {\bf name} & {\bf description} \\ \hline
3564 {\tt VM ref } & self & reference to the object \\ \hline
3566 \end{tabular}
3568 \vspace{0.3cm}
3570 \noindent {\bf Return Type:}
3571 {\tt
3572 string
3576 value of the field
3577 \vspace{0.3cm}
3578 \vspace{0.3cm}
3579 \vspace{0.3cm}
3580 \subsubsection{RPC name:~set\_PV\_ramdisk}
3582 {\bf Overview:}
3583 Set the PV/ramdisk field of the given VM.
3585 \noindent {\bf Signature:}
3586 \begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3589 \noindent{\bf Arguments:}
3592 \vspace{0.3cm}
3593 \begin{tabular}{|c|c|p{7cm}|}
3594 \hline
3595 {\bf type} & {\bf name} & {\bf description} \\ \hline
3596 {\tt VM ref } & self & reference to the object \\ \hline
3598 {\tt string } & value & New value to set \\ \hline
3600 \end{tabular}
3602 \vspace{0.3cm}
3604 \noindent {\bf Return Type:}
3605 {\tt
3606 void
3611 \vspace{0.3cm}
3612 \vspace{0.3cm}
3613 \vspace{0.3cm}
3614 \subsubsection{RPC name:~get\_PV\_args}
3616 {\bf Overview:}
3617 Get the PV/args field of the given VM.
3619 \noindent {\bf Signature:}
3620 \begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3623 \noindent{\bf Arguments:}
3626 \vspace{0.3cm}
3627 \begin{tabular}{|c|c|p{7cm}|}
3628 \hline
3629 {\bf type} & {\bf name} & {\bf description} \\ \hline
3630 {\tt VM ref } & self & reference to the object \\ \hline
3632 \end{tabular}
3634 \vspace{0.3cm}
3636 \noindent {\bf Return Type:}
3637 {\tt
3638 string
3642 value of the field
3643 \vspace{0.3cm}
3644 \vspace{0.3cm}
3645 \vspace{0.3cm}
3646 \subsubsection{RPC name:~set\_PV\_args}
3648 {\bf Overview:}
3649 Set the PV/args field of the given VM.
3651 \noindent {\bf Signature:}
3652 \begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3655 \noindent{\bf Arguments:}
3658 \vspace{0.3cm}
3659 \begin{tabular}{|c|c|p{7cm}|}
3660 \hline
3661 {\bf type} & {\bf name} & {\bf description} \\ \hline
3662 {\tt VM ref } & self & reference to the object \\ \hline
3664 {\tt string } & value & New value to set \\ \hline
3666 \end{tabular}
3668 \vspace{0.3cm}
3670 \noindent {\bf Return Type:}
3671 {\tt
3672 void
3677 \vspace{0.3cm}
3678 \vspace{0.3cm}
3679 \vspace{0.3cm}
3680 \subsubsection{RPC name:~get\_PV\_bootloader\_args}
3682 {\bf Overview:}
3683 Get the PV/bootloader\_args field of the given VM.
3685 \noindent {\bf Signature:}
3686 \begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3689 \noindent{\bf Arguments:}
3692 \vspace{0.3cm}
3693 \begin{tabular}{|c|c|p{7cm}|}
3694 \hline
3695 {\bf type} & {\bf name} & {\bf description} \\ \hline
3696 {\tt VM ref } & self & reference to the object \\ \hline
3698 \end{tabular}
3700 \vspace{0.3cm}
3702 \noindent {\bf Return Type:}
3703 {\tt
3704 string
3708 value of the field
3709 \vspace{0.3cm}
3710 \vspace{0.3cm}
3711 \vspace{0.3cm}
3712 \subsubsection{RPC name:~set\_PV\_bootloader\_args}
3714 {\bf Overview:}
3715 Set the PV/bootloader\_args field of the given VM.
3717 \noindent {\bf Signature:}
3718 \begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3721 \noindent{\bf Arguments:}
3724 \vspace{0.3cm}
3725 \begin{tabular}{|c|c|p{7cm}|}
3726 \hline
3727 {\bf type} & {\bf name} & {\bf description} \\ \hline
3728 {\tt VM ref } & self & reference to the object \\ \hline
3730 {\tt string } & value & New value to set \\ \hline
3732 \end{tabular}
3734 \vspace{0.3cm}
3736 \noindent {\bf Return Type:}
3737 {\tt
3738 void
3743 \vspace{0.3cm}
3744 \vspace{0.3cm}
3745 \vspace{0.3cm}
3746 \subsubsection{RPC name:~get\_HVM\_boot\_policy}
3748 {\bf Overview:}
3749 Get the HVM/boot\_policy field of the given VM.
3751 \noindent {\bf Signature:}
3752 \begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
3755 \noindent{\bf Arguments:}
3758 \vspace{0.3cm}
3759 \begin{tabular}{|c|c|p{7cm}|}
3760 \hline
3761 {\bf type} & {\bf name} & {\bf description} \\ \hline
3762 {\tt VM ref } & self & reference to the object \\ \hline
3764 \end{tabular}
3766 \vspace{0.3cm}
3768 \noindent {\bf Return Type:}
3769 {\tt
3770 string
3774 value of the field
3775 \vspace{0.3cm}
3776 \vspace{0.3cm}
3777 \vspace{0.3cm}
3778 \subsubsection{RPC name:~set\_HVM\_boot\_policy}
3780 {\bf Overview:}
3781 Set the HVM/boot\_policy field of the given VM.
3783 \noindent {\bf Signature:}
3784 \begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
3787 \noindent{\bf Arguments:}
3790 \vspace{0.3cm}
3791 \begin{tabular}{|c|c|p{7cm}|}
3792 \hline
3793 {\bf type} & {\bf name} & {\bf description} \\ \hline
3794 {\tt VM ref } & self & reference to the object \\ \hline
3796 {\tt string } & value & New value to set \\ \hline
3798 \end{tabular}
3800 \vspace{0.3cm}
3802 \noindent {\bf Return Type:}
3803 {\tt
3804 void
3809 \vspace{0.3cm}
3810 \vspace{0.3cm}
3811 \vspace{0.3cm}
3812 \subsubsection{RPC name:~get\_HVM\_boot\_params}
3814 {\bf Overview:}
3815 Get the HVM/boot\_params field of the given VM.
3817 \noindent {\bf Signature:}
3818 \begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
3821 \noindent{\bf Arguments:}
3824 \vspace{0.3cm}
3825 \begin{tabular}{|c|c|p{7cm}|}
3826 \hline
3827 {\bf type} & {\bf name} & {\bf description} \\ \hline
3828 {\tt VM ref } & self & reference to the object \\ \hline
3830 \end{tabular}
3832 \vspace{0.3cm}
3834 \noindent {\bf Return Type:}
3835 {\tt
3836 (string $\rightarrow$ string) Map
3840 value of the field
3841 \vspace{0.3cm}
3842 \vspace{0.3cm}
3843 \vspace{0.3cm}
3844 \subsubsection{RPC name:~set\_HVM\_boot\_params}
3846 {\bf Overview:}
3847 Set the HVM/boot\_params field of the given VM.
3849 \noindent {\bf Signature:}
3850 \begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3853 \noindent{\bf Arguments:}
3856 \vspace{0.3cm}
3857 \begin{tabular}{|c|c|p{7cm}|}
3858 \hline
3859 {\bf type} & {\bf name} & {\bf description} \\ \hline
3860 {\tt VM ref } & self & reference to the object \\ \hline
3862 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3864 \end{tabular}
3866 \vspace{0.3cm}
3868 \noindent {\bf Return Type:}
3869 {\tt
3870 void
3875 \vspace{0.3cm}
3876 \vspace{0.3cm}
3877 \vspace{0.3cm}
3878 \subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
3880 {\bf Overview:}
3881 Add the given key-value pair to the HVM/boot\_params field of the given VM.
3883 \noindent {\bf Signature:}
3884 \begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
3887 \noindent{\bf Arguments:}
3890 \vspace{0.3cm}
3891 \begin{tabular}{|c|c|p{7cm}|}
3892 \hline
3893 {\bf type} & {\bf name} & {\bf description} \\ \hline
3894 {\tt VM ref } & self & reference to the object \\ \hline
3896 {\tt string } & key & Key to add \\ \hline
3898 {\tt string } & value & Value to add \\ \hline
3900 \end{tabular}
3902 \vspace{0.3cm}
3904 \noindent {\bf Return Type:}
3905 {\tt
3906 void
3911 \vspace{0.3cm}
3912 \vspace{0.3cm}
3913 \vspace{0.3cm}
3914 \subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
3916 {\bf Overview:}
3917 Remove the given key and its corresponding value from the HVM/boot\_params
3918 field of the given VM. If the key is not in that Map, then do nothing.
3920 \noindent {\bf Signature:}
3921 \begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
3924 \noindent{\bf Arguments:}
3927 \vspace{0.3cm}
3928 \begin{tabular}{|c|c|p{7cm}|}
3929 \hline
3930 {\bf type} & {\bf name} & {\bf description} \\ \hline
3931 {\tt VM ref } & self & reference to the object \\ \hline
3933 {\tt string } & key & Key to remove \\ \hline
3935 \end{tabular}
3937 \vspace{0.3cm}
3939 \noindent {\bf Return Type:}
3940 {\tt
3941 void
3946 \vspace{0.3cm}
3947 \vspace{0.3cm}
3948 \vspace{0.3cm}
3949 \subsubsection{RPC name:~get\_platform}
3951 {\bf Overview:}
3952 Get the platform field of the given VM.
3954 \noindent {\bf Signature:}
3955 \begin{verbatim} ((string -> string) Map) get_platform (session_id s, VM ref self)\end{verbatim}
3958 \noindent{\bf Arguments:}
3961 \vspace{0.3cm}
3962 \begin{tabular}{|c|c|p{7cm}|}
3963 \hline
3964 {\bf type} & {\bf name} & {\bf description} \\ \hline
3965 {\tt VM ref } & self & reference to the object \\ \hline
3967 \end{tabular}
3969 \vspace{0.3cm}
3971 \noindent {\bf Return Type:}
3972 {\tt
3973 (string $\rightarrow$ string) Map
3977 value of the field
3978 \vspace{0.3cm}
3979 \vspace{0.3cm}
3980 \vspace{0.3cm}
3981 \subsubsection{RPC name:~set\_platform}
3983 {\bf Overview:}
3984 Set the platform field of the given VM.
3986 \noindent {\bf Signature:}
3987 \begin{verbatim} void set_platform (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3990 \noindent{\bf Arguments:}
3993 \vspace{0.3cm}
3994 \begin{tabular}{|c|c|p{7cm}|}
3995 \hline
3996 {\bf type} & {\bf name} & {\bf description} \\ \hline
3997 {\tt VM ref } & self & reference to the object \\ \hline
3999 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4001 \end{tabular}
4003 \vspace{0.3cm}
4005 \noindent {\bf Return Type:}
4006 {\tt
4007 void
4012 \vspace{0.3cm}
4013 \vspace{0.3cm}
4014 \vspace{0.3cm}
4015 \subsubsection{RPC name:~add\_to\_platform}
4017 {\bf Overview:}
4018 Add the given key-value pair to the platform field of the given VM.
4020 \noindent {\bf Signature:}
4021 \begin{verbatim} void add_to_platform (session_id s, VM ref self, string key, string value)\end{verbatim}
4024 \noindent{\bf Arguments:}
4027 \vspace{0.3cm}
4028 \begin{tabular}{|c|c|p{7cm}|}
4029 \hline
4030 {\bf type} & {\bf name} & {\bf description} \\ \hline
4031 {\tt VM ref } & self & reference to the object \\ \hline
4033 {\tt string } & key & Key to add \\ \hline
4035 {\tt string } & value & Value to add \\ \hline
4037 \end{tabular}
4039 \vspace{0.3cm}
4041 \noindent {\bf Return Type:}
4042 {\tt
4043 void
4048 \vspace{0.3cm}
4049 \vspace{0.3cm}
4050 \vspace{0.3cm}
4051 \subsubsection{RPC name:~remove\_from\_platform}
4053 {\bf Overview:}
4054 Remove the given key and its corresponding value from the platform field of
4055 the given VM. If the key is not in that Map, then do nothing.
4057 \noindent {\bf Signature:}
4058 \begin{verbatim} void remove_from_platform (session_id s, VM ref self, string key)\end{verbatim}
4061 \noindent{\bf Arguments:}
4064 \vspace{0.3cm}
4065 \begin{tabular}{|c|c|p{7cm}|}
4066 \hline
4067 {\bf type} & {\bf name} & {\bf description} \\ \hline
4068 {\tt VM ref } & self & reference to the object \\ \hline
4070 {\tt string } & key & Key to remove \\ \hline
4072 \end{tabular}
4074 \vspace{0.3cm}
4076 \noindent {\bf Return Type:}
4077 {\tt
4078 void
4083 \vspace{0.3cm}
4084 \vspace{0.3cm}
4085 \vspace{0.3cm}
4086 \subsubsection{RPC name:~get\_PCI\_bus}
4088 {\bf Overview:}
4089 Get the PCI\_bus field of the given VM.
4091 \noindent {\bf Signature:}
4092 \begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
4095 \noindent{\bf Arguments:}
4098 \vspace{0.3cm}
4099 \begin{tabular}{|c|c|p{7cm}|}
4100 \hline
4101 {\bf type} & {\bf name} & {\bf description} \\ \hline
4102 {\tt VM ref } & self & reference to the object \\ \hline
4104 \end{tabular}
4106 \vspace{0.3cm}
4108 \noindent {\bf Return Type:}
4109 {\tt
4110 string
4114 value of the field
4115 \vspace{0.3cm}
4116 \vspace{0.3cm}
4117 \vspace{0.3cm}
4118 \subsubsection{RPC name:~set\_PCI\_bus}
4120 {\bf Overview:}
4121 Set the PCI\_bus field of the given VM.
4123 \noindent {\bf Signature:}
4124 \begin{verbatim} void set_PCI_bus (session_id s, VM ref self, string value)\end{verbatim}
4127 \noindent{\bf Arguments:}
4130 \vspace{0.3cm}
4131 \begin{tabular}{|c|c|p{7cm}|}
4132 \hline
4133 {\bf type} & {\bf name} & {\bf description} \\ \hline
4134 {\tt VM ref } & self & reference to the object \\ \hline
4136 {\tt string } & value & New value to set \\ \hline
4138 \end{tabular}
4140 \vspace{0.3cm}
4142 \noindent {\bf Return Type:}
4143 {\tt
4144 void
4149 \vspace{0.3cm}
4150 \vspace{0.3cm}
4151 \vspace{0.3cm}
4152 \subsubsection{RPC name:~get\_other\_config}
4154 {\bf Overview:}
4155 Get the other\_config field of the given VM.
4157 \noindent {\bf Signature:}
4158 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
4161 \noindent{\bf Arguments:}
4164 \vspace{0.3cm}
4165 \begin{tabular}{|c|c|p{7cm}|}
4166 \hline
4167 {\bf type} & {\bf name} & {\bf description} \\ \hline
4168 {\tt VM ref } & self & reference to the object \\ \hline
4170 \end{tabular}
4172 \vspace{0.3cm}
4174 \noindent {\bf Return Type:}
4175 {\tt
4176 (string $\rightarrow$ string) Map
4180 value of the field
4181 \vspace{0.3cm}
4182 \vspace{0.3cm}
4183 \vspace{0.3cm}
4184 \subsubsection{RPC name:~set\_other\_config}
4186 {\bf Overview:}
4187 Set the other\_config field of the given VM.
4189 \noindent {\bf Signature:}
4190 \begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
4193 \noindent{\bf Arguments:}
4196 \vspace{0.3cm}
4197 \begin{tabular}{|c|c|p{7cm}|}
4198 \hline
4199 {\bf type} & {\bf name} & {\bf description} \\ \hline
4200 {\tt VM ref } & self & reference to the object \\ \hline
4202 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4204 \end{tabular}
4206 \vspace{0.3cm}
4208 \noindent {\bf Return Type:}
4209 {\tt
4210 void
4215 \vspace{0.3cm}
4216 \vspace{0.3cm}
4217 \vspace{0.3cm}
4218 \subsubsection{RPC name:~add\_to\_other\_config}
4220 {\bf Overview:}
4221 Add the given key-value pair to the other\_config field of the given VM.
4223 \noindent {\bf Signature:}
4224 \begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
4227 \noindent{\bf Arguments:}
4230 \vspace{0.3cm}
4231 \begin{tabular}{|c|c|p{7cm}|}
4232 \hline
4233 {\bf type} & {\bf name} & {\bf description} \\ \hline
4234 {\tt VM ref } & self & reference to the object \\ \hline
4236 {\tt string } & key & Key to add \\ \hline
4238 {\tt string } & value & Value to add \\ \hline
4240 \end{tabular}
4242 \vspace{0.3cm}
4244 \noindent {\bf Return Type:}
4245 {\tt
4246 void
4251 \vspace{0.3cm}
4252 \vspace{0.3cm}
4253 \vspace{0.3cm}
4254 \subsubsection{RPC name:~remove\_from\_other\_config}
4256 {\bf Overview:}
4257 Remove the given key and its corresponding value from the other\_config
4258 field of the given VM. If the key is not in that Map, then do nothing.
4260 \noindent {\bf Signature:}
4261 \begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
4264 \noindent{\bf Arguments:}
4267 \vspace{0.3cm}
4268 \begin{tabular}{|c|c|p{7cm}|}
4269 \hline
4270 {\bf type} & {\bf name} & {\bf description} \\ \hline
4271 {\tt VM ref } & self & reference to the object \\ \hline
4273 {\tt string } & key & Key to remove \\ \hline
4275 \end{tabular}
4277 \vspace{0.3cm}
4279 \noindent {\bf Return Type:}
4280 {\tt
4281 void
4286 \vspace{0.3cm}
4287 \vspace{0.3cm}
4288 \vspace{0.3cm}
4289 \subsubsection{RPC name:~get\_domid}
4291 {\bf Overview:}
4292 Get the domid field of the given VM.
4294 \noindent {\bf Signature:}
4295 \begin{verbatim} int get_domid (session_id s, VM ref self)\end{verbatim}
4298 \noindent{\bf Arguments:}
4301 \vspace{0.3cm}
4302 \begin{tabular}{|c|c|p{7cm}|}
4303 \hline
4304 {\bf type} & {\bf name} & {\bf description} \\ \hline
4305 {\tt VM ref } & self & reference to the object \\ \hline
4307 \end{tabular}
4309 \vspace{0.3cm}
4311 \noindent {\bf Return Type:}
4312 {\tt
4313 int
4317 value of the field
4318 \vspace{0.3cm}
4319 \vspace{0.3cm}
4320 \vspace{0.3cm}
4321 \subsubsection{RPC name:~get\_is\_control\_domain}
4323 {\bf Overview:}
4324 Get the is\_control\_domain field of the given VM.
4326 \noindent {\bf Signature:}
4327 \begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
4330 \noindent{\bf Arguments:}
4333 \vspace{0.3cm}
4334 \begin{tabular}{|c|c|p{7cm}|}
4335 \hline
4336 {\bf type} & {\bf name} & {\bf description} \\ \hline
4337 {\tt VM ref } & self & reference to the object \\ \hline
4339 \end{tabular}
4341 \vspace{0.3cm}
4343 \noindent {\bf Return Type:}
4344 {\tt
4345 bool
4349 value of the field
4350 \vspace{0.3cm}
4351 \vspace{0.3cm}
4352 \vspace{0.3cm}
4353 \subsubsection{RPC name:~get\_metrics}
4355 {\bf Overview:}
4356 Get the metrics field of the given VM.
4358 \noindent {\bf Signature:}
4359 \begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
4362 \noindent{\bf Arguments:}
4365 \vspace{0.3cm}
4366 \begin{tabular}{|c|c|p{7cm}|}
4367 \hline
4368 {\bf type} & {\bf name} & {\bf description} \\ \hline
4369 {\tt VM ref } & self & reference to the object \\ \hline
4371 \end{tabular}
4373 \vspace{0.3cm}
4375 \noindent {\bf Return Type:}
4376 {\tt
4377 VM\_metrics ref
4381 value of the field
4382 \vspace{0.3cm}
4383 \vspace{0.3cm}
4384 \vspace{0.3cm}
4385 \subsubsection{RPC name:~get\_guest\_metrics}
4387 {\bf Overview:}
4388 Get the guest\_metrics field of the given VM.
4390 \noindent {\bf Signature:}
4391 \begin{verbatim} (VM_guest_metrics ref) get_guest_metrics (session_id s, VM ref self)\end{verbatim}
4394 \noindent{\bf Arguments:}
4397 \vspace{0.3cm}
4398 \begin{tabular}{|c|c|p{7cm}|}
4399 \hline
4400 {\bf type} & {\bf name} & {\bf description} \\ \hline
4401 {\tt VM ref } & self & reference to the object \\ \hline
4403 \end{tabular}
4405 \vspace{0.3cm}
4407 \noindent {\bf Return Type:}
4408 {\tt
4409 VM\_guest\_metrics ref
4413 value of the field
4414 \vspace{0.3cm}
4415 \vspace{0.3cm}
4416 \vspace{0.3cm}
4417 \subsubsection{RPC name:~get\_security\_label}
4419 {\bf Overview:}
4420 Get the security label field of the given VM. Refer to the XSPolicy class
4421 for the format of the security label.
4423 \noindent {\bf Signature:}
4424 \begin{verbatim} string get_security_label (session_id s, VM ref self)\end{verbatim}
4427 \noindent{\bf Arguments:}
4430 \vspace{0.3cm}
4431 \begin{tabular}{|c|c|p{7cm}|}
4432 \hline
4433 {\bf type} & {\bf name} & {\bf description} \\ \hline
4434 {\tt VM ref } & self & reference to the object \\ \hline
4436 \end{tabular}
4438 \vspace{0.3cm}
4440 \noindent {\bf Return Type:}
4441 {\tt
4442 string
4446 value of the field
4447 \vspace{0.3cm}
4448 \vspace{0.3cm}
4449 \vspace{0.3cm}
4450 \subsubsection{RPC name:~set\_security\_label}
4452 {\bf Overview:}
4453 Set the security label field of the given VM. Refer to the XSPolicy class
4454 for the format of the security label.
4456 \noindent {\bf Signature:}
4457 \begin{verbatim} int set_security_label (session_id s, VM ref self, string
4458 security_label, string old_label)\end{verbatim}
4461 \noindent{\bf Arguments:}
4464 \vspace{0.3cm}
4465 \begin{tabular}{|c|c|p{7cm}|}
4466 \hline
4467 {\bf type} & {\bf name} & {\bf description} \\ \hline
4468 {\tt VM ref } & self & reference to the object \\ \hline
4469 {\tt string } & security\_label & security label for the VM \\ \hline
4470 {\tt string } & old\_label & Label value that the security label \\
4471 & & must currently have for the change to succeed.\\ \hline
4473 \end{tabular}
4475 \vspace{0.3cm}
4477 \noindent {\bf Return Type:}
4478 {\tt
4479 int
4483 Returns the ssidref in case of an VM that is currently running or
4484 paused, zero in case of a dormant VM (halted, suspended).
4486 \vspace{0.3cm}
4488 \noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
4490 \vspace{0.3cm}
4491 \vspace{0.3cm}
4492 \vspace{0.3cm}
4493 \subsubsection{RPC name:~create}
4495 {\bf Overview:}
4496 Create a new VM instance, and return its handle.
4498 \noindent {\bf Signature:}
4499 \begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4502 \noindent{\bf Arguments:}
4505 \vspace{0.3cm}
4506 \begin{tabular}{|c|c|p{7cm}|}
4507 \hline
4508 {\bf type} & {\bf name} & {\bf description} \\ \hline
4509 {\tt VM record } & args & All constructor arguments \\ \hline
4511 \end{tabular}
4513 \vspace{0.3cm}
4515 \noindent {\bf Return Type:}
4516 {\tt
4517 VM ref
4521 reference to the newly created object
4522 \vspace{0.3cm}
4523 \vspace{0.3cm}
4524 \vspace{0.3cm}
4525 \subsubsection{RPC name:~destroy}
4527 {\bf Overview:}
4528 Destroy the specified VM. The VM is completely removed from the system.
4529 This function can only be called when the VM is in the Halted State.
4531 \noindent {\bf Signature:}
4532 \begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4535 \noindent{\bf Arguments:}
4538 \vspace{0.3cm}
4539 \begin{tabular}{|c|c|p{7cm}|}
4540 \hline
4541 {\bf type} & {\bf name} & {\bf description} \\ \hline
4542 {\tt VM ref } & self & reference to the object \\ \hline
4544 \end{tabular}
4546 \vspace{0.3cm}
4548 \noindent {\bf Return Type:}
4549 {\tt
4550 void
4555 \vspace{0.3cm}
4556 \vspace{0.3cm}
4557 \vspace{0.3cm}
4558 \subsubsection{RPC name:~get\_by\_uuid}
4560 {\bf Overview:}
4561 Get a reference to the VM instance with the specified UUID.
4563 \noindent {\bf Signature:}
4564 \begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4567 \noindent{\bf Arguments:}
4570 \vspace{0.3cm}
4571 \begin{tabular}{|c|c|p{7cm}|}
4572 \hline
4573 {\bf type} & {\bf name} & {\bf description} \\ \hline
4574 {\tt string } & uuid & UUID of object to return \\ \hline
4576 \end{tabular}
4578 \vspace{0.3cm}
4580 \noindent {\bf Return Type:}
4581 {\tt
4582 VM ref
4586 reference to the object
4587 \vspace{0.3cm}
4588 \vspace{0.3cm}
4589 \vspace{0.3cm}
4590 \subsubsection{RPC name:~get\_record}
4592 {\bf Overview:}
4593 Get a record containing the current state of the given VM.
4595 \noindent {\bf Signature:}
4596 \begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4599 \noindent{\bf Arguments:}
4602 \vspace{0.3cm}
4603 \begin{tabular}{|c|c|p{7cm}|}
4604 \hline
4605 {\bf type} & {\bf name} & {\bf description} \\ \hline
4606 {\tt VM ref } & self & reference to the object \\ \hline
4608 \end{tabular}
4610 \vspace{0.3cm}
4612 \noindent {\bf Return Type:}
4613 {\tt
4614 VM record
4618 all fields from the object
4619 \vspace{0.3cm}
4620 \vspace{0.3cm}
4621 \vspace{0.3cm}
4622 \subsubsection{RPC name:~get\_by\_name\_label}
4624 {\bf Overview:}
4625 Get all the VM instances with the given label.
4627 \noindent {\bf Signature:}
4628 \begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4631 \noindent{\bf Arguments:}
4634 \vspace{0.3cm}
4635 \begin{tabular}{|c|c|p{7cm}|}
4636 \hline
4637 {\bf type} & {\bf name} & {\bf description} \\ \hline
4638 {\tt string } & label & label of object to return \\ \hline
4640 \end{tabular}
4642 \vspace{0.3cm}
4644 \noindent {\bf Return Type:}
4645 {\tt
4646 (VM ref) Set
4650 references to objects with match names
4651 \vspace{0.3cm}
4652 \vspace{0.3cm}
4653 \vspace{0.3cm}
4655 \vspace{1cm}
4656 \newpage
4657 \section{Class: VM\_metrics}
4658 \subsection{Fields for class: VM\_metrics}
4659 \begin{longtable}{|lllp{0.38\textwidth}|}
4660 \hline
4661 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
4662 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
4663 The metrics associated with a VM.}} \\
4664 \hline
4665 Quals & Field & Type & Description \\
4666 \hline
4667 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4668 $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
4669 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
4670 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
4671 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/CPU} & (int $\rightarrow$ int) Map & VCPU to PCPU map \\
4672 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & The live equivalent to VM.VCPUs\_params \\
4673 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/flags} & (int $\rightarrow$ string Set) Map & CPU flags (blocked,online,running) \\
4674 $\mathit{RO}_\mathit{run}$ & {\tt state} & string Set & The state of the guest, eg blocked, dying etc \\
4675 $\mathit{RO}_\mathit{run}$ & {\tt start\_time} & datetime & Time at which this VM was last booted \\
4676 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
4677 \hline
4678 \end{longtable}
4679 \subsection{RPCs associated with class: VM\_metrics}
4680 \subsubsection{RPC name:~get\_all}
4682 {\bf Overview:}
4683 Return a list of all the VM\_metrics instances known to the system.
4685 \noindent {\bf Signature:}
4686 \begin{verbatim} ((VM_metrics ref) Set) get_all (session_id s)\end{verbatim}
4689 \vspace{0.3cm}
4691 \noindent {\bf Return Type:}
4692 {\tt
4693 (VM\_metrics ref) Set
4697 references to all objects
4698 \vspace{0.3cm}
4699 \vspace{0.3cm}
4700 \vspace{0.3cm}
4701 \subsubsection{RPC name:~get\_uuid}
4703 {\bf Overview:}
4704 Get the uuid field of the given VM\_metrics.
4706 \noindent {\bf Signature:}
4707 \begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
4710 \noindent{\bf Arguments:}
4713 \vspace{0.3cm}
4714 \begin{tabular}{|c|c|p{7cm}|}
4715 \hline
4716 {\bf type} & {\bf name} & {\bf description} \\ \hline
4717 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4719 \end{tabular}
4721 \vspace{0.3cm}
4723 \noindent {\bf Return Type:}
4724 {\tt
4725 string
4729 value of the field
4730 \vspace{0.3cm}
4731 \vspace{0.3cm}
4732 \vspace{0.3cm}
4733 \subsubsection{RPC name:~get\_memory\_actual}
4735 {\bf Overview:}
4736 Get the memory/actual field of the given VM\_metrics.
4738 \noindent {\bf Signature:}
4739 \begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
4742 \noindent{\bf Arguments:}
4745 \vspace{0.3cm}
4746 \begin{tabular}{|c|c|p{7cm}|}
4747 \hline
4748 {\bf type} & {\bf name} & {\bf description} \\ \hline
4749 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4751 \end{tabular}
4753 \vspace{0.3cm}
4755 \noindent {\bf Return Type:}
4756 {\tt
4757 int
4761 value of the field
4762 \vspace{0.3cm}
4763 \vspace{0.3cm}
4764 \vspace{0.3cm}
4765 \subsubsection{RPC name:~get\_VCPUs\_number}
4767 {\bf Overview:}
4768 Get the VCPUs/number field of the given VM\_metrics.
4770 \noindent {\bf Signature:}
4771 \begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
4774 \noindent{\bf Arguments:}
4777 \vspace{0.3cm}
4778 \begin{tabular}{|c|c|p{7cm}|}
4779 \hline
4780 {\bf type} & {\bf name} & {\bf description} \\ \hline
4781 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4783 \end{tabular}
4785 \vspace{0.3cm}
4787 \noindent {\bf Return Type:}
4788 {\tt
4789 int
4793 value of the field
4794 \vspace{0.3cm}
4795 \vspace{0.3cm}
4796 \vspace{0.3cm}
4797 \subsubsection{RPC name:~get\_VCPUs\_utilisation}
4799 {\bf Overview:}
4800 Get the VCPUs/utilisation field of the given VM\_metrics.
4802 \noindent {\bf Signature:}
4803 \begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
4806 \noindent{\bf Arguments:}
4809 \vspace{0.3cm}
4810 \begin{tabular}{|c|c|p{7cm}|}
4811 \hline
4812 {\bf type} & {\bf name} & {\bf description} \\ \hline
4813 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4815 \end{tabular}
4817 \vspace{0.3cm}
4819 \noindent {\bf Return Type:}
4820 {\tt
4821 (int $\rightarrow$ float) Map
4825 value of the field
4826 \vspace{0.3cm}
4827 \vspace{0.3cm}
4828 \vspace{0.3cm}
4829 \subsubsection{RPC name:~get\_VCPUs\_CPU}
4831 {\bf Overview:}
4832 Get the VCPUs/CPU field of the given VM\_metrics.
4834 \noindent {\bf Signature:}
4835 \begin{verbatim} ((int -> int) Map) get_VCPUs_CPU (session_id s, VM_metrics ref self)\end{verbatim}
4838 \noindent{\bf Arguments:}
4841 \vspace{0.3cm}
4842 \begin{tabular}{|c|c|p{7cm}|}
4843 \hline
4844 {\bf type} & {\bf name} & {\bf description} \\ \hline
4845 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4847 \end{tabular}
4849 \vspace{0.3cm}
4851 \noindent {\bf Return Type:}
4852 {\tt
4853 (int $\rightarrow$ int) Map
4857 value of the field
4858 \vspace{0.3cm}
4859 \vspace{0.3cm}
4860 \vspace{0.3cm}
4861 \subsubsection{RPC name:~get\_VCPUs\_params}
4863 {\bf Overview:}
4864 Get the VCPUs/params field of the given VM\_metrics.
4866 \noindent {\bf Signature:}
4867 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM_metrics ref self)\end{verbatim}
4870 \noindent{\bf Arguments:}
4873 \vspace{0.3cm}
4874 \begin{tabular}{|c|c|p{7cm}|}
4875 \hline
4876 {\bf type} & {\bf name} & {\bf description} \\ \hline
4877 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4879 \end{tabular}
4881 \vspace{0.3cm}
4883 \noindent {\bf Return Type:}
4884 {\tt
4885 (string $\rightarrow$ string) Map
4889 value of the field
4890 \vspace{0.3cm}
4891 \vspace{0.3cm}
4892 \vspace{0.3cm}
4893 \subsubsection{RPC name:~get\_VCPUs\_flags}
4895 {\bf Overview:}
4896 Get the VCPUs/flags field of the given VM\_metrics.
4898 \noindent {\bf Signature:}
4899 \begin{verbatim} ((int -> string Set) Map) get_VCPUs_flags (session_id s, VM_metrics ref self)\end{verbatim}
4902 \noindent{\bf Arguments:}
4905 \vspace{0.3cm}
4906 \begin{tabular}{|c|c|p{7cm}|}
4907 \hline
4908 {\bf type} & {\bf name} & {\bf description} \\ \hline
4909 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4911 \end{tabular}
4913 \vspace{0.3cm}
4915 \noindent {\bf Return Type:}
4916 {\tt
4917 (int $\rightarrow$ string Set) Map
4921 value of the field
4922 \vspace{0.3cm}
4923 \vspace{0.3cm}
4924 \vspace{0.3cm}
4925 \subsubsection{RPC name:~get\_state}
4927 {\bf Overview:}
4928 Get the state field of the given VM\_metrics.
4930 \noindent {\bf Signature:}
4931 \begin{verbatim} (string Set) get_state (session_id s, VM_metrics ref self)\end{verbatim}
4934 \noindent{\bf Arguments:}
4937 \vspace{0.3cm}
4938 \begin{tabular}{|c|c|p{7cm}|}
4939 \hline
4940 {\bf type} & {\bf name} & {\bf description} \\ \hline
4941 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4943 \end{tabular}
4945 \vspace{0.3cm}
4947 \noindent {\bf Return Type:}
4948 {\tt
4949 string Set
4953 value of the field
4954 \vspace{0.3cm}
4955 \vspace{0.3cm}
4956 \vspace{0.3cm}
4957 \subsubsection{RPC name:~get\_start\_time}
4959 {\bf Overview:}
4960 Get the start\_time field of the given VM\_metrics.
4962 \noindent {\bf Signature:}
4963 \begin{verbatim} datetime get_start_time (session_id s, VM_metrics ref self)\end{verbatim}
4966 \noindent{\bf Arguments:}
4969 \vspace{0.3cm}
4970 \begin{tabular}{|c|c|p{7cm}|}
4971 \hline
4972 {\bf type} & {\bf name} & {\bf description} \\ \hline
4973 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4975 \end{tabular}
4977 \vspace{0.3cm}
4979 \noindent {\bf Return Type:}
4980 {\tt
4981 datetime
4985 value of the field
4986 \vspace{0.3cm}
4987 \vspace{0.3cm}
4988 \vspace{0.3cm}
4989 \subsubsection{RPC name:~get\_last\_updated}
4991 {\bf Overview:}
4992 Get the last\_updated field of the given VM\_metrics.
4994 \noindent {\bf Signature:}
4995 \begin{verbatim} datetime get_last_updated (session_id s, VM_metrics ref self)\end{verbatim}
4998 \noindent{\bf Arguments:}
5001 \vspace{0.3cm}
5002 \begin{tabular}{|c|c|p{7cm}|}
5003 \hline
5004 {\bf type} & {\bf name} & {\bf description} \\ \hline
5005 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
5007 \end{tabular}
5009 \vspace{0.3cm}
5011 \noindent {\bf Return Type:}
5012 {\tt
5013 datetime
5017 value of the field
5018 \vspace{0.3cm}
5019 \vspace{0.3cm}
5020 \vspace{0.3cm}
5021 \subsubsection{RPC name:~get\_by\_uuid}
5023 {\bf Overview:}
5024 Get a reference to the VM\_metrics instance with the specified UUID.
5026 \noindent {\bf Signature:}
5027 \begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5030 \noindent{\bf Arguments:}
5033 \vspace{0.3cm}
5034 \begin{tabular}{|c|c|p{7cm}|}
5035 \hline
5036 {\bf type} & {\bf name} & {\bf description} \\ \hline
5037 {\tt string } & uuid & UUID of object to return \\ \hline
5039 \end{tabular}
5041 \vspace{0.3cm}
5043 \noindent {\bf Return Type:}
5044 {\tt
5045 VM\_metrics ref
5049 reference to the object
5050 \vspace{0.3cm}
5051 \vspace{0.3cm}
5052 \vspace{0.3cm}
5053 \subsubsection{RPC name:~get\_record}
5055 {\bf Overview:}
5056 Get a record containing the current state of the given VM\_metrics.
5058 \noindent {\bf Signature:}
5059 \begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
5062 \noindent{\bf Arguments:}
5065 \vspace{0.3cm}
5066 \begin{tabular}{|c|c|p{7cm}|}
5067 \hline
5068 {\bf type} & {\bf name} & {\bf description} \\ \hline
5069 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
5071 \end{tabular}
5073 \vspace{0.3cm}
5075 \noindent {\bf Return Type:}
5076 {\tt
5077 VM\_metrics record
5081 all fields from the object
5082 \vspace{0.3cm}
5083 \vspace{0.3cm}
5084 \vspace{0.3cm}
5086 \vspace{1cm}
5087 \newpage
5088 \section{Class: VM\_guest\_metrics}
5089 \subsection{Fields for class: VM\_guest\_metrics}
5090 \begin{longtable}{|lllp{0.38\textwidth}|}
5091 \hline
5092 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_guest\_metrics} \\
5093 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
5094 The metrics reported by the guest (as opposed to inferred from outside).}} \\
5095 \hline
5096 Quals & Field & Type & Description \\
5097 \hline
5098 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5099 $\mathit{RO}_\mathit{run}$ & {\tt os\_version} & (string $\rightarrow$ string) Map & version of the OS \\
5100 $\mathit{RO}_\mathit{run}$ & {\tt PV\_drivers\_version} & (string $\rightarrow$ string) Map & version of the PV drivers \\
5101 $\mathit{RO}_\mathit{run}$ & {\tt memory} & (string $\rightarrow$ string) Map & free/used/total memory \\
5102 $\mathit{RO}_\mathit{run}$ & {\tt disks} & (string $\rightarrow$ string) Map & disk configuration/free space \\
5103 $\mathit{RO}_\mathit{run}$ & {\tt networks} & (string $\rightarrow$ string) Map & network configuration \\
5104 $\mathit{RO}_\mathit{run}$ & {\tt other} & (string $\rightarrow$ string) Map & anything else \\
5105 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
5106 \hline
5107 \end{longtable}
5108 \subsection{RPCs associated with class: VM\_guest\_metrics}
5109 \subsubsection{RPC name:~get\_all}
5111 {\bf Overview:}
5112 Return a list of all the VM\_guest\_metrics instances known to the system.
5114 \noindent {\bf Signature:}
5115 \begin{verbatim} ((VM_guest_metrics ref) Set) get_all (session_id s)\end{verbatim}
5118 \vspace{0.3cm}
5120 \noindent {\bf Return Type:}
5121 {\tt
5122 (VM\_guest\_metrics ref) Set
5126 references to all objects
5127 \vspace{0.3cm}
5128 \vspace{0.3cm}
5129 \vspace{0.3cm}
5130 \subsubsection{RPC name:~get\_uuid}
5132 {\bf Overview:}
5133 Get the uuid field of the given VM\_guest\_metrics.
5135 \noindent {\bf Signature:}
5136 \begin{verbatim} string get_uuid (session_id s, VM_guest_metrics ref self)\end{verbatim}
5139 \noindent{\bf Arguments:}
5142 \vspace{0.3cm}
5143 \begin{tabular}{|c|c|p{7cm}|}
5144 \hline
5145 {\bf type} & {\bf name} & {\bf description} \\ \hline
5146 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5148 \end{tabular}
5150 \vspace{0.3cm}
5152 \noindent {\bf Return Type:}
5153 {\tt
5154 string
5158 value of the field
5159 \vspace{0.3cm}
5160 \vspace{0.3cm}
5161 \vspace{0.3cm}
5162 \subsubsection{RPC name:~get\_os\_version}
5164 {\bf Overview:}
5165 Get the os\_version field of the given VM\_guest\_metrics.
5167 \noindent {\bf Signature:}
5168 \begin{verbatim} ((string -> string) Map) get_os_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5171 \noindent{\bf Arguments:}
5174 \vspace{0.3cm}
5175 \begin{tabular}{|c|c|p{7cm}|}
5176 \hline
5177 {\bf type} & {\bf name} & {\bf description} \\ \hline
5178 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5180 \end{tabular}
5182 \vspace{0.3cm}
5184 \noindent {\bf Return Type:}
5185 {\tt
5186 (string $\rightarrow$ string) Map
5190 value of the field
5191 \vspace{0.3cm}
5192 \vspace{0.3cm}
5193 \vspace{0.3cm}
5194 \subsubsection{RPC name:~get\_PV\_drivers\_version}
5196 {\bf Overview:}
5197 Get the PV\_drivers\_version field of the given VM\_guest\_metrics.
5199 \noindent {\bf Signature:}
5200 \begin{verbatim} ((string -> string) Map) get_PV_drivers_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5203 \noindent{\bf Arguments:}
5206 \vspace{0.3cm}
5207 \begin{tabular}{|c|c|p{7cm}|}
5208 \hline
5209 {\bf type} & {\bf name} & {\bf description} \\ \hline
5210 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5212 \end{tabular}
5214 \vspace{0.3cm}
5216 \noindent {\bf Return Type:}
5217 {\tt
5218 (string $\rightarrow$ string) Map
5222 value of the field
5223 \vspace{0.3cm}
5224 \vspace{0.3cm}
5225 \vspace{0.3cm}
5226 \subsubsection{RPC name:~get\_memory}
5228 {\bf Overview:}
5229 Get the memory field of the given VM\_guest\_metrics.
5231 \noindent {\bf Signature:}
5232 \begin{verbatim} ((string -> string) Map) get_memory (session_id s, VM_guest_metrics ref self)\end{verbatim}
5235 \noindent{\bf Arguments:}
5238 \vspace{0.3cm}
5239 \begin{tabular}{|c|c|p{7cm}|}
5240 \hline
5241 {\bf type} & {\bf name} & {\bf description} \\ \hline
5242 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5244 \end{tabular}
5246 \vspace{0.3cm}
5248 \noindent {\bf Return Type:}
5249 {\tt
5250 (string $\rightarrow$ string) Map
5254 value of the field
5255 \vspace{0.3cm}
5256 \vspace{0.3cm}
5257 \vspace{0.3cm}
5258 \subsubsection{RPC name:~get\_disks}
5260 {\bf Overview:}
5261 Get the disks field of the given VM\_guest\_metrics.
5263 \noindent {\bf Signature:}
5264 \begin{verbatim} ((string -> string) Map) get_disks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5267 \noindent{\bf Arguments:}
5270 \vspace{0.3cm}
5271 \begin{tabular}{|c|c|p{7cm}|}
5272 \hline
5273 {\bf type} & {\bf name} & {\bf description} \\ \hline
5274 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5276 \end{tabular}
5278 \vspace{0.3cm}
5280 \noindent {\bf Return Type:}
5281 {\tt
5282 (string $\rightarrow$ string) Map
5286 value of the field
5287 \vspace{0.3cm}
5288 \vspace{0.3cm}
5289 \vspace{0.3cm}
5290 \subsubsection{RPC name:~get\_networks}
5292 {\bf Overview:}
5293 Get the networks field of the given VM\_guest\_metrics.
5295 \noindent {\bf Signature:}
5296 \begin{verbatim} ((string -> string) Map) get_networks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5299 \noindent{\bf Arguments:}
5302 \vspace{0.3cm}
5303 \begin{tabular}{|c|c|p{7cm}|}
5304 \hline
5305 {\bf type} & {\bf name} & {\bf description} \\ \hline
5306 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5308 \end{tabular}
5310 \vspace{0.3cm}
5312 \noindent {\bf Return Type:}
5313 {\tt
5314 (string $\rightarrow$ string) Map
5318 value of the field
5319 \vspace{0.3cm}
5320 \vspace{0.3cm}
5321 \vspace{0.3cm}
5322 \subsubsection{RPC name:~get\_other}
5324 {\bf Overview:}
5325 Get the other field of the given VM\_guest\_metrics.
5327 \noindent {\bf Signature:}
5328 \begin{verbatim} ((string -> string) Map) get_other (session_id s, VM_guest_metrics ref self)\end{verbatim}
5331 \noindent{\bf Arguments:}
5334 \vspace{0.3cm}
5335 \begin{tabular}{|c|c|p{7cm}|}
5336 \hline
5337 {\bf type} & {\bf name} & {\bf description} \\ \hline
5338 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5340 \end{tabular}
5342 \vspace{0.3cm}
5344 \noindent {\bf Return Type:}
5345 {\tt
5346 (string $\rightarrow$ string) Map
5350 value of the field
5351 \vspace{0.3cm}
5352 \vspace{0.3cm}
5353 \vspace{0.3cm}
5354 \subsubsection{RPC name:~get\_last\_updated}
5356 {\bf Overview:}
5357 Get the last\_updated field of the given VM\_guest\_metrics.
5359 \noindent {\bf Signature:}
5360 \begin{verbatim} datetime get_last_updated (session_id s, VM_guest_metrics ref self)\end{verbatim}
5363 \noindent{\bf Arguments:}
5366 \vspace{0.3cm}
5367 \begin{tabular}{|c|c|p{7cm}|}
5368 \hline
5369 {\bf type} & {\bf name} & {\bf description} \\ \hline
5370 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5372 \end{tabular}
5374 \vspace{0.3cm}
5376 \noindent {\bf Return Type:}
5377 {\tt
5378 datetime
5382 value of the field
5383 \vspace{0.3cm}
5384 \vspace{0.3cm}
5385 \vspace{0.3cm}
5386 \subsubsection{RPC name:~get\_by\_uuid}
5388 {\bf Overview:}
5389 Get a reference to the VM\_guest\_metrics instance with the specified UUID.
5391 \noindent {\bf Signature:}
5392 \begin{verbatim} (VM_guest_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5395 \noindent{\bf Arguments:}
5398 \vspace{0.3cm}
5399 \begin{tabular}{|c|c|p{7cm}|}
5400 \hline
5401 {\bf type} & {\bf name} & {\bf description} \\ \hline
5402 {\tt string } & uuid & UUID of object to return \\ \hline
5404 \end{tabular}
5406 \vspace{0.3cm}
5408 \noindent {\bf Return Type:}
5409 {\tt
5410 VM\_guest\_metrics ref
5414 reference to the object
5415 \vspace{0.3cm}
5416 \vspace{0.3cm}
5417 \vspace{0.3cm}
5418 \subsubsection{RPC name:~get\_record}
5420 {\bf Overview:}
5421 Get a record containing the current state of the given VM\_guest\_metrics.
5423 \noindent {\bf Signature:}
5424 \begin{verbatim} (VM_guest_metrics record) get_record (session_id s, VM_guest_metrics ref self)\end{verbatim}
5427 \noindent{\bf Arguments:}
5430 \vspace{0.3cm}
5431 \begin{tabular}{|c|c|p{7cm}|}
5432 \hline
5433 {\bf type} & {\bf name} & {\bf description} \\ \hline
5434 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5436 \end{tabular}
5438 \vspace{0.3cm}
5440 \noindent {\bf Return Type:}
5441 {\tt
5442 VM\_guest\_metrics record
5446 all fields from the object
5447 \vspace{0.3cm}
5448 \vspace{0.3cm}
5449 \vspace{0.3cm}
5451 \vspace{1cm}
5452 \newpage
5453 \section{Class: host}
5454 \subsection{Fields for class: host}
5455 \begin{longtable}{|lllp{0.38\textwidth}|}
5456 \hline
5457 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
5458 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
5459 physical host.}} \\
5460 \hline
5461 Quals & Field & Type & Description \\
5462 \hline
5463 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5464 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
5465 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
5466 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version number \\
5467 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\
5468 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\
5469 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\
5470 $\mathit{RO}_\mathit{run}$ & {\tt enabled} & bool & True if the host is currently enabled \\
5471 $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
5472 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
5473 $\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\
5474 $\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'' \\
5475 $\mathit{RO}_\mathit{run}$ & {\tt sched\_policy} & string & Scheduler policy currently in force on this host \\
5476 $\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\
5477 $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
5478 $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
5479 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
5480 $\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
5481 $\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
5482 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
5483 $\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
5484 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host \\
5485 \hline
5486 \end{longtable}
5487 \subsection{RPCs associated with class: host}
5488 \subsubsection{RPC name:~disable}
5490 {\bf Overview:}
5491 Puts the host into a state in which no new VMs can be started. Currently
5492 active VMs on the host continue to execute.
5494 \noindent {\bf Signature:}
5495 \begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
5498 \noindent{\bf Arguments:}
5501 \vspace{0.3cm}
5502 \begin{tabular}{|c|c|p{7cm}|}
5503 \hline
5504 {\bf type} & {\bf name} & {\bf description} \\ \hline
5505 {\tt host ref } & host & The Host to disable \\ \hline
5507 \end{tabular}
5509 \vspace{0.3cm}
5511 \noindent {\bf Return Type:}
5512 {\tt
5513 void
5518 \vspace{0.3cm}
5519 \vspace{0.3cm}
5520 \vspace{0.3cm}
5521 \subsubsection{RPC name:~enable}
5523 {\bf Overview:}
5524 Puts the host into a state in which new VMs can be started.
5526 \noindent {\bf Signature:}
5527 \begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
5530 \noindent{\bf Arguments:}
5533 \vspace{0.3cm}
5534 \begin{tabular}{|c|c|p{7cm}|}
5535 \hline
5536 {\bf type} & {\bf name} & {\bf description} \\ \hline
5537 {\tt host ref } & host & The Host to enable \\ \hline
5539 \end{tabular}
5541 \vspace{0.3cm}
5543 \noindent {\bf Return Type:}
5544 {\tt
5545 void
5550 \vspace{0.3cm}
5551 \vspace{0.3cm}
5552 \vspace{0.3cm}
5553 \subsubsection{RPC name:~shutdown}
5555 {\bf Overview:}
5556 Shutdown the host. (This function can only be called if there are no
5557 currently running VMs on the host and it is disabled.).
5559 \noindent {\bf Signature:}
5560 \begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
5563 \noindent{\bf Arguments:}
5566 \vspace{0.3cm}
5567 \begin{tabular}{|c|c|p{7cm}|}
5568 \hline
5569 {\bf type} & {\bf name} & {\bf description} \\ \hline
5570 {\tt host ref } & host & The Host to shutdown \\ \hline
5572 \end{tabular}
5574 \vspace{0.3cm}
5576 \noindent {\bf Return Type:}
5577 {\tt
5578 void
5583 \vspace{0.3cm}
5584 \vspace{0.3cm}
5585 \vspace{0.3cm}
5586 \subsubsection{RPC name:~reboot}
5588 {\bf Overview:}
5589 Reboot the host. (This function can only be called if there are no
5590 currently running VMs on the host and it is disabled.).
5592 \noindent {\bf Signature:}
5593 \begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
5596 \noindent{\bf Arguments:}
5599 \vspace{0.3cm}
5600 \begin{tabular}{|c|c|p{7cm}|}
5601 \hline
5602 {\bf type} & {\bf name} & {\bf description} \\ \hline
5603 {\tt host ref } & host & The Host to reboot \\ \hline
5605 \end{tabular}
5607 \vspace{0.3cm}
5609 \noindent {\bf Return Type:}
5610 {\tt
5611 void
5616 \vspace{0.3cm}
5617 \vspace{0.3cm}
5618 \vspace{0.3cm}
5619 \subsubsection{RPC name:~dmesg}
5621 {\bf Overview:}
5622 Get the host xen dmesg.
5624 \noindent {\bf Signature:}
5625 \begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
5628 \noindent{\bf Arguments:}
5631 \vspace{0.3cm}
5632 \begin{tabular}{|c|c|p{7cm}|}
5633 \hline
5634 {\bf type} & {\bf name} & {\bf description} \\ \hline
5635 {\tt host ref } & host & The Host to query \\ \hline
5637 \end{tabular}
5639 \vspace{0.3cm}
5641 \noindent {\bf Return Type:}
5642 {\tt
5643 string
5647 dmesg string
5648 \vspace{0.3cm}
5649 \vspace{0.3cm}
5650 \vspace{0.3cm}
5651 \subsubsection{RPC name:~dmesg\_clear}
5653 {\bf Overview:}
5654 Get the host xen dmesg, and clear the buffer.
5656 \noindent {\bf Signature:}
5657 \begin{verbatim} string dmesg_clear (session_id s, host ref host)\end{verbatim}
5660 \noindent{\bf Arguments:}
5663 \vspace{0.3cm}
5664 \begin{tabular}{|c|c|p{7cm}|}
5665 \hline
5666 {\bf type} & {\bf name} & {\bf description} \\ \hline
5667 {\tt host ref } & host & The Host to query \\ \hline
5669 \end{tabular}
5671 \vspace{0.3cm}
5673 \noindent {\bf Return Type:}
5674 {\tt
5675 string
5679 dmesg string
5680 \vspace{0.3cm}
5681 \vspace{0.3cm}
5682 \vspace{0.3cm}
5683 \subsubsection{RPC name:~get\_log}
5685 {\bf Overview:}
5686 Get the host's log file.
5688 \noindent {\bf Signature:}
5689 \begin{verbatim} string get_log (session_id s, host ref host)\end{verbatim}
5692 \noindent{\bf Arguments:}
5695 \vspace{0.3cm}
5696 \begin{tabular}{|c|c|p{7cm}|}
5697 \hline
5698 {\bf type} & {\bf name} & {\bf description} \\ \hline
5699 {\tt host ref } & host & The Host to query \\ \hline
5701 \end{tabular}
5703 \vspace{0.3cm}
5705 \noindent {\bf Return Type:}
5706 {\tt
5707 string
5711 The contents of the host's primary log file
5712 \vspace{0.3cm}
5713 \vspace{0.3cm}
5714 \vspace{0.3cm}
5715 \subsubsection{RPC name:~send\_debug\_keys}
5717 {\bf Overview:}
5718 Inject the given string as debugging keys into Xen.
5720 \noindent {\bf Signature:}
5721 \begin{verbatim} void send_debug_keys (session_id s, host ref host, string keys)\end{verbatim}
5724 \noindent{\bf Arguments:}
5727 \vspace{0.3cm}
5728 \begin{tabular}{|c|c|p{7cm}|}
5729 \hline
5730 {\bf type} & {\bf name} & {\bf description} \\ \hline
5731 {\tt host ref } & host & The host \\ \hline
5733 {\tt string } & keys & The keys to send \\ \hline
5735 \end{tabular}
5737 \vspace{0.3cm}
5739 \noindent {\bf Return Type:}
5740 {\tt
5741 void
5746 \vspace{0.3cm}
5747 \vspace{0.3cm}
5748 \vspace{0.3cm}
5749 \subsubsection{RPC name:~list\_methods}
5751 {\bf Overview:}
5752 List all supported methods.
5754 \noindent {\bf Signature:}
5755 \begin{verbatim} (string Set) list_methods (session_id s)\end{verbatim}
5758 \vspace{0.3cm}
5760 \noindent {\bf Return Type:}
5761 {\tt
5762 string Set
5766 The name of every supported method.
5767 \vspace{0.3cm}
5768 \vspace{0.3cm}
5769 \vspace{0.3cm}
5770 \subsubsection{RPC name:~get\_all}
5772 {\bf Overview:}
5773 Return a list of all the hosts known to the system.
5775 \noindent {\bf Signature:}
5776 \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
5779 \vspace{0.3cm}
5781 \noindent {\bf Return Type:}
5782 {\tt
5783 (host ref) Set
5787 A list of all the IDs of all the hosts
5788 \vspace{0.3cm}
5789 \vspace{0.3cm}
5790 \vspace{0.3cm}
5791 \subsubsection{RPC name:~get\_uuid}
5793 {\bf Overview:}
5794 Get the uuid field of the given host.
5796 \noindent {\bf Signature:}
5797 \begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
5800 \noindent{\bf Arguments:}
5803 \vspace{0.3cm}
5804 \begin{tabular}{|c|c|p{7cm}|}
5805 \hline
5806 {\bf type} & {\bf name} & {\bf description} \\ \hline
5807 {\tt host ref } & self & reference to the object \\ \hline
5809 \end{tabular}
5811 \vspace{0.3cm}
5813 \noindent {\bf Return Type:}
5814 {\tt
5815 string
5819 value of the field
5820 \vspace{0.3cm}
5821 \vspace{0.3cm}
5822 \vspace{0.3cm}
5823 \subsubsection{RPC name:~get\_name\_label}
5825 {\bf Overview:}
5826 Get the name/label field of the given host.
5828 \noindent {\bf Signature:}
5829 \begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
5832 \noindent{\bf Arguments:}
5835 \vspace{0.3cm}
5836 \begin{tabular}{|c|c|p{7cm}|}
5837 \hline
5838 {\bf type} & {\bf name} & {\bf description} \\ \hline
5839 {\tt host ref } & self & reference to the object \\ \hline
5841 \end{tabular}
5843 \vspace{0.3cm}
5845 \noindent {\bf Return Type:}
5846 {\tt
5847 string
5851 value of the field
5852 \vspace{0.3cm}
5853 \vspace{0.3cm}
5854 \vspace{0.3cm}
5855 \subsubsection{RPC name:~set\_name\_label}
5857 {\bf Overview:}
5858 Set the name/label field of the given host.
5860 \noindent {\bf Signature:}
5861 \begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
5864 \noindent{\bf Arguments:}
5867 \vspace{0.3cm}
5868 \begin{tabular}{|c|c|p{7cm}|}
5869 \hline
5870 {\bf type} & {\bf name} & {\bf description} \\ \hline
5871 {\tt host ref } & self & reference to the object \\ \hline
5873 {\tt string } & value & New value to set \\ \hline
5875 \end{tabular}
5877 \vspace{0.3cm}
5879 \noindent {\bf Return Type:}
5880 {\tt
5881 void
5886 \vspace{0.3cm}
5887 \vspace{0.3cm}
5888 \vspace{0.3cm}
5889 \subsubsection{RPC name:~get\_name\_description}
5891 {\bf Overview:}
5892 Get the name/description field of the given host.
5894 \noindent {\bf Signature:}
5895 \begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
5898 \noindent{\bf Arguments:}
5901 \vspace{0.3cm}
5902 \begin{tabular}{|c|c|p{7cm}|}
5903 \hline
5904 {\bf type} & {\bf name} & {\bf description} \\ \hline
5905 {\tt host ref } & self & reference to the object \\ \hline
5907 \end{tabular}
5909 \vspace{0.3cm}
5911 \noindent {\bf Return Type:}
5912 {\tt
5913 string
5917 value of the field
5918 \vspace{0.3cm}
5919 \vspace{0.3cm}
5920 \vspace{0.3cm}
5921 \subsubsection{RPC name:~set\_name\_description}
5923 {\bf Overview:}
5924 Set the name/description field of the given host.
5926 \noindent {\bf Signature:}
5927 \begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
5930 \noindent{\bf Arguments:}
5933 \vspace{0.3cm}
5934 \begin{tabular}{|c|c|p{7cm}|}
5935 \hline
5936 {\bf type} & {\bf name} & {\bf description} \\ \hline
5937 {\tt host ref } & self & reference to the object \\ \hline
5939 {\tt string } & value & New value to set \\ \hline
5941 \end{tabular}
5943 \vspace{0.3cm}
5945 \noindent {\bf Return Type:}
5946 {\tt
5947 void
5952 \vspace{0.3cm}
5953 \vspace{0.3cm}
5954 \vspace{0.3cm}
5955 \subsubsection{RPC name:~get\_API\_version\_major}
5957 {\bf Overview:}
5958 Get the API\_version/major field of the given host.
5960 \noindent {\bf Signature:}
5961 \begin{verbatim} int get_API_version_major (session_id s, host ref self)\end{verbatim}
5964 \noindent{\bf Arguments:}
5967 \vspace{0.3cm}
5968 \begin{tabular}{|c|c|p{7cm}|}
5969 \hline
5970 {\bf type} & {\bf name} & {\bf description} \\ \hline
5971 {\tt host ref } & self & reference to the object \\ \hline
5973 \end{tabular}
5975 \vspace{0.3cm}
5977 \noindent {\bf Return Type:}
5978 {\tt
5979 int
5983 value of the field
5984 \vspace{0.3cm}
5985 \vspace{0.3cm}
5986 \vspace{0.3cm}
5987 \subsubsection{RPC name:~get\_API\_version\_minor}
5989 {\bf Overview:}
5990 Get the API\_version/minor field of the given host.
5992 \noindent {\bf Signature:}
5993 \begin{verbatim} int get_API_version_minor (session_id s, host ref self)\end{verbatim}
5996 \noindent{\bf Arguments:}
5999 \vspace{0.3cm}
6000 \begin{tabular}{|c|c|p{7cm}|}
6001 \hline
6002 {\bf type} & {\bf name} & {\bf description} \\ \hline
6003 {\tt host ref } & self & reference to the object \\ \hline
6005 \end{tabular}
6007 \vspace{0.3cm}
6009 \noindent {\bf Return Type:}
6010 {\tt
6011 int
6015 value of the field
6016 \vspace{0.3cm}
6017 \vspace{0.3cm}
6018 \vspace{0.3cm}
6019 \subsubsection{RPC name:~get\_API\_version\_vendor}
6021 {\bf Overview:}
6022 Get the API\_version/vendor field of the given host.
6024 \noindent {\bf Signature:}
6025 \begin{verbatim} string get_API_version_vendor (session_id s, host ref self)\end{verbatim}
6028 \noindent{\bf Arguments:}
6031 \vspace{0.3cm}
6032 \begin{tabular}{|c|c|p{7cm}|}
6033 \hline
6034 {\bf type} & {\bf name} & {\bf description} \\ \hline
6035 {\tt host ref } & self & reference to the object \\ \hline
6037 \end{tabular}
6039 \vspace{0.3cm}
6041 \noindent {\bf Return Type:}
6042 {\tt
6043 string
6047 value of the field
6048 \vspace{0.3cm}
6049 \vspace{0.3cm}
6050 \vspace{0.3cm}
6051 \subsubsection{RPC name:~get\_API\_version\_vendor\_implementation}
6053 {\bf Overview:}
6054 Get the API\_version/vendor\_implementation field of the given host.
6056 \noindent {\bf Signature:}
6057 \begin{verbatim} ((string -> string) Map) get_API_version_vendor_implementation (session_id s, host ref self)\end{verbatim}
6060 \noindent{\bf Arguments:}
6063 \vspace{0.3cm}
6064 \begin{tabular}{|c|c|p{7cm}|}
6065 \hline
6066 {\bf type} & {\bf name} & {\bf description} \\ \hline
6067 {\tt host ref } & self & reference to the object \\ \hline
6069 \end{tabular}
6071 \vspace{0.3cm}
6073 \noindent {\bf Return Type:}
6074 {\tt
6075 (string $\rightarrow$ string) Map
6079 value of the field
6080 \vspace{0.3cm}
6081 \vspace{0.3cm}
6082 \vspace{0.3cm}
6083 \subsubsection{RPC name:~get\_enabled}
6085 {\bf Overview:}
6086 Get the enabled field of the given host.
6088 \noindent {\bf Signature:}
6089 \begin{verbatim} bool get_enabled (session_id s, host ref self)\end{verbatim}
6092 \noindent{\bf Arguments:}
6095 \vspace{0.3cm}
6096 \begin{tabular}{|c|c|p{7cm}|}
6097 \hline
6098 {\bf type} & {\bf name} & {\bf description} \\ \hline
6099 {\tt host ref } & self & reference to the object \\ \hline
6101 \end{tabular}
6103 \vspace{0.3cm}
6105 \noindent {\bf Return Type:}
6106 {\tt
6107 bool
6111 value of the field
6112 \vspace{0.3cm}
6113 \vspace{0.3cm}
6114 \vspace{0.3cm}
6115 \subsubsection{RPC name:~get\_software\_version}
6117 {\bf Overview:}
6118 Get the software\_version field of the given host.
6120 \noindent {\bf Signature:}
6121 \begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
6124 \noindent{\bf Arguments:}
6127 \vspace{0.3cm}
6128 \begin{tabular}{|c|c|p{7cm}|}
6129 \hline
6130 {\bf type} & {\bf name} & {\bf description} \\ \hline
6131 {\tt host ref } & self & reference to the object \\ \hline
6133 \end{tabular}
6135 \vspace{0.3cm}
6137 \noindent {\bf Return Type:}
6138 {\tt
6139 (string $\rightarrow$ string) Map
6143 value of the field
6144 \vspace{0.3cm}
6145 \vspace{0.3cm}
6146 \vspace{0.3cm}
6147 \subsubsection{RPC name:~get\_other\_config}
6149 {\bf Overview:}
6150 Get the other\_config field of the given host.
6152 \noindent {\bf Signature:}
6153 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
6156 \noindent{\bf Arguments:}
6159 \vspace{0.3cm}
6160 \begin{tabular}{|c|c|p{7cm}|}
6161 \hline
6162 {\bf type} & {\bf name} & {\bf description} \\ \hline
6163 {\tt host ref } & self & reference to the object \\ \hline
6165 \end{tabular}
6167 \vspace{0.3cm}
6169 \noindent {\bf Return Type:}
6170 {\tt
6171 (string $\rightarrow$ string) Map
6175 value of the field
6176 \vspace{0.3cm}
6177 \vspace{0.3cm}
6178 \vspace{0.3cm}
6179 \subsubsection{RPC name:~set\_other\_config}
6181 {\bf Overview:}
6182 Set the other\_config field of the given host.
6184 \noindent {\bf Signature:}
6185 \begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6188 \noindent{\bf Arguments:}
6191 \vspace{0.3cm}
6192 \begin{tabular}{|c|c|p{7cm}|}
6193 \hline
6194 {\bf type} & {\bf name} & {\bf description} \\ \hline
6195 {\tt host ref } & self & reference to the object \\ \hline
6197 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6199 \end{tabular}
6201 \vspace{0.3cm}
6203 \noindent {\bf Return Type:}
6204 {\tt
6205 void
6210 \vspace{0.3cm}
6211 \vspace{0.3cm}
6212 \vspace{0.3cm}
6213 \subsubsection{RPC name:~add\_to\_other\_config}
6215 {\bf Overview:}
6216 Add the given key-value pair to the other\_config field of the given host.
6218 \noindent {\bf Signature:}
6219 \begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
6222 \noindent{\bf Arguments:}
6225 \vspace{0.3cm}
6226 \begin{tabular}{|c|c|p{7cm}|}
6227 \hline
6228 {\bf type} & {\bf name} & {\bf description} \\ \hline
6229 {\tt host ref } & self & reference to the object \\ \hline
6231 {\tt string } & key & Key to add \\ \hline
6233 {\tt string } & value & Value to add \\ \hline
6235 \end{tabular}
6237 \vspace{0.3cm}
6239 \noindent {\bf Return Type:}
6240 {\tt
6241 void
6246 \vspace{0.3cm}
6247 \vspace{0.3cm}
6248 \vspace{0.3cm}
6249 \subsubsection{RPC name:~remove\_from\_other\_config}
6251 {\bf Overview:}
6252 Remove the given key and its corresponding value from the other\_config
6253 field of the given host. If the key is not in that Map, then do nothing.
6255 \noindent {\bf Signature:}
6256 \begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
6259 \noindent{\bf Arguments:}
6262 \vspace{0.3cm}
6263 \begin{tabular}{|c|c|p{7cm}|}
6264 \hline
6265 {\bf type} & {\bf name} & {\bf description} \\ \hline
6266 {\tt host ref } & self & reference to the object \\ \hline
6268 {\tt string } & key & Key to remove \\ \hline
6270 \end{tabular}
6272 \vspace{0.3cm}
6274 \noindent {\bf Return Type:}
6275 {\tt
6276 void
6281 \vspace{0.3cm}
6282 \vspace{0.3cm}
6283 \vspace{0.3cm}
6284 \subsubsection{RPC name:~get\_capabilities}
6286 {\bf Overview:}
6287 Get the capabilities field of the given host.
6289 \noindent {\bf Signature:}
6290 \begin{verbatim} (string Set) get_capabilities (session_id s, host ref self)\end{verbatim}
6293 \noindent{\bf Arguments:}
6296 \vspace{0.3cm}
6297 \begin{tabular}{|c|c|p{7cm}|}
6298 \hline
6299 {\bf type} & {\bf name} & {\bf description} \\ \hline
6300 {\tt host ref } & self & reference to the object \\ \hline
6302 \end{tabular}
6304 \vspace{0.3cm}
6306 \noindent {\bf Return Type:}
6307 {\tt
6308 string Set
6312 value of the field
6313 \vspace{0.3cm}
6314 \vspace{0.3cm}
6315 \vspace{0.3cm}
6316 \subsubsection{RPC name:~get\_cpu\_configuration}
6318 {\bf Overview:}
6319 Get the cpu\_configuration field of the given host.
6321 \noindent {\bf Signature:}
6322 \begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, host ref self)\end{verbatim}
6325 \noindent{\bf Arguments:}
6328 \vspace{0.3cm}
6329 \begin{tabular}{|c|c|p{7cm}|}
6330 \hline
6331 {\bf type} & {\bf name} & {\bf description} \\ \hline
6332 {\tt host ref } & self & reference to the object \\ \hline
6334 \end{tabular}
6336 \vspace{0.3cm}
6338 \noindent {\bf Return Type:}
6339 {\tt
6340 (string $\rightarrow$ string) Map
6344 value of the field
6345 \vspace{0.3cm}
6346 \vspace{0.3cm}
6347 \vspace{0.3cm}
6348 \subsubsection{RPC name:~get\_sched\_policy}
6350 {\bf Overview:}
6351 Get the sched\_policy field of the given host.
6353 \noindent {\bf Signature:}
6354 \begin{verbatim} string get_sched_policy (session_id s, host ref self)\end{verbatim}
6357 \noindent{\bf Arguments:}
6360 \vspace{0.3cm}
6361 \begin{tabular}{|c|c|p{7cm}|}
6362 \hline
6363 {\bf type} & {\bf name} & {\bf description} \\ \hline
6364 {\tt host ref } & self & reference to the object \\ \hline
6366 \end{tabular}
6368 \vspace{0.3cm}
6370 \noindent {\bf Return Type:}
6371 {\tt
6372 string
6376 value of the field
6377 \vspace{0.3cm}
6378 \vspace{0.3cm}
6379 \vspace{0.3cm}
6380 \subsubsection{RPC name:~get\_supported\_bootloaders}
6382 {\bf Overview:}
6383 Get the supported\_bootloaders field of the given host.
6385 \noindent {\bf Signature:}
6386 \begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim}
6389 \noindent{\bf Arguments:}
6392 \vspace{0.3cm}
6393 \begin{tabular}{|c|c|p{7cm}|}
6394 \hline
6395 {\bf type} & {\bf name} & {\bf description} \\ \hline
6396 {\tt host ref } & self & reference to the object \\ \hline
6398 \end{tabular}
6400 \vspace{0.3cm}
6402 \noindent {\bf Return Type:}
6403 {\tt
6404 string Set
6408 value of the field
6409 \vspace{0.3cm}
6410 \vspace{0.3cm}
6411 \vspace{0.3cm}
6412 \subsubsection{RPC name:~get\_resident\_VMs}
6414 {\bf Overview:}
6415 Get the resident\_VMs field of the given host.
6417 \noindent {\bf Signature:}
6418 \begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
6421 \noindent{\bf Arguments:}
6424 \vspace{0.3cm}
6425 \begin{tabular}{|c|c|p{7cm}|}
6426 \hline
6427 {\bf type} & {\bf name} & {\bf description} \\ \hline
6428 {\tt host ref } & self & reference to the object \\ \hline
6430 \end{tabular}
6432 \vspace{0.3cm}
6434 \noindent {\bf Return Type:}
6435 {\tt
6436 (VM ref) Set
6440 value of the field
6441 \vspace{0.3cm}
6442 \vspace{0.3cm}
6443 \vspace{0.3cm}
6444 \subsubsection{RPC name:~get\_logging}
6446 {\bf Overview:}
6447 Get the logging field of the given host.
6449 \noindent {\bf Signature:}
6450 \begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
6453 \noindent{\bf Arguments:}
6456 \vspace{0.3cm}
6457 \begin{tabular}{|c|c|p{7cm}|}
6458 \hline
6459 {\bf type} & {\bf name} & {\bf description} \\ \hline
6460 {\tt host ref } & self & reference to the object \\ \hline
6462 \end{tabular}
6464 \vspace{0.3cm}
6466 \noindent {\bf Return Type:}
6467 {\tt
6468 (string $\rightarrow$ string) Map
6472 value of the field
6473 \vspace{0.3cm}
6474 \vspace{0.3cm}
6475 \vspace{0.3cm}
6476 \subsubsection{RPC name:~set\_logging}
6478 {\bf Overview:}
6479 Set the logging field of the given host.
6481 \noindent {\bf Signature:}
6482 \begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6485 \noindent{\bf Arguments:}
6488 \vspace{0.3cm}
6489 \begin{tabular}{|c|c|p{7cm}|}
6490 \hline
6491 {\bf type} & {\bf name} & {\bf description} \\ \hline
6492 {\tt host ref } & self & reference to the object \\ \hline
6494 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6496 \end{tabular}
6498 \vspace{0.3cm}
6500 \noindent {\bf Return Type:}
6501 {\tt
6502 void
6507 \vspace{0.3cm}
6508 \vspace{0.3cm}
6509 \vspace{0.3cm}
6510 \subsubsection{RPC name:~add\_to\_logging}
6512 {\bf Overview:}
6513 Add the given key-value pair to the logging field of the given host.
6515 \noindent {\bf Signature:}
6516 \begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\end{verbatim}
6519 \noindent{\bf Arguments:}
6522 \vspace{0.3cm}
6523 \begin{tabular}{|c|c|p{7cm}|}
6524 \hline
6525 {\bf type} & {\bf name} & {\bf description} \\ \hline
6526 {\tt host ref } & self & reference to the object \\ \hline
6528 {\tt string } & key & Key to add \\ \hline
6530 {\tt string } & value & Value to add \\ \hline
6532 \end{tabular}
6534 \vspace{0.3cm}
6536 \noindent {\bf Return Type:}
6537 {\tt
6538 void
6543 \vspace{0.3cm}
6544 \vspace{0.3cm}
6545 \vspace{0.3cm}
6546 \subsubsection{RPC name:~remove\_from\_logging}
6548 {\bf Overview:}
6549 Remove the given key and its corresponding value from the logging field of
6550 the given host. If the key is not in that Map, then do nothing.
6552 \noindent {\bf Signature:}
6553 \begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\end{verbatim}
6556 \noindent{\bf Arguments:}
6559 \vspace{0.3cm}
6560 \begin{tabular}{|c|c|p{7cm}|}
6561 \hline
6562 {\bf type} & {\bf name} & {\bf description} \\ \hline
6563 {\tt host ref } & self & reference to the object \\ \hline
6565 {\tt string } & key & Key to remove \\ \hline
6567 \end{tabular}
6569 \vspace{0.3cm}
6571 \noindent {\bf Return Type:}
6572 {\tt
6573 void
6578 \vspace{0.3cm}
6579 \vspace{0.3cm}
6580 \vspace{0.3cm}
6581 \subsubsection{RPC name:~get\_PIFs}
6583 {\bf Overview:}
6584 Get the PIFs field of the given host.
6586 \noindent {\bf Signature:}
6587 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
6590 \noindent{\bf Arguments:}
6593 \vspace{0.3cm}
6594 \begin{tabular}{|c|c|p{7cm}|}
6595 \hline
6596 {\bf type} & {\bf name} & {\bf description} \\ \hline
6597 {\tt host ref } & self & reference to the object \\ \hline
6599 \end{tabular}
6601 \vspace{0.3cm}
6603 \noindent {\bf Return Type:}
6604 {\tt
6605 (PIF ref) Set
6609 value of the field
6610 \vspace{0.3cm}
6611 \vspace{0.3cm}
6612 \vspace{0.3cm}
6613 \subsubsection{RPC name:~get\_suspend\_image\_sr}
6615 {\bf Overview:}
6616 Get the suspend\_image\_sr field of the given host.
6618 \noindent {\bf Signature:}
6619 \begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
6622 \noindent{\bf Arguments:}
6625 \vspace{0.3cm}
6626 \begin{tabular}{|c|c|p{7cm}|}
6627 \hline
6628 {\bf type} & {\bf name} & {\bf description} \\ \hline
6629 {\tt host ref } & self & reference to the object \\ \hline
6631 \end{tabular}
6633 \vspace{0.3cm}
6635 \noindent {\bf Return Type:}
6636 {\tt
6637 SR ref
6641 value of the field
6642 \vspace{0.3cm}
6643 \vspace{0.3cm}
6644 \vspace{0.3cm}
6645 \subsubsection{RPC name:~set\_suspend\_image\_sr}
6647 {\bf Overview:}
6648 Set the suspend\_image\_sr field of the given host.
6650 \noindent {\bf Signature:}
6651 \begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6654 \noindent{\bf Arguments:}
6657 \vspace{0.3cm}
6658 \begin{tabular}{|c|c|p{7cm}|}
6659 \hline
6660 {\bf type} & {\bf name} & {\bf description} \\ \hline
6661 {\tt host ref } & self & reference to the object \\ \hline
6663 {\tt SR ref } & value & New value to set \\ \hline
6665 \end{tabular}
6667 \vspace{0.3cm}
6669 \noindent {\bf Return Type:}
6670 {\tt
6671 void
6676 \vspace{0.3cm}
6677 \vspace{0.3cm}
6678 \vspace{0.3cm}
6679 \subsubsection{RPC name:~get\_crash\_dump\_sr}
6681 {\bf Overview:}
6682 Get the crash\_dump\_sr field of the given host.
6684 \noindent {\bf Signature:}
6685 \begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
6688 \noindent{\bf Arguments:}
6691 \vspace{0.3cm}
6692 \begin{tabular}{|c|c|p{7cm}|}
6693 \hline
6694 {\bf type} & {\bf name} & {\bf description} \\ \hline
6695 {\tt host ref } & self & reference to the object \\ \hline
6697 \end{tabular}
6699 \vspace{0.3cm}
6701 \noindent {\bf Return Type:}
6702 {\tt
6703 SR ref
6707 value of the field
6708 \vspace{0.3cm}
6709 \vspace{0.3cm}
6710 \vspace{0.3cm}
6711 \subsubsection{RPC name:~set\_crash\_dump\_sr}
6713 {\bf Overview:}
6714 Set the crash\_dump\_sr field of the given host.
6716 \noindent {\bf Signature:}
6717 \begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6720 \noindent{\bf Arguments:}
6723 \vspace{0.3cm}
6724 \begin{tabular}{|c|c|p{7cm}|}
6725 \hline
6726 {\bf type} & {\bf name} & {\bf description} \\ \hline
6727 {\tt host ref } & self & reference to the object \\ \hline
6729 {\tt SR ref } & value & New value to set \\ \hline
6731 \end{tabular}
6733 \vspace{0.3cm}
6735 \noindent {\bf Return Type:}
6736 {\tt
6737 void
6742 \vspace{0.3cm}
6743 \vspace{0.3cm}
6744 \vspace{0.3cm}
6745 \subsubsection{RPC name:~get\_PBDs}
6747 {\bf Overview:}
6748 Get the PBDs field of the given host.
6750 \noindent {\bf Signature:}
6751 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
6754 \noindent{\bf Arguments:}
6757 \vspace{0.3cm}
6758 \begin{tabular}{|c|c|p{7cm}|}
6759 \hline
6760 {\bf type} & {\bf name} & {\bf description} \\ \hline
6761 {\tt host ref } & self & reference to the object \\ \hline
6763 \end{tabular}
6765 \vspace{0.3cm}
6767 \noindent {\bf Return Type:}
6768 {\tt
6769 (PBD ref) Set
6773 value of the field
6774 \vspace{0.3cm}
6775 \vspace{0.3cm}
6776 \vspace{0.3cm}
6777 \subsubsection{RPC name:~get\_host\_CPUs}
6779 {\bf Overview:}
6780 Get the host\_CPUs field of the given host.
6782 \noindent {\bf Signature:}
6783 \begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
6786 \noindent{\bf Arguments:}
6789 \vspace{0.3cm}
6790 \begin{tabular}{|c|c|p{7cm}|}
6791 \hline
6792 {\bf type} & {\bf name} & {\bf description} \\ \hline
6793 {\tt host ref } & self & reference to the object \\ \hline
6795 \end{tabular}
6797 \vspace{0.3cm}
6799 \noindent {\bf Return Type:}
6800 {\tt
6801 (host\_cpu ref) Set
6805 value of the field
6806 \vspace{0.3cm}
6807 \vspace{0.3cm}
6808 \vspace{0.3cm}
6809 \subsubsection{RPC name:~get\_metrics}
6811 {\bf Overview:}
6812 Get the metrics field of the given host.
6814 \noindent {\bf Signature:}
6815 \begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
6818 \noindent{\bf Arguments:}
6821 \vspace{0.3cm}
6822 \begin{tabular}{|c|c|p{7cm}|}
6823 \hline
6824 {\bf type} & {\bf name} & {\bf description} \\ \hline
6825 {\tt host ref } & self & reference to the object \\ \hline
6827 \end{tabular}
6829 \vspace{0.3cm}
6831 \noindent {\bf Return Type:}
6832 {\tt
6833 host\_metrics ref
6837 value of the field
6838 \vspace{0.3cm}
6839 \vspace{0.3cm}
6840 \vspace{0.3cm}
6841 \subsubsection{RPC name:~get\_by\_uuid}
6843 {\bf Overview:}
6844 Get a reference to the host instance with the specified UUID.
6846 \noindent {\bf Signature:}
6847 \begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6850 \noindent{\bf Arguments:}
6853 \vspace{0.3cm}
6854 \begin{tabular}{|c|c|p{7cm}|}
6855 \hline
6856 {\bf type} & {\bf name} & {\bf description} \\ \hline
6857 {\tt string } & uuid & UUID of object to return \\ \hline
6859 \end{tabular}
6861 \vspace{0.3cm}
6863 \noindent {\bf Return Type:}
6864 {\tt
6865 host ref
6869 reference to the object
6870 \vspace{0.3cm}
6871 \vspace{0.3cm}
6872 \vspace{0.3cm}
6873 \subsubsection{RPC name:~get\_record}
6875 {\bf Overview:}
6876 Get a record containing the current state of the given host.
6878 \noindent {\bf Signature:}
6879 \begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
6882 \noindent{\bf Arguments:}
6885 \vspace{0.3cm}
6886 \begin{tabular}{|c|c|p{7cm}|}
6887 \hline
6888 {\bf type} & {\bf name} & {\bf description} \\ \hline
6889 {\tt host ref } & self & reference to the object \\ \hline
6891 \end{tabular}
6893 \vspace{0.3cm}
6895 \noindent {\bf Return Type:}
6896 {\tt
6897 host record
6901 all fields from the object
6902 \vspace{0.3cm}
6903 \vspace{0.3cm}
6904 \vspace{0.3cm}
6905 \subsubsection{RPC name:~get\_by\_name\_label}
6907 {\bf Overview:}
6908 Get all the host instances with the given label.
6910 \noindent {\bf Signature:}
6911 \begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
6914 \noindent{\bf Arguments:}
6917 \vspace{0.3cm}
6918 \begin{tabular}{|c|c|p{7cm}|}
6919 \hline
6920 {\bf type} & {\bf name} & {\bf description} \\ \hline
6921 {\tt string } & label & label of object to return \\ \hline
6923 \end{tabular}
6925 \vspace{0.3cm}
6927 \noindent {\bf Return Type:}
6928 {\tt
6929 (host ref) Set
6933 references to objects with match names
6934 \vspace{0.3cm}
6935 \vspace{0.3cm}
6936 \vspace{0.3cm}
6938 \vspace{1cm}
6939 \newpage
6940 \section{Class: host\_metrics}
6941 \subsection{Fields for class: host\_metrics}
6942 \begin{longtable}{|lllp{0.38\textwidth}|}
6943 \hline
6944 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
6945 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
6946 The metrics associated with a host.}} \\
6947 \hline
6948 Quals & Field & Type & Description \\
6949 \hline
6950 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6951 $\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
6952 $\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
6953 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
6954 \hline
6955 \end{longtable}
6956 \subsection{RPCs associated with class: host\_metrics}
6957 \subsubsection{RPC name:~get\_all}
6959 {\bf Overview:}
6960 Return a list of all the host\_metrics instances known to the system.
6962 \noindent {\bf Signature:}
6963 \begin{verbatim} ((host_metrics ref) Set) get_all (session_id s)\end{verbatim}
6966 \vspace{0.3cm}
6968 \noindent {\bf Return Type:}
6969 {\tt
6970 (host\_metrics ref) Set
6974 references to all objects
6975 \vspace{0.3cm}
6976 \vspace{0.3cm}
6977 \vspace{0.3cm}
6978 \subsubsection{RPC name:~get\_uuid}
6980 {\bf Overview:}
6981 Get the uuid field of the given host\_metrics.
6983 \noindent {\bf Signature:}
6984 \begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
6987 \noindent{\bf Arguments:}
6990 \vspace{0.3cm}
6991 \begin{tabular}{|c|c|p{7cm}|}
6992 \hline
6993 {\bf type} & {\bf name} & {\bf description} \\ \hline
6994 {\tt host\_metrics ref } & self & reference to the object \\ \hline
6996 \end{tabular}
6998 \vspace{0.3cm}
7000 \noindent {\bf Return Type:}
7001 {\tt
7002 string
7006 value of the field
7007 \vspace{0.3cm}
7008 \vspace{0.3cm}
7009 \vspace{0.3cm}
7010 \subsubsection{RPC name:~get\_memory\_total}
7012 {\bf Overview:}
7013 Get the memory/total field of the given host\_metrics.
7015 \noindent {\bf Signature:}
7016 \begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
7019 \noindent{\bf Arguments:}
7022 \vspace{0.3cm}
7023 \begin{tabular}{|c|c|p{7cm}|}
7024 \hline
7025 {\bf type} & {\bf name} & {\bf description} \\ \hline
7026 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7028 \end{tabular}
7030 \vspace{0.3cm}
7032 \noindent {\bf Return Type:}
7033 {\tt
7034 int
7038 value of the field
7039 \vspace{0.3cm}
7040 \vspace{0.3cm}
7041 \vspace{0.3cm}
7042 \subsubsection{RPC name:~get\_memory\_free}
7044 {\bf Overview:}
7045 Get the memory/free field of the given host\_metrics.
7047 \noindent {\bf Signature:}
7048 \begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
7051 \noindent{\bf Arguments:}
7054 \vspace{0.3cm}
7055 \begin{tabular}{|c|c|p{7cm}|}
7056 \hline
7057 {\bf type} & {\bf name} & {\bf description} \\ \hline
7058 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7060 \end{tabular}
7062 \vspace{0.3cm}
7064 \noindent {\bf Return Type:}
7065 {\tt
7066 int
7070 value of the field
7071 \vspace{0.3cm}
7072 \vspace{0.3cm}
7073 \vspace{0.3cm}
7074 \subsubsection{RPC name:~get\_last\_updated}
7076 {\bf Overview:}
7077 Get the last\_updated field of the given host\_metrics.
7079 \noindent {\bf Signature:}
7080 \begin{verbatim} datetime get_last_updated (session_id s, host_metrics ref self)\end{verbatim}
7083 \noindent{\bf Arguments:}
7086 \vspace{0.3cm}
7087 \begin{tabular}{|c|c|p{7cm}|}
7088 \hline
7089 {\bf type} & {\bf name} & {\bf description} \\ \hline
7090 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7092 \end{tabular}
7094 \vspace{0.3cm}
7096 \noindent {\bf Return Type:}
7097 {\tt
7098 datetime
7102 value of the field
7103 \vspace{0.3cm}
7104 \vspace{0.3cm}
7105 \vspace{0.3cm}
7106 \subsubsection{RPC name:~get\_by\_uuid}
7108 {\bf Overview:}
7109 Get a reference to the host\_metrics instance with the specified UUID.
7111 \noindent {\bf Signature:}
7112 \begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7115 \noindent{\bf Arguments:}
7118 \vspace{0.3cm}
7119 \begin{tabular}{|c|c|p{7cm}|}
7120 \hline
7121 {\bf type} & {\bf name} & {\bf description} \\ \hline
7122 {\tt string } & uuid & UUID of object to return \\ \hline
7124 \end{tabular}
7126 \vspace{0.3cm}
7128 \noindent {\bf Return Type:}
7129 {\tt
7130 host\_metrics ref
7134 reference to the object
7135 \vspace{0.3cm}
7136 \vspace{0.3cm}
7137 \vspace{0.3cm}
7138 \subsubsection{RPC name:~get\_record}
7140 {\bf Overview:}
7141 Get a record containing the current state of the given host\_metrics.
7143 \noindent {\bf Signature:}
7144 \begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
7147 \noindent{\bf Arguments:}
7150 \vspace{0.3cm}
7151 \begin{tabular}{|c|c|p{7cm}|}
7152 \hline
7153 {\bf type} & {\bf name} & {\bf description} \\ \hline
7154 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7156 \end{tabular}
7158 \vspace{0.3cm}
7160 \noindent {\bf Return Type:}
7161 {\tt
7162 host\_metrics record
7166 all fields from the object
7167 \vspace{0.3cm}
7168 \vspace{0.3cm}
7169 \vspace{0.3cm}
7171 \vspace{1cm}
7172 \newpage
7173 \section{Class: host\_cpu}
7174 \subsection{Fields for class: host\_cpu}
7175 \begin{longtable}{|lllp{0.38\textwidth}|}
7176 \hline
7177 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
7178 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
7179 \hline
7180 Quals & Field & Type & Description \\
7181 \hline
7182 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7183 $\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the host the CPU is in \\
7184 $\mathit{RO}_\mathit{run}$ & {\tt number} & int & the number of the physical CPU within the host \\
7185 $\mathit{RO}_\mathit{run}$ & {\tt vendor} & string & the vendor of the physical CPU \\
7186 $\mathit{RO}_\mathit{run}$ & {\tt speed} & int & the speed of the physical CPU \\
7187 $\mathit{RO}_\mathit{run}$ & {\tt modelname} & string & the model name of the physical CPU \\
7188 $\mathit{RO}_\mathit{run}$ & {\tt stepping} & string & the stepping of the physical CPU \\
7189 $\mathit{RO}_\mathit{run}$ & {\tt flags} & string & the flags of the physical CPU (a decoded version of the features field) \\
7190 $\mathit{RO}_\mathit{run}$ & {\tt features} & string & the physical CPU feature bitmap \\
7191 $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
7192 \hline
7193 \end{longtable}
7194 \subsection{RPCs associated with class: host\_cpu}
7195 \subsubsection{RPC name:~get\_all}
7197 {\bf Overview:}
7198 Return a list of all the host\_cpus known to the system.
7200 \noindent {\bf Signature:}
7201 \begin{verbatim} ((host_cpu ref) Set) get_all (session_id s)\end{verbatim}
7204 \vspace{0.3cm}
7206 \noindent {\bf Return Type:}
7207 {\tt
7208 (host\_cpu ref) Set
7212 references to all objects
7213 \vspace{0.3cm}
7214 \vspace{0.3cm}
7215 \vspace{0.3cm}
7216 \subsubsection{RPC name:~get\_uuid}
7218 {\bf Overview:}
7219 Get the uuid field of the given host\_cpu.
7221 \noindent {\bf Signature:}
7222 \begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
7225 \noindent{\bf Arguments:}
7228 \vspace{0.3cm}
7229 \begin{tabular}{|c|c|p{7cm}|}
7230 \hline
7231 {\bf type} & {\bf name} & {\bf description} \\ \hline
7232 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7234 \end{tabular}
7236 \vspace{0.3cm}
7238 \noindent {\bf Return Type:}
7239 {\tt
7240 string
7244 value of the field
7245 \vspace{0.3cm}
7246 \vspace{0.3cm}
7247 \vspace{0.3cm}
7248 \subsubsection{RPC name:~get\_host}
7250 {\bf Overview:}
7251 Get the host field of the given host\_cpu.
7253 \noindent {\bf Signature:}
7254 \begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
7257 \noindent{\bf Arguments:}
7260 \vspace{0.3cm}
7261 \begin{tabular}{|c|c|p{7cm}|}
7262 \hline
7263 {\bf type} & {\bf name} & {\bf description} \\ \hline
7264 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7266 \end{tabular}
7268 \vspace{0.3cm}
7270 \noindent {\bf Return Type:}
7271 {\tt
7272 host ref
7276 value of the field
7277 \vspace{0.3cm}
7278 \vspace{0.3cm}
7279 \vspace{0.3cm}
7280 \subsubsection{RPC name:~get\_number}
7282 {\bf Overview:}
7283 Get the number field of the given host\_cpu.
7285 \noindent {\bf Signature:}
7286 \begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
7289 \noindent{\bf Arguments:}
7292 \vspace{0.3cm}
7293 \begin{tabular}{|c|c|p{7cm}|}
7294 \hline
7295 {\bf type} & {\bf name} & {\bf description} \\ \hline
7296 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7298 \end{tabular}
7300 \vspace{0.3cm}
7302 \noindent {\bf Return Type:}
7303 {\tt
7304 int
7308 value of the field
7309 \vspace{0.3cm}
7310 \vspace{0.3cm}
7311 \vspace{0.3cm}
7312 \subsubsection{RPC name:~get\_vendor}
7314 {\bf Overview:}
7315 Get the vendor field of the given host\_cpu.
7317 \noindent {\bf Signature:}
7318 \begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
7321 \noindent{\bf Arguments:}
7324 \vspace{0.3cm}
7325 \begin{tabular}{|c|c|p{7cm}|}
7326 \hline
7327 {\bf type} & {\bf name} & {\bf description} \\ \hline
7328 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7330 \end{tabular}
7332 \vspace{0.3cm}
7334 \noindent {\bf Return Type:}
7335 {\tt
7336 string
7340 value of the field
7341 \vspace{0.3cm}
7342 \vspace{0.3cm}
7343 \vspace{0.3cm}
7344 \subsubsection{RPC name:~get\_speed}
7346 {\bf Overview:}
7347 Get the speed field of the given host\_cpu.
7349 \noindent {\bf Signature:}
7350 \begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
7353 \noindent{\bf Arguments:}
7356 \vspace{0.3cm}
7357 \begin{tabular}{|c|c|p{7cm}|}
7358 \hline
7359 {\bf type} & {\bf name} & {\bf description} \\ \hline
7360 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7362 \end{tabular}
7364 \vspace{0.3cm}
7366 \noindent {\bf Return Type:}
7367 {\tt
7368 int
7372 value of the field
7373 \vspace{0.3cm}
7374 \vspace{0.3cm}
7375 \vspace{0.3cm}
7376 \subsubsection{RPC name:~get\_modelname}
7378 {\bf Overview:}
7379 Get the modelname field of the given host\_cpu.
7381 \noindent {\bf Signature:}
7382 \begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
7385 \noindent{\bf Arguments:}
7388 \vspace{0.3cm}
7389 \begin{tabular}{|c|c|p{7cm}|}
7390 \hline
7391 {\bf type} & {\bf name} & {\bf description} \\ \hline
7392 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7394 \end{tabular}
7396 \vspace{0.3cm}
7398 \noindent {\bf Return Type:}
7399 {\tt
7400 string
7404 value of the field
7405 \vspace{0.3cm}
7406 \vspace{0.3cm}
7407 \vspace{0.3cm}
7408 \subsubsection{RPC name:~get\_stepping}
7410 {\bf Overview:}
7411 Get the stepping field of the given host\_cpu.
7413 \noindent {\bf Signature:}
7414 \begin{verbatim} string get_stepping (session_id s, host_cpu ref self)\end{verbatim}
7417 \noindent{\bf Arguments:}
7420 \vspace{0.3cm}
7421 \begin{tabular}{|c|c|p{7cm}|}
7422 \hline
7423 {\bf type} & {\bf name} & {\bf description} \\ \hline
7424 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7426 \end{tabular}
7428 \vspace{0.3cm}
7430 \noindent {\bf Return Type:}
7431 {\tt
7432 string
7436 value of the field
7437 \vspace{0.3cm}
7438 \vspace{0.3cm}
7439 \vspace{0.3cm}
7440 \subsubsection{RPC name:~get\_flags}
7442 {\bf Overview:}
7443 Get the flags field of the given host\_cpu. As of this version of the
7444 API, the semantics of the returned string are explicitly unspecified,
7445 and may change in the future.
7447 \noindent {\bf Signature:}
7448 \begin{verbatim} string get_flags (session_id s, host_cpu ref self)\end{verbatim}
7451 \noindent{\bf Arguments:}
7454 \vspace{0.3cm}
7455 \begin{tabular}{|c|c|p{7cm}|}
7456 \hline
7457 {\bf type} & {\bf name} & {\bf description} \\ \hline
7458 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7460 \end{tabular}
7462 \vspace{0.3cm}
7464 \noindent {\bf Return Type:}
7465 {\tt
7466 string
7470 value of the field
7471 \vspace{0.3cm}
7472 \vspace{0.3cm}
7473 \vspace{0.3cm}
7474 \subsubsection{RPC name:~get\_features}
7476 {\bf Overview:}
7477 Get the features field of the given host\_cpu. As of this version of the
7478 API, the semantics of the returned string are explicitly unspecified,
7479 and may change in the future.
7481 \noindent {\bf Signature:}
7482 \begin{verbatim} string get_features (session_id s, host_cpu ref self)\end{verbatim}
7485 \noindent{\bf Arguments:}
7488 \vspace{0.3cm}
7489 \begin{tabular}{|c|c|p{7cm}|}
7490 \hline
7491 {\bf type} & {\bf name} & {\bf description} \\ \hline
7492 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7494 \end{tabular}
7496 \vspace{0.3cm}
7498 \noindent {\bf Return Type:}
7499 {\tt
7500 string
7504 value of the field
7505 \vspace{0.3cm}
7506 \vspace{0.3cm}
7507 \vspace{0.3cm}
7508 \subsubsection{RPC name:~get\_utilisation}
7510 {\bf Overview:}
7511 Get the utilisation field of the given host\_cpu.
7513 \noindent {\bf Signature:}
7514 \begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
7517 \noindent{\bf Arguments:}
7520 \vspace{0.3cm}
7521 \begin{tabular}{|c|c|p{7cm}|}
7522 \hline
7523 {\bf type} & {\bf name} & {\bf description} \\ \hline
7524 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7526 \end{tabular}
7528 \vspace{0.3cm}
7530 \noindent {\bf Return Type:}
7531 {\tt
7532 float
7536 value of the field
7537 \vspace{0.3cm}
7538 \vspace{0.3cm}
7539 \vspace{0.3cm}
7540 \subsubsection{RPC name:~get\_by\_uuid}
7542 {\bf Overview:}
7543 Get a reference to the host\_cpu instance with the specified UUID.
7545 \noindent {\bf Signature:}
7546 \begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7549 \noindent{\bf Arguments:}
7552 \vspace{0.3cm}
7553 \begin{tabular}{|c|c|p{7cm}|}
7554 \hline
7555 {\bf type} & {\bf name} & {\bf description} \\ \hline
7556 {\tt string } & uuid & UUID of object to return \\ \hline
7558 \end{tabular}
7560 \vspace{0.3cm}
7562 \noindent {\bf Return Type:}
7563 {\tt
7564 host\_cpu ref
7568 reference to the object
7569 \vspace{0.3cm}
7570 \vspace{0.3cm}
7571 \vspace{0.3cm}
7572 \subsubsection{RPC name:~get\_record}
7574 {\bf Overview:}
7575 Get a record containing the current state of the given host\_cpu.
7577 \noindent {\bf Signature:}
7578 \begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
7581 \noindent{\bf Arguments:}
7584 \vspace{0.3cm}
7585 \begin{tabular}{|c|c|p{7cm}|}
7586 \hline
7587 {\bf type} & {\bf name} & {\bf description} \\ \hline
7588 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7590 \end{tabular}
7592 \vspace{0.3cm}
7594 \noindent {\bf Return Type:}
7595 {\tt
7596 host\_cpu record
7600 all fields from the object
7601 \vspace{0.3cm}
7602 \vspace{0.3cm}
7603 \vspace{0.3cm}
7605 \vspace{1cm}
7606 \newpage
7607 \section{Class: network}
7608 \subsection{Fields for class: network}
7609 \begin{longtable}{|lllp{0.38\textwidth}|}
7610 \hline
7611 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
7612 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7613 virtual network.}} \\
7614 \hline
7615 Quals & Field & Type & Description \\
7616 \hline
7617 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7618 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7619 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7620 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
7621 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
7622 $\mathit{RW}$ & {\tt default\_gateway} & string & default gateway \\
7623 $\mathit{RW}$ & {\tt default\_netmask} & string & default netmask \\
7624 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
7625 \hline
7626 \end{longtable}
7627 \subsection{RPCs associated with class: network}
7628 \subsubsection{RPC name:~get\_all}
7630 {\bf Overview:}
7631 Return a list of all the networks known to the system
7633 \noindent {\bf Signature:}
7634 \begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
7637 \vspace{0.3cm}
7639 \noindent {\bf Return Type:}
7640 {\tt
7641 (network ref) Set
7645 A list of all the IDs of all the networks
7646 \vspace{0.3cm}
7647 \vspace{0.3cm}
7648 \vspace{0.3cm}
7649 \subsubsection{RPC name:~get\_uuid}
7651 {\bf Overview:}
7652 Get the uuid field of the given network.
7654 \noindent {\bf Signature:}
7655 \begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
7658 \noindent{\bf Arguments:}
7661 \vspace{0.3cm}
7662 \begin{tabular}{|c|c|p{7cm}|}
7663 \hline
7664 {\bf type} & {\bf name} & {\bf description} \\ \hline
7665 {\tt network ref } & self & reference to the object \\ \hline
7667 \end{tabular}
7669 \vspace{0.3cm}
7671 \noindent {\bf Return Type:}
7672 {\tt
7673 string
7677 value of the field
7678 \vspace{0.3cm}
7679 \vspace{0.3cm}
7680 \vspace{0.3cm}
7681 \subsubsection{RPC name:~get\_name\_label}
7683 {\bf Overview:}
7684 Get the name/label field of the given network.
7686 \noindent {\bf Signature:}
7687 \begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
7690 \noindent{\bf Arguments:}
7693 \vspace{0.3cm}
7694 \begin{tabular}{|c|c|p{7cm}|}
7695 \hline
7696 {\bf type} & {\bf name} & {\bf description} \\ \hline
7697 {\tt network ref } & self & reference to the object \\ \hline
7699 \end{tabular}
7701 \vspace{0.3cm}
7703 \noindent {\bf Return Type:}
7704 {\tt
7705 string
7709 value of the field
7710 \vspace{0.3cm}
7711 \vspace{0.3cm}
7712 \vspace{0.3cm}
7713 \subsubsection{RPC name:~set\_name\_label}
7715 {\bf Overview:}
7716 Set the name/label field of the given network.
7718 \noindent {\bf Signature:}
7719 \begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
7722 \noindent{\bf Arguments:}
7725 \vspace{0.3cm}
7726 \begin{tabular}{|c|c|p{7cm}|}
7727 \hline
7728 {\bf type} & {\bf name} & {\bf description} \\ \hline
7729 {\tt network ref } & self & reference to the object \\ \hline
7731 {\tt string } & value & New value to set \\ \hline
7733 \end{tabular}
7735 \vspace{0.3cm}
7737 \noindent {\bf Return Type:}
7738 {\tt
7739 void
7744 \vspace{0.3cm}
7745 \vspace{0.3cm}
7746 \vspace{0.3cm}
7747 \subsubsection{RPC name:~get\_name\_description}
7749 {\bf Overview:}
7750 Get the name/description field of the given network.
7752 \noindent {\bf Signature:}
7753 \begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
7756 \noindent{\bf Arguments:}
7759 \vspace{0.3cm}
7760 \begin{tabular}{|c|c|p{7cm}|}
7761 \hline
7762 {\bf type} & {\bf name} & {\bf description} \\ \hline
7763 {\tt network ref } & self & reference to the object \\ \hline
7765 \end{tabular}
7767 \vspace{0.3cm}
7769 \noindent {\bf Return Type:}
7770 {\tt
7771 string
7775 value of the field
7776 \vspace{0.3cm}
7777 \vspace{0.3cm}
7778 \vspace{0.3cm}
7779 \subsubsection{RPC name:~set\_name\_description}
7781 {\bf Overview:}
7782 Set the name/description field of the given network.
7784 \noindent {\bf Signature:}
7785 \begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
7788 \noindent{\bf Arguments:}
7791 \vspace{0.3cm}
7792 \begin{tabular}{|c|c|p{7cm}|}
7793 \hline
7794 {\bf type} & {\bf name} & {\bf description} \\ \hline
7795 {\tt network ref } & self & reference to the object \\ \hline
7797 {\tt string } & value & New value to set \\ \hline
7799 \end{tabular}
7801 \vspace{0.3cm}
7803 \noindent {\bf Return Type:}
7804 {\tt
7805 void
7810 \vspace{0.3cm}
7811 \vspace{0.3cm}
7812 \vspace{0.3cm}
7813 \subsubsection{RPC name:~get\_VIFs}
7815 {\bf Overview:}
7816 Get the VIFs field of the given network.
7818 \noindent {\bf Signature:}
7819 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
7822 \noindent{\bf Arguments:}
7825 \vspace{0.3cm}
7826 \begin{tabular}{|c|c|p{7cm}|}
7827 \hline
7828 {\bf type} & {\bf name} & {\bf description} \\ \hline
7829 {\tt network ref } & self & reference to the object \\ \hline
7831 \end{tabular}
7833 \vspace{0.3cm}
7835 \noindent {\bf Return Type:}
7836 {\tt
7837 (VIF ref) Set
7841 value of the field
7842 \vspace{0.3cm}
7843 \vspace{0.3cm}
7844 \vspace{0.3cm}
7845 \subsubsection{RPC name:~get\_PIFs}
7847 {\bf Overview:}
7848 Get the PIFs field of the given network.
7850 \noindent {\bf Signature:}
7851 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
7854 \noindent{\bf Arguments:}
7857 \vspace{0.3cm}
7858 \begin{tabular}{|c|c|p{7cm}|}
7859 \hline
7860 {\bf type} & {\bf name} & {\bf description} \\ \hline
7861 {\tt network ref } & self & reference to the object \\ \hline
7863 \end{tabular}
7865 \vspace{0.3cm}
7867 \noindent {\bf Return Type:}
7868 {\tt
7869 (PIF ref) Set
7873 value of the field
7874 \vspace{0.3cm}
7875 \vspace{0.3cm}
7876 \vspace{0.3cm}
7877 \subsubsection{RPC name:~get\_default\_gateway}
7879 {\bf Overview:}
7880 Get the default\_gateway field of the given network.
7882 \noindent {\bf Signature:}
7883 \begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
7886 \noindent{\bf Arguments:}
7889 \vspace{0.3cm}
7890 \begin{tabular}{|c|c|p{7cm}|}
7891 \hline
7892 {\bf type} & {\bf name} & {\bf description} \\ \hline
7893 {\tt network ref } & self & reference to the object \\ \hline
7895 \end{tabular}
7897 \vspace{0.3cm}
7899 \noindent {\bf Return Type:}
7900 {\tt
7901 string
7905 value of the field
7906 \vspace{0.3cm}
7907 \vspace{0.3cm}
7908 \vspace{0.3cm}
7909 \subsubsection{RPC name:~set\_default\_gateway}
7911 {\bf Overview:}
7912 Set the default\_gateway field of the given network.
7914 \noindent {\bf Signature:}
7915 \begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
7918 \noindent{\bf Arguments:}
7921 \vspace{0.3cm}
7922 \begin{tabular}{|c|c|p{7cm}|}
7923 \hline
7924 {\bf type} & {\bf name} & {\bf description} \\ \hline
7925 {\tt network ref } & self & reference to the object \\ \hline
7927 {\tt string } & value & New value to set \\ \hline
7929 \end{tabular}
7931 \vspace{0.3cm}
7933 \noindent {\bf Return Type:}
7934 {\tt
7935 void
7940 \vspace{0.3cm}
7941 \vspace{0.3cm}
7942 \vspace{0.3cm}
7943 \subsubsection{RPC name:~get\_default\_netmask}
7945 {\bf Overview:}
7946 Get the default\_netmask field of the given network.
7948 \noindent {\bf Signature:}
7949 \begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
7952 \noindent{\bf Arguments:}
7955 \vspace{0.3cm}
7956 \begin{tabular}{|c|c|p{7cm}|}
7957 \hline
7958 {\bf type} & {\bf name} & {\bf description} \\ \hline
7959 {\tt network ref } & self & reference to the object \\ \hline
7961 \end{tabular}
7963 \vspace{0.3cm}
7965 \noindent {\bf Return Type:}
7966 {\tt
7967 string
7971 value of the field
7972 \vspace{0.3cm}
7973 \vspace{0.3cm}
7974 \vspace{0.3cm}
7975 \subsubsection{RPC name:~set\_default\_netmask}
7977 {\bf Overview:}
7978 Set the default\_netmask field of the given network.
7980 \noindent {\bf Signature:}
7981 \begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
7984 \noindent{\bf Arguments:}
7987 \vspace{0.3cm}
7988 \begin{tabular}{|c|c|p{7cm}|}
7989 \hline
7990 {\bf type} & {\bf name} & {\bf description} \\ \hline
7991 {\tt network ref } & self & reference to the object \\ \hline
7993 {\tt string } & value & New value to set \\ \hline
7995 \end{tabular}
7997 \vspace{0.3cm}
7999 \noindent {\bf Return Type:}
8000 {\tt
8001 void
8006 \vspace{0.3cm}
8007 \vspace{0.3cm}
8008 \vspace{0.3cm}
8009 \subsubsection{RPC name:~get\_other\_config}
8011 {\bf Overview:}
8012 Get the other\_config field of the given network.
8014 \noindent {\bf Signature:}
8015 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, network ref self)\end{verbatim}
8018 \noindent{\bf Arguments:}
8021 \vspace{0.3cm}
8022 \begin{tabular}{|c|c|p{7cm}|}
8023 \hline
8024 {\bf type} & {\bf name} & {\bf description} \\ \hline
8025 {\tt network ref } & self & reference to the object \\ \hline
8027 \end{tabular}
8029 \vspace{0.3cm}
8031 \noindent {\bf Return Type:}
8032 {\tt
8033 (string $\rightarrow$ string) Map
8037 value of the field
8038 \vspace{0.3cm}
8039 \vspace{0.3cm}
8040 \vspace{0.3cm}
8041 \subsubsection{RPC name:~set\_other\_config}
8043 {\bf Overview:}
8044 Set the other\_config field of the given network.
8046 \noindent {\bf Signature:}
8047 \begin{verbatim} void set_other_config (session_id s, network ref self, (string -> string) Map value)\end{verbatim}
8050 \noindent{\bf Arguments:}
8053 \vspace{0.3cm}
8054 \begin{tabular}{|c|c|p{7cm}|}
8055 \hline
8056 {\bf type} & {\bf name} & {\bf description} \\ \hline
8057 {\tt network ref } & self & reference to the object \\ \hline
8059 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
8061 \end{tabular}
8063 \vspace{0.3cm}
8065 \noindent {\bf Return Type:}
8066 {\tt
8067 void
8072 \vspace{0.3cm}
8073 \vspace{0.3cm}
8074 \vspace{0.3cm}
8075 \subsubsection{RPC name:~add\_to\_other\_config}
8077 {\bf Overview:}
8078 Add the given key-value pair to the other\_config field of the given
8079 network.
8081 \noindent {\bf Signature:}
8082 \begin{verbatim} void add_to_other_config (session_id s, network ref self, string key, string value)\end{verbatim}
8085 \noindent{\bf Arguments:}
8088 \vspace{0.3cm}
8089 \begin{tabular}{|c|c|p{7cm}|}
8090 \hline
8091 {\bf type} & {\bf name} & {\bf description} \\ \hline
8092 {\tt network ref } & self & reference to the object \\ \hline
8094 {\tt string } & key & Key to add \\ \hline
8096 {\tt string } & value & Value to add \\ \hline
8098 \end{tabular}
8100 \vspace{0.3cm}
8102 \noindent {\bf Return Type:}
8103 {\tt
8104 void
8109 \vspace{0.3cm}
8110 \vspace{0.3cm}
8111 \vspace{0.3cm}
8112 \subsubsection{RPC name:~remove\_from\_other\_config}
8114 {\bf Overview:}
8115 Remove the given key and its corresponding value from the other\_config
8116 field of the given network. If the key is not in that Map, then do
8117 nothing.
8119 \noindent {\bf Signature:}
8120 \begin{verbatim} void remove_from_other_config (session_id s, network ref self, string key)\end{verbatim}
8123 \noindent{\bf Arguments:}
8126 \vspace{0.3cm}
8127 \begin{tabular}{|c|c|p{7cm}|}
8128 \hline
8129 {\bf type} & {\bf name} & {\bf description} \\ \hline
8130 {\tt network ref } & self & reference to the object \\ \hline
8132 {\tt string } & key & Key to remove \\ \hline
8134 \end{tabular}
8136 \vspace{0.3cm}
8138 \noindent {\bf Return Type:}
8139 {\tt
8140 void
8145 \vspace{0.3cm}
8146 \vspace{0.3cm}
8147 \vspace{0.3cm}
8148 \subsubsection{RPC name:~create}
8150 {\bf Overview:}
8151 Create a new network instance, and return its handle.
8153 \noindent {\bf Signature:}
8154 \begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
8157 \noindent{\bf Arguments:}
8160 \vspace{0.3cm}
8161 \begin{tabular}{|c|c|p{7cm}|}
8162 \hline
8163 {\bf type} & {\bf name} & {\bf description} \\ \hline
8164 {\tt network record } & args & All constructor arguments \\ \hline
8166 \end{tabular}
8168 \vspace{0.3cm}
8170 \noindent {\bf Return Type:}
8171 {\tt
8172 network ref
8176 reference to the newly created object
8177 \vspace{0.3cm}
8178 \vspace{0.3cm}
8179 \vspace{0.3cm}
8180 \subsubsection{RPC name:~destroy}
8182 {\bf Overview:}
8183 Destroy the specified network instance.
8185 \noindent {\bf Signature:}
8186 \begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
8189 \noindent{\bf Arguments:}
8192 \vspace{0.3cm}
8193 \begin{tabular}{|c|c|p{7cm}|}
8194 \hline
8195 {\bf type} & {\bf name} & {\bf description} \\ \hline
8196 {\tt network ref } & self & reference to the object \\ \hline
8198 \end{tabular}
8200 \vspace{0.3cm}
8202 \noindent {\bf Return Type:}
8203 {\tt
8204 void
8209 \vspace{0.3cm}
8210 \vspace{0.3cm}
8211 \vspace{0.3cm}
8212 \subsubsection{RPC name:~get\_by\_uuid}
8214 {\bf Overview:}
8215 Get a reference to the network instance with the specified UUID.
8217 \noindent {\bf Signature:}
8218 \begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8221 \noindent{\bf Arguments:}
8224 \vspace{0.3cm}
8225 \begin{tabular}{|c|c|p{7cm}|}
8226 \hline
8227 {\bf type} & {\bf name} & {\bf description} \\ \hline
8228 {\tt string } & uuid & UUID of object to return \\ \hline
8230 \end{tabular}
8232 \vspace{0.3cm}
8234 \noindent {\bf Return Type:}
8235 {\tt
8236 network ref
8240 reference to the object
8241 \vspace{0.3cm}
8242 \vspace{0.3cm}
8243 \vspace{0.3cm}
8244 \subsubsection{RPC name:~get\_record}
8246 {\bf Overview:}
8247 Get a record containing the current state of the given network.
8249 \noindent {\bf Signature:}
8250 \begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
8253 \noindent{\bf Arguments:}
8256 \vspace{0.3cm}
8257 \begin{tabular}{|c|c|p{7cm}|}
8258 \hline
8259 {\bf type} & {\bf name} & {\bf description} \\ \hline
8260 {\tt network ref } & self & reference to the object \\ \hline
8262 \end{tabular}
8264 \vspace{0.3cm}
8266 \noindent {\bf Return Type:}
8267 {\tt
8268 network record
8272 all fields from the object
8273 \vspace{0.3cm}
8274 \vspace{0.3cm}
8275 \vspace{0.3cm}
8276 \subsubsection{RPC name:~get\_by\_name\_label}
8278 {\bf Overview:}
8279 Get all the network instances with the given label.
8281 \noindent {\bf Signature:}
8282 \begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8285 \noindent{\bf Arguments:}
8288 \vspace{0.3cm}
8289 \begin{tabular}{|c|c|p{7cm}|}
8290 \hline
8291 {\bf type} & {\bf name} & {\bf description} \\ \hline
8292 {\tt string } & label & label of object to return \\ \hline
8294 \end{tabular}
8296 \vspace{0.3cm}
8298 \noindent {\bf Return Type:}
8299 {\tt
8300 (network ref) Set
8304 references to objects with match names
8305 \vspace{0.3cm}
8306 \vspace{0.3cm}
8307 \vspace{0.3cm}
8309 \vspace{1cm}
8310 \newpage
8311 \section{Class: VIF}
8312 \subsection{Fields for class: VIF}
8313 \begin{longtable}{|lllp{0.38\textwidth}|}
8314 \hline
8315 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
8316 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8317 virtual network interface.}} \\
8318 \hline
8319 Quals & Field & Type & Description \\
8320 \hline
8321 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8322 $\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
8323 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
8324 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
8325 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
8326 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
8327 $\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
8328 $\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
8329 $\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
8330 $\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
8331 $\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
8332 $\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
8333 $\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\
8334 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF \\
8335 \hline
8336 \end{longtable}
8337 \subsection{RPCs associated with class: VIF}
8338 \subsubsection{RPC name:~plug}
8340 {\bf Overview:}
8341 Hotplug the specified VIF, dynamically attaching it to the running VM.
8343 \noindent {\bf Signature:}
8344 \begin{verbatim} void plug (session_id s, VIF ref self)\end{verbatim}
8347 \noindent{\bf Arguments:}
8350 \vspace{0.3cm}
8351 \begin{tabular}{|c|c|p{7cm}|}
8352 \hline
8353 {\bf type} & {\bf name} & {\bf description} \\ \hline
8354 {\tt VIF ref } & self & The VIF to hotplug \\ \hline
8356 \end{tabular}
8358 \vspace{0.3cm}
8360 \noindent {\bf Return Type:}
8361 {\tt
8362 void
8367 \vspace{0.3cm}
8368 \vspace{0.3cm}
8369 \vspace{0.3cm}
8370 \subsubsection{RPC name:~unplug}
8372 {\bf Overview:}
8373 Hot-unplug the specified VIF, dynamically unattaching it from the running
8374 VM.
8376 \noindent {\bf Signature:}
8377 \begin{verbatim} void unplug (session_id s, VIF ref self)\end{verbatim}
8380 \noindent{\bf Arguments:}
8383 \vspace{0.3cm}
8384 \begin{tabular}{|c|c|p{7cm}|}
8385 \hline
8386 {\bf type} & {\bf name} & {\bf description} \\ \hline
8387 {\tt VIF ref } & self & The VIF to hot-unplug \\ \hline
8389 \end{tabular}
8391 \vspace{0.3cm}
8393 \noindent {\bf Return Type:}
8394 {\tt
8395 void
8400 \vspace{0.3cm}
8401 \vspace{0.3cm}
8402 \vspace{0.3cm}
8403 \subsubsection{RPC name:~get\_all}
8405 {\bf Overview:}
8406 Return a list of all the VIFs known to the system.
8408 \noindent {\bf Signature:}
8409 \begin{verbatim} ((VIF ref) Set) get_all (session_id s)\end{verbatim}
8412 \vspace{0.3cm}
8414 \noindent {\bf Return Type:}
8415 {\tt
8416 (VIF ref) Set
8420 references to all objects
8421 \vspace{0.3cm}
8422 \vspace{0.3cm}
8423 \vspace{0.3cm}
8424 \subsubsection{RPC name:~get\_uuid}
8426 {\bf Overview:}
8427 Get the uuid field of the given VIF.
8429 \noindent {\bf Signature:}
8430 \begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
8433 \noindent{\bf Arguments:}
8436 \vspace{0.3cm}
8437 \begin{tabular}{|c|c|p{7cm}|}
8438 \hline
8439 {\bf type} & {\bf name} & {\bf description} \\ \hline
8440 {\tt VIF ref } & self & reference to the object \\ \hline
8442 \end{tabular}
8444 \vspace{0.3cm}
8446 \noindent {\bf Return Type:}
8447 {\tt
8448 string
8452 value of the field
8453 \vspace{0.3cm}
8454 \vspace{0.3cm}
8455 \vspace{0.3cm}
8456 \subsubsection{RPC name:~get\_device}
8458 {\bf Overview:}
8459 Get the device field of the given VIF.
8461 \noindent {\bf Signature:}
8462 \begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
8465 \noindent{\bf Arguments:}
8468 \vspace{0.3cm}
8469 \begin{tabular}{|c|c|p{7cm}|}
8470 \hline
8471 {\bf type} & {\bf name} & {\bf description} \\ \hline
8472 {\tt VIF ref } & self & reference to the object \\ \hline
8474 \end{tabular}
8476 \vspace{0.3cm}
8478 \noindent {\bf Return Type:}
8479 {\tt
8480 string
8484 value of the field
8485 \vspace{0.3cm}
8486 \vspace{0.3cm}
8487 \vspace{0.3cm}
8488 \subsubsection{RPC name:~set\_device}
8490 {\bf Overview:}
8491 Set the device field of the given VIF.
8493 \noindent {\bf Signature:}
8494 \begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
8497 \noindent{\bf Arguments:}
8500 \vspace{0.3cm}
8501 \begin{tabular}{|c|c|p{7cm}|}
8502 \hline
8503 {\bf type} & {\bf name} & {\bf description} \\ \hline
8504 {\tt VIF ref } & self & reference to the object \\ \hline
8506 {\tt string } & value & New value to set \\ \hline
8508 \end{tabular}
8510 \vspace{0.3cm}
8512 \noindent {\bf Return Type:}
8513 {\tt
8514 void
8519 \vspace{0.3cm}
8520 \vspace{0.3cm}
8521 \vspace{0.3cm}
8522 \subsubsection{RPC name:~get\_network}
8524 {\bf Overview:}
8525 Get the network field of the given VIF.
8527 \noindent {\bf Signature:}
8528 \begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
8531 \noindent{\bf Arguments:}
8534 \vspace{0.3cm}
8535 \begin{tabular}{|c|c|p{7cm}|}
8536 \hline
8537 {\bf type} & {\bf name} & {\bf description} \\ \hline
8538 {\tt VIF ref } & self & reference to the object \\ \hline
8540 \end{tabular}
8542 \vspace{0.3cm}
8544 \noindent {\bf Return Type:}
8545 {\tt
8546 network ref
8550 value of the field
8551 \vspace{0.3cm}
8552 \vspace{0.3cm}
8553 \vspace{0.3cm}
8554 \subsubsection{RPC name:~get\_VM}
8556 {\bf Overview:}
8557 Get the VM field of the given VIF.
8559 \noindent {\bf Signature:}
8560 \begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
8563 \noindent{\bf Arguments:}
8566 \vspace{0.3cm}
8567 \begin{tabular}{|c|c|p{7cm}|}
8568 \hline
8569 {\bf type} & {\bf name} & {\bf description} \\ \hline
8570 {\tt VIF ref } & self & reference to the object \\ \hline
8572 \end{tabular}
8574 \vspace{0.3cm}
8576 \noindent {\bf Return Type:}
8577 {\tt
8578 VM ref
8582 value of the field
8583 \vspace{0.3cm}
8584 \vspace{0.3cm}
8585 \vspace{0.3cm}
8586 \subsubsection{RPC name:~get\_MAC}
8588 {\bf Overview:}
8589 Get the MAC field of the given VIF.
8591 \noindent {\bf Signature:}
8592 \begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
8595 \noindent{\bf Arguments:}
8598 \vspace{0.3cm}
8599 \begin{tabular}{|c|c|p{7cm}|}
8600 \hline
8601 {\bf type} & {\bf name} & {\bf description} \\ \hline
8602 {\tt VIF ref } & self & reference to the object \\ \hline
8604 \end{tabular}
8606 \vspace{0.3cm}
8608 \noindent {\bf Return Type:}
8609 {\tt
8610 string
8614 value of the field
8615 \vspace{0.3cm}
8616 \vspace{0.3cm}
8617 \vspace{0.3cm}
8618 \subsubsection{RPC name:~set\_MAC}
8620 {\bf Overview:}
8621 Set the MAC field of the given VIF.
8623 \noindent {\bf Signature:}
8624 \begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
8627 \noindent{\bf Arguments:}
8630 \vspace{0.3cm}
8631 \begin{tabular}{|c|c|p{7cm}|}
8632 \hline
8633 {\bf type} & {\bf name} & {\bf description} \\ \hline
8634 {\tt VIF ref } & self & reference to the object \\ \hline
8636 {\tt string } & value & New value to set \\ \hline
8638 \end{tabular}
8640 \vspace{0.3cm}
8642 \noindent {\bf Return Type:}
8643 {\tt
8644 void
8649 \vspace{0.3cm}
8650 \vspace{0.3cm}
8651 \vspace{0.3cm}
8652 \subsubsection{RPC name:~get\_MTU}
8654 {\bf Overview:}
8655 Get the MTU field of the given VIF.
8657 \noindent {\bf Signature:}
8658 \begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
8661 \noindent{\bf Arguments:}
8664 \vspace{0.3cm}
8665 \begin{tabular}{|c|c|p{7cm}|}
8666 \hline
8667 {\bf type} & {\bf name} & {\bf description} \\ \hline
8668 {\tt VIF ref } & self & reference to the object \\ \hline
8670 \end{tabular}
8672 \vspace{0.3cm}
8674 \noindent {\bf Return Type:}
8675 {\tt
8676 int
8680 value of the field
8681 \vspace{0.3cm}
8682 \vspace{0.3cm}
8683 \vspace{0.3cm}
8684 \subsubsection{RPC name:~set\_MTU}
8686 {\bf Overview:}
8687 Set the MTU field of the given VIF.
8689 \noindent {\bf Signature:}
8690 \begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
8693 \noindent{\bf Arguments:}
8696 \vspace{0.3cm}
8697 \begin{tabular}{|c|c|p{7cm}|}
8698 \hline
8699 {\bf type} & {\bf name} & {\bf description} \\ \hline
8700 {\tt VIF ref } & self & reference to the object \\ \hline
8702 {\tt int } & value & New value to set \\ \hline
8704 \end{tabular}
8706 \vspace{0.3cm}
8708 \noindent {\bf Return Type:}
8709 {\tt
8710 void
8715 \vspace{0.3cm}
8716 \vspace{0.3cm}
8717 \vspace{0.3cm}
8718 \subsubsection{RPC name:~get\_currently\_attached}
8720 {\bf Overview:}
8721 Get the currently\_attached field of the given VIF.
8723 \noindent {\bf Signature:}
8724 \begin{verbatim} bool get_currently_attached (session_id s, VIF ref self)\end{verbatim}
8727 \noindent{\bf Arguments:}
8730 \vspace{0.3cm}
8731 \begin{tabular}{|c|c|p{7cm}|}
8732 \hline
8733 {\bf type} & {\bf name} & {\bf description} \\ \hline
8734 {\tt VIF ref } & self & reference to the object \\ \hline
8736 \end{tabular}
8738 \vspace{0.3cm}
8740 \noindent {\bf Return Type:}
8741 {\tt
8742 bool
8746 value of the field
8747 \vspace{0.3cm}
8748 \vspace{0.3cm}
8749 \vspace{0.3cm}
8750 \subsubsection{RPC name:~get\_status\_code}
8752 {\bf Overview:}
8753 Get the status\_code field of the given VIF.
8755 \noindent {\bf Signature:}
8756 \begin{verbatim} int get_status_code (session_id s, VIF ref self)\end{verbatim}
8759 \noindent{\bf Arguments:}
8762 \vspace{0.3cm}
8763 \begin{tabular}{|c|c|p{7cm}|}
8764 \hline
8765 {\bf type} & {\bf name} & {\bf description} \\ \hline
8766 {\tt VIF ref } & self & reference to the object \\ \hline
8768 \end{tabular}
8770 \vspace{0.3cm}
8772 \noindent {\bf Return Type:}
8773 {\tt
8774 int
8778 value of the field
8779 \vspace{0.3cm}
8780 \vspace{0.3cm}
8781 \vspace{0.3cm}
8782 \subsubsection{RPC name:~get\_status\_detail}
8784 {\bf Overview:}
8785 Get the status\_detail field of the given VIF.
8787 \noindent {\bf Signature:}
8788 \begin{verbatim} string get_status_detail (session_id s, VIF ref self)\end{verbatim}
8791 \noindent{\bf Arguments:}
8794 \vspace{0.3cm}
8795 \begin{tabular}{|c|c|p{7cm}|}
8796 \hline
8797 {\bf type} & {\bf name} & {\bf description} \\ \hline
8798 {\tt VIF ref } & self & reference to the object \\ \hline
8800 \end{tabular}
8802 \vspace{0.3cm}
8804 \noindent {\bf Return Type:}
8805 {\tt
8806 string
8810 value of the field
8811 \vspace{0.3cm}
8812 \vspace{0.3cm}
8813 \vspace{0.3cm}
8814 \subsubsection{RPC name:~get\_runtime\_properties}
8816 {\bf Overview:}
8817 Get the runtime\_properties field of the given VIF.
8819 \noindent {\bf Signature:}
8820 \begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VIF ref self)\end{verbatim}
8823 \noindent{\bf Arguments:}
8826 \vspace{0.3cm}
8827 \begin{tabular}{|c|c|p{7cm}|}
8828 \hline
8829 {\bf type} & {\bf name} & {\bf description} \\ \hline
8830 {\tt VIF ref } & self & reference to the object \\ \hline
8832 \end{tabular}
8834 \vspace{0.3cm}
8836 \noindent {\bf Return Type:}
8837 {\tt
8838 (string $\rightarrow$ string) Map
8842 value of the field
8843 \vspace{0.3cm}
8844 \vspace{0.3cm}
8845 \vspace{0.3cm}
8846 \subsubsection{RPC name:~get\_qos\_algorithm\_type}
8848 {\bf Overview:}
8849 Get the qos/algorithm\_type field of the given VIF.
8851 \noindent {\bf Signature:}
8852 \begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim}
8855 \noindent{\bf Arguments:}
8858 \vspace{0.3cm}
8859 \begin{tabular}{|c|c|p{7cm}|}
8860 \hline
8861 {\bf type} & {\bf name} & {\bf description} \\ \hline
8862 {\tt VIF ref } & self & reference to the object \\ \hline
8864 \end{tabular}
8866 \vspace{0.3cm}
8868 \noindent {\bf Return Type:}
8869 {\tt
8870 string
8874 value of the field
8875 \vspace{0.3cm}
8876 \vspace{0.3cm}
8877 \vspace{0.3cm}
8878 \subsubsection{RPC name:~set\_qos\_algorithm\_type}
8880 {\bf Overview:}
8881 Set the qos/algorithm\_type field of the given VIF.
8883 \noindent {\bf Signature:}
8884 \begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim}
8887 \noindent{\bf Arguments:}
8890 \vspace{0.3cm}
8891 \begin{tabular}{|c|c|p{7cm}|}
8892 \hline
8893 {\bf type} & {\bf name} & {\bf description} \\ \hline
8894 {\tt VIF ref } & self & reference to the object \\ \hline
8896 {\tt string } & value & New value to set \\ \hline
8898 \end{tabular}
8900 \vspace{0.3cm}
8902 \noindent {\bf Return Type:}
8903 {\tt
8904 void
8909 \vspace{0.3cm}
8910 \vspace{0.3cm}
8911 \vspace{0.3cm}
8912 \subsubsection{RPC name:~get\_qos\_algorithm\_params}
8914 {\bf Overview:}
8915 Get the qos/algorithm\_params field of the given VIF.
8917 \noindent {\bf Signature:}
8918 \begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim}
8921 \noindent{\bf Arguments:}
8924 \vspace{0.3cm}
8925 \begin{tabular}{|c|c|p{7cm}|}
8926 \hline
8927 {\bf type} & {\bf name} & {\bf description} \\ \hline
8928 {\tt VIF ref } & self & reference to the object \\ \hline
8930 \end{tabular}
8932 \vspace{0.3cm}
8934 \noindent {\bf Return Type:}
8935 {\tt
8936 (string $\rightarrow$ string) Map
8940 value of the field
8941 \vspace{0.3cm}
8942 \vspace{0.3cm}
8943 \vspace{0.3cm}
8944 \subsubsection{RPC name:~set\_qos\_algorithm\_params}
8946 {\bf Overview:}
8947 Set the qos/algorithm\_params field of the given VIF.
8949 \noindent {\bf Signature:}
8950 \begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim}
8953 \noindent{\bf Arguments:}
8956 \vspace{0.3cm}
8957 \begin{tabular}{|c|c|p{7cm}|}
8958 \hline
8959 {\bf type} & {\bf name} & {\bf description} \\ \hline
8960 {\tt VIF ref } & self & reference to the object \\ \hline
8962 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
8964 \end{tabular}
8966 \vspace{0.3cm}
8968 \noindent {\bf Return Type:}
8969 {\tt
8970 void
8975 \vspace{0.3cm}
8976 \vspace{0.3cm}
8977 \vspace{0.3cm}
8978 \subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
8980 {\bf Overview:}
8981 Add the given key-value pair to the qos/algorithm\_params field of the
8982 given VIF.
8984 \noindent {\bf Signature:}
8985 \begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim}
8988 \noindent{\bf Arguments:}
8991 \vspace{0.3cm}
8992 \begin{tabular}{|c|c|p{7cm}|}
8993 \hline
8994 {\bf type} & {\bf name} & {\bf description} \\ \hline
8995 {\tt VIF ref } & self & reference to the object \\ \hline
8997 {\tt string } & key & Key to add \\ \hline
8999 {\tt string } & value & Value to add \\ \hline
9001 \end{tabular}
9003 \vspace{0.3cm}
9005 \noindent {\bf Return Type:}
9006 {\tt
9007 void
9012 \vspace{0.3cm}
9013 \vspace{0.3cm}
9014 \vspace{0.3cm}
9015 \subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
9017 {\bf Overview:}
9018 Remove the given key and its corresponding value from the
9019 qos/algorithm\_params field of the given VIF. If the key is not in that
9020 Map, then do nothing.
9022 \noindent {\bf Signature:}
9023 \begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim}
9026 \noindent{\bf Arguments:}
9029 \vspace{0.3cm}
9030 \begin{tabular}{|c|c|p{7cm}|}
9031 \hline
9032 {\bf type} & {\bf name} & {\bf description} \\ \hline
9033 {\tt VIF ref } & self & reference to the object \\ \hline
9035 {\tt string } & key & Key to remove \\ \hline
9037 \end{tabular}
9039 \vspace{0.3cm}
9041 \noindent {\bf Return Type:}
9042 {\tt
9043 void
9048 \vspace{0.3cm}
9049 \vspace{0.3cm}
9050 \vspace{0.3cm}
9051 \subsubsection{RPC name:~get\_qos\_supported\_algorithms}
9053 {\bf Overview:}
9054 Get the qos/supported\_algorithms field of the given VIF.
9056 \noindent {\bf Signature:}
9057 \begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim}
9060 \noindent{\bf Arguments:}
9063 \vspace{0.3cm}
9064 \begin{tabular}{|c|c|p{7cm}|}
9065 \hline
9066 {\bf type} & {\bf name} & {\bf description} \\ \hline
9067 {\tt VIF ref } & self & reference to the object \\ \hline
9069 \end{tabular}
9071 \vspace{0.3cm}
9073 \noindent {\bf Return Type:}
9074 {\tt
9075 string Set
9079 value of the field
9080 \vspace{0.3cm}
9081 \vspace{0.3cm}
9082 \vspace{0.3cm}
9083 \subsubsection{RPC name:~get\_metrics}
9085 {\bf Overview:}
9086 Get the metrics field of the given VIF.
9088 \noindent {\bf Signature:}
9089 \begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim}
9092 \noindent{\bf Arguments:}
9095 \vspace{0.3cm}
9096 \begin{tabular}{|c|c|p{7cm}|}
9097 \hline
9098 {\bf type} & {\bf name} & {\bf description} \\ \hline
9099 {\tt VIF ref } & self & reference to the object \\ \hline
9101 \end{tabular}
9103 \vspace{0.3cm}
9105 \noindent {\bf Return Type:}
9106 {\tt
9107 VIF\_metrics ref
9111 value of the field
9112 \vspace{0.3cm}
9113 \vspace{0.3cm}
9114 \vspace{0.3cm}
9115 \subsubsection{RPC name:~set\_security\_label}
9117 {\bf Overview:}
9118 Set the security label of the given VIF. Refer to the XSPolicy class
9119 for the format of the security label.
9121 \noindent {\bf Signature:}
9122 \begin{verbatim} void set_security_label (session_id s, VIF ref self, string
9123 security_label, string old_label)\end{verbatim}
9126 \noindent{\bf Arguments:}
9129 \vspace{0.3cm}
9130 \begin{tabular}{|c|c|p{7cm}|}
9131 \hline
9132 {\bf type} & {\bf name} & {\bf description} \\ \hline
9133 {\tt VIF ref } & self & reference to the object \\ \hline
9135 {\tt string } & security\_label & New value of the security label \\ \hline
9136 {\tt string } & old\_label & Label value that the security label \\
9137 & & must currently have for the change to succeed.\\ \hline
9138 \end{tabular}
9140 \vspace{0.3cm}
9142 \noindent {\bf Return Type:}
9143 {\tt
9144 void
9148 \vspace{0.3cm}
9150 \noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
9152 \vspace{0.3cm}
9153 \vspace{0.3cm}
9154 \vspace{0.3cm}
9155 \subsubsection{RPC name:~get\_security\_label}
9157 {\bf Overview:}
9158 Get the security label of the given VIF.
9160 \noindent {\bf Signature:}
9161 \begin{verbatim} string get_security_label (session_id s, VIF ref self)\end{verbatim}
9164 \noindent{\bf Arguments:}
9168 \vspace{0.3cm}
9169 \begin{tabular}{|c|c|p{7cm}|}
9170 \hline
9171 {\bf type} & {\bf name} & {\bf description} \\ \hline
9172 {\tt VIF ref } & self & reference to the object \\ \hline
9174 \end{tabular}
9176 \vspace{0.3cm}
9178 \noindent {\bf Return Type:}
9179 {\tt
9180 string
9184 value of the given field
9185 \vspace{0.3cm}
9186 \vspace{0.3cm}
9187 \vspace{0.3cm}
9188 \subsubsection{RPC name:~create}
9190 {\bf Overview:}
9191 Create a new VIF instance, and return its handle.
9193 \noindent {\bf Signature:}
9194 \begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
9197 \noindent{\bf Arguments:}
9200 \vspace{0.3cm}
9201 \begin{tabular}{|c|c|p{7cm}|}
9202 \hline
9203 {\bf type} & {\bf name} & {\bf description} \\ \hline
9204 {\tt VIF record } & args & All constructor arguments \\ \hline
9206 \end{tabular}
9208 \vspace{0.3cm}
9210 \noindent {\bf Return Type:}
9211 {\tt
9212 VIF ref
9216 reference to the newly created object
9217 \vspace{0.3cm}
9218 \vspace{0.3cm}
9219 \vspace{0.3cm}
9220 \subsubsection{RPC name:~destroy}
9222 {\bf Overview:}
9223 Destroy the specified VIF instance.
9225 \noindent {\bf Signature:}
9226 \begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
9229 \noindent{\bf Arguments:}
9232 \vspace{0.3cm}
9233 \begin{tabular}{|c|c|p{7cm}|}
9234 \hline
9235 {\bf type} & {\bf name} & {\bf description} \\ \hline
9236 {\tt VIF ref } & self & reference to the object \\ \hline
9238 \end{tabular}
9240 \vspace{0.3cm}
9242 \noindent {\bf Return Type:}
9243 {\tt
9244 void
9249 \vspace{0.3cm}
9250 \vspace{0.3cm}
9251 \vspace{0.3cm}
9252 \subsubsection{RPC name:~get\_by\_uuid}
9254 {\bf Overview:}
9255 Get a reference to the VIF instance with the specified UUID.
9257 \noindent {\bf Signature:}
9258 \begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9261 \noindent{\bf Arguments:}
9264 \vspace{0.3cm}
9265 \begin{tabular}{|c|c|p{7cm}|}
9266 \hline
9267 {\bf type} & {\bf name} & {\bf description} \\ \hline
9268 {\tt string } & uuid & UUID of object to return \\ \hline
9270 \end{tabular}
9272 \vspace{0.3cm}
9274 \noindent {\bf Return Type:}
9275 {\tt
9276 VIF ref
9280 reference to the object
9281 \vspace{0.3cm}
9282 \vspace{0.3cm}
9283 \vspace{0.3cm}
9284 \subsubsection{RPC name:~get\_record}
9286 {\bf Overview:}
9287 Get a record containing the current state of the given VIF.
9289 \noindent {\bf Signature:}
9290 \begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
9293 \noindent{\bf Arguments:}
9296 \vspace{0.3cm}
9297 \begin{tabular}{|c|c|p{7cm}|}
9298 \hline
9299 {\bf type} & {\bf name} & {\bf description} \\ \hline
9300 {\tt VIF ref } & self & reference to the object \\ \hline
9302 \end{tabular}
9304 \vspace{0.3cm}
9306 \noindent {\bf Return Type:}
9307 {\tt
9308 VIF record
9312 all fields from the object
9313 \vspace{0.3cm}
9314 \vspace{0.3cm}
9315 \vspace{0.3cm}
9317 \vspace{1cm}
9318 \newpage
9319 \section{Class: VIF\_metrics}
9320 \subsection{Fields for class: VIF\_metrics}
9321 \begin{longtable}{|lllp{0.38\textwidth}|}
9322 \hline
9323 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\
9324 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
9325 The metrics associated with a virtual network device.}} \\
9326 \hline
9327 Quals & Field & Type & Description \\
9328 \hline
9329 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9330 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
9331 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
9332 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
9333 \hline
9334 \end{longtable}
9335 \subsection{RPCs associated with class: VIF\_metrics}
9336 \subsubsection{RPC name:~get\_all}
9338 {\bf Overview:}
9339 Return a list of all the VIF\_metrics instances known to the system.
9341 \noindent {\bf Signature:}
9342 \begin{verbatim} ((VIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
9345 \vspace{0.3cm}
9347 \noindent {\bf Return Type:}
9348 {\tt
9349 (VIF\_metrics ref) Set
9353 references to all objects
9354 \vspace{0.3cm}
9355 \vspace{0.3cm}
9356 \vspace{0.3cm}
9357 \subsubsection{RPC name:~get\_uuid}
9359 {\bf Overview:}
9360 Get the uuid field of the given VIF\_metrics.
9362 \noindent {\bf Signature:}
9363 \begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim}
9366 \noindent{\bf Arguments:}
9369 \vspace{0.3cm}
9370 \begin{tabular}{|c|c|p{7cm}|}
9371 \hline
9372 {\bf type} & {\bf name} & {\bf description} \\ \hline
9373 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9375 \end{tabular}
9377 \vspace{0.3cm}
9379 \noindent {\bf Return Type:}
9380 {\tt
9381 string
9385 value of the field
9386 \vspace{0.3cm}
9387 \vspace{0.3cm}
9388 \vspace{0.3cm}
9389 \subsubsection{RPC name:~get\_io\_read\_kbs}
9391 {\bf Overview:}
9392 Get the io/read\_kbs field of the given VIF\_metrics.
9394 \noindent {\bf Signature:}
9395 \begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9398 \noindent{\bf Arguments:}
9401 \vspace{0.3cm}
9402 \begin{tabular}{|c|c|p{7cm}|}
9403 \hline
9404 {\bf type} & {\bf name} & {\bf description} \\ \hline
9405 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9407 \end{tabular}
9409 \vspace{0.3cm}
9411 \noindent {\bf Return Type:}
9412 {\tt
9413 float
9417 value of the field
9418 \vspace{0.3cm}
9419 \vspace{0.3cm}
9420 \vspace{0.3cm}
9421 \subsubsection{RPC name:~get\_io\_write\_kbs}
9423 {\bf Overview:}
9424 Get the io/write\_kbs field of the given VIF\_metrics.
9426 \noindent {\bf Signature:}
9427 \begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9430 \noindent{\bf Arguments:}
9433 \vspace{0.3cm}
9434 \begin{tabular}{|c|c|p{7cm}|}
9435 \hline
9436 {\bf type} & {\bf name} & {\bf description} \\ \hline
9437 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9439 \end{tabular}
9441 \vspace{0.3cm}
9443 \noindent {\bf Return Type:}
9444 {\tt
9445 float
9449 value of the field
9450 \vspace{0.3cm}
9451 \vspace{0.3cm}
9452 \vspace{0.3cm}
9453 \subsubsection{RPC name:~get\_last\_updated}
9455 {\bf Overview:}
9456 Get the last\_updated field of the given VIF\_metrics.
9458 \noindent {\bf Signature:}
9459 \begin{verbatim} datetime get_last_updated (session_id s, VIF_metrics ref self)\end{verbatim}
9462 \noindent{\bf Arguments:}
9465 \vspace{0.3cm}
9466 \begin{tabular}{|c|c|p{7cm}|}
9467 \hline
9468 {\bf type} & {\bf name} & {\bf description} \\ \hline
9469 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9471 \end{tabular}
9473 \vspace{0.3cm}
9475 \noindent {\bf Return Type:}
9476 {\tt
9477 datetime
9481 value of the field
9482 \vspace{0.3cm}
9483 \vspace{0.3cm}
9484 \vspace{0.3cm}
9485 \subsubsection{RPC name:~get\_by\_uuid}
9487 {\bf Overview:}
9488 Get a reference to the VIF\_metrics instance with the specified UUID.
9490 \noindent {\bf Signature:}
9491 \begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9494 \noindent{\bf Arguments:}
9497 \vspace{0.3cm}
9498 \begin{tabular}{|c|c|p{7cm}|}
9499 \hline
9500 {\bf type} & {\bf name} & {\bf description} \\ \hline
9501 {\tt string } & uuid & UUID of object to return \\ \hline
9503 \end{tabular}
9505 \vspace{0.3cm}
9507 \noindent {\bf Return Type:}
9508 {\tt
9509 VIF\_metrics ref
9513 reference to the object
9514 \vspace{0.3cm}
9515 \vspace{0.3cm}
9516 \vspace{0.3cm}
9517 \subsubsection{RPC name:~get\_record}
9519 {\bf Overview:}
9520 Get a record containing the current state of the given VIF\_metrics.
9522 \noindent {\bf Signature:}
9523 \begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim}
9526 \noindent{\bf Arguments:}
9529 \vspace{0.3cm}
9530 \begin{tabular}{|c|c|p{7cm}|}
9531 \hline
9532 {\bf type} & {\bf name} & {\bf description} \\ \hline
9533 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9535 \end{tabular}
9537 \vspace{0.3cm}
9539 \noindent {\bf Return Type:}
9540 {\tt
9541 VIF\_metrics record
9545 all fields from the object
9546 \vspace{0.3cm}
9547 \vspace{0.3cm}
9548 \vspace{0.3cm}
9550 \vspace{1cm}
9551 \newpage
9552 \section{Class: PIF}
9553 \subsection{Fields for class: PIF}
9554 \begin{longtable}{|lllp{0.38\textwidth}|}
9555 \hline
9556 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
9557 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
9558 physical network interface (note separate VLANs are represented as several
9559 PIFs).}} \\
9560 \hline
9561 Quals & Field & Type & Description \\
9562 \hline
9563 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9564 $\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
9565 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
9566 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
9567 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
9568 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
9569 $\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
9570 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF \\
9571 \hline
9572 \end{longtable}
9573 \subsection{RPCs associated with class: PIF}
9574 \subsubsection{RPC name:~create\_VLAN}
9576 {\bf Overview:}
9577 Create a VLAN interface from an existing physical interface.
9579 \noindent {\bf Signature:}
9580 \begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
9583 \noindent{\bf Arguments:}
9586 \vspace{0.3cm}
9587 \begin{tabular}{|c|c|p{7cm}|}
9588 \hline
9589 {\bf type} & {\bf name} & {\bf description} \\ \hline
9590 {\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
9592 {\tt network ref } & network & network to which this interface should be connected \\ \hline
9594 {\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
9596 {\tt int } & VLAN & VLAN tag for the new interface \\ \hline
9598 \end{tabular}
9600 \vspace{0.3cm}
9602 \noindent {\bf Return Type:}
9603 {\tt
9604 PIF ref
9608 The reference of the created PIF object
9609 \vspace{0.3cm}
9611 \noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
9613 \vspace{0.6cm}
9614 \subsubsection{RPC name:~destroy}
9616 {\bf Overview:}
9617 Destroy the interface (provided it is a synthetic interface like a VLAN;
9618 fail if it is a physical interface).
9620 \noindent {\bf Signature:}
9621 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
9624 \noindent{\bf Arguments:}
9627 \vspace{0.3cm}
9628 \begin{tabular}{|c|c|p{7cm}|}
9629 \hline
9630 {\bf type} & {\bf name} & {\bf description} \\ \hline
9631 {\tt PIF ref } & self & the PIF object to destroy \\ \hline
9633 \end{tabular}
9635 \vspace{0.3cm}
9637 \noindent {\bf Return Type:}
9638 {\tt
9639 void
9644 \vspace{0.3cm}
9646 \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
9648 \vspace{0.6cm}
9649 \subsubsection{RPC name:~get\_all}
9651 {\bf Overview:}
9652 Return a list of all the PIFs known to the system.
9654 \noindent {\bf Signature:}
9655 \begin{verbatim} ((PIF ref) Set) get_all (session_id s)\end{verbatim}
9658 \vspace{0.3cm}
9660 \noindent {\bf Return Type:}
9661 {\tt
9662 (PIF ref) Set
9666 references to all objects
9667 \vspace{0.3cm}
9668 \vspace{0.3cm}
9669 \vspace{0.3cm}
9670 \subsubsection{RPC name:~get\_uuid}
9672 {\bf Overview:}
9673 Get the uuid field of the given PIF.
9675 \noindent {\bf Signature:}
9676 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
9679 \noindent{\bf Arguments:}
9682 \vspace{0.3cm}
9683 \begin{tabular}{|c|c|p{7cm}|}
9684 \hline
9685 {\bf type} & {\bf name} & {\bf description} \\ \hline
9686 {\tt PIF ref } & self & reference to the object \\ \hline
9688 \end{tabular}
9690 \vspace{0.3cm}
9692 \noindent {\bf Return Type:}
9693 {\tt
9694 string
9698 value of the field
9699 \vspace{0.3cm}
9700 \vspace{0.3cm}
9701 \vspace{0.3cm}
9702 \subsubsection{RPC name:~get\_device}
9704 {\bf Overview:}
9705 Get the device field of the given PIF.
9707 \noindent {\bf Signature:}
9708 \begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
9711 \noindent{\bf Arguments:}
9714 \vspace{0.3cm}
9715 \begin{tabular}{|c|c|p{7cm}|}
9716 \hline
9717 {\bf type} & {\bf name} & {\bf description} \\ \hline
9718 {\tt PIF ref } & self & reference to the object \\ \hline
9720 \end{tabular}
9722 \vspace{0.3cm}
9724 \noindent {\bf Return Type:}
9725 {\tt
9726 string
9730 value of the field
9731 \vspace{0.3cm}
9732 \vspace{0.3cm}
9733 \vspace{0.3cm}
9734 \subsubsection{RPC name:~set\_device}
9736 {\bf Overview:}
9737 Set the device field of the given PIF.
9739 \noindent {\bf Signature:}
9740 \begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
9743 \noindent{\bf Arguments:}
9746 \vspace{0.3cm}
9747 \begin{tabular}{|c|c|p{7cm}|}
9748 \hline
9749 {\bf type} & {\bf name} & {\bf description} \\ \hline
9750 {\tt PIF ref } & self & reference to the object \\ \hline
9752 {\tt string } & value & New value to set \\ \hline
9754 \end{tabular}
9756 \vspace{0.3cm}
9758 \noindent {\bf Return Type:}
9759 {\tt
9760 void
9765 \vspace{0.3cm}
9766 \vspace{0.3cm}
9767 \vspace{0.3cm}
9768 \subsubsection{RPC name:~get\_network}
9770 {\bf Overview:}
9771 Get the network field of the given PIF.
9773 \noindent {\bf Signature:}
9774 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
9777 \noindent{\bf Arguments:}
9780 \vspace{0.3cm}
9781 \begin{tabular}{|c|c|p{7cm}|}
9782 \hline
9783 {\bf type} & {\bf name} & {\bf description} \\ \hline
9784 {\tt PIF ref } & self & reference to the object \\ \hline
9786 \end{tabular}
9788 \vspace{0.3cm}
9790 \noindent {\bf Return Type:}
9791 {\tt
9792 network ref
9796 value of the field
9797 \vspace{0.3cm}
9798 \vspace{0.3cm}
9799 \vspace{0.3cm}
9800 \subsubsection{RPC name:~get\_host}
9802 {\bf Overview:}
9803 Get the host field of the given PIF.
9805 \noindent {\bf Signature:}
9806 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
9809 \noindent{\bf Arguments:}
9812 \vspace{0.3cm}
9813 \begin{tabular}{|c|c|p{7cm}|}
9814 \hline
9815 {\bf type} & {\bf name} & {\bf description} \\ \hline
9816 {\tt PIF ref } & self & reference to the object \\ \hline
9818 \end{tabular}
9820 \vspace{0.3cm}
9822 \noindent {\bf Return Type:}
9823 {\tt
9824 host ref
9828 value of the field
9829 \vspace{0.3cm}
9830 \vspace{0.3cm}
9831 \vspace{0.3cm}
9832 \subsubsection{RPC name:~get\_MAC}
9834 {\bf Overview:}
9835 Get the MAC field of the given PIF.
9837 \noindent {\bf Signature:}
9838 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
9841 \noindent{\bf Arguments:}
9844 \vspace{0.3cm}
9845 \begin{tabular}{|c|c|p{7cm}|}
9846 \hline
9847 {\bf type} & {\bf name} & {\bf description} \\ \hline
9848 {\tt PIF ref } & self & reference to the object \\ \hline
9850 \end{tabular}
9852 \vspace{0.3cm}
9854 \noindent {\bf Return Type:}
9855 {\tt
9856 string
9860 value of the field
9861 \vspace{0.3cm}
9862 \vspace{0.3cm}
9863 \vspace{0.3cm}
9864 \subsubsection{RPC name:~set\_MAC}
9866 {\bf Overview:}
9867 Set the MAC field of the given PIF.
9869 \noindent {\bf Signature:}
9870 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
9873 \noindent{\bf Arguments:}
9876 \vspace{0.3cm}
9877 \begin{tabular}{|c|c|p{7cm}|}
9878 \hline
9879 {\bf type} & {\bf name} & {\bf description} \\ \hline
9880 {\tt PIF ref } & self & reference to the object \\ \hline
9882 {\tt string } & value & New value to set \\ \hline
9884 \end{tabular}
9886 \vspace{0.3cm}
9888 \noindent {\bf Return Type:}
9889 {\tt
9890 void
9895 \vspace{0.3cm}
9896 \vspace{0.3cm}
9897 \vspace{0.3cm}
9898 \subsubsection{RPC name:~get\_MTU}
9900 {\bf Overview:}
9901 Get the MTU field of the given PIF.
9903 \noindent {\bf Signature:}
9904 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
9907 \noindent{\bf Arguments:}
9910 \vspace{0.3cm}
9911 \begin{tabular}{|c|c|p{7cm}|}
9912 \hline
9913 {\bf type} & {\bf name} & {\bf description} \\ \hline
9914 {\tt PIF ref } & self & reference to the object \\ \hline
9916 \end{tabular}
9918 \vspace{0.3cm}
9920 \noindent {\bf Return Type:}
9921 {\tt
9922 int
9926 value of the field
9927 \vspace{0.3cm}
9928 \vspace{0.3cm}
9929 \vspace{0.3cm}
9930 \subsubsection{RPC name:~set\_MTU}
9932 {\bf Overview:}
9933 Set the MTU field of the given PIF.
9935 \noindent {\bf Signature:}
9936 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
9939 \noindent{\bf Arguments:}
9942 \vspace{0.3cm}
9943 \begin{tabular}{|c|c|p{7cm}|}
9944 \hline
9945 {\bf type} & {\bf name} & {\bf description} \\ \hline
9946 {\tt PIF ref } & self & reference to the object \\ \hline
9948 {\tt int } & value & New value to set \\ \hline
9950 \end{tabular}
9952 \vspace{0.3cm}
9954 \noindent {\bf Return Type:}
9955 {\tt
9956 void
9961 \vspace{0.3cm}
9962 \vspace{0.3cm}
9963 \vspace{0.3cm}
9964 \subsubsection{RPC name:~get\_VLAN}
9966 {\bf Overview:}
9967 Get the VLAN field of the given PIF.
9969 \noindent {\bf Signature:}
9970 \begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
9973 \noindent{\bf Arguments:}
9976 \vspace{0.3cm}
9977 \begin{tabular}{|c|c|p{7cm}|}
9978 \hline
9979 {\bf type} & {\bf name} & {\bf description} \\ \hline
9980 {\tt PIF ref } & self & reference to the object \\ \hline
9982 \end{tabular}
9984 \vspace{0.3cm}
9986 \noindent {\bf Return Type:}
9987 {\tt
9988 int
9992 value of the field
9993 \vspace{0.3cm}
9994 \vspace{0.3cm}
9995 \vspace{0.3cm}
9996 \subsubsection{RPC name:~set\_VLAN}
9998 {\bf Overview:}
9999 Set the VLAN field of the given PIF.
10001 \noindent {\bf Signature:}
10002 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
10005 \noindent{\bf Arguments:}
10008 \vspace{0.3cm}
10009 \begin{tabular}{|c|c|p{7cm}|}
10010 \hline
10011 {\bf type} & {\bf name} & {\bf description} \\ \hline
10012 {\tt PIF ref } & self & reference to the object \\ \hline
10014 {\tt int } & value & New value to set \\ \hline
10016 \end{tabular}
10018 \vspace{0.3cm}
10020 \noindent {\bf Return Type:}
10021 {\tt
10022 void
10027 \vspace{0.3cm}
10028 \vspace{0.3cm}
10029 \vspace{0.3cm}
10030 \subsubsection{RPC name:~get\_metrics}
10032 {\bf Overview:}
10033 Get the metrics field of the given PIF.
10035 \noindent {\bf Signature:}
10036 \begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
10039 \noindent{\bf Arguments:}
10042 \vspace{0.3cm}
10043 \begin{tabular}{|c|c|p{7cm}|}
10044 \hline
10045 {\bf type} & {\bf name} & {\bf description} \\ \hline
10046 {\tt PIF ref } & self & reference to the object \\ \hline
10048 \end{tabular}
10050 \vspace{0.3cm}
10052 \noindent {\bf Return Type:}
10053 {\tt
10054 PIF\_metrics ref
10058 value of the field
10059 \vspace{0.3cm}
10060 \vspace{0.3cm}
10061 \vspace{0.3cm}
10062 \subsubsection{RPC name:~get\_by\_uuid}
10064 {\bf Overview:}
10065 Get a reference to the PIF instance with the specified UUID.
10067 \noindent {\bf Signature:}
10068 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10071 \noindent{\bf Arguments:}
10074 \vspace{0.3cm}
10075 \begin{tabular}{|c|c|p{7cm}|}
10076 \hline
10077 {\bf type} & {\bf name} & {\bf description} \\ \hline
10078 {\tt string } & uuid & UUID of object to return \\ \hline
10080 \end{tabular}
10082 \vspace{0.3cm}
10084 \noindent {\bf Return Type:}
10085 {\tt
10086 PIF ref
10090 reference to the object
10091 \vspace{0.3cm}
10092 \vspace{0.3cm}
10093 \vspace{0.3cm}
10094 \subsubsection{RPC name:~get\_record}
10096 {\bf Overview:}
10097 Get a record containing the current state of the given PIF.
10099 \noindent {\bf Signature:}
10100 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
10103 \noindent{\bf Arguments:}
10106 \vspace{0.3cm}
10107 \begin{tabular}{|c|c|p{7cm}|}
10108 \hline
10109 {\bf type} & {\bf name} & {\bf description} \\ \hline
10110 {\tt PIF ref } & self & reference to the object \\ \hline
10112 \end{tabular}
10114 \vspace{0.3cm}
10116 \noindent {\bf Return Type:}
10117 {\tt
10118 PIF record
10122 all fields from the object
10123 \vspace{0.3cm}
10124 \vspace{0.3cm}
10125 \vspace{0.3cm}
10127 \vspace{1cm}
10128 \newpage
10129 \section{Class: PIF\_metrics}
10130 \subsection{Fields for class: PIF\_metrics}
10131 \begin{longtable}{|lllp{0.38\textwidth}|}
10132 \hline
10133 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
10134 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10135 The metrics associated with a physical network interface.}} \\
10136 \hline
10137 Quals & Field & Type & Description \\
10138 \hline
10139 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10140 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
10141 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
10142 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
10143 \hline
10144 \end{longtable}
10145 \subsection{RPCs associated with class: PIF\_metrics}
10146 \subsubsection{RPC name:~get\_all}
10148 {\bf Overview:}
10149 Return a list of all the PIF\_metrics instances known to the system.
10151 \noindent {\bf Signature:}
10152 \begin{verbatim} ((PIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
10155 \vspace{0.3cm}
10157 \noindent {\bf Return Type:}
10158 {\tt
10159 (PIF\_metrics ref) Set
10163 references to all objects
10164 \vspace{0.3cm}
10165 \vspace{0.3cm}
10166 \vspace{0.3cm}
10167 \subsubsection{RPC name:~get\_uuid}
10169 {\bf Overview:}
10170 Get the uuid field of the given PIF\_metrics.
10172 \noindent {\bf Signature:}
10173 \begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
10176 \noindent{\bf Arguments:}
10179 \vspace{0.3cm}
10180 \begin{tabular}{|c|c|p{7cm}|}
10181 \hline
10182 {\bf type} & {\bf name} & {\bf description} \\ \hline
10183 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10185 \end{tabular}
10187 \vspace{0.3cm}
10189 \noindent {\bf Return Type:}
10190 {\tt
10191 string
10195 value of the field
10196 \vspace{0.3cm}
10197 \vspace{0.3cm}
10198 \vspace{0.3cm}
10199 \subsubsection{RPC name:~get\_io\_read\_kbs}
10201 {\bf Overview:}
10202 Get the io/read\_kbs field of the given PIF\_metrics.
10204 \noindent {\bf Signature:}
10205 \begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10208 \noindent{\bf Arguments:}
10211 \vspace{0.3cm}
10212 \begin{tabular}{|c|c|p{7cm}|}
10213 \hline
10214 {\bf type} & {\bf name} & {\bf description} \\ \hline
10215 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10217 \end{tabular}
10219 \vspace{0.3cm}
10221 \noindent {\bf Return Type:}
10222 {\tt
10223 float
10227 value of the field
10228 \vspace{0.3cm}
10229 \vspace{0.3cm}
10230 \vspace{0.3cm}
10231 \subsubsection{RPC name:~get\_io\_write\_kbs}
10233 {\bf Overview:}
10234 Get the io/write\_kbs field of the given PIF\_metrics.
10236 \noindent {\bf Signature:}
10237 \begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10240 \noindent{\bf Arguments:}
10243 \vspace{0.3cm}
10244 \begin{tabular}{|c|c|p{7cm}|}
10245 \hline
10246 {\bf type} & {\bf name} & {\bf description} \\ \hline
10247 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10249 \end{tabular}
10251 \vspace{0.3cm}
10253 \noindent {\bf Return Type:}
10254 {\tt
10255 float
10259 value of the field
10260 \vspace{0.3cm}
10261 \vspace{0.3cm}
10262 \vspace{0.3cm}
10263 \subsubsection{RPC name:~get\_last\_updated}
10265 {\bf Overview:}
10266 Get the last\_updated field of the given PIF\_metrics.
10268 \noindent {\bf Signature:}
10269 \begin{verbatim} datetime get_last_updated (session_id s, PIF_metrics ref self)\end{verbatim}
10272 \noindent{\bf Arguments:}
10275 \vspace{0.3cm}
10276 \begin{tabular}{|c|c|p{7cm}|}
10277 \hline
10278 {\bf type} & {\bf name} & {\bf description} \\ \hline
10279 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10281 \end{tabular}
10283 \vspace{0.3cm}
10285 \noindent {\bf Return Type:}
10286 {\tt
10287 datetime
10291 value of the field
10292 \vspace{0.3cm}
10293 \vspace{0.3cm}
10294 \vspace{0.3cm}
10295 \subsubsection{RPC name:~get\_by\_uuid}
10297 {\bf Overview:}
10298 Get a reference to the PIF\_metrics instance with the specified UUID.
10300 \noindent {\bf Signature:}
10301 \begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10304 \noindent{\bf Arguments:}
10307 \vspace{0.3cm}
10308 \begin{tabular}{|c|c|p{7cm}|}
10309 \hline
10310 {\bf type} & {\bf name} & {\bf description} \\ \hline
10311 {\tt string } & uuid & UUID of object to return \\ \hline
10313 \end{tabular}
10315 \vspace{0.3cm}
10317 \noindent {\bf Return Type:}
10318 {\tt
10319 PIF\_metrics ref
10323 reference to the object
10324 \vspace{0.3cm}
10325 \vspace{0.3cm}
10326 \vspace{0.3cm}
10327 \subsubsection{RPC name:~get\_record}
10329 {\bf Overview:}
10330 Get a record containing the current state of the given PIF\_metrics.
10332 \noindent {\bf Signature:}
10333 \begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
10336 \noindent{\bf Arguments:}
10339 \vspace{0.3cm}
10340 \begin{tabular}{|c|c|p{7cm}|}
10341 \hline
10342 {\bf type} & {\bf name} & {\bf description} \\ \hline
10343 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10345 \end{tabular}
10347 \vspace{0.3cm}
10349 \noindent {\bf Return Type:}
10350 {\tt
10351 PIF\_metrics record
10355 all fields from the object
10356 \vspace{0.3cm}
10357 \vspace{0.3cm}
10358 \vspace{0.3cm}
10360 \vspace{1cm}
10361 \newpage
10362 \section{Class: SR}
10363 \subsection{Fields for class: SR}
10364 \begin{longtable}{|lllp{0.38\textwidth}|}
10365 \hline
10366 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
10367 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10368 storage repository.}} \\
10369 \hline
10370 Quals & Field & Type & Description \\
10371 \hline
10372 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10373 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
10374 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
10375 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
10376 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
10377 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
10378 $\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 \\
10379 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
10380 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
10381 $\mathit{RO}_\mathit{ins}$ & {\tt content\_type} & string & the type of the SR's content, if required (e.g. ISOs) \\
10382 \hline
10383 \end{longtable}
10384 \subsection{RPCs associated with class: SR}
10385 \subsubsection{RPC name:~get\_supported\_types}
10387 {\bf Overview:}
10388 Return a set of all the SR types supported by the system.
10390 \noindent {\bf Signature:}
10391 \begin{verbatim} (string Set) get_supported_types (session_id s)\end{verbatim}
10394 \vspace{0.3cm}
10396 \noindent {\bf Return Type:}
10397 {\tt
10398 string Set
10402 the supported SR types
10403 \vspace{0.3cm}
10404 \vspace{0.3cm}
10405 \vspace{0.3cm}
10406 \subsubsection{RPC name:~get\_all}
10408 {\bf Overview:}
10409 Return a list of all the SRs known to the system.
10411 \noindent {\bf Signature:}
10412 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
10415 \vspace{0.3cm}
10417 \noindent {\bf Return Type:}
10418 {\tt
10419 (SR ref) Set
10423 references to all objects
10424 \vspace{0.3cm}
10425 \vspace{0.3cm}
10426 \vspace{0.3cm}
10427 \subsubsection{RPC name:~get\_uuid}
10429 {\bf Overview:}
10430 Get the uuid field of the given SR.
10432 \noindent {\bf Signature:}
10433 \begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
10436 \noindent{\bf Arguments:}
10439 \vspace{0.3cm}
10440 \begin{tabular}{|c|c|p{7cm}|}
10441 \hline
10442 {\bf type} & {\bf name} & {\bf description} \\ \hline
10443 {\tt SR ref } & self & reference to the object \\ \hline
10445 \end{tabular}
10447 \vspace{0.3cm}
10449 \noindent {\bf Return Type:}
10450 {\tt
10451 string
10455 value of the field
10456 \vspace{0.3cm}
10457 \vspace{0.3cm}
10458 \vspace{0.3cm}
10459 \subsubsection{RPC name:~get\_name\_label}
10461 {\bf Overview:}
10462 Get the name/label field of the given SR.
10464 \noindent {\bf Signature:}
10465 \begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
10468 \noindent{\bf Arguments:}
10471 \vspace{0.3cm}
10472 \begin{tabular}{|c|c|p{7cm}|}
10473 \hline
10474 {\bf type} & {\bf name} & {\bf description} \\ \hline
10475 {\tt SR ref } & self & reference to the object \\ \hline
10477 \end{tabular}
10479 \vspace{0.3cm}
10481 \noindent {\bf Return Type:}
10482 {\tt
10483 string
10487 value of the field
10488 \vspace{0.3cm}
10489 \vspace{0.3cm}
10490 \vspace{0.3cm}
10491 \subsubsection{RPC name:~set\_name\_label}
10493 {\bf Overview:}
10494 Set the name/label field of the given SR.
10496 \noindent {\bf Signature:}
10497 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
10500 \noindent{\bf Arguments:}
10503 \vspace{0.3cm}
10504 \begin{tabular}{|c|c|p{7cm}|}
10505 \hline
10506 {\bf type} & {\bf name} & {\bf description} \\ \hline
10507 {\tt SR ref } & self & reference to the object \\ \hline
10509 {\tt string } & value & New value to set \\ \hline
10511 \end{tabular}
10513 \vspace{0.3cm}
10515 \noindent {\bf Return Type:}
10516 {\tt
10517 void
10522 \vspace{0.3cm}
10523 \vspace{0.3cm}
10524 \vspace{0.3cm}
10525 \subsubsection{RPC name:~get\_name\_description}
10527 {\bf Overview:}
10528 Get the name/description field of the given SR.
10530 \noindent {\bf Signature:}
10531 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
10534 \noindent{\bf Arguments:}
10537 \vspace{0.3cm}
10538 \begin{tabular}{|c|c|p{7cm}|}
10539 \hline
10540 {\bf type} & {\bf name} & {\bf description} \\ \hline
10541 {\tt SR ref } & self & reference to the object \\ \hline
10543 \end{tabular}
10545 \vspace{0.3cm}
10547 \noindent {\bf Return Type:}
10548 {\tt
10549 string
10553 value of the field
10554 \vspace{0.3cm}
10555 \vspace{0.3cm}
10556 \vspace{0.3cm}
10557 \subsubsection{RPC name:~set\_name\_description}
10559 {\bf Overview:}
10560 Set the name/description field of the given SR.
10562 \noindent {\bf Signature:}
10563 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
10566 \noindent{\bf Arguments:}
10569 \vspace{0.3cm}
10570 \begin{tabular}{|c|c|p{7cm}|}
10571 \hline
10572 {\bf type} & {\bf name} & {\bf description} \\ \hline
10573 {\tt SR ref } & self & reference to the object \\ \hline
10575 {\tt string } & value & New value to set \\ \hline
10577 \end{tabular}
10579 \vspace{0.3cm}
10581 \noindent {\bf Return Type:}
10582 {\tt
10583 void
10588 \vspace{0.3cm}
10589 \vspace{0.3cm}
10590 \vspace{0.3cm}
10591 \subsubsection{RPC name:~get\_VDIs}
10593 {\bf Overview:}
10594 Get the VDIs field of the given SR.
10596 \noindent {\bf Signature:}
10597 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
10600 \noindent{\bf Arguments:}
10603 \vspace{0.3cm}
10604 \begin{tabular}{|c|c|p{7cm}|}
10605 \hline
10606 {\bf type} & {\bf name} & {\bf description} \\ \hline
10607 {\tt SR ref } & self & reference to the object \\ \hline
10609 \end{tabular}
10611 \vspace{0.3cm}
10613 \noindent {\bf Return Type:}
10614 {\tt
10615 (VDI ref) Set
10619 value of the field
10620 \vspace{0.3cm}
10621 \vspace{0.3cm}
10622 \vspace{0.3cm}
10623 \subsubsection{RPC name:~get\_PBDs}
10625 {\bf Overview:}
10626 Get the PBDs field of the given SR.
10628 \noindent {\bf Signature:}
10629 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
10632 \noindent{\bf Arguments:}
10635 \vspace{0.3cm}
10636 \begin{tabular}{|c|c|p{7cm}|}
10637 \hline
10638 {\bf type} & {\bf name} & {\bf description} \\ \hline
10639 {\tt SR ref } & self & reference to the object \\ \hline
10641 \end{tabular}
10643 \vspace{0.3cm}
10645 \noindent {\bf Return Type:}
10646 {\tt
10647 (PBD ref) Set
10651 value of the field
10652 \vspace{0.3cm}
10653 \vspace{0.3cm}
10654 \vspace{0.3cm}
10655 \subsubsection{RPC name:~get\_virtual\_allocation}
10657 {\bf Overview:}
10658 Get the virtual\_allocation field of the given SR.
10660 \noindent {\bf Signature:}
10661 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
10664 \noindent{\bf Arguments:}
10667 \vspace{0.3cm}
10668 \begin{tabular}{|c|c|p{7cm}|}
10669 \hline
10670 {\bf type} & {\bf name} & {\bf description} \\ \hline
10671 {\tt SR ref } & self & reference to the object \\ \hline
10673 \end{tabular}
10675 \vspace{0.3cm}
10677 \noindent {\bf Return Type:}
10678 {\tt
10679 int
10683 value of the field
10684 \vspace{0.3cm}
10685 \vspace{0.3cm}
10686 \vspace{0.3cm}
10687 \subsubsection{RPC name:~get\_physical\_utilisation}
10689 {\bf Overview:}
10690 Get the physical\_utilisation field of the given SR.
10692 \noindent {\bf Signature:}
10693 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
10696 \noindent{\bf Arguments:}
10699 \vspace{0.3cm}
10700 \begin{tabular}{|c|c|p{7cm}|}
10701 \hline
10702 {\bf type} & {\bf name} & {\bf description} \\ \hline
10703 {\tt SR ref } & self & reference to the object \\ \hline
10705 \end{tabular}
10707 \vspace{0.3cm}
10709 \noindent {\bf Return Type:}
10710 {\tt
10711 int
10715 value of the field
10716 \vspace{0.3cm}
10717 \vspace{0.3cm}
10718 \vspace{0.3cm}
10719 \subsubsection{RPC name:~get\_physical\_size}
10721 {\bf Overview:}
10722 Get the physical\_size field of the given SR.
10724 \noindent {\bf Signature:}
10725 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
10728 \noindent{\bf Arguments:}
10731 \vspace{0.3cm}
10732 \begin{tabular}{|c|c|p{7cm}|}
10733 \hline
10734 {\bf type} & {\bf name} & {\bf description} \\ \hline
10735 {\tt SR ref } & self & reference to the object \\ \hline
10737 \end{tabular}
10739 \vspace{0.3cm}
10741 \noindent {\bf Return Type:}
10742 {\tt
10743 int
10747 value of the field
10748 \vspace{0.3cm}
10749 \vspace{0.3cm}
10750 \vspace{0.3cm}
10751 \subsubsection{RPC name:~get\_type}
10753 {\bf Overview:}
10754 Get the type field of the given SR.
10756 \noindent {\bf Signature:}
10757 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
10760 \noindent{\bf Arguments:}
10763 \vspace{0.3cm}
10764 \begin{tabular}{|c|c|p{7cm}|}
10765 \hline
10766 {\bf type} & {\bf name} & {\bf description} \\ \hline
10767 {\tt SR ref } & self & reference to the object \\ \hline
10769 \end{tabular}
10771 \vspace{0.3cm}
10773 \noindent {\bf Return Type:}
10774 {\tt
10775 string
10779 value of the field
10780 \vspace{0.3cm}
10781 \vspace{0.3cm}
10782 \vspace{0.3cm}
10783 \subsubsection{RPC name:~get\_content\_type}
10785 {\bf Overview:}
10786 Get the content\_type field of the given SR.
10788 \noindent {\bf Signature:}
10789 \begin{verbatim} string get_content_type (session_id s, SR ref self)\end{verbatim}
10792 \noindent{\bf Arguments:}
10795 \vspace{0.3cm}
10796 \begin{tabular}{|c|c|p{7cm}|}
10797 \hline
10798 {\bf type} & {\bf name} & {\bf description} \\ \hline
10799 {\tt SR ref } & self & reference to the object \\ \hline
10801 \end{tabular}
10803 \vspace{0.3cm}
10805 \noindent {\bf Return Type:}
10806 {\tt
10807 string
10811 value of the field
10812 \vspace{0.3cm}
10813 \vspace{0.3cm}
10814 \vspace{0.3cm}
10815 \subsubsection{RPC name:~get\_by\_uuid}
10817 {\bf Overview:}
10818 Get a reference to the SR instance with the specified UUID.
10820 \noindent {\bf Signature:}
10821 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10824 \noindent{\bf Arguments:}
10827 \vspace{0.3cm}
10828 \begin{tabular}{|c|c|p{7cm}|}
10829 \hline
10830 {\bf type} & {\bf name} & {\bf description} \\ \hline
10831 {\tt string } & uuid & UUID of object to return \\ \hline
10833 \end{tabular}
10835 \vspace{0.3cm}
10837 \noindent {\bf Return Type:}
10838 {\tt
10839 SR ref
10843 reference to the object
10844 \vspace{0.3cm}
10845 \vspace{0.3cm}
10846 \vspace{0.3cm}
10847 \subsubsection{RPC name:~get\_record}
10849 {\bf Overview:}
10850 Get a record containing the current state of the given SR.
10852 \noindent {\bf Signature:}
10853 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
10856 \noindent{\bf Arguments:}
10859 \vspace{0.3cm}
10860 \begin{tabular}{|c|c|p{7cm}|}
10861 \hline
10862 {\bf type} & {\bf name} & {\bf description} \\ \hline
10863 {\tt SR ref } & self & reference to the object \\ \hline
10865 \end{tabular}
10867 \vspace{0.3cm}
10869 \noindent {\bf Return Type:}
10870 {\tt
10871 SR record
10875 all fields from the object
10876 \vspace{0.3cm}
10877 \vspace{0.3cm}
10878 \vspace{0.3cm}
10879 \subsubsection{RPC name:~get\_by\_name\_label}
10881 {\bf Overview:}
10882 Get all the SR instances with the given label.
10884 \noindent {\bf Signature:}
10885 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
10888 \noindent{\bf Arguments:}
10891 \vspace{0.3cm}
10892 \begin{tabular}{|c|c|p{7cm}|}
10893 \hline
10894 {\bf type} & {\bf name} & {\bf description} \\ \hline
10895 {\tt string } & label & label of object to return \\ \hline
10897 \end{tabular}
10899 \vspace{0.3cm}
10901 \noindent {\bf Return Type:}
10902 {\tt
10903 (SR ref) Set
10907 references to objects with match names
10908 \vspace{0.3cm}
10909 \vspace{0.3cm}
10910 \vspace{0.3cm}
10912 \vspace{1cm}
10913 \newpage
10914 \section{Class: VDI}
10915 \subsection{Fields for class: VDI}
10916 \begin{longtable}{|lllp{0.38\textwidth}|}
10917 \hline
10918 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
10919 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10920 virtual disk image.}} \\
10921 \hline
10922 Quals & Field & Type & Description \\
10923 \hline
10924 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10925 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
10926 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
10927 $\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
10928 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
10929 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
10930 $\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 \\
10931 $\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) \\
10932 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
10933 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
10934 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
10935 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
10936 $\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
10937 \hline
10938 \end{longtable}
10939 \subsection{RPCs associated with class: VDI}
10940 \subsubsection{RPC name:~get\_all}
10942 {\bf Overview:}
10943 Return a list of all the VDIs known to the system.
10945 \noindent {\bf Signature:}
10946 \begin{verbatim} ((VDI ref) Set) get_all (session_id s)\end{verbatim}
10949 \vspace{0.3cm}
10951 \noindent {\bf Return Type:}
10952 {\tt
10953 (VDI ref) Set
10957 references to all objects
10958 \vspace{0.3cm}
10959 \vspace{0.3cm}
10960 \vspace{0.3cm}
10961 \subsubsection{RPC name:~get\_uuid}
10963 {\bf Overview:}
10964 Get the uuid field of the given VDI.
10966 \noindent {\bf Signature:}
10967 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
10970 \noindent{\bf Arguments:}
10973 \vspace{0.3cm}
10974 \begin{tabular}{|c|c|p{7cm}|}
10975 \hline