ia64/xen-unstable

view docs/xen-api/xenapi-datamodel.tex @ 16381:d1ac500f77c1

x86, hvm: Allow stdvga acceleration to work with 32-bit x86.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Nov 16 14:40:22 2007 +0000 (2007-11-16)
parents 51f521303df7
children 433f6a6a862a
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) diagramatically, 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 Unknown} & Some other unknown state \\
160 \hline
161 \end{longtable}
163 \vspace{1cm}
164 \begin{longtable}{|ll|}
165 \hline
166 {\tt enum task\_allowed\_operations} & \\
167 \hline
168 \hspace{0.5cm}{\tt Cancel} & Cancel \\
169 \hline
170 \end{longtable}
172 \vspace{1cm}
173 \begin{longtable}{|ll|}
174 \hline
175 {\tt enum task\_status\_type} & \\
176 \hline
177 \hspace{0.5cm}{\tt pending} & task is in progress \\
178 \hspace{0.5cm}{\tt success} & task was completed successfully \\
179 \hspace{0.5cm}{\tt failure} & task has failed \\
180 \hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
181 \hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
182 \hline
183 \end{longtable}
185 \vspace{1cm}
186 \begin{longtable}{|ll|}
187 \hline
188 {\tt enum on\_normal\_exit} & \\
189 \hline
190 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
191 \hspace{0.5cm}{\tt restart} & restart the VM \\
192 \hline
193 \end{longtable}
195 \vspace{1cm}
196 \begin{longtable}{|ll|}
197 \hline
198 {\tt enum on\_crash\_behaviour} & \\
199 \hline
200 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
201 \hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
202 \hspace{0.5cm}{\tt restart} & restart the VM \\
203 \hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
204 \hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
205 \hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
206 \hline
207 \end{longtable}
209 \vspace{1cm}
210 \begin{longtable}{|ll|}
211 \hline
212 {\tt enum vbd\_mode} & \\
213 \hline
214 \hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
215 \hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
216 \hline
217 \end{longtable}
219 \vspace{1cm}
220 \begin{longtable}{|ll|}
221 \hline
222 {\tt enum vbd\_type} & \\
223 \hline
224 \hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
225 \hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
226 \hline
227 \end{longtable}
229 \vspace{1cm}
230 \newpage
232 \section{Error Handling}
233 When a low-level transport error occurs, or a request is malformed at the HTTP
234 or XML-RPC level, the server may send an XML-RPC Fault response, or the client
235 may simulate the same. The client must be prepared to handle these errors,
236 though they may be treated as fatal. On the wire, these are transmitted in a
237 form similar to this:
239 \begin{verbatim}
240 <methodResponse>
241 <fault>
242 <value>
243 <struct>
244 <member>
245 <name>faultCode</name>
246 <value><int>-1</int></value>
247 </member>
248 <member>
249 <name>faultString</name>
250 <value><string>Malformed request</string></value>
251 </member>
252 </struct>
253 </value>
254 </fault>
255 </methodResponse>
256 \end{verbatim}
258 All other failures are reported with a more structured error response, to
259 allow better automatic response to failures, proper internationalisation of
260 any error message, and easier debugging. On the wire, these are transmitted
261 like this:
263 \begin{verbatim}
264 <struct>
265 <member>
266 <name>Status</name>
267 <value>Failure</value>
268 </member>
269 <member>
270 <name>ErrorDescription</name>
271 <value>
272 <array>
273 <data>
274 <value>MAP_DUPLICATE_KEY</value>
275 <value>Customer</value>
276 <value>eSpeil Inc.</value>
277 <value>eSpeil Incorporated</value>
278 </data>
279 </array>
280 </value>
281 </member>
282 </struct>
283 \end{verbatim}
285 Note that {\tt ErrorDescription} value is an array of string values. The
286 first element of the array is an error code; the remainder of the array are
287 strings representing error parameters relating to that code. In this case,
288 the client has attempted to add the mapping {\tt Customer $\rightarrow$
289 eSpiel Incorporated} to a Map, but it already contains the mapping
290 {\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
292 The reference below lists each possible error returned by each method.
293 As well as the errors explicitly listed, any method may return low-level
294 errors as described above, or any of the following generic errors:
296 \begin{itemize}
297 \item HANDLE\_INVALID
298 \item INTERNAL\_ERROR
299 \item MAP\_DUPLICATE\_KEY
300 \item MESSAGE\_METHOD\_UNKNOWN
301 \item MESSAGE\_PARAMETER\_COUNT\_MISMATCH
302 \item OPERATION\_NOT\_ALLOWED
303 \item PERMISSION\_DENIED
304 \item SESSION\_INVALID
305 \end{itemize}
307 Each possible error code is documented in the following section.
309 \subsection{Error Codes}
311 \subsubsection{HANDLE\_INVALID}
313 You gave an invalid handle. The object may have recently been deleted.
314 The class parameter gives the type of reference given, and the handle
315 parameter echoes the bad value given.
317 \vspace{0.3cm}
318 {\bf Signature:}
319 \begin{verbatim}HANDLE_INVALID(class, handle)\end{verbatim}
320 \begin{center}\rule{10em}{0.1pt}\end{center}
322 \subsubsection{INTERNAL\_ERROR}
324 The server failed to handle your request, due to an internal error. The
325 given message may give details useful for debugging the problem.
327 \vspace{0.3cm}
328 {\bf Signature:}
329 \begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
330 \begin{center}\rule{10em}{0.1pt}\end{center}
332 \subsubsection{MAP\_DUPLICATE\_KEY}
334 You tried to add a key-value pair to a map, but that key is already there.
335 The key, current value, and the new value that you tried to set are all
336 echoed.
338 \vspace{0.3cm}
339 {\bf Signature:}
340 \begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
341 \begin{center}\rule{10em}{0.1pt}\end{center}
343 \subsubsection{MESSAGE\_METHOD\_UNKNOWN}
345 You tried to call a method that does not exist. The method name that you
346 used is echoed.
348 \vspace{0.3cm}
349 {\bf Signature:}
350 \begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
351 \begin{center}\rule{10em}{0.1pt}\end{center}
353 \subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
355 You tried to call a method with the incorrect number of parameters. The
356 fully-qualified method name that you used, and the number of received and
357 expected parameters are returned.
359 \vspace{0.3cm}
360 {\bf Signature:}
361 \begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
362 \begin{center}\rule{10em}{0.1pt}\end{center}
364 \subsubsection{NETWORK\_ALREADY\_CONNECTED}
366 You tried to create a PIF, but the network you tried to attach it to is
367 already attached to some other PIF, and so the creation failed.
369 \vspace{0.3cm}
370 {\bf Signature:}
371 \begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
372 \begin{center}\rule{10em}{0.1pt}\end{center}
374 \subsubsection{OPERATION\_NOT\_ALLOWED}
376 You attempted an operation that was not allowed.
378 \vspace{0.3cm}
379 No parameters.
380 \begin{center}\rule{10em}{0.1pt}\end{center}
382 \subsubsection{PERMISSION\_DENIED}
384 You do not have the required permissions to perform the operation.
386 \vspace{0.3cm}
387 No parameters.
388 \begin{center}\rule{10em}{0.1pt}\end{center}
390 \subsubsection{PIF\_IS\_PHYSICAL}
392 You tried to destroy a PIF, but it represents an aspect of the physical
393 host configuration, and so cannot be destroyed. The parameter echoes the
394 PIF handle you gave.
396 \vspace{0.3cm}
397 {\bf Signature:}
398 \begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim}
399 \begin{center}\rule{10em}{0.1pt}\end{center}
401 \subsubsection{SESSION\_AUTHENTICATION\_FAILED}
403 The credentials given by the user are incorrect, so access has been denied,
404 and you have not been issued a session handle.
406 \vspace{0.3cm}
407 No parameters.
408 \begin{center}\rule{10em}{0.1pt}\end{center}
410 \subsubsection{SESSION\_INVALID}
412 You gave an invalid session handle. It may have been invalidated by a
413 server restart, or timed out. You should get a new session handle, using
414 one of the session.login\_ calls. This error does not invalidate the
415 current connection. The handle parameter echoes the bad value given.
417 \vspace{0.3cm}
418 {\bf Signature:}
419 \begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
420 \begin{center}\rule{10em}{0.1pt}\end{center}
422 \subsubsection{SESSION\_NOT\_REGISTERED}
424 This session is not registered to receive events. You must call
425 event.register before event.next. The session handle you are using is
426 echoed.
428 \vspace{0.3cm}
429 {\bf Signature:}
430 \begin{verbatim}SESSION_NOT_REGISTERED(handle)\end{verbatim}
431 \begin{center}\rule{10em}{0.1pt}\end{center}
433 \subsubsection{VALUE\_NOT\_SUPPORTED}
435 You attempted to set a value that is not supported by this implementation.
436 The fully-qualified field name and the value that you tried to set are
437 returned. Also returned is a developer-only diagnostic reason.
439 \vspace{0.3cm}
440 {\bf Signature:}
441 \begin{verbatim}VALUE_NOT_SUPPORTED(field, value, reason)\end{verbatim}
442 \begin{center}\rule{10em}{0.1pt}\end{center}
444 \subsubsection{VLAN\_TAG\_INVALID}
446 You tried to create a VLAN, but the tag you gave was invalid -- it mmust be
447 between 0 and 4095. The parameter echoes the VLAN tag you gave.
449 \vspace{0.3cm}
450 {\bf Signature:}
451 \begin{verbatim}VLAN_TAG_INVALID(VLAN)\end{verbatim}
452 \begin{center}\rule{10em}{0.1pt}\end{center}
454 \subsubsection{VM\_BAD\_POWER\_STATE}
456 You attempted an operation on a VM that was not in an appropriate power
457 state at the time; for example, you attempted to start a VM that was
458 already running. The parameters returned are the VM's handle, and the
459 expected and actual VM state at the time of the call.
461 \vspace{0.3cm}
462 {\bf Signature:}
463 \begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
464 \begin{center}\rule{10em}{0.1pt}\end{center}
466 \subsubsection{VM\_HVM\_REQUIRED}
468 HVM is required for this operation
470 \vspace{0.3cm}
471 {\bf Signature:}
472 \begin{verbatim}VM_HVM_REQUIRED(vm)\end{verbatim}
473 \begin{center}\rule{10em}{0.1pt}\end{center}
475 \subsubsection{SECURITY\_ERROR}
477 A security error occurred. The parameter provides the xen security
478 error code and a message describing the error.
480 \vspace{0.3cm}
481 {\bf Signature:}
482 \begin{verbatim}SECURITY_ERROR(xserr, message)\end{verbatim}
483 \begin{center}\rule{10em}{0.1pt}\end{center}
486 \newpage
487 \section{Class: session}
488 \subsection{Fields for class: session}
489 \begin{longtable}{|lllp{0.38\textwidth}|}
490 \hline
491 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
492 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
493 session.}} \\
494 \hline
495 Quals & Field & Type & Description \\
496 \hline
497 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
498 $\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
499 $\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
500 $\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
501 \hline
502 \end{longtable}
503 \subsection{RPCs associated with class: session}
504 \subsubsection{RPC name:~login\_with\_password}
506 {\bf Overview:}
507 Attempt to authenticate the user, returning a session\_id if successful.
509 \noindent {\bf Signature:}
510 \begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
513 \noindent{\bf Arguments:}
516 \vspace{0.3cm}
517 \begin{tabular}{|c|c|p{7cm}|}
518 \hline
519 {\bf type} & {\bf name} & {\bf description} \\ \hline
520 {\tt string } & uname & Username for login. \\ \hline
522 {\tt string } & pwd & Password for login. \\ \hline
524 \end{tabular}
526 \vspace{0.3cm}
528 \noindent {\bf Return Type:}
529 {\tt
530 session ref
531 }
534 ID of newly created session
536 \vspace{0.3cm}
538 \noindent{\bf Possible Error Codes:} {\tt SESSION\_AUTHENTICATION\_FAILED}
540 \vspace{0.3cm}
541 \vspace{0.3cm}
542 \vspace{0.3cm}
543 \subsubsection{RPC name:~logout}
545 {\bf Overview:}
546 Log out of a session.
548 \noindent {\bf Signature:}
549 \begin{verbatim} void logout (session_id s)\end{verbatim}
552 \vspace{0.3cm}
554 \noindent {\bf Return Type:}
555 {\tt
556 void
557 }
561 \vspace{0.3cm}
562 \vspace{0.3cm}
563 \vspace{0.3cm}
564 \subsubsection{RPC name:~get\_uuid}
566 {\bf Overview:}
567 Get the uuid field of the given session.
569 \noindent {\bf Signature:}
570 \begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
573 \noindent{\bf Arguments:}
576 \vspace{0.3cm}
577 \begin{tabular}{|c|c|p{7cm}|}
578 \hline
579 {\bf type} & {\bf name} & {\bf description} \\ \hline
580 {\tt session ref } & self & reference to the object \\ \hline
582 \end{tabular}
584 \vspace{0.3cm}
586 \noindent {\bf Return Type:}
587 {\tt
588 string
589 }
592 value of the field
593 \vspace{0.3cm}
594 \vspace{0.3cm}
595 \vspace{0.3cm}
596 \subsubsection{RPC name:~get\_this\_host}
598 {\bf Overview:}
599 Get the this\_host field of the given session.
601 \noindent {\bf Signature:}
602 \begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
605 \noindent{\bf Arguments:}
608 \vspace{0.3cm}
609 \begin{tabular}{|c|c|p{7cm}|}
610 \hline
611 {\bf type} & {\bf name} & {\bf description} \\ \hline
612 {\tt session ref } & self & reference to the object \\ \hline
614 \end{tabular}
616 \vspace{0.3cm}
618 \noindent {\bf Return Type:}
619 {\tt
620 host ref
621 }
624 value of the field
625 \vspace{0.3cm}
626 \vspace{0.3cm}
627 \vspace{0.3cm}
628 \subsubsection{RPC name:~get\_this\_user}
630 {\bf Overview:}
631 Get the this\_user field of the given session.
633 \noindent {\bf Signature:}
634 \begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
637 \noindent{\bf Arguments:}
640 \vspace{0.3cm}
641 \begin{tabular}{|c|c|p{7cm}|}
642 \hline
643 {\bf type} & {\bf name} & {\bf description} \\ \hline
644 {\tt session ref } & self & reference to the object \\ \hline
646 \end{tabular}
648 \vspace{0.3cm}
650 \noindent {\bf Return Type:}
651 {\tt
652 user ref
653 }
656 value of the field
657 \vspace{0.3cm}
658 \vspace{0.3cm}
659 \vspace{0.3cm}
660 \subsubsection{RPC name:~get\_last\_active}
662 {\bf Overview:}
663 Get the last\_active field of the given session.
665 \noindent {\bf Signature:}
666 \begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
669 \noindent{\bf Arguments:}
672 \vspace{0.3cm}
673 \begin{tabular}{|c|c|p{7cm}|}
674 \hline
675 {\bf type} & {\bf name} & {\bf description} \\ \hline
676 {\tt session ref } & self & reference to the object \\ \hline
678 \end{tabular}
680 \vspace{0.3cm}
682 \noindent {\bf Return Type:}
683 {\tt
684 int
685 }
688 value of the field
689 \vspace{0.3cm}
690 \vspace{0.3cm}
691 \vspace{0.3cm}
692 \subsubsection{RPC name:~get\_by\_uuid}
694 {\bf Overview:}
695 Get a reference to the session instance with the specified UUID.
697 \noindent {\bf Signature:}
698 \begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
701 \noindent{\bf Arguments:}
704 \vspace{0.3cm}
705 \begin{tabular}{|c|c|p{7cm}|}
706 \hline
707 {\bf type} & {\bf name} & {\bf description} \\ \hline
708 {\tt string } & uuid & UUID of object to return \\ \hline
710 \end{tabular}
712 \vspace{0.3cm}
714 \noindent {\bf Return Type:}
715 {\tt
716 session ref
717 }
720 reference to the object
721 \vspace{0.3cm}
722 \vspace{0.3cm}
723 \vspace{0.3cm}
724 \subsubsection{RPC name:~get\_record}
726 {\bf Overview:}
727 Get a record containing the current state of the given session.
729 \noindent {\bf Signature:}
730 \begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
733 \noindent{\bf Arguments:}
736 \vspace{0.3cm}
737 \begin{tabular}{|c|c|p{7cm}|}
738 \hline
739 {\bf type} & {\bf name} & {\bf description} \\ \hline
740 {\tt session ref } & self & reference to the object \\ \hline
742 \end{tabular}
744 \vspace{0.3cm}
746 \noindent {\bf Return Type:}
747 {\tt
748 session record
749 }
752 all fields from the object
753 \vspace{0.3cm}
754 \vspace{0.3cm}
755 \vspace{0.3cm}
757 \vspace{1cm}
758 \newpage
759 \section{Class: task}
760 \subsection{Fields for class: task}
761 \begin{longtable}{|lllp{0.38\textwidth}|}
762 \hline
763 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
764 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
765 long-running asynchronous task.}} \\
766 \hline
767 Quals & Field & Type & Description \\
768 \hline
769 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
770 $\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
771 $\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
772 $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
773 $\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
774 $\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. \\
775 $\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. \\
776 $\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. \\
777 $\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. \\
778 $\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
779 \hline
780 \end{longtable}
781 \subsection{RPCs associated with class: task}
782 \subsubsection{RPC name:~cancel}
784 {\bf Overview:}
785 Cancel this task. If task.allowed\_operations does not contain Cancel,
786 then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
787 status 'cancelling', and you should continue to check its status until it
788 shows 'cancelled'. There is no guarantee as to the time within which this
789 task will be cancelled.
791 \noindent {\bf Signature:}
792 \begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
795 \noindent{\bf Arguments:}
798 \vspace{0.3cm}
799 \begin{tabular}{|c|c|p{7cm}|}
800 \hline
801 {\bf type} & {\bf name} & {\bf description} \\ \hline
802 {\tt task ref } & task & The task \\ \hline
804 \end{tabular}
806 \vspace{0.3cm}
808 \noindent {\bf Return Type:}
809 {\tt
810 void
811 }
815 \vspace{0.3cm}
817 \noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
819 \vspace{0.6cm}
820 \subsubsection{RPC name:~get\_all}
822 {\bf Overview:}
823 Return a list of all the tasks known to the system.
825 \noindent {\bf Signature:}
826 \begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
829 \vspace{0.3cm}
831 \noindent {\bf Return Type:}
832 {\tt
833 (task ref) Set
834 }
837 references to all objects
838 \vspace{0.3cm}
839 \vspace{0.3cm}
840 \vspace{0.3cm}
841 \subsubsection{RPC name:~get\_uuid}
843 {\bf Overview:}
844 Get the uuid field of the given task.
846 \noindent {\bf Signature:}
847 \begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
850 \noindent{\bf Arguments:}
853 \vspace{0.3cm}
854 \begin{tabular}{|c|c|p{7cm}|}
855 \hline
856 {\bf type} & {\bf name} & {\bf description} \\ \hline
857 {\tt task ref } & self & reference to the object \\ \hline
859 \end{tabular}
861 \vspace{0.3cm}
863 \noindent {\bf Return Type:}
864 {\tt
865 string
866 }
869 value of the field
870 \vspace{0.3cm}
871 \vspace{0.3cm}
872 \vspace{0.3cm}
873 \subsubsection{RPC name:~get\_name\_label}
875 {\bf Overview:}
876 Get the name/label field of the given task.
878 \noindent {\bf Signature:}
879 \begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
882 \noindent{\bf Arguments:}
885 \vspace{0.3cm}
886 \begin{tabular}{|c|c|p{7cm}|}
887 \hline
888 {\bf type} & {\bf name} & {\bf description} \\ \hline
889 {\tt task ref } & self & reference to the object \\ \hline
891 \end{tabular}
893 \vspace{0.3cm}
895 \noindent {\bf Return Type:}
896 {\tt
897 string
898 }
901 value of the field
902 \vspace{0.3cm}
903 \vspace{0.3cm}
904 \vspace{0.3cm}
905 \subsubsection{RPC name:~get\_name\_description}
907 {\bf Overview:}
908 Get the name/description field of the given task.
910 \noindent {\bf Signature:}
911 \begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
914 \noindent{\bf Arguments:}
917 \vspace{0.3cm}
918 \begin{tabular}{|c|c|p{7cm}|}
919 \hline
920 {\bf type} & {\bf name} & {\bf description} \\ \hline
921 {\tt task ref } & self & reference to the object \\ \hline
923 \end{tabular}
925 \vspace{0.3cm}
927 \noindent {\bf Return Type:}
928 {\tt
929 string
930 }
933 value of the field
934 \vspace{0.3cm}
935 \vspace{0.3cm}
936 \vspace{0.3cm}
937 \subsubsection{RPC name:~get\_status}
939 {\bf Overview:}
940 Get the status field of the given task.
942 \noindent {\bf Signature:}
943 \begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
946 \noindent{\bf Arguments:}
949 \vspace{0.3cm}
950 \begin{tabular}{|c|c|p{7cm}|}
951 \hline
952 {\bf type} & {\bf name} & {\bf description} \\ \hline
953 {\tt task ref } & self & reference to the object \\ \hline
955 \end{tabular}
957 \vspace{0.3cm}
959 \noindent {\bf Return Type:}
960 {\tt
961 task\_status\_type
962 }
965 value of the field
966 \vspace{0.3cm}
967 \vspace{0.3cm}
968 \vspace{0.3cm}
969 \subsubsection{RPC name:~get\_session}
971 {\bf Overview:}
972 Get the session field of the given task.
974 \noindent {\bf Signature:}
975 \begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
978 \noindent{\bf Arguments:}
981 \vspace{0.3cm}
982 \begin{tabular}{|c|c|p{7cm}|}
983 \hline
984 {\bf type} & {\bf name} & {\bf description} \\ \hline
985 {\tt task ref } & self & reference to the object \\ \hline
987 \end{tabular}
989 \vspace{0.3cm}
991 \noindent {\bf Return Type:}
992 {\tt
993 session ref
994 }
997 value of the field
998 \vspace{0.3cm}
999 \vspace{0.3cm}
1000 \vspace{0.3cm}
1001 \subsubsection{RPC name:~get\_progress}
1003 {\bf Overview:}
1004 Get the progress field of the given task.
1006 \noindent {\bf Signature:}
1007 \begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
1010 \noindent{\bf Arguments:}
1013 \vspace{0.3cm}
1014 \begin{tabular}{|c|c|p{7cm}|}
1015 \hline
1016 {\bf type} & {\bf name} & {\bf description} \\ \hline
1017 {\tt task ref } & self & reference to the object \\ \hline
1019 \end{tabular}
1021 \vspace{0.3cm}
1023 \noindent {\bf Return Type:}
1024 {\tt
1025 int
1029 value of the field
1030 \vspace{0.3cm}
1031 \vspace{0.3cm}
1032 \vspace{0.3cm}
1033 \subsubsection{RPC name:~get\_type}
1035 {\bf Overview:}
1036 Get the type field of the given task.
1038 \noindent {\bf Signature:}
1039 \begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
1042 \noindent{\bf Arguments:}
1045 \vspace{0.3cm}
1046 \begin{tabular}{|c|c|p{7cm}|}
1047 \hline
1048 {\bf type} & {\bf name} & {\bf description} \\ \hline
1049 {\tt task ref } & self & reference to the object \\ \hline
1051 \end{tabular}
1053 \vspace{0.3cm}
1055 \noindent {\bf Return Type:}
1056 {\tt
1057 string
1061 value of the field
1062 \vspace{0.3cm}
1063 \vspace{0.3cm}
1064 \vspace{0.3cm}
1065 \subsubsection{RPC name:~get\_result}
1067 {\bf Overview:}
1068 Get the result field of the given task.
1070 \noindent {\bf Signature:}
1071 \begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
1074 \noindent{\bf Arguments:}
1077 \vspace{0.3cm}
1078 \begin{tabular}{|c|c|p{7cm}|}
1079 \hline
1080 {\bf type} & {\bf name} & {\bf description} \\ \hline
1081 {\tt task ref } & self & reference to the object \\ \hline
1083 \end{tabular}
1085 \vspace{0.3cm}
1087 \noindent {\bf Return Type:}
1088 {\tt
1089 string
1093 value of the field
1094 \vspace{0.3cm}
1095 \vspace{0.3cm}
1096 \vspace{0.3cm}
1097 \subsubsection{RPC name:~get\_error\_info}
1099 {\bf Overview:}
1100 Get the error\_info field of the given task.
1102 \noindent {\bf Signature:}
1103 \begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
1106 \noindent{\bf Arguments:}
1109 \vspace{0.3cm}
1110 \begin{tabular}{|c|c|p{7cm}|}
1111 \hline
1112 {\bf type} & {\bf name} & {\bf description} \\ \hline
1113 {\tt task ref } & self & reference to the object \\ \hline
1115 \end{tabular}
1117 \vspace{0.3cm}
1119 \noindent {\bf Return Type:}
1120 {\tt
1121 string Set
1125 value of the field
1126 \vspace{0.3cm}
1127 \vspace{0.3cm}
1128 \vspace{0.3cm}
1129 \subsubsection{RPC name:~get\_allowed\_operations}
1131 {\bf Overview:}
1132 Get the allowed\_operations field of the given task.
1134 \noindent {\bf Signature:}
1135 \begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
1138 \noindent{\bf Arguments:}
1141 \vspace{0.3cm}
1142 \begin{tabular}{|c|c|p{7cm}|}
1143 \hline
1144 {\bf type} & {\bf name} & {\bf description} \\ \hline
1145 {\tt task ref } & self & reference to the object \\ \hline
1147 \end{tabular}
1149 \vspace{0.3cm}
1151 \noindent {\bf Return Type:}
1152 {\tt
1153 (task\_allowed\_operations) Set
1157 value of the field
1158 \vspace{0.3cm}
1159 \vspace{0.3cm}
1160 \vspace{0.3cm}
1161 \subsubsection{RPC name:~get\_by\_uuid}
1163 {\bf Overview:}
1164 Get a reference to the task instance with the specified UUID.
1166 \noindent {\bf Signature:}
1167 \begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
1170 \noindent{\bf Arguments:}
1173 \vspace{0.3cm}
1174 \begin{tabular}{|c|c|p{7cm}|}
1175 \hline
1176 {\bf type} & {\bf name} & {\bf description} \\ \hline
1177 {\tt string } & uuid & UUID of object to return \\ \hline
1179 \end{tabular}
1181 \vspace{0.3cm}
1183 \noindent {\bf Return Type:}
1184 {\tt
1185 task ref
1189 reference to the object
1190 \vspace{0.3cm}
1191 \vspace{0.3cm}
1192 \vspace{0.3cm}
1193 \subsubsection{RPC name:~get\_record}
1195 {\bf Overview:}
1196 Get a record containing the current state of the given task.
1198 \noindent {\bf Signature:}
1199 \begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
1202 \noindent{\bf Arguments:}
1205 \vspace{0.3cm}
1206 \begin{tabular}{|c|c|p{7cm}|}
1207 \hline
1208 {\bf type} & {\bf name} & {\bf description} \\ \hline
1209 {\tt task ref } & self & reference to the object \\ \hline
1211 \end{tabular}
1213 \vspace{0.3cm}
1215 \noindent {\bf Return Type:}
1216 {\tt
1217 task record
1221 all fields from the object
1222 \vspace{0.3cm}
1223 \vspace{0.3cm}
1224 \vspace{0.3cm}
1225 \subsubsection{RPC name:~get\_by\_name\_label}
1227 {\bf Overview:}
1228 Get all the task instances with the given label.
1230 \noindent {\bf Signature:}
1231 \begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
1234 \noindent{\bf Arguments:}
1237 \vspace{0.3cm}
1238 \begin{tabular}{|c|c|p{7cm}|}
1239 \hline
1240 {\bf type} & {\bf name} & {\bf description} \\ \hline
1241 {\tt string } & label & label of object to return \\ \hline
1243 \end{tabular}
1245 \vspace{0.3cm}
1247 \noindent {\bf Return Type:}
1248 {\tt
1249 (task ref) Set
1253 references to objects with match names
1254 \vspace{0.3cm}
1255 \vspace{0.3cm}
1256 \vspace{0.3cm}
1258 \vspace{1cm}
1259 \newpage
1260 \section{Class: event}
1261 \subsection{Fields for class: event}
1262 \begin{longtable}{|lllp{0.38\textwidth}|}
1263 \hline
1264 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf event} \\
1265 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
1266 Asynchronous event registration and handling.}} \\
1267 \hline
1268 Quals & Field & Type & Description \\
1269 \hline
1270 $\mathit{RO}_\mathit{ins}$ & {\tt id} & int & An ID, monotonically increasing, and local to the current session \\
1271 $\mathit{RO}_\mathit{ins}$ & {\tt timestamp} & datetime & The time at which the event occurred \\
1272 $\mathit{RO}_\mathit{ins}$ & {\tt class} & string & The name of the class of the object that changed \\
1273 $\mathit{RO}_\mathit{ins}$ & {\tt operation} & event\_operation & The operation that was performed \\
1274 $\mathit{RO}_\mathit{ins}$ & {\tt ref} & string & A reference to the object that changed \\
1275 $\mathit{RO}_\mathit{ins}$ & {\tt obj\_uuid} & string & The uuid of the object that changed \\
1276 \hline
1277 \end{longtable}
1278 \subsection{RPCs associated with class: event}
1279 \subsubsection{RPC name:~register}
1281 {\bf Overview:}
1282 Registers this session with the event system. Specifying the empty list
1283 will register for all classes.
1285 \noindent {\bf Signature:}
1286 \begin{verbatim} void register (session_id s, string Set classes)\end{verbatim}
1289 \noindent{\bf Arguments:}
1292 \vspace{0.3cm}
1293 \begin{tabular}{|c|c|p{7cm}|}
1294 \hline
1295 {\bf type} & {\bf name} & {\bf description} \\ \hline
1296 {\tt string Set } & classes & register for events for the indicated classes \\ \hline
1298 \end{tabular}
1300 \vspace{0.3cm}
1302 \noindent {\bf Return Type:}
1303 {\tt
1304 void
1309 \vspace{0.3cm}
1310 \vspace{0.3cm}
1311 \vspace{0.3cm}
1312 \subsubsection{RPC name:~unregister}
1314 {\bf Overview:}
1315 Unregisters this session with the event system.
1317 \noindent {\bf Signature:}
1318 \begin{verbatim} void unregister (session_id s, string Set classes)\end{verbatim}
1321 \noindent{\bf Arguments:}
1324 \vspace{0.3cm}
1325 \begin{tabular}{|c|c|p{7cm}|}
1326 \hline
1327 {\bf type} & {\bf name} & {\bf description} \\ \hline
1328 {\tt string Set } & classes & remove this session's registration for the indicated classes \\ \hline
1330 \end{tabular}
1332 \vspace{0.3cm}
1334 \noindent {\bf Return Type:}
1335 {\tt
1336 void
1341 \vspace{0.3cm}
1342 \vspace{0.3cm}
1343 \vspace{0.3cm}
1344 \subsubsection{RPC name:~next}
1346 {\bf Overview:}
1347 Blocking call which returns a (possibly empty) batch of events.
1349 \noindent {\bf Signature:}
1350 \begin{verbatim} ((event record) Set) next (session_id s)\end{verbatim}
1353 \vspace{0.3cm}
1355 \noindent {\bf Return Type:}
1356 {\tt
1357 (event record) Set
1361 the batch of events
1362 \vspace{0.3cm}
1364 \noindent{\bf Possible Error Codes:} {\tt SESSION\_NOT\_REGISTERED}
1366 \vspace{0.6cm}
1368 \vspace{1cm}
1369 \newpage
1370 \section{Class: VM}
1371 \subsection{Fields for class: VM}
1372 \begin{longtable}{|lllp{0.38\textwidth}|}
1373 \hline
1374 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1375 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
1376 virtual machine (or 'guest').}} \\
1377 \hline
1378 Quals & Field & Type & Description \\
1379 \hline
1380 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1381 $\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1382 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1383 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1384 $\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1385 $\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 \\
1386 $\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1387 $\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) \\
1388 $\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1389 $\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1390 $\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1391 $\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1392 $\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) mininum (bytes) \\
1393 $\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
1394 $\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
1395 $\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
1396 $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1397 $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1398 $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1399 $\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1400 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1401 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1402 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
1403 $\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1404 $\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1405 $\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
1406 $\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
1407 $\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1408 $\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1409 $\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
1410 $\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
1411 $\mathit{RW}$ & {\tt platform} & (string $\rightarrow$ string) Map & platform-specific configuration \\
1412 $\mathit{RW}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1413 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
1414 $\mathit{RO}_\mathit{run}$ & {\tt domid} & int & domain ID (if available, -1 otherwise) \\
1415 $\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
1416 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM \\
1417 $\mathit{RO}_\mathit{run}$ & {\tt guest\_metrics} & VM\_guest\_metrics ref & metrics associated with the running guest \\
1418 $\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
1419 \hline
1420 \end{longtable}
1421 \subsection{RPCs associated with class: VM}
1422 \subsubsection{RPC name:~clone}
1424 {\bf Overview:}
1425 Clones the specified VM, making a new VM. Clone automatically exploits the
1426 capabilities of the underlying storage repository in which the VM's disk
1427 images are stored (e.g. Copy on Write). This function can only be called
1428 when the VM is in the Halted State.
1430 \noindent {\bf Signature:}
1431 \begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1434 \noindent{\bf Arguments:}
1437 \vspace{0.3cm}
1438 \begin{tabular}{|c|c|p{7cm}|}
1439 \hline
1440 {\bf type} & {\bf name} & {\bf description} \\ \hline
1441 {\tt VM ref } & vm & The VM to be cloned \\ \hline
1443 {\tt string } & new\_name & The name of the cloned VM \\ \hline
1445 \end{tabular}
1447 \vspace{0.3cm}
1449 \noindent {\bf Return Type:}
1450 {\tt
1451 VM ref
1455 The ID of the newly created VM.
1456 \vspace{0.3cm}
1458 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1460 \vspace{0.6cm}
1461 \subsubsection{RPC name:~start}
1463 {\bf Overview:}
1464 Start the specified VM. This function can only be called with the VM is in
1465 the Halted State.
1467 \noindent {\bf Signature:}
1468 \begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1471 \noindent{\bf Arguments:}
1474 \vspace{0.3cm}
1475 \begin{tabular}{|c|c|p{7cm}|}
1476 \hline
1477 {\bf type} & {\bf name} & {\bf description} \\ \hline
1478 {\tt VM ref } & vm & The VM to start \\ \hline
1480 {\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1482 \end{tabular}
1484 \vspace{0.3cm}
1486 \noindent {\bf Return Type:}
1487 {\tt
1488 void
1493 \vspace{0.3cm}
1495 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}, {\tt
1496 VM\_HVM\_REQUIRED}
1498 \vspace{0.6cm}
1499 \subsubsection{RPC name:~pause}
1501 {\bf Overview:}
1502 Pause the specified VM. This can only be called when the specified VM is in
1503 the Running state.
1505 \noindent {\bf Signature:}
1506 \begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1509 \noindent{\bf Arguments:}
1512 \vspace{0.3cm}
1513 \begin{tabular}{|c|c|p{7cm}|}
1514 \hline
1515 {\bf type} & {\bf name} & {\bf description} \\ \hline
1516 {\tt VM ref } & vm & The VM to pause \\ \hline
1518 \end{tabular}
1520 \vspace{0.3cm}
1522 \noindent {\bf Return Type:}
1523 {\tt
1524 void
1529 \vspace{0.3cm}
1531 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1533 \vspace{0.6cm}
1534 \subsubsection{RPC name:~unpause}
1536 {\bf Overview:}
1537 Resume the specified VM. This can only be called when the specified VM is
1538 in the Paused state.
1540 \noindent {\bf Signature:}
1541 \begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1544 \noindent{\bf Arguments:}
1547 \vspace{0.3cm}
1548 \begin{tabular}{|c|c|p{7cm}|}
1549 \hline
1550 {\bf type} & {\bf name} & {\bf description} \\ \hline
1551 {\tt VM ref } & vm & The VM to unpause \\ \hline
1553 \end{tabular}
1555 \vspace{0.3cm}
1557 \noindent {\bf Return Type:}
1558 {\tt
1559 void
1564 \vspace{0.3cm}
1566 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1568 \vspace{0.6cm}
1569 \subsubsection{RPC name:~clean\_shutdown}
1571 {\bf Overview:}
1572 Attempt to cleanly shutdown the specified VM. (Note: this may not be
1573 supported---e.g. if a guest agent is not installed).
1575 Once shutdown has been completed perform poweroff action specified in guest
1576 configuration.
1578 This can only be called when the specified VM is in the Running state.
1580 \noindent {\bf Signature:}
1581 \begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1584 \noindent{\bf Arguments:}
1587 \vspace{0.3cm}
1588 \begin{tabular}{|c|c|p{7cm}|}
1589 \hline
1590 {\bf type} & {\bf name} & {\bf description} \\ \hline
1591 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1593 \end{tabular}
1595 \vspace{0.3cm}
1597 \noindent {\bf Return Type:}
1598 {\tt
1599 void
1604 \vspace{0.3cm}
1606 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1608 \vspace{0.6cm}
1609 \subsubsection{RPC name:~clean\_reboot}
1611 {\bf Overview:}
1612 Attempt to cleanly shutdown the specified VM (Note: this may not be
1613 supported---e.g. if a guest agent is not installed).
1615 Once shutdown has been completed perform reboot action specified in guest
1616 configuration.
1618 This can only be called when the specified VM is in the Running state.
1620 \noindent {\bf Signature:}
1621 \begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1624 \noindent{\bf Arguments:}
1627 \vspace{0.3cm}
1628 \begin{tabular}{|c|c|p{7cm}|}
1629 \hline
1630 {\bf type} & {\bf name} & {\bf description} \\ \hline
1631 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1633 \end{tabular}
1635 \vspace{0.3cm}
1637 \noindent {\bf Return Type:}
1638 {\tt
1639 void
1644 \vspace{0.3cm}
1646 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1648 \vspace{0.6cm}
1649 \subsubsection{RPC name:~hard\_shutdown}
1651 {\bf Overview:}
1652 Stop executing the specified VM without attempting a clean shutdown. Then
1653 perform poweroff action specified in VM configuration.
1655 \noindent {\bf Signature:}
1656 \begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1659 \noindent{\bf Arguments:}
1662 \vspace{0.3cm}
1663 \begin{tabular}{|c|c|p{7cm}|}
1664 \hline
1665 {\bf type} & {\bf name} & {\bf description} \\ \hline
1666 {\tt VM ref } & vm & The VM to destroy \\ \hline
1668 \end{tabular}
1670 \vspace{0.3cm}
1672 \noindent {\bf Return Type:}
1673 {\tt
1674 void
1679 \vspace{0.3cm}
1681 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1683 \vspace{0.6cm}
1684 \subsubsection{RPC name:~hard\_reboot}
1686 {\bf Overview:}
1687 Stop executing the specified VM without attempting a clean shutdown. Then
1688 perform reboot action specified in VM configuration.
1690 \noindent {\bf Signature:}
1691 \begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1694 \noindent{\bf Arguments:}
1697 \vspace{0.3cm}
1698 \begin{tabular}{|c|c|p{7cm}|}
1699 \hline
1700 {\bf type} & {\bf name} & {\bf description} \\ \hline
1701 {\tt VM ref } & vm & The VM to reboot \\ \hline
1703 \end{tabular}
1705 \vspace{0.3cm}
1707 \noindent {\bf Return Type:}
1708 {\tt
1709 void
1714 \vspace{0.3cm}
1715 \vspace{0.3cm}
1716 \vspace{0.3cm}
1717 \subsubsection{RPC name:~suspend}
1719 {\bf Overview:}
1720 Suspend the specified VM to disk. This can only be called when the
1721 specified VM is in the Running state.
1723 \noindent {\bf Signature:}
1724 \begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1727 \noindent{\bf Arguments:}
1730 \vspace{0.3cm}
1731 \begin{tabular}{|c|c|p{7cm}|}
1732 \hline
1733 {\bf type} & {\bf name} & {\bf description} \\ \hline
1734 {\tt VM ref } & vm & The VM to suspend \\ \hline
1736 \end{tabular}
1738 \vspace{0.3cm}
1740 \noindent {\bf Return Type:}
1741 {\tt
1742 void
1747 \vspace{0.3cm}
1749 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1751 \vspace{0.6cm}
1752 \subsubsection{RPC name:~resume}
1754 {\bf Overview:}
1755 Awaken the specified VM and resume it. This can only be called when the
1756 specified VM is in the Suspended state.
1758 \noindent {\bf Signature:}
1759 \begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1762 \noindent{\bf Arguments:}
1765 \vspace{0.3cm}
1766 \begin{tabular}{|c|c|p{7cm}|}
1767 \hline
1768 {\bf type} & {\bf name} & {\bf description} \\ \hline
1769 {\tt VM ref } & vm & The VM to resume \\ \hline
1771 {\tt bool } & start\_paused & Resume VM in paused state if set to true. \\ \hline
1773 \end{tabular}
1775 \vspace{0.3cm}
1777 \noindent {\bf Return Type:}
1778 {\tt
1779 void
1784 \vspace{0.3cm}
1786 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1788 \vspace{0.6cm}
1789 \subsubsection{RPC name:~set\_VCPUs\_number\_live}
1791 {\bf Overview:}
1792 Set this VM's VCPUs/at\_startup value, and set the same value on the VM, if
1793 running.
1795 \noindent {\bf Signature:}
1796 \begin{verbatim} void set_VCPUs_number_live (session_id s, VM ref self, int nvcpu)\end{verbatim}
1799 \noindent{\bf Arguments:}
1802 \vspace{0.3cm}
1803 \begin{tabular}{|c|c|p{7cm}|}
1804 \hline
1805 {\bf type} & {\bf name} & {\bf description} \\ \hline
1806 {\tt VM ref } & self & The VM \\ \hline
1808 {\tt int } & nvcpu & The number of VCPUs \\ \hline
1810 \end{tabular}
1812 \vspace{0.3cm}
1814 \noindent {\bf Return Type:}
1815 {\tt
1816 void
1821 \vspace{0.3cm}
1822 \vspace{0.3cm}
1823 \vspace{0.3cm}
1824 \subsubsection{RPC name:~add\_to\_VCPUs\_params\_live}
1826 {\bf Overview:}
1827 Add the given key-value pair to VM.VCPUs\_params, and apply that value on
1828 the running VM.
1830 \noindent {\bf Signature:}
1831 \begin{verbatim} void add_to_VCPUs_params_live (session_id s, VM ref self, string key, string value)\end{verbatim}
1834 \noindent{\bf Arguments:}
1837 \vspace{0.3cm}
1838 \begin{tabular}{|c|c|p{7cm}|}
1839 \hline
1840 {\bf type} & {\bf name} & {\bf description} \\ \hline
1841 {\tt VM ref } & self & The VM \\ \hline
1843 {\tt string } & key & The key \\ \hline
1845 {\tt string } & value & The value \\ \hline
1847 \end{tabular}
1849 \vspace{0.3cm}
1851 \noindent {\bf Return Type:}
1852 {\tt
1853 void
1858 \vspace{0.3cm}
1859 \vspace{0.3cm}
1860 \vspace{0.3cm}
1861 \subsubsection{RPC name:~set\_memory\_dynamic\_max\_live}
1863 {\bf Overview:}
1864 Set memory\_dynamic\_max in database and on running VM.
1866 \noindent {\bf Signature:}
1867 \begin{verbatim} void set_memory_dynamic_max_live (session_id s, VM ref self, int max)\end{verbatim}
1870 \noindent{\bf Arguments:}
1873 \vspace{0.3cm}
1874 \begin{tabular}{|c|c|p{7cm}|}
1875 \hline
1876 {\bf type} & {\bf name} & {\bf description} \\ \hline
1877 {\tt VM ref } & self & The VM \\ \hline
1879 {\tt int } & max & The memory\_dynamic\_max value \\ \hline
1881 \end{tabular}
1883 \vspace{0.3cm}
1885 \noindent {\bf Return Type:}
1886 {\tt
1887 void
1892 \vspace{0.3cm}
1893 \vspace{0.3cm}
1894 \vspace{0.3cm}
1895 \subsubsection{RPC name:~set\_memory\_dynamic\_min\_live}
1897 {\bf Overview:}
1898 Set memory\_dynamic\_min in database and on running VM.
1900 \noindent {\bf Signature:}
1901 \begin{verbatim} void set_memory_dynamic_min_live (session_id s, VM ref self, int min)\end{verbatim}
1904 \noindent{\bf Arguments:}
1907 \vspace{0.3cm}
1908 \begin{tabular}{|c|c|p{7cm}|}
1909 \hline
1910 {\bf type} & {\bf name} & {\bf description} \\ \hline
1911 {\tt VM ref } & self & The VM \\ \hline
1913 {\tt int } & min & The memory\_dynamic\_min value \\ \hline
1915 \end{tabular}
1917 \vspace{0.3cm}
1919 \noindent {\bf Return Type:}
1920 {\tt
1921 void
1926 \vspace{0.3cm}
1927 \vspace{0.3cm}
1928 \vspace{0.3cm}
1929 \subsubsection{RPC name:~send\_sysrq}
1931 {\bf Overview:}
1932 Send the given key as a sysrq to this VM. The key is specified as a single
1933 character (a String of length 1). This can only be called when the
1934 specified VM is in the Running state.
1936 \noindent {\bf Signature:}
1937 \begin{verbatim} void send_sysrq (session_id s, VM ref vm, string key)\end{verbatim}
1940 \noindent{\bf Arguments:}
1943 \vspace{0.3cm}
1944 \begin{tabular}{|c|c|p{7cm}|}
1945 \hline
1946 {\bf type} & {\bf name} & {\bf description} \\ \hline
1947 {\tt VM ref } & vm & The VM \\ \hline
1949 {\tt string } & key & The key to send \\ \hline
1951 \end{tabular}
1953 \vspace{0.3cm}
1955 \noindent {\bf Return Type:}
1956 {\tt
1957 void
1962 \vspace{0.3cm}
1964 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1966 \vspace{0.6cm}
1967 \subsubsection{RPC name:~send\_trigger}
1969 {\bf Overview:}
1970 Send the named trigger to this VM. This can only be called when the
1971 specified VM is in the Running state.
1973 \noindent {\bf Signature:}
1974 \begin{verbatim} void send_trigger (session_id s, VM ref vm, string trigger)\end{verbatim}
1977 \noindent{\bf Arguments:}
1980 \vspace{0.3cm}
1981 \begin{tabular}{|c|c|p{7cm}|}
1982 \hline
1983 {\bf type} & {\bf name} & {\bf description} \\ \hline
1984 {\tt VM ref } & vm & The VM \\ \hline
1986 {\tt string } & trigger & The trigger to send \\ \hline
1988 \end{tabular}
1990 \vspace{0.3cm}
1992 \noindent {\bf Return Type:}
1993 {\tt
1994 void
1999 \vspace{0.3cm}
2001 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2003 \vspace{0.6cm}
2004 \subsubsection{RPC name:~migrate}
2006 {\bf Overview:}
2007 Migrate the VM to another host. This can only be called when the specified
2008 VM is in the Running state.
2010 \noindent {\bf Signature:}
2011 \begin{verbatim} void migrate (session_id s, VM ref vm, string dest, bool live, (string -> string) Map options)\end{verbatim}
2014 \noindent{\bf Arguments:}
2017 \vspace{0.3cm}
2018 \begin{tabular}{|c|c|p{7cm}|}
2019 \hline
2020 {\bf type} & {\bf name} & {\bf description} \\ \hline
2021 {\tt VM ref } & vm & The VM \\ \hline
2023 {\tt string } & dest & The destination host \\ \hline
2025 {\tt bool } & live & Live migration \\ \hline
2027 {\tt (string $\rightarrow$ string) Map } & options & Other parameters \\ \hline
2029 \end{tabular}
2031 \vspace{0.3cm}
2033 \noindent {\bf Return Type:}
2034 {\tt
2035 void
2040 \vspace{0.3cm}
2042 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
2044 \vspace{0.6cm}
2045 \subsubsection{RPC name:~get\_all}
2047 {\bf Overview:}
2048 Return a list of all the VMs known to the system.
2050 \noindent {\bf Signature:}
2051 \begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
2054 \vspace{0.3cm}
2056 \noindent {\bf Return Type:}
2057 {\tt
2058 (VM ref) Set
2062 A list of all the IDs of all the VMs
2063 \vspace{0.3cm}
2064 \vspace{0.3cm}
2065 \vspace{0.3cm}
2066 \subsubsection{RPC name:~get\_uuid}
2068 {\bf Overview:}
2069 Get the uuid field of the given VM.
2071 \noindent {\bf Signature:}
2072 \begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
2075 \noindent{\bf Arguments:}
2078 \vspace{0.3cm}
2079 \begin{tabular}{|c|c|p{7cm}|}
2080 \hline
2081 {\bf type} & {\bf name} & {\bf description} \\ \hline
2082 {\tt VM ref } & self & reference to the object \\ \hline
2084 \end{tabular}
2086 \vspace{0.3cm}
2088 \noindent {\bf Return Type:}
2089 {\tt
2090 string
2094 value of the field
2095 \vspace{0.3cm}
2096 \vspace{0.3cm}
2097 \vspace{0.3cm}
2098 \subsubsection{RPC name:~get\_power\_state}
2100 {\bf Overview:}
2101 Get the power\_state field of the given VM.
2103 \noindent {\bf Signature:}
2104 \begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
2107 \noindent{\bf Arguments:}
2110 \vspace{0.3cm}
2111 \begin{tabular}{|c|c|p{7cm}|}
2112 \hline
2113 {\bf type} & {\bf name} & {\bf description} \\ \hline
2114 {\tt VM ref } & self & reference to the object \\ \hline
2116 \end{tabular}
2118 \vspace{0.3cm}
2120 \noindent {\bf Return Type:}
2121 {\tt
2122 vm\_power\_state
2126 value of the field
2127 \vspace{0.3cm}
2128 \vspace{0.3cm}
2129 \vspace{0.3cm}
2130 \subsubsection{RPC name:~get\_name\_label}
2132 {\bf Overview:}
2133 Get the name/label field of the given VM.
2135 \noindent {\bf Signature:}
2136 \begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
2139 \noindent{\bf Arguments:}
2142 \vspace{0.3cm}
2143 \begin{tabular}{|c|c|p{7cm}|}
2144 \hline
2145 {\bf type} & {\bf name} & {\bf description} \\ \hline
2146 {\tt VM ref } & self & reference to the object \\ \hline
2148 \end{tabular}
2150 \vspace{0.3cm}
2152 \noindent {\bf Return Type:}
2153 {\tt
2154 string
2158 value of the field
2159 \vspace{0.3cm}
2160 \vspace{0.3cm}
2161 \vspace{0.3cm}
2162 \subsubsection{RPC name:~set\_name\_label}
2164 {\bf Overview:}
2165 Set the name/label field of the given VM.
2167 \noindent {\bf Signature:}
2168 \begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
2171 \noindent{\bf Arguments:}
2174 \vspace{0.3cm}
2175 \begin{tabular}{|c|c|p{7cm}|}
2176 \hline
2177 {\bf type} & {\bf name} & {\bf description} \\ \hline
2178 {\tt VM ref } & self & reference to the object \\ \hline
2180 {\tt string } & value & New value to set \\ \hline
2182 \end{tabular}
2184 \vspace{0.3cm}
2186 \noindent {\bf Return Type:}
2187 {\tt
2188 void
2193 \vspace{0.3cm}
2194 \vspace{0.3cm}
2195 \vspace{0.3cm}
2196 \subsubsection{RPC name:~get\_name\_description}
2198 {\bf Overview:}
2199 Get the name/description field of the given VM.
2201 \noindent {\bf Signature:}
2202 \begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
2205 \noindent{\bf Arguments:}
2208 \vspace{0.3cm}
2209 \begin{tabular}{|c|c|p{7cm}|}
2210 \hline
2211 {\bf type} & {\bf name} & {\bf description} \\ \hline
2212 {\tt VM ref } & self & reference to the object \\ \hline
2214 \end{tabular}
2216 \vspace{0.3cm}
2218 \noindent {\bf Return Type:}
2219 {\tt
2220 string
2224 value of the field
2225 \vspace{0.3cm}
2226 \vspace{0.3cm}
2227 \vspace{0.3cm}
2228 \subsubsection{RPC name:~set\_name\_description}
2230 {\bf Overview:}
2231 Set the name/description field of the given VM.
2233 \noindent {\bf Signature:}
2234 \begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
2237 \noindent{\bf Arguments:}
2240 \vspace{0.3cm}
2241 \begin{tabular}{|c|c|p{7cm}|}
2242 \hline
2243 {\bf type} & {\bf name} & {\bf description} \\ \hline
2244 {\tt VM ref } & self & reference to the object \\ \hline
2246 {\tt string } & value & New value to set \\ \hline
2248 \end{tabular}
2250 \vspace{0.3cm}
2252 \noindent {\bf Return Type:}
2253 {\tt
2254 void
2259 \vspace{0.3cm}
2260 \vspace{0.3cm}
2261 \vspace{0.3cm}
2262 \subsubsection{RPC name:~get\_user\_version}
2264 {\bf Overview:}
2265 Get the user\_version field of the given VM.
2267 \noindent {\bf Signature:}
2268 \begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
2271 \noindent{\bf Arguments:}
2274 \vspace{0.3cm}
2275 \begin{tabular}{|c|c|p{7cm}|}
2276 \hline
2277 {\bf type} & {\bf name} & {\bf description} \\ \hline
2278 {\tt VM ref } & self & reference to the object \\ \hline
2280 \end{tabular}
2282 \vspace{0.3cm}
2284 \noindent {\bf Return Type:}
2285 {\tt
2286 int
2290 value of the field
2291 \vspace{0.3cm}
2292 \vspace{0.3cm}
2293 \vspace{0.3cm}
2294 \subsubsection{RPC name:~set\_user\_version}
2296 {\bf Overview:}
2297 Set the user\_version field of the given VM.
2299 \noindent {\bf Signature:}
2300 \begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
2303 \noindent{\bf Arguments:}
2306 \vspace{0.3cm}
2307 \begin{tabular}{|c|c|p{7cm}|}
2308 \hline
2309 {\bf type} & {\bf name} & {\bf description} \\ \hline
2310 {\tt VM ref } & self & reference to the object \\ \hline
2312 {\tt int } & value & New value to set \\ \hline
2314 \end{tabular}
2316 \vspace{0.3cm}
2318 \noindent {\bf Return Type:}
2319 {\tt
2320 void
2325 \vspace{0.3cm}
2326 \vspace{0.3cm}
2327 \vspace{0.3cm}
2328 \subsubsection{RPC name:~get\_is\_a\_template}
2330 {\bf Overview:}
2331 Get the is\_a\_template field of the given VM.
2333 \noindent {\bf Signature:}
2334 \begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
2337 \noindent{\bf Arguments:}
2340 \vspace{0.3cm}
2341 \begin{tabular}{|c|c|p{7cm}|}
2342 \hline
2343 {\bf type} & {\bf name} & {\bf description} \\ \hline
2344 {\tt VM ref } & self & reference to the object \\ \hline
2346 \end{tabular}
2348 \vspace{0.3cm}
2350 \noindent {\bf Return Type:}
2351 {\tt
2352 bool
2356 value of the field
2357 \vspace{0.3cm}
2358 \vspace{0.3cm}
2359 \vspace{0.3cm}
2360 \subsubsection{RPC name:~set\_is\_a\_template}
2362 {\bf Overview:}
2363 Set the is\_a\_template field of the given VM.
2365 \noindent {\bf Signature:}
2366 \begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
2369 \noindent{\bf Arguments:}
2372 \vspace{0.3cm}
2373 \begin{tabular}{|c|c|p{7cm}|}
2374 \hline
2375 {\bf type} & {\bf name} & {\bf description} \\ \hline
2376 {\tt VM ref } & self & reference to the object \\ \hline
2378 {\tt bool } & value & New value to set \\ \hline
2380 \end{tabular}
2382 \vspace{0.3cm}
2384 \noindent {\bf Return Type:}
2385 {\tt
2386 void
2391 \vspace{0.3cm}
2392 \vspace{0.3cm}
2393 \vspace{0.3cm}
2394 \subsubsection{RPC name:~get\_auto\_power\_on}
2396 {\bf Overview:}
2397 Get the auto\_power\_on field of the given VM.
2399 \noindent {\bf Signature:}
2400 \begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
2403 \noindent{\bf Arguments:}
2406 \vspace{0.3cm}
2407 \begin{tabular}{|c|c|p{7cm}|}
2408 \hline
2409 {\bf type} & {\bf name} & {\bf description} \\ \hline
2410 {\tt VM ref } & self & reference to the object \\ \hline
2412 \end{tabular}
2414 \vspace{0.3cm}
2416 \noindent {\bf Return Type:}
2417 {\tt
2418 bool
2422 value of the field
2423 \vspace{0.3cm}
2424 \vspace{0.3cm}
2425 \vspace{0.3cm}
2426 \subsubsection{RPC name:~set\_auto\_power\_on}
2428 {\bf Overview:}
2429 Set the auto\_power\_on field of the given VM.
2431 \noindent {\bf Signature:}
2432 \begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
2435 \noindent{\bf Arguments:}
2438 \vspace{0.3cm}
2439 \begin{tabular}{|c|c|p{7cm}|}
2440 \hline
2441 {\bf type} & {\bf name} & {\bf description} \\ \hline
2442 {\tt VM ref } & self & reference to the object \\ \hline
2444 {\tt bool } & value & New value to set \\ \hline
2446 \end{tabular}
2448 \vspace{0.3cm}
2450 \noindent {\bf Return Type:}
2451 {\tt
2452 void
2457 \vspace{0.3cm}
2458 \vspace{0.3cm}
2459 \vspace{0.3cm}
2460 \subsubsection{RPC name:~get\_suspend\_VDI}
2462 {\bf Overview:}
2463 Get the suspend\_VDI field of the given VM.
2465 \noindent {\bf Signature:}
2466 \begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
2469 \noindent{\bf Arguments:}
2472 \vspace{0.3cm}
2473 \begin{tabular}{|c|c|p{7cm}|}
2474 \hline
2475 {\bf type} & {\bf name} & {\bf description} \\ \hline
2476 {\tt VM ref } & self & reference to the object \\ \hline
2478 \end{tabular}
2480 \vspace{0.3cm}
2482 \noindent {\bf Return Type:}
2483 {\tt
2484 VDI ref
2488 value of the field
2489 \vspace{0.3cm}
2490 \vspace{0.3cm}
2491 \vspace{0.3cm}
2492 \subsubsection{RPC name:~get\_resident\_on}
2494 {\bf Overview:}
2495 Get the resident\_on field of the given VM.
2497 \noindent {\bf Signature:}
2498 \begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
2501 \noindent{\bf Arguments:}
2504 \vspace{0.3cm}
2505 \begin{tabular}{|c|c|p{7cm}|}
2506 \hline
2507 {\bf type} & {\bf name} & {\bf description} \\ \hline
2508 {\tt VM ref } & self & reference to the object \\ \hline
2510 \end{tabular}
2512 \vspace{0.3cm}
2514 \noindent {\bf Return Type:}
2515 {\tt
2516 host ref
2520 value of the field
2521 \vspace{0.3cm}
2522 \vspace{0.3cm}
2523 \vspace{0.3cm}
2524 \subsubsection{RPC name:~get\_memory\_static\_max}
2526 {\bf Overview:}
2527 Get the memory/static\_max field of the given VM.
2529 \noindent {\bf Signature:}
2530 \begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
2533 \noindent{\bf Arguments:}
2536 \vspace{0.3cm}
2537 \begin{tabular}{|c|c|p{7cm}|}
2538 \hline
2539 {\bf type} & {\bf name} & {\bf description} \\ \hline
2540 {\tt VM ref } & self & reference to the object \\ \hline
2542 \end{tabular}
2544 \vspace{0.3cm}
2546 \noindent {\bf Return Type:}
2547 {\tt
2548 int
2552 value of the field
2553 \vspace{0.3cm}
2554 \vspace{0.3cm}
2555 \vspace{0.3cm}
2556 \subsubsection{RPC name:~set\_memory\_static\_max}
2558 {\bf Overview:}
2559 Set the memory/static\_max field of the given VM.
2561 \noindent {\bf Signature:}
2562 \begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
2565 \noindent{\bf Arguments:}
2568 \vspace{0.3cm}
2569 \begin{tabular}{|c|c|p{7cm}|}
2570 \hline
2571 {\bf type} & {\bf name} & {\bf description} \\ \hline
2572 {\tt VM ref } & self & reference to the object \\ \hline
2574 {\tt int } & value & New value to set \\ \hline
2576 \end{tabular}
2578 \vspace{0.3cm}
2580 \noindent {\bf Return Type:}
2581 {\tt
2582 void
2587 \vspace{0.3cm}
2588 \vspace{0.3cm}
2589 \vspace{0.3cm}
2590 \subsubsection{RPC name:~get\_memory\_dynamic\_max}
2592 {\bf Overview:}
2593 Get the memory/dynamic\_max field of the given VM.
2595 \noindent {\bf Signature:}
2596 \begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
2599 \noindent{\bf Arguments:}
2602 \vspace{0.3cm}
2603 \begin{tabular}{|c|c|p{7cm}|}
2604 \hline
2605 {\bf type} & {\bf name} & {\bf description} \\ \hline
2606 {\tt VM ref } & self & reference to the object \\ \hline
2608 \end{tabular}
2610 \vspace{0.3cm}
2612 \noindent {\bf Return Type:}
2613 {\tt
2614 int
2618 value of the field
2619 \vspace{0.3cm}
2620 \vspace{0.3cm}
2621 \vspace{0.3cm}
2622 \subsubsection{RPC name:~set\_memory\_dynamic\_max}
2624 {\bf Overview:}
2625 Set the memory/dynamic\_max field of the given VM.
2627 \noindent {\bf Signature:}
2628 \begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2631 \noindent{\bf Arguments:}
2634 \vspace{0.3cm}
2635 \begin{tabular}{|c|c|p{7cm}|}
2636 \hline
2637 {\bf type} & {\bf name} & {\bf description} \\ \hline
2638 {\tt VM ref } & self & reference to the object \\ \hline
2640 {\tt int } & value & New value to set \\ \hline
2642 \end{tabular}
2644 \vspace{0.3cm}
2646 \noindent {\bf Return Type:}
2647 {\tt
2648 void
2653 \vspace{0.3cm}
2654 \vspace{0.3cm}
2655 \vspace{0.3cm}
2656 \subsubsection{RPC name:~get\_memory\_dynamic\_min}
2658 {\bf Overview:}
2659 Get the memory/dynamic\_min field of the given VM.
2661 \noindent {\bf Signature:}
2662 \begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2665 \noindent{\bf Arguments:}
2668 \vspace{0.3cm}
2669 \begin{tabular}{|c|c|p{7cm}|}
2670 \hline
2671 {\bf type} & {\bf name} & {\bf description} \\ \hline
2672 {\tt VM ref } & self & reference to the object \\ \hline
2674 \end{tabular}
2676 \vspace{0.3cm}
2678 \noindent {\bf Return Type:}
2679 {\tt
2680 int
2684 value of the field
2685 \vspace{0.3cm}
2686 \vspace{0.3cm}
2687 \vspace{0.3cm}
2688 \subsubsection{RPC name:~set\_memory\_dynamic\_min}
2690 {\bf Overview:}
2691 Set the memory/dynamic\_min field of the given VM.
2693 \noindent {\bf Signature:}
2694 \begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2697 \noindent{\bf Arguments:}
2700 \vspace{0.3cm}
2701 \begin{tabular}{|c|c|p{7cm}|}
2702 \hline
2703 {\bf type} & {\bf name} & {\bf description} \\ \hline
2704 {\tt VM ref } & self & reference to the object \\ \hline
2706 {\tt int } & value & New value to set \\ \hline
2708 \end{tabular}
2710 \vspace{0.3cm}
2712 \noindent {\bf Return Type:}
2713 {\tt
2714 void
2719 \vspace{0.3cm}
2720 \vspace{0.3cm}
2721 \vspace{0.3cm}
2722 \subsubsection{RPC name:~get\_memory\_static\_min}
2724 {\bf Overview:}
2725 Get the memory/static\_min field of the given VM.
2727 \noindent {\bf Signature:}
2728 \begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2731 \noindent{\bf Arguments:}
2734 \vspace{0.3cm}
2735 \begin{tabular}{|c|c|p{7cm}|}
2736 \hline
2737 {\bf type} & {\bf name} & {\bf description} \\ \hline
2738 {\tt VM ref } & self & reference to the object \\ \hline
2740 \end{tabular}
2742 \vspace{0.3cm}
2744 \noindent {\bf Return Type:}
2745 {\tt
2746 int
2750 value of the field
2751 \vspace{0.3cm}
2752 \vspace{0.3cm}
2753 \vspace{0.3cm}
2754 \subsubsection{RPC name:~set\_memory\_static\_min}
2756 {\bf Overview:}
2757 Set the memory/static\_min field of the given VM.
2759 \noindent {\bf Signature:}
2760 \begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
2763 \noindent{\bf Arguments:}
2766 \vspace{0.3cm}
2767 \begin{tabular}{|c|c|p{7cm}|}
2768 \hline
2769 {\bf type} & {\bf name} & {\bf description} \\ \hline
2770 {\tt VM ref } & self & reference to the object \\ \hline
2772 {\tt int } & value & New value to set \\ \hline
2774 \end{tabular}
2776 \vspace{0.3cm}
2778 \noindent {\bf Return Type:}
2779 {\tt
2780 void
2785 \vspace{0.3cm}
2786 \vspace{0.3cm}
2787 \vspace{0.3cm}
2788 \subsubsection{RPC name:~get\_VCPUs\_params}
2790 {\bf Overview:}
2791 Get the VCPUs/params field of the given VM.
2793 \noindent {\bf Signature:}
2794 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2797 \noindent{\bf Arguments:}
2800 \vspace{0.3cm}
2801 \begin{tabular}{|c|c|p{7cm}|}
2802 \hline
2803 {\bf type} & {\bf name} & {\bf description} \\ \hline
2804 {\tt VM ref } & self & reference to the object \\ \hline
2806 \end{tabular}
2808 \vspace{0.3cm}
2810 \noindent {\bf Return Type:}
2811 {\tt
2812 (string $\rightarrow$ string) Map
2816 value of the field
2817 \vspace{0.3cm}
2818 \vspace{0.3cm}
2819 \vspace{0.3cm}
2820 \subsubsection{RPC name:~set\_VCPUs\_params}
2822 {\bf Overview:}
2823 Set the VCPUs/params field of the given VM.
2825 \noindent {\bf Signature:}
2826 \begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
2829 \noindent{\bf Arguments:}
2832 \vspace{0.3cm}
2833 \begin{tabular}{|c|c|p{7cm}|}
2834 \hline
2835 {\bf type} & {\bf name} & {\bf description} \\ \hline
2836 {\tt VM ref } & self & reference to the object \\ \hline
2838 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
2840 \end{tabular}
2842 \vspace{0.3cm}
2844 \noindent {\bf Return Type:}
2845 {\tt
2846 void
2851 \vspace{0.3cm}
2852 \vspace{0.3cm}
2853 \vspace{0.3cm}
2854 \subsubsection{RPC name:~add\_to\_VCPUs\_params}
2856 {\bf Overview:}
2857 Add the given key-value pair to the VCPUs/params field of the given VM.
2859 \noindent {\bf Signature:}
2860 \begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
2863 \noindent{\bf Arguments:}
2866 \vspace{0.3cm}
2867 \begin{tabular}{|c|c|p{7cm}|}
2868 \hline
2869 {\bf type} & {\bf name} & {\bf description} \\ \hline
2870 {\tt VM ref } & self & reference to the object \\ \hline
2872 {\tt string } & key & Key to add \\ \hline
2874 {\tt string } & value & Value to add \\ \hline
2876 \end{tabular}
2878 \vspace{0.3cm}
2880 \noindent {\bf Return Type:}
2881 {\tt
2882 void
2887 \vspace{0.3cm}
2888 \vspace{0.3cm}
2889 \vspace{0.3cm}
2890 \subsubsection{RPC name:~remove\_from\_VCPUs\_params}
2892 {\bf Overview:}
2893 Remove the given key and its corresponding value from the VCPUs/params
2894 field of the given VM. If the key is not in that Map, then do nothing.
2896 \noindent {\bf Signature:}
2897 \begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
2900 \noindent{\bf Arguments:}
2903 \vspace{0.3cm}
2904 \begin{tabular}{|c|c|p{7cm}|}
2905 \hline
2906 {\bf type} & {\bf name} & {\bf description} \\ \hline
2907 {\tt VM ref } & self & reference to the object \\ \hline
2909 {\tt string } & key & Key to remove \\ \hline
2911 \end{tabular}
2913 \vspace{0.3cm}
2915 \noindent {\bf Return Type:}
2916 {\tt
2917 void
2922 \vspace{0.3cm}
2923 \vspace{0.3cm}
2924 \vspace{0.3cm}
2925 \subsubsection{RPC name:~get\_VCPUs\_max}
2927 {\bf Overview:}
2928 Get the VCPUs/max field of the given VM.
2930 \noindent {\bf Signature:}
2931 \begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
2934 \noindent{\bf Arguments:}
2937 \vspace{0.3cm}
2938 \begin{tabular}{|c|c|p{7cm}|}
2939 \hline
2940 {\bf type} & {\bf name} & {\bf description} \\ \hline
2941 {\tt VM ref } & self & reference to the object \\ \hline
2943 \end{tabular}
2945 \vspace{0.3cm}
2947 \noindent {\bf Return Type:}
2948 {\tt
2949 int
2953 value of the field
2954 \vspace{0.3cm}
2955 \vspace{0.3cm}
2956 \vspace{0.3cm}
2957 \subsubsection{RPC name:~set\_VCPUs\_max}
2959 {\bf Overview:}
2960 Set the VCPUs/max field of the given VM.
2962 \noindent {\bf Signature:}
2963 \begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
2966 \noindent{\bf Arguments:}
2969 \vspace{0.3cm}
2970 \begin{tabular}{|c|c|p{7cm}|}
2971 \hline
2972 {\bf type} & {\bf name} & {\bf description} \\ \hline
2973 {\tt VM ref } & self & reference to the object \\ \hline
2975 {\tt int } & value & New value to set \\ \hline
2977 \end{tabular}
2979 \vspace{0.3cm}
2981 \noindent {\bf Return Type:}
2982 {\tt
2983 void
2988 \vspace{0.3cm}
2989 \vspace{0.3cm}
2990 \vspace{0.3cm}
2991 \subsubsection{RPC name:~get\_VCPUs\_at\_startup}
2993 {\bf Overview:}
2994 Get the VCPUs/at\_startup field of the given VM.
2996 \noindent {\bf Signature:}
2997 \begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
3000 \noindent{\bf Arguments:}
3003 \vspace{0.3cm}
3004 \begin{tabular}{|c|c|p{7cm}|}
3005 \hline
3006 {\bf type} & {\bf name} & {\bf description} \\ \hline
3007 {\tt VM ref } & self & reference to the object \\ \hline
3009 \end{tabular}
3011 \vspace{0.3cm}
3013 \noindent {\bf Return Type:}
3014 {\tt
3015 int
3019 value of the field
3020 \vspace{0.3cm}
3021 \vspace{0.3cm}
3022 \vspace{0.3cm}
3023 \subsubsection{RPC name:~set\_VCPUs\_at\_startup}
3025 {\bf Overview:}
3026 Set the VCPUs/at\_startup field of the given VM.
3028 \noindent {\bf Signature:}
3029 \begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
3032 \noindent{\bf Arguments:}
3035 \vspace{0.3cm}
3036 \begin{tabular}{|c|c|p{7cm}|}
3037 \hline
3038 {\bf type} & {\bf name} & {\bf description} \\ \hline
3039 {\tt VM ref } & self & reference to the object \\ \hline
3041 {\tt int } & value & New value to set \\ \hline
3043 \end{tabular}
3045 \vspace{0.3cm}
3047 \noindent {\bf Return Type:}
3048 {\tt
3049 void
3054 \vspace{0.3cm}
3055 \vspace{0.3cm}
3056 \vspace{0.3cm}
3057 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
3059 {\bf Overview:}
3060 Get the actions/after\_shutdown field of the given VM.
3062 \noindent {\bf Signature:}
3063 \begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
3066 \noindent{\bf Arguments:}
3069 \vspace{0.3cm}
3070 \begin{tabular}{|c|c|p{7cm}|}
3071 \hline
3072 {\bf type} & {\bf name} & {\bf description} \\ \hline
3073 {\tt VM ref } & self & reference to the object \\ \hline
3075 \end{tabular}
3077 \vspace{0.3cm}
3079 \noindent {\bf Return Type:}
3080 {\tt
3081 on\_normal\_exit
3085 value of the field
3086 \vspace{0.3cm}
3087 \vspace{0.3cm}
3088 \vspace{0.3cm}
3089 \subsubsection{RPC name:~set\_actions\_after\_shutdown}
3091 {\bf Overview:}
3092 Set the actions/after\_shutdown field of the given VM.
3094 \noindent {\bf Signature:}
3095 \begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3098 \noindent{\bf Arguments:}
3101 \vspace{0.3cm}
3102 \begin{tabular}{|c|c|p{7cm}|}
3103 \hline
3104 {\bf type} & {\bf name} & {\bf description} \\ \hline
3105 {\tt VM ref } & self & reference to the object \\ \hline
3107 {\tt on\_normal\_exit } & value & New value to set \\ \hline
3109 \end{tabular}
3111 \vspace{0.3cm}
3113 \noindent {\bf Return Type:}
3114 {\tt
3115 void
3120 \vspace{0.3cm}
3121 \vspace{0.3cm}
3122 \vspace{0.3cm}
3123 \subsubsection{RPC name:~get\_actions\_after\_reboot}
3125 {\bf Overview:}
3126 Get the actions/after\_reboot field of the given VM.
3128 \noindent {\bf Signature:}
3129 \begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
3132 \noindent{\bf Arguments:}
3135 \vspace{0.3cm}
3136 \begin{tabular}{|c|c|p{7cm}|}
3137 \hline
3138 {\bf type} & {\bf name} & {\bf description} \\ \hline
3139 {\tt VM ref } & self & reference to the object \\ \hline
3141 \end{tabular}
3143 \vspace{0.3cm}
3145 \noindent {\bf Return Type:}
3146 {\tt
3147 on\_normal\_exit
3151 value of the field
3152 \vspace{0.3cm}
3153 \vspace{0.3cm}
3154 \vspace{0.3cm}
3155 \subsubsection{RPC name:~set\_actions\_after\_reboot}
3157 {\bf Overview:}
3158 Set the actions/after\_reboot field of the given VM.
3160 \noindent {\bf Signature:}
3161 \begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
3164 \noindent{\bf Arguments:}
3167 \vspace{0.3cm}
3168 \begin{tabular}{|c|c|p{7cm}|}
3169 \hline
3170 {\bf type} & {\bf name} & {\bf description} \\ \hline
3171 {\tt VM ref } & self & reference to the object \\ \hline
3173 {\tt on\_normal\_exit } & value & New value to set \\ \hline
3175 \end{tabular}
3177 \vspace{0.3cm}
3179 \noindent {\bf Return Type:}
3180 {\tt
3181 void
3186 \vspace{0.3cm}
3187 \vspace{0.3cm}
3188 \vspace{0.3cm}
3189 \subsubsection{RPC name:~get\_actions\_after\_crash}
3191 {\bf Overview:}
3192 Get the actions/after\_crash field of the given VM.
3194 \noindent {\bf Signature:}
3195 \begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
3198 \noindent{\bf Arguments:}
3201 \vspace{0.3cm}
3202 \begin{tabular}{|c|c|p{7cm}|}
3203 \hline
3204 {\bf type} & {\bf name} & {\bf description} \\ \hline
3205 {\tt VM ref } & self & reference to the object \\ \hline
3207 \end{tabular}
3209 \vspace{0.3cm}
3211 \noindent {\bf Return Type:}
3212 {\tt
3213 on\_crash\_behaviour
3217 value of the field
3218 \vspace{0.3cm}
3219 \vspace{0.3cm}
3220 \vspace{0.3cm}
3221 \subsubsection{RPC name:~set\_actions\_after\_crash}
3223 {\bf Overview:}
3224 Set the actions/after\_crash field of the given VM.
3226 \noindent {\bf Signature:}
3227 \begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
3230 \noindent{\bf Arguments:}
3233 \vspace{0.3cm}
3234 \begin{tabular}{|c|c|p{7cm}|}
3235 \hline
3236 {\bf type} & {\bf name} & {\bf description} \\ \hline
3237 {\tt VM ref } & self & reference to the object \\ \hline
3239 {\tt on\_crash\_behaviour } & value & New value to set \\ \hline
3241 \end{tabular}
3243 \vspace{0.3cm}
3245 \noindent {\bf Return Type:}
3246 {\tt
3247 void
3252 \vspace{0.3cm}
3253 \vspace{0.3cm}
3254 \vspace{0.3cm}
3255 \subsubsection{RPC name:~get\_consoles}
3257 {\bf Overview:}
3258 Get the consoles field of the given VM.
3260 \noindent {\bf Signature:}
3261 \begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
3264 \noindent{\bf Arguments:}
3267 \vspace{0.3cm}
3268 \begin{tabular}{|c|c|p{7cm}|}
3269 \hline
3270 {\bf type} & {\bf name} & {\bf description} \\ \hline
3271 {\tt VM ref } & self & reference to the object \\ \hline
3273 \end{tabular}
3275 \vspace{0.3cm}
3277 \noindent {\bf Return Type:}
3278 {\tt
3279 (console ref) Set
3283 value of the field
3284 \vspace{0.3cm}
3285 \vspace{0.3cm}
3286 \vspace{0.3cm}
3287 \subsubsection{RPC name:~get\_VIFs}
3289 {\bf Overview:}
3290 Get the VIFs field of the given VM.
3292 \noindent {\bf Signature:}
3293 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
3296 \noindent{\bf Arguments:}
3299 \vspace{0.3cm}
3300 \begin{tabular}{|c|c|p{7cm}|}
3301 \hline
3302 {\bf type} & {\bf name} & {\bf description} \\ \hline
3303 {\tt VM ref } & self & reference to the object \\ \hline
3305 \end{tabular}
3307 \vspace{0.3cm}
3309 \noindent {\bf Return Type:}
3310 {\tt
3311 (VIF ref) Set
3315 value of the field
3316 \vspace{0.3cm}
3317 \vspace{0.3cm}
3318 \vspace{0.3cm}
3319 \subsubsection{RPC name:~get\_VBDs}
3321 {\bf Overview:}
3322 Get the VBDs field of the given VM.
3324 \noindent {\bf Signature:}
3325 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
3328 \noindent{\bf Arguments:}
3331 \vspace{0.3cm}
3332 \begin{tabular}{|c|c|p{7cm}|}
3333 \hline
3334 {\bf type} & {\bf name} & {\bf description} \\ \hline
3335 {\tt VM ref } & self & reference to the object \\ \hline
3337 \end{tabular}
3339 \vspace{0.3cm}
3341 \noindent {\bf Return Type:}
3342 {\tt
3343 (VBD ref) Set
3347 value of the field
3348 \vspace{0.3cm}
3349 \vspace{0.3cm}
3350 \vspace{0.3cm}
3351 \subsubsection{RPC name:~get\_crash\_dumps}
3353 {\bf Overview:}
3354 Get the crash\_dumps field of the given VM.
3356 \noindent {\bf Signature:}
3357 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
3360 \noindent{\bf Arguments:}
3363 \vspace{0.3cm}
3364 \begin{tabular}{|c|c|p{7cm}|}
3365 \hline
3366 {\bf type} & {\bf name} & {\bf description} \\ \hline
3367 {\tt VM ref } & self & reference to the object \\ \hline
3369 \end{tabular}
3371 \vspace{0.3cm}
3373 \noindent {\bf Return Type:}
3374 {\tt
3375 (crashdump ref) Set
3379 value of the field
3380 \vspace{0.3cm}
3381 \vspace{0.3cm}
3382 \vspace{0.3cm}
3383 \subsubsection{RPC name:~get\_VTPMs}
3385 {\bf Overview:}
3386 Get the VTPMs field of the given VM.
3388 \noindent {\bf Signature:}
3389 \begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
3392 \noindent{\bf Arguments:}
3395 \vspace{0.3cm}
3396 \begin{tabular}{|c|c|p{7cm}|}
3397 \hline
3398 {\bf type} & {\bf name} & {\bf description} \\ \hline
3399 {\tt VM ref } & self & reference to the object \\ \hline
3401 \end{tabular}
3403 \vspace{0.3cm}
3405 \noindent {\bf Return Type:}
3406 {\tt
3407 (VTPM ref) Set
3411 value of the field
3412 \vspace{0.3cm}
3413 \vspace{0.3cm}
3414 \vspace{0.3cm}
3415 \subsubsection{RPC name:~get\_PV\_bootloader}
3417 {\bf Overview:}
3418 Get the PV/bootloader field of the given VM.
3420 \noindent {\bf Signature:}
3421 \begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
3424 \noindent{\bf Arguments:}
3427 \vspace{0.3cm}
3428 \begin{tabular}{|c|c|p{7cm}|}
3429 \hline
3430 {\bf type} & {\bf name} & {\bf description} \\ \hline
3431 {\tt VM ref } & self & reference to the object \\ \hline
3433 \end{tabular}
3435 \vspace{0.3cm}
3437 \noindent {\bf Return Type:}
3438 {\tt
3439 string
3443 value of the field
3444 \vspace{0.3cm}
3445 \vspace{0.3cm}
3446 \vspace{0.3cm}
3447 \subsubsection{RPC name:~set\_PV\_bootloader}
3449 {\bf Overview:}
3450 Set the PV/bootloader field of the given VM.
3452 \noindent {\bf Signature:}
3453 \begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
3456 \noindent{\bf Arguments:}
3459 \vspace{0.3cm}
3460 \begin{tabular}{|c|c|p{7cm}|}
3461 \hline
3462 {\bf type} & {\bf name} & {\bf description} \\ \hline
3463 {\tt VM ref } & self & reference to the object \\ \hline
3465 {\tt string } & value & New value to set \\ \hline
3467 \end{tabular}
3469 \vspace{0.3cm}
3471 \noindent {\bf Return Type:}
3472 {\tt
3473 void
3478 \vspace{0.3cm}
3479 \vspace{0.3cm}
3480 \vspace{0.3cm}
3481 \subsubsection{RPC name:~get\_PV\_kernel}
3483 {\bf Overview:}
3484 Get the PV/kernel field of the given VM.
3486 \noindent {\bf Signature:}
3487 \begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
3490 \noindent{\bf Arguments:}
3493 \vspace{0.3cm}
3494 \begin{tabular}{|c|c|p{7cm}|}
3495 \hline
3496 {\bf type} & {\bf name} & {\bf description} \\ \hline
3497 {\tt VM ref } & self & reference to the object \\ \hline
3499 \end{tabular}
3501 \vspace{0.3cm}
3503 \noindent {\bf Return Type:}
3504 {\tt
3505 string
3509 value of the field
3510 \vspace{0.3cm}
3511 \vspace{0.3cm}
3512 \vspace{0.3cm}
3513 \subsubsection{RPC name:~set\_PV\_kernel}
3515 {\bf Overview:}
3516 Set the PV/kernel field of the given VM.
3518 \noindent {\bf Signature:}
3519 \begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3522 \noindent{\bf Arguments:}
3525 \vspace{0.3cm}
3526 \begin{tabular}{|c|c|p{7cm}|}
3527 \hline
3528 {\bf type} & {\bf name} & {\bf description} \\ \hline
3529 {\tt VM ref } & self & reference to the object \\ \hline
3531 {\tt string } & value & New value to set \\ \hline
3533 \end{tabular}
3535 \vspace{0.3cm}
3537 \noindent {\bf Return Type:}
3538 {\tt
3539 void
3544 \vspace{0.3cm}
3545 \vspace{0.3cm}
3546 \vspace{0.3cm}
3547 \subsubsection{RPC name:~get\_PV\_ramdisk}
3549 {\bf Overview:}
3550 Get the PV/ramdisk field of the given VM.
3552 \noindent {\bf Signature:}
3553 \begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3556 \noindent{\bf Arguments:}
3559 \vspace{0.3cm}
3560 \begin{tabular}{|c|c|p{7cm}|}
3561 \hline
3562 {\bf type} & {\bf name} & {\bf description} \\ \hline
3563 {\tt VM ref } & self & reference to the object \\ \hline
3565 \end{tabular}
3567 \vspace{0.3cm}
3569 \noindent {\bf Return Type:}
3570 {\tt
3571 string
3575 value of the field
3576 \vspace{0.3cm}
3577 \vspace{0.3cm}
3578 \vspace{0.3cm}
3579 \subsubsection{RPC name:~set\_PV\_ramdisk}
3581 {\bf Overview:}
3582 Set the PV/ramdisk field of the given VM.
3584 \noindent {\bf Signature:}
3585 \begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3588 \noindent{\bf Arguments:}
3591 \vspace{0.3cm}
3592 \begin{tabular}{|c|c|p{7cm}|}
3593 \hline
3594 {\bf type} & {\bf name} & {\bf description} \\ \hline
3595 {\tt VM ref } & self & reference to the object \\ \hline
3597 {\tt string } & value & New value to set \\ \hline
3599 \end{tabular}
3601 \vspace{0.3cm}
3603 \noindent {\bf Return Type:}
3604 {\tt
3605 void
3610 \vspace{0.3cm}
3611 \vspace{0.3cm}
3612 \vspace{0.3cm}
3613 \subsubsection{RPC name:~get\_PV\_args}
3615 {\bf Overview:}
3616 Get the PV/args field of the given VM.
3618 \noindent {\bf Signature:}
3619 \begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3622 \noindent{\bf Arguments:}
3625 \vspace{0.3cm}
3626 \begin{tabular}{|c|c|p{7cm}|}
3627 \hline
3628 {\bf type} & {\bf name} & {\bf description} \\ \hline
3629 {\tt VM ref } & self & reference to the object \\ \hline
3631 \end{tabular}
3633 \vspace{0.3cm}
3635 \noindent {\bf Return Type:}
3636 {\tt
3637 string
3641 value of the field
3642 \vspace{0.3cm}
3643 \vspace{0.3cm}
3644 \vspace{0.3cm}
3645 \subsubsection{RPC name:~set\_PV\_args}
3647 {\bf Overview:}
3648 Set the PV/args field of the given VM.
3650 \noindent {\bf Signature:}
3651 \begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3654 \noindent{\bf Arguments:}
3657 \vspace{0.3cm}
3658 \begin{tabular}{|c|c|p{7cm}|}
3659 \hline
3660 {\bf type} & {\bf name} & {\bf description} \\ \hline
3661 {\tt VM ref } & self & reference to the object \\ \hline
3663 {\tt string } & value & New value to set \\ \hline
3665 \end{tabular}
3667 \vspace{0.3cm}
3669 \noindent {\bf Return Type:}
3670 {\tt
3671 void
3676 \vspace{0.3cm}
3677 \vspace{0.3cm}
3678 \vspace{0.3cm}
3679 \subsubsection{RPC name:~get\_PV\_bootloader\_args}
3681 {\bf Overview:}
3682 Get the PV/bootloader\_args field of the given VM.
3684 \noindent {\bf Signature:}
3685 \begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3688 \noindent{\bf Arguments:}
3691 \vspace{0.3cm}
3692 \begin{tabular}{|c|c|p{7cm}|}
3693 \hline
3694 {\bf type} & {\bf name} & {\bf description} \\ \hline
3695 {\tt VM ref } & self & reference to the object \\ \hline
3697 \end{tabular}
3699 \vspace{0.3cm}
3701 \noindent {\bf Return Type:}
3702 {\tt
3703 string
3707 value of the field
3708 \vspace{0.3cm}
3709 \vspace{0.3cm}
3710 \vspace{0.3cm}
3711 \subsubsection{RPC name:~set\_PV\_bootloader\_args}
3713 {\bf Overview:}
3714 Set the PV/bootloader\_args field of the given VM.
3716 \noindent {\bf Signature:}
3717 \begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3720 \noindent{\bf Arguments:}
3723 \vspace{0.3cm}
3724 \begin{tabular}{|c|c|p{7cm}|}
3725 \hline
3726 {\bf type} & {\bf name} & {\bf description} \\ \hline
3727 {\tt VM ref } & self & reference to the object \\ \hline
3729 {\tt string } & value & New value to set \\ \hline
3731 \end{tabular}
3733 \vspace{0.3cm}
3735 \noindent {\bf Return Type:}
3736 {\tt
3737 void
3742 \vspace{0.3cm}
3743 \vspace{0.3cm}
3744 \vspace{0.3cm}
3745 \subsubsection{RPC name:~get\_HVM\_boot\_policy}
3747 {\bf Overview:}
3748 Get the HVM/boot\_policy field of the given VM.
3750 \noindent {\bf Signature:}
3751 \begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
3754 \noindent{\bf Arguments:}
3757 \vspace{0.3cm}
3758 \begin{tabular}{|c|c|p{7cm}|}
3759 \hline
3760 {\bf type} & {\bf name} & {\bf description} \\ \hline
3761 {\tt VM ref } & self & reference to the object \\ \hline
3763 \end{tabular}
3765 \vspace{0.3cm}
3767 \noindent {\bf Return Type:}
3768 {\tt
3769 string
3773 value of the field
3774 \vspace{0.3cm}
3775 \vspace{0.3cm}
3776 \vspace{0.3cm}
3777 \subsubsection{RPC name:~set\_HVM\_boot\_policy}
3779 {\bf Overview:}
3780 Set the HVM/boot\_policy field of the given VM.
3782 \noindent {\bf Signature:}
3783 \begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
3786 \noindent{\bf Arguments:}
3789 \vspace{0.3cm}
3790 \begin{tabular}{|c|c|p{7cm}|}
3791 \hline
3792 {\bf type} & {\bf name} & {\bf description} \\ \hline
3793 {\tt VM ref } & self & reference to the object \\ \hline
3795 {\tt string } & value & New value to set \\ \hline
3797 \end{tabular}
3799 \vspace{0.3cm}
3801 \noindent {\bf Return Type:}
3802 {\tt
3803 void
3808 \vspace{0.3cm}
3809 \vspace{0.3cm}
3810 \vspace{0.3cm}
3811 \subsubsection{RPC name:~get\_HVM\_boot\_params}
3813 {\bf Overview:}
3814 Get the HVM/boot\_params field of the given VM.
3816 \noindent {\bf Signature:}
3817 \begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
3820 \noindent{\bf Arguments:}
3823 \vspace{0.3cm}
3824 \begin{tabular}{|c|c|p{7cm}|}
3825 \hline
3826 {\bf type} & {\bf name} & {\bf description} \\ \hline
3827 {\tt VM ref } & self & reference to the object \\ \hline
3829 \end{tabular}
3831 \vspace{0.3cm}
3833 \noindent {\bf Return Type:}
3834 {\tt
3835 (string $\rightarrow$ string) Map
3839 value of the field
3840 \vspace{0.3cm}
3841 \vspace{0.3cm}
3842 \vspace{0.3cm}
3843 \subsubsection{RPC name:~set\_HVM\_boot\_params}
3845 {\bf Overview:}
3846 Set the HVM/boot\_params field of the given VM.
3848 \noindent {\bf Signature:}
3849 \begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3852 \noindent{\bf Arguments:}
3855 \vspace{0.3cm}
3856 \begin{tabular}{|c|c|p{7cm}|}
3857 \hline
3858 {\bf type} & {\bf name} & {\bf description} \\ \hline
3859 {\tt VM ref } & self & reference to the object \\ \hline
3861 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3863 \end{tabular}
3865 \vspace{0.3cm}
3867 \noindent {\bf Return Type:}
3868 {\tt
3869 void
3874 \vspace{0.3cm}
3875 \vspace{0.3cm}
3876 \vspace{0.3cm}
3877 \subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
3879 {\bf Overview:}
3880 Add the given key-value pair to the HVM/boot\_params field of the given VM.
3882 \noindent {\bf Signature:}
3883 \begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
3886 \noindent{\bf Arguments:}
3889 \vspace{0.3cm}
3890 \begin{tabular}{|c|c|p{7cm}|}
3891 \hline
3892 {\bf type} & {\bf name} & {\bf description} \\ \hline
3893 {\tt VM ref } & self & reference to the object \\ \hline
3895 {\tt string } & key & Key to add \\ \hline
3897 {\tt string } & value & Value to add \\ \hline
3899 \end{tabular}
3901 \vspace{0.3cm}
3903 \noindent {\bf Return Type:}
3904 {\tt
3905 void
3910 \vspace{0.3cm}
3911 \vspace{0.3cm}
3912 \vspace{0.3cm}
3913 \subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
3915 {\bf Overview:}
3916 Remove the given key and its corresponding value from the HVM/boot\_params
3917 field of the given VM. If the key is not in that Map, then do nothing.
3919 \noindent {\bf Signature:}
3920 \begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
3923 \noindent{\bf Arguments:}
3926 \vspace{0.3cm}
3927 \begin{tabular}{|c|c|p{7cm}|}
3928 \hline
3929 {\bf type} & {\bf name} & {\bf description} \\ \hline
3930 {\tt VM ref } & self & reference to the object \\ \hline
3932 {\tt string } & key & Key to remove \\ \hline
3934 \end{tabular}
3936 \vspace{0.3cm}
3938 \noindent {\bf Return Type:}
3939 {\tt
3940 void
3945 \vspace{0.3cm}
3946 \vspace{0.3cm}
3947 \vspace{0.3cm}
3948 \subsubsection{RPC name:~get\_platform}
3950 {\bf Overview:}
3951 Get the platform field of the given VM.
3953 \noindent {\bf Signature:}
3954 \begin{verbatim} ((string -> string) Map) get_platform (session_id s, VM ref self)\end{verbatim}
3957 \noindent{\bf Arguments:}
3960 \vspace{0.3cm}
3961 \begin{tabular}{|c|c|p{7cm}|}
3962 \hline
3963 {\bf type} & {\bf name} & {\bf description} \\ \hline
3964 {\tt VM ref } & self & reference to the object \\ \hline
3966 \end{tabular}
3968 \vspace{0.3cm}
3970 \noindent {\bf Return Type:}
3971 {\tt
3972 (string $\rightarrow$ string) Map
3976 value of the field
3977 \vspace{0.3cm}
3978 \vspace{0.3cm}
3979 \vspace{0.3cm}
3980 \subsubsection{RPC name:~set\_platform}
3982 {\bf Overview:}
3983 Set the platform field of the given VM.
3985 \noindent {\bf Signature:}
3986 \begin{verbatim} void set_platform (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3989 \noindent{\bf Arguments:}
3992 \vspace{0.3cm}
3993 \begin{tabular}{|c|c|p{7cm}|}
3994 \hline
3995 {\bf type} & {\bf name} & {\bf description} \\ \hline
3996 {\tt VM ref } & self & reference to the object \\ \hline
3998 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4000 \end{tabular}
4002 \vspace{0.3cm}
4004 \noindent {\bf Return Type:}
4005 {\tt
4006 void
4011 \vspace{0.3cm}
4012 \vspace{0.3cm}
4013 \vspace{0.3cm}
4014 \subsubsection{RPC name:~add\_to\_platform}
4016 {\bf Overview:}
4017 Add the given key-value pair to the platform field of the given VM.
4019 \noindent {\bf Signature:}
4020 \begin{verbatim} void add_to_platform (session_id s, VM ref self, string key, string value)\end{verbatim}
4023 \noindent{\bf Arguments:}
4026 \vspace{0.3cm}
4027 \begin{tabular}{|c|c|p{7cm}|}
4028 \hline
4029 {\bf type} & {\bf name} & {\bf description} \\ \hline
4030 {\tt VM ref } & self & reference to the object \\ \hline
4032 {\tt string } & key & Key to add \\ \hline
4034 {\tt string } & value & Value to add \\ \hline
4036 \end{tabular}
4038 \vspace{0.3cm}
4040 \noindent {\bf Return Type:}
4041 {\tt
4042 void
4047 \vspace{0.3cm}
4048 \vspace{0.3cm}
4049 \vspace{0.3cm}
4050 \subsubsection{RPC name:~remove\_from\_platform}
4052 {\bf Overview:}
4053 Remove the given key and its corresponding value from the platform field of
4054 the given VM. If the key is not in that Map, then do nothing.
4056 \noindent {\bf Signature:}
4057 \begin{verbatim} void remove_from_platform (session_id s, VM ref self, string key)\end{verbatim}
4060 \noindent{\bf Arguments:}
4063 \vspace{0.3cm}
4064 \begin{tabular}{|c|c|p{7cm}|}
4065 \hline
4066 {\bf type} & {\bf name} & {\bf description} \\ \hline
4067 {\tt VM ref } & self & reference to the object \\ \hline
4069 {\tt string } & key & Key to remove \\ \hline
4071 \end{tabular}
4073 \vspace{0.3cm}
4075 \noindent {\bf Return Type:}
4076 {\tt
4077 void
4082 \vspace{0.3cm}
4083 \vspace{0.3cm}
4084 \vspace{0.3cm}
4085 \subsubsection{RPC name:~get\_PCI\_bus}
4087 {\bf Overview:}
4088 Get the PCI\_bus field of the given VM.
4090 \noindent {\bf Signature:}
4091 \begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
4094 \noindent{\bf Arguments:}
4097 \vspace{0.3cm}
4098 \begin{tabular}{|c|c|p{7cm}|}
4099 \hline
4100 {\bf type} & {\bf name} & {\bf description} \\ \hline
4101 {\tt VM ref } & self & reference to the object \\ \hline
4103 \end{tabular}
4105 \vspace{0.3cm}
4107 \noindent {\bf Return Type:}
4108 {\tt
4109 string
4113 value of the field
4114 \vspace{0.3cm}
4115 \vspace{0.3cm}
4116 \vspace{0.3cm}
4117 \subsubsection{RPC name:~set\_PCI\_bus}
4119 {\bf Overview:}
4120 Set the PCI\_bus field of the given VM.
4122 \noindent {\bf Signature:}
4123 \begin{verbatim} void set_PCI_bus (session_id s, VM ref self, string value)\end{verbatim}
4126 \noindent{\bf Arguments:}
4129 \vspace{0.3cm}
4130 \begin{tabular}{|c|c|p{7cm}|}
4131 \hline
4132 {\bf type} & {\bf name} & {\bf description} \\ \hline
4133 {\tt VM ref } & self & reference to the object \\ \hline
4135 {\tt string } & value & New value to set \\ \hline
4137 \end{tabular}
4139 \vspace{0.3cm}
4141 \noindent {\bf Return Type:}
4142 {\tt
4143 void
4148 \vspace{0.3cm}
4149 \vspace{0.3cm}
4150 \vspace{0.3cm}
4151 \subsubsection{RPC name:~get\_other\_config}
4153 {\bf Overview:}
4154 Get the other\_config field of the given VM.
4156 \noindent {\bf Signature:}
4157 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
4160 \noindent{\bf Arguments:}
4163 \vspace{0.3cm}
4164 \begin{tabular}{|c|c|p{7cm}|}
4165 \hline
4166 {\bf type} & {\bf name} & {\bf description} \\ \hline
4167 {\tt VM ref } & self & reference to the object \\ \hline
4169 \end{tabular}
4171 \vspace{0.3cm}
4173 \noindent {\bf Return Type:}
4174 {\tt
4175 (string $\rightarrow$ string) Map
4179 value of the field
4180 \vspace{0.3cm}
4181 \vspace{0.3cm}
4182 \vspace{0.3cm}
4183 \subsubsection{RPC name:~set\_other\_config}
4185 {\bf Overview:}
4186 Set the other\_config field of the given VM.
4188 \noindent {\bf Signature:}
4189 \begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
4192 \noindent{\bf Arguments:}
4195 \vspace{0.3cm}
4196 \begin{tabular}{|c|c|p{7cm}|}
4197 \hline
4198 {\bf type} & {\bf name} & {\bf description} \\ \hline
4199 {\tt VM ref } & self & reference to the object \\ \hline
4201 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4203 \end{tabular}
4205 \vspace{0.3cm}
4207 \noindent {\bf Return Type:}
4208 {\tt
4209 void
4214 \vspace{0.3cm}
4215 \vspace{0.3cm}
4216 \vspace{0.3cm}
4217 \subsubsection{RPC name:~add\_to\_other\_config}
4219 {\bf Overview:}
4220 Add the given key-value pair to the other\_config field of the given VM.
4222 \noindent {\bf Signature:}
4223 \begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
4226 \noindent{\bf Arguments:}
4229 \vspace{0.3cm}
4230 \begin{tabular}{|c|c|p{7cm}|}
4231 \hline
4232 {\bf type} & {\bf name} & {\bf description} \\ \hline
4233 {\tt VM ref } & self & reference to the object \\ \hline
4235 {\tt string } & key & Key to add \\ \hline
4237 {\tt string } & value & Value to add \\ \hline
4239 \end{tabular}
4241 \vspace{0.3cm}
4243 \noindent {\bf Return Type:}
4244 {\tt
4245 void
4250 \vspace{0.3cm}
4251 \vspace{0.3cm}
4252 \vspace{0.3cm}
4253 \subsubsection{RPC name:~remove\_from\_other\_config}
4255 {\bf Overview:}
4256 Remove the given key and its corresponding value from the other\_config
4257 field of the given VM. If the key is not in that Map, then do nothing.
4259 \noindent {\bf Signature:}
4260 \begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
4263 \noindent{\bf Arguments:}
4266 \vspace{0.3cm}
4267 \begin{tabular}{|c|c|p{7cm}|}
4268 \hline
4269 {\bf type} & {\bf name} & {\bf description} \\ \hline
4270 {\tt VM ref } & self & reference to the object \\ \hline
4272 {\tt string } & key & Key to remove \\ \hline
4274 \end{tabular}
4276 \vspace{0.3cm}
4278 \noindent {\bf Return Type:}
4279 {\tt
4280 void
4285 \vspace{0.3cm}
4286 \vspace{0.3cm}
4287 \vspace{0.3cm}
4288 \subsubsection{RPC name:~get\_domid}
4290 {\bf Overview:}
4291 Get the domid field of the given VM.
4293 \noindent {\bf Signature:}
4294 \begin{verbatim} int get_domid (session_id s, VM ref self)\end{verbatim}
4297 \noindent{\bf Arguments:}
4300 \vspace{0.3cm}
4301 \begin{tabular}{|c|c|p{7cm}|}
4302 \hline
4303 {\bf type} & {\bf name} & {\bf description} \\ \hline
4304 {\tt VM ref } & self & reference to the object \\ \hline
4306 \end{tabular}
4308 \vspace{0.3cm}
4310 \noindent {\bf Return Type:}
4311 {\tt
4312 int
4316 value of the field
4317 \vspace{0.3cm}
4318 \vspace{0.3cm}
4319 \vspace{0.3cm}
4320 \subsubsection{RPC name:~get\_is\_control\_domain}
4322 {\bf Overview:}
4323 Get the is\_control\_domain field of the given VM.
4325 \noindent {\bf Signature:}
4326 \begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
4329 \noindent{\bf Arguments:}
4332 \vspace{0.3cm}
4333 \begin{tabular}{|c|c|p{7cm}|}
4334 \hline
4335 {\bf type} & {\bf name} & {\bf description} \\ \hline
4336 {\tt VM ref } & self & reference to the object \\ \hline
4338 \end{tabular}
4340 \vspace{0.3cm}
4342 \noindent {\bf Return Type:}
4343 {\tt
4344 bool
4348 value of the field
4349 \vspace{0.3cm}
4350 \vspace{0.3cm}
4351 \vspace{0.3cm}
4352 \subsubsection{RPC name:~get\_metrics}
4354 {\bf Overview:}
4355 Get the metrics field of the given VM.
4357 \noindent {\bf Signature:}
4358 \begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
4361 \noindent{\bf Arguments:}
4364 \vspace{0.3cm}
4365 \begin{tabular}{|c|c|p{7cm}|}
4366 \hline
4367 {\bf type} & {\bf name} & {\bf description} \\ \hline
4368 {\tt VM ref } & self & reference to the object \\ \hline
4370 \end{tabular}
4372 \vspace{0.3cm}
4374 \noindent {\bf Return Type:}
4375 {\tt
4376 VM\_metrics ref
4380 value of the field
4381 \vspace{0.3cm}
4382 \vspace{0.3cm}
4383 \vspace{0.3cm}
4384 \subsubsection{RPC name:~get\_guest\_metrics}
4386 {\bf Overview:}
4387 Get the guest\_metrics field of the given VM.
4389 \noindent {\bf Signature:}
4390 \begin{verbatim} (VM_guest_metrics ref) get_guest_metrics (session_id s, VM ref self)\end{verbatim}
4393 \noindent{\bf Arguments:}
4396 \vspace{0.3cm}
4397 \begin{tabular}{|c|c|p{7cm}|}
4398 \hline
4399 {\bf type} & {\bf name} & {\bf description} \\ \hline
4400 {\tt VM ref } & self & reference to the object \\ \hline
4402 \end{tabular}
4404 \vspace{0.3cm}
4406 \noindent {\bf Return Type:}
4407 {\tt
4408 VM\_guest\_metrics ref
4412 value of the field
4413 \vspace{0.3cm}
4414 \vspace{0.3cm}
4415 \vspace{0.3cm}
4416 \subsubsection{RPC name:~get\_security\_label}
4418 {\bf Overview:}
4419 Get the security label field of the given VM. Refer to the XSPolicy class
4420 for the format of the security label.
4422 \noindent {\bf Signature:}
4423 \begin{verbatim} string get_security_label (session_id s, VM ref self)\end{verbatim}
4426 \noindent{\bf Arguments:}
4429 \vspace{0.3cm}
4430 \begin{tabular}{|c|c|p{7cm}|}
4431 \hline
4432 {\bf type} & {\bf name} & {\bf description} \\ \hline
4433 {\tt VM ref } & self & reference to the object \\ \hline
4435 \end{tabular}
4437 \vspace{0.3cm}
4439 \noindent {\bf Return Type:}
4440 {\tt
4441 string
4445 value of the field
4446 \vspace{0.3cm}
4447 \vspace{0.3cm}
4448 \vspace{0.3cm}
4449 \subsubsection{RPC name:~set\_security\_label}
4451 {\bf Overview:}
4452 Set the security label field of the given VM. Refer to the XSPolicy class
4453 for the format of the security label.
4455 \noindent {\bf Signature:}
4456 \begin{verbatim} int set_security_label (session_id s, VM ref self, string
4457 security_label, string old_label)\end{verbatim}
4460 \noindent{\bf Arguments:}
4463 \vspace{0.3cm}
4464 \begin{tabular}{|c|c|p{7cm}|}
4465 \hline
4466 {\bf type} & {\bf name} & {\bf description} \\ \hline
4467 {\tt VM ref } & self & reference to the object \\ \hline
4468 {\tt string } & security\_label & security label for the VM \\ \hline
4469 {\tt string } & old\_label & Optional label value that the security label \\
4470 & & must currently have for the change to succeed.\\ \hline
4472 \end{tabular}
4474 \vspace{0.3cm}
4476 \noindent {\bf Return Type:}
4477 {\tt
4478 int
4482 Returns the ssidref in case of an VM that is currently running or
4483 paused, zero in case of a dormant VM (halted, suspended).
4485 \vspace{0.3cm}
4487 \noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
4489 \vspace{0.3cm}
4490 \vspace{0.3cm}
4491 \vspace{0.3cm}
4492 \subsubsection{RPC name:~create}
4494 {\bf Overview:}
4495 Create a new VM instance, and return its handle.
4497 \noindent {\bf Signature:}
4498 \begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4501 \noindent{\bf Arguments:}
4504 \vspace{0.3cm}
4505 \begin{tabular}{|c|c|p{7cm}|}
4506 \hline
4507 {\bf type} & {\bf name} & {\bf description} \\ \hline
4508 {\tt VM record } & args & All constructor arguments \\ \hline
4510 \end{tabular}
4512 \vspace{0.3cm}
4514 \noindent {\bf Return Type:}
4515 {\tt
4516 VM ref
4520 reference to the newly created object
4521 \vspace{0.3cm}
4522 \vspace{0.3cm}
4523 \vspace{0.3cm}
4524 \subsubsection{RPC name:~destroy}
4526 {\bf Overview:}
4527 Destroy the specified VM. The VM is completely removed from the system.
4528 This function can only be called when the VM is in the Halted State.
4530 \noindent {\bf Signature:}
4531 \begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4534 \noindent{\bf Arguments:}
4537 \vspace{0.3cm}
4538 \begin{tabular}{|c|c|p{7cm}|}
4539 \hline
4540 {\bf type} & {\bf name} & {\bf description} \\ \hline
4541 {\tt VM ref } & self & reference to the object \\ \hline
4543 \end{tabular}
4545 \vspace{0.3cm}
4547 \noindent {\bf Return Type:}
4548 {\tt
4549 void
4554 \vspace{0.3cm}
4555 \vspace{0.3cm}
4556 \vspace{0.3cm}
4557 \subsubsection{RPC name:~get\_by\_uuid}
4559 {\bf Overview:}
4560 Get a reference to the VM instance with the specified UUID.
4562 \noindent {\bf Signature:}
4563 \begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4566 \noindent{\bf Arguments:}
4569 \vspace{0.3cm}
4570 \begin{tabular}{|c|c|p{7cm}|}
4571 \hline
4572 {\bf type} & {\bf name} & {\bf description} \\ \hline
4573 {\tt string } & uuid & UUID of object to return \\ \hline
4575 \end{tabular}
4577 \vspace{0.3cm}
4579 \noindent {\bf Return Type:}
4580 {\tt
4581 VM ref
4585 reference to the object
4586 \vspace{0.3cm}
4587 \vspace{0.3cm}
4588 \vspace{0.3cm}
4589 \subsubsection{RPC name:~get\_record}
4591 {\bf Overview:}
4592 Get a record containing the current state of the given VM.
4594 \noindent {\bf Signature:}
4595 \begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4598 \noindent{\bf Arguments:}
4601 \vspace{0.3cm}
4602 \begin{tabular}{|c|c|p{7cm}|}
4603 \hline
4604 {\bf type} & {\bf name} & {\bf description} \\ \hline
4605 {\tt VM ref } & self & reference to the object \\ \hline
4607 \end{tabular}
4609 \vspace{0.3cm}
4611 \noindent {\bf Return Type:}
4612 {\tt
4613 VM record
4617 all fields from the object
4618 \vspace{0.3cm}
4619 \vspace{0.3cm}
4620 \vspace{0.3cm}
4621 \subsubsection{RPC name:~get\_by\_name\_label}
4623 {\bf Overview:}
4624 Get all the VM instances with the given label.
4626 \noindent {\bf Signature:}
4627 \begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4630 \noindent{\bf Arguments:}
4633 \vspace{0.3cm}
4634 \begin{tabular}{|c|c|p{7cm}|}
4635 \hline
4636 {\bf type} & {\bf name} & {\bf description} \\ \hline
4637 {\tt string } & label & label of object to return \\ \hline
4639 \end{tabular}
4641 \vspace{0.3cm}
4643 \noindent {\bf Return Type:}
4644 {\tt
4645 (VM ref) Set
4649 references to objects with match names
4650 \vspace{0.3cm}
4651 \vspace{0.3cm}
4652 \vspace{0.3cm}
4654 \vspace{1cm}
4655 \newpage
4656 \section{Class: VM\_metrics}
4657 \subsection{Fields for class: VM\_metrics}
4658 \begin{longtable}{|lllp{0.38\textwidth}|}
4659 \hline
4660 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
4661 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
4662 The metrics associated with a VM.}} \\
4663 \hline
4664 Quals & Field & Type & Description \\
4665 \hline
4666 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4667 $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
4668 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
4669 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
4670 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/CPU} & (int $\rightarrow$ int) Map & VCPU to PCPU map \\
4671 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & The live equivalent to VM.VCPUs\_params \\
4672 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/flags} & (int $\rightarrow$ string Set) Map & CPU flags (blocked,online,running) \\
4673 $\mathit{RO}_\mathit{run}$ & {\tt state} & string Set & The state of the guest, eg blocked, dying etc \\
4674 $\mathit{RO}_\mathit{run}$ & {\tt start\_time} & datetime & Time at which this VM was last booted \\
4675 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
4676 \hline
4677 \end{longtable}
4678 \subsection{RPCs associated with class: VM\_metrics}
4679 \subsubsection{RPC name:~get\_all}
4681 {\bf Overview:}
4682 Return a list of all the VM\_metrics instances known to the system.
4684 \noindent {\bf Signature:}
4685 \begin{verbatim} ((VM_metrics ref) Set) get_all (session_id s)\end{verbatim}
4688 \vspace{0.3cm}
4690 \noindent {\bf Return Type:}
4691 {\tt
4692 (VM\_metrics ref) Set
4696 references to all objects
4697 \vspace{0.3cm}
4698 \vspace{0.3cm}
4699 \vspace{0.3cm}
4700 \subsubsection{RPC name:~get\_uuid}
4702 {\bf Overview:}
4703 Get the uuid field of the given VM\_metrics.
4705 \noindent {\bf Signature:}
4706 \begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
4709 \noindent{\bf Arguments:}
4712 \vspace{0.3cm}
4713 \begin{tabular}{|c|c|p{7cm}|}
4714 \hline
4715 {\bf type} & {\bf name} & {\bf description} \\ \hline
4716 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4718 \end{tabular}
4720 \vspace{0.3cm}
4722 \noindent {\bf Return Type:}
4723 {\tt
4724 string
4728 value of the field
4729 \vspace{0.3cm}
4730 \vspace{0.3cm}
4731 \vspace{0.3cm}
4732 \subsubsection{RPC name:~get\_memory\_actual}
4734 {\bf Overview:}
4735 Get the memory/actual field of the given VM\_metrics.
4737 \noindent {\bf Signature:}
4738 \begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
4741 \noindent{\bf Arguments:}
4744 \vspace{0.3cm}
4745 \begin{tabular}{|c|c|p{7cm}|}
4746 \hline
4747 {\bf type} & {\bf name} & {\bf description} \\ \hline
4748 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4750 \end{tabular}
4752 \vspace{0.3cm}
4754 \noindent {\bf Return Type:}
4755 {\tt
4756 int
4760 value of the field
4761 \vspace{0.3cm}
4762 \vspace{0.3cm}
4763 \vspace{0.3cm}
4764 \subsubsection{RPC name:~get\_VCPUs\_number}
4766 {\bf Overview:}
4767 Get the VCPUs/number field of the given VM\_metrics.
4769 \noindent {\bf Signature:}
4770 \begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
4773 \noindent{\bf Arguments:}
4776 \vspace{0.3cm}
4777 \begin{tabular}{|c|c|p{7cm}|}
4778 \hline
4779 {\bf type} & {\bf name} & {\bf description} \\ \hline
4780 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4782 \end{tabular}
4784 \vspace{0.3cm}
4786 \noindent {\bf Return Type:}
4787 {\tt
4788 int
4792 value of the field
4793 \vspace{0.3cm}
4794 \vspace{0.3cm}
4795 \vspace{0.3cm}
4796 \subsubsection{RPC name:~get\_VCPUs\_utilisation}
4798 {\bf Overview:}
4799 Get the VCPUs/utilisation field of the given VM\_metrics.
4801 \noindent {\bf Signature:}
4802 \begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
4805 \noindent{\bf Arguments:}
4808 \vspace{0.3cm}
4809 \begin{tabular}{|c|c|p{7cm}|}
4810 \hline
4811 {\bf type} & {\bf name} & {\bf description} \\ \hline
4812 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4814 \end{tabular}
4816 \vspace{0.3cm}
4818 \noindent {\bf Return Type:}
4819 {\tt
4820 (int $\rightarrow$ float) Map
4824 value of the field
4825 \vspace{0.3cm}
4826 \vspace{0.3cm}
4827 \vspace{0.3cm}
4828 \subsubsection{RPC name:~get\_VCPUs\_CPU}
4830 {\bf Overview:}
4831 Get the VCPUs/CPU field of the given VM\_metrics.
4833 \noindent {\bf Signature:}
4834 \begin{verbatim} ((int -> int) Map) get_VCPUs_CPU (session_id s, VM_metrics ref self)\end{verbatim}
4837 \noindent{\bf Arguments:}
4840 \vspace{0.3cm}
4841 \begin{tabular}{|c|c|p{7cm}|}
4842 \hline
4843 {\bf type} & {\bf name} & {\bf description} \\ \hline
4844 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4846 \end{tabular}
4848 \vspace{0.3cm}
4850 \noindent {\bf Return Type:}
4851 {\tt
4852 (int $\rightarrow$ int) Map
4856 value of the field
4857 \vspace{0.3cm}
4858 \vspace{0.3cm}
4859 \vspace{0.3cm}
4860 \subsubsection{RPC name:~get\_VCPUs\_params}
4862 {\bf Overview:}
4863 Get the VCPUs/params field of the given VM\_metrics.
4865 \noindent {\bf Signature:}
4866 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM_metrics ref self)\end{verbatim}
4869 \noindent{\bf Arguments:}
4872 \vspace{0.3cm}
4873 \begin{tabular}{|c|c|p{7cm}|}
4874 \hline
4875 {\bf type} & {\bf name} & {\bf description} \\ \hline
4876 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4878 \end{tabular}
4880 \vspace{0.3cm}
4882 \noindent {\bf Return Type:}
4883 {\tt
4884 (string $\rightarrow$ string) Map
4888 value of the field
4889 \vspace{0.3cm}
4890 \vspace{0.3cm}
4891 \vspace{0.3cm}
4892 \subsubsection{RPC name:~get\_VCPUs\_flags}
4894 {\bf Overview:}
4895 Get the VCPUs/flags field of the given VM\_metrics.
4897 \noindent {\bf Signature:}
4898 \begin{verbatim} ((int -> string Set) Map) get_VCPUs_flags (session_id s, VM_metrics ref self)\end{verbatim}
4901 \noindent{\bf Arguments:}
4904 \vspace{0.3cm}
4905 \begin{tabular}{|c|c|p{7cm}|}
4906 \hline
4907 {\bf type} & {\bf name} & {\bf description} \\ \hline
4908 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4910 \end{tabular}
4912 \vspace{0.3cm}
4914 \noindent {\bf Return Type:}
4915 {\tt
4916 (int $\rightarrow$ string Set) Map
4920 value of the field
4921 \vspace{0.3cm}
4922 \vspace{0.3cm}
4923 \vspace{0.3cm}
4924 \subsubsection{RPC name:~get\_state}
4926 {\bf Overview:}
4927 Get the state field of the given VM\_metrics.
4929 \noindent {\bf Signature:}
4930 \begin{verbatim} (string Set) get_state (session_id s, VM_metrics ref self)\end{verbatim}
4933 \noindent{\bf Arguments:}
4936 \vspace{0.3cm}
4937 \begin{tabular}{|c|c|p{7cm}|}
4938 \hline
4939 {\bf type} & {\bf name} & {\bf description} \\ \hline
4940 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4942 \end{tabular}
4944 \vspace{0.3cm}
4946 \noindent {\bf Return Type:}
4947 {\tt
4948 string Set
4952 value of the field
4953 \vspace{0.3cm}
4954 \vspace{0.3cm}
4955 \vspace{0.3cm}
4956 \subsubsection{RPC name:~get\_start\_time}
4958 {\bf Overview:}
4959 Get the start\_time field of the given VM\_metrics.
4961 \noindent {\bf Signature:}
4962 \begin{verbatim} datetime get_start_time (session_id s, VM_metrics ref self)\end{verbatim}
4965 \noindent{\bf Arguments:}
4968 \vspace{0.3cm}
4969 \begin{tabular}{|c|c|p{7cm}|}
4970 \hline
4971 {\bf type} & {\bf name} & {\bf description} \\ \hline
4972 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4974 \end{tabular}
4976 \vspace{0.3cm}
4978 \noindent {\bf Return Type:}
4979 {\tt
4980 datetime
4984 value of the field
4985 \vspace{0.3cm}
4986 \vspace{0.3cm}
4987 \vspace{0.3cm}
4988 \subsubsection{RPC name:~get\_last\_updated}
4990 {\bf Overview:}
4991 Get the last\_updated field of the given VM\_metrics.
4993 \noindent {\bf Signature:}
4994 \begin{verbatim} datetime get_last_updated (session_id s, VM_metrics ref self)\end{verbatim}
4997 \noindent{\bf Arguments:}
5000 \vspace{0.3cm}
5001 \begin{tabular}{|c|c|p{7cm}|}
5002 \hline
5003 {\bf type} & {\bf name} & {\bf description} \\ \hline
5004 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
5006 \end{tabular}
5008 \vspace{0.3cm}
5010 \noindent {\bf Return Type:}
5011 {\tt
5012 datetime
5016 value of the field
5017 \vspace{0.3cm}
5018 \vspace{0.3cm}
5019 \vspace{0.3cm}
5020 \subsubsection{RPC name:~get\_by\_uuid}
5022 {\bf Overview:}
5023 Get a reference to the VM\_metrics instance with the specified UUID.
5025 \noindent {\bf Signature:}
5026 \begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5029 \noindent{\bf Arguments:}
5032 \vspace{0.3cm}
5033 \begin{tabular}{|c|c|p{7cm}|}
5034 \hline
5035 {\bf type} & {\bf name} & {\bf description} \\ \hline
5036 {\tt string } & uuid & UUID of object to return \\ \hline
5038 \end{tabular}
5040 \vspace{0.3cm}
5042 \noindent {\bf Return Type:}
5043 {\tt
5044 VM\_metrics ref
5048 reference to the object
5049 \vspace{0.3cm}
5050 \vspace{0.3cm}
5051 \vspace{0.3cm}
5052 \subsubsection{RPC name:~get\_record}
5054 {\bf Overview:}
5055 Get a record containing the current state of the given VM\_metrics.
5057 \noindent {\bf Signature:}
5058 \begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
5061 \noindent{\bf Arguments:}
5064 \vspace{0.3cm}
5065 \begin{tabular}{|c|c|p{7cm}|}
5066 \hline
5067 {\bf type} & {\bf name} & {\bf description} \\ \hline
5068 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
5070 \end{tabular}
5072 \vspace{0.3cm}
5074 \noindent {\bf Return Type:}
5075 {\tt
5076 VM\_metrics record
5080 all fields from the object
5081 \vspace{0.3cm}
5082 \vspace{0.3cm}
5083 \vspace{0.3cm}
5085 \vspace{1cm}
5086 \newpage
5087 \section{Class: VM\_guest\_metrics}
5088 \subsection{Fields for class: VM\_guest\_metrics}
5089 \begin{longtable}{|lllp{0.38\textwidth}|}
5090 \hline
5091 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_guest\_metrics} \\
5092 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
5093 The metrics reported by the guest (as opposed to inferred from outside).}} \\
5094 \hline
5095 Quals & Field & Type & Description \\
5096 \hline
5097 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5098 $\mathit{RO}_\mathit{run}$ & {\tt os\_version} & (string $\rightarrow$ string) Map & version of the OS \\
5099 $\mathit{RO}_\mathit{run}$ & {\tt PV\_drivers\_version} & (string $\rightarrow$ string) Map & version of the PV drivers \\
5100 $\mathit{RO}_\mathit{run}$ & {\tt memory} & (string $\rightarrow$ string) Map & free/used/total memory \\
5101 $\mathit{RO}_\mathit{run}$ & {\tt disks} & (string $\rightarrow$ string) Map & disk configuration/free space \\
5102 $\mathit{RO}_\mathit{run}$ & {\tt networks} & (string $\rightarrow$ string) Map & network configuration \\
5103 $\mathit{RO}_\mathit{run}$ & {\tt other} & (string $\rightarrow$ string) Map & anything else \\
5104 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
5105 \hline
5106 \end{longtable}
5107 \subsection{RPCs associated with class: VM\_guest\_metrics}
5108 \subsubsection{RPC name:~get\_all}
5110 {\bf Overview:}
5111 Return a list of all the VM\_guest\_metrics instances known to the system.
5113 \noindent {\bf Signature:}
5114 \begin{verbatim} ((VM_guest_metrics ref) Set) get_all (session_id s)\end{verbatim}
5117 \vspace{0.3cm}
5119 \noindent {\bf Return Type:}
5120 {\tt
5121 (VM\_guest\_metrics ref) Set
5125 references to all objects
5126 \vspace{0.3cm}
5127 \vspace{0.3cm}
5128 \vspace{0.3cm}
5129 \subsubsection{RPC name:~get\_uuid}
5131 {\bf Overview:}
5132 Get the uuid field of the given VM\_guest\_metrics.
5134 \noindent {\bf Signature:}
5135 \begin{verbatim} string get_uuid (session_id s, VM_guest_metrics ref self)\end{verbatim}
5138 \noindent{\bf Arguments:}
5141 \vspace{0.3cm}
5142 \begin{tabular}{|c|c|p{7cm}|}
5143 \hline
5144 {\bf type} & {\bf name} & {\bf description} \\ \hline
5145 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5147 \end{tabular}
5149 \vspace{0.3cm}
5151 \noindent {\bf Return Type:}
5152 {\tt
5153 string
5157 value of the field
5158 \vspace{0.3cm}
5159 \vspace{0.3cm}
5160 \vspace{0.3cm}
5161 \subsubsection{RPC name:~get\_os\_version}
5163 {\bf Overview:}
5164 Get the os\_version field of the given VM\_guest\_metrics.
5166 \noindent {\bf Signature:}
5167 \begin{verbatim} ((string -> string) Map) get_os_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5170 \noindent{\bf Arguments:}
5173 \vspace{0.3cm}
5174 \begin{tabular}{|c|c|p{7cm}|}
5175 \hline
5176 {\bf type} & {\bf name} & {\bf description} \\ \hline
5177 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5179 \end{tabular}
5181 \vspace{0.3cm}
5183 \noindent {\bf Return Type:}
5184 {\tt
5185 (string $\rightarrow$ string) Map
5189 value of the field
5190 \vspace{0.3cm}
5191 \vspace{0.3cm}
5192 \vspace{0.3cm}
5193 \subsubsection{RPC name:~get\_PV\_drivers\_version}
5195 {\bf Overview:}
5196 Get the PV\_drivers\_version field of the given VM\_guest\_metrics.
5198 \noindent {\bf Signature:}
5199 \begin{verbatim} ((string -> string) Map) get_PV_drivers_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
5202 \noindent{\bf Arguments:}
5205 \vspace{0.3cm}
5206 \begin{tabular}{|c|c|p{7cm}|}
5207 \hline
5208 {\bf type} & {\bf name} & {\bf description} \\ \hline
5209 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5211 \end{tabular}
5213 \vspace{0.3cm}
5215 \noindent {\bf Return Type:}
5216 {\tt
5217 (string $\rightarrow$ string) Map
5221 value of the field
5222 \vspace{0.3cm}
5223 \vspace{0.3cm}
5224 \vspace{0.3cm}
5225 \subsubsection{RPC name:~get\_memory}
5227 {\bf Overview:}
5228 Get the memory field of the given VM\_guest\_metrics.
5230 \noindent {\bf Signature:}
5231 \begin{verbatim} ((string -> string) Map) get_memory (session_id s, VM_guest_metrics ref self)\end{verbatim}
5234 \noindent{\bf Arguments:}
5237 \vspace{0.3cm}
5238 \begin{tabular}{|c|c|p{7cm}|}
5239 \hline
5240 {\bf type} & {\bf name} & {\bf description} \\ \hline
5241 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5243 \end{tabular}
5245 \vspace{0.3cm}
5247 \noindent {\bf Return Type:}
5248 {\tt
5249 (string $\rightarrow$ string) Map
5253 value of the field
5254 \vspace{0.3cm}
5255 \vspace{0.3cm}
5256 \vspace{0.3cm}
5257 \subsubsection{RPC name:~get\_disks}
5259 {\bf Overview:}
5260 Get the disks field of the given VM\_guest\_metrics.
5262 \noindent {\bf Signature:}
5263 \begin{verbatim} ((string -> string) Map) get_disks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5266 \noindent{\bf Arguments:}
5269 \vspace{0.3cm}
5270 \begin{tabular}{|c|c|p{7cm}|}
5271 \hline
5272 {\bf type} & {\bf name} & {\bf description} \\ \hline
5273 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5275 \end{tabular}
5277 \vspace{0.3cm}
5279 \noindent {\bf Return Type:}
5280 {\tt
5281 (string $\rightarrow$ string) Map
5285 value of the field
5286 \vspace{0.3cm}
5287 \vspace{0.3cm}
5288 \vspace{0.3cm}
5289 \subsubsection{RPC name:~get\_networks}
5291 {\bf Overview:}
5292 Get the networks field of the given VM\_guest\_metrics.
5294 \noindent {\bf Signature:}
5295 \begin{verbatim} ((string -> string) Map) get_networks (session_id s, VM_guest_metrics ref self)\end{verbatim}
5298 \noindent{\bf Arguments:}
5301 \vspace{0.3cm}
5302 \begin{tabular}{|c|c|p{7cm}|}
5303 \hline
5304 {\bf type} & {\bf name} & {\bf description} \\ \hline
5305 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5307 \end{tabular}
5309 \vspace{0.3cm}
5311 \noindent {\bf Return Type:}
5312 {\tt
5313 (string $\rightarrow$ string) Map
5317 value of the field
5318 \vspace{0.3cm}
5319 \vspace{0.3cm}
5320 \vspace{0.3cm}
5321 \subsubsection{RPC name:~get\_other}
5323 {\bf Overview:}
5324 Get the other field of the given VM\_guest\_metrics.
5326 \noindent {\bf Signature:}
5327 \begin{verbatim} ((string -> string) Map) get_other (session_id s, VM_guest_metrics ref self)\end{verbatim}
5330 \noindent{\bf Arguments:}
5333 \vspace{0.3cm}
5334 \begin{tabular}{|c|c|p{7cm}|}
5335 \hline
5336 {\bf type} & {\bf name} & {\bf description} \\ \hline
5337 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5339 \end{tabular}
5341 \vspace{0.3cm}
5343 \noindent {\bf Return Type:}
5344 {\tt
5345 (string $\rightarrow$ string) Map
5349 value of the field
5350 \vspace{0.3cm}
5351 \vspace{0.3cm}
5352 \vspace{0.3cm}
5353 \subsubsection{RPC name:~get\_last\_updated}
5355 {\bf Overview:}
5356 Get the last\_updated field of the given VM\_guest\_metrics.
5358 \noindent {\bf Signature:}
5359 \begin{verbatim} datetime get_last_updated (session_id s, VM_guest_metrics ref self)\end{verbatim}
5362 \noindent{\bf Arguments:}
5365 \vspace{0.3cm}
5366 \begin{tabular}{|c|c|p{7cm}|}
5367 \hline
5368 {\bf type} & {\bf name} & {\bf description} \\ \hline
5369 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5371 \end{tabular}
5373 \vspace{0.3cm}
5375 \noindent {\bf Return Type:}
5376 {\tt
5377 datetime
5381 value of the field
5382 \vspace{0.3cm}
5383 \vspace{0.3cm}
5384 \vspace{0.3cm}
5385 \subsubsection{RPC name:~get\_by\_uuid}
5387 {\bf Overview:}
5388 Get a reference to the VM\_guest\_metrics instance with the specified UUID.
5390 \noindent {\bf Signature:}
5391 \begin{verbatim} (VM_guest_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5394 \noindent{\bf Arguments:}
5397 \vspace{0.3cm}
5398 \begin{tabular}{|c|c|p{7cm}|}
5399 \hline
5400 {\bf type} & {\bf name} & {\bf description} \\ \hline
5401 {\tt string } & uuid & UUID of object to return \\ \hline
5403 \end{tabular}
5405 \vspace{0.3cm}
5407 \noindent {\bf Return Type:}
5408 {\tt
5409 VM\_guest\_metrics ref
5413 reference to the object
5414 \vspace{0.3cm}
5415 \vspace{0.3cm}
5416 \vspace{0.3cm}
5417 \subsubsection{RPC name:~get\_record}
5419 {\bf Overview:}
5420 Get a record containing the current state of the given VM\_guest\_metrics.
5422 \noindent {\bf Signature:}
5423 \begin{verbatim} (VM_guest_metrics record) get_record (session_id s, VM_guest_metrics ref self)\end{verbatim}
5426 \noindent{\bf Arguments:}
5429 \vspace{0.3cm}
5430 \begin{tabular}{|c|c|p{7cm}|}
5431 \hline
5432 {\bf type} & {\bf name} & {\bf description} \\ \hline
5433 {\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
5435 \end{tabular}
5437 \vspace{0.3cm}
5439 \noindent {\bf Return Type:}
5440 {\tt
5441 VM\_guest\_metrics record
5445 all fields from the object
5446 \vspace{0.3cm}
5447 \vspace{0.3cm}
5448 \vspace{0.3cm}
5450 \vspace{1cm}
5451 \newpage
5452 \section{Class: host}
5453 \subsection{Fields for class: host}
5454 \begin{longtable}{|lllp{0.38\textwidth}|}
5455 \hline
5456 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
5457 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
5458 physical host.}} \\
5459 \hline
5460 Quals & Field & Type & Description \\
5461 \hline
5462 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5463 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
5464 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
5465 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version number \\
5466 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\
5467 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\
5468 $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\
5469 $\mathit{RO}_\mathit{run}$ & {\tt enabled} & bool & True if the host is currently enabled \\
5470 $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
5471 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
5472 $\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\
5473 $\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'' \\
5474 $\mathit{RO}_\mathit{run}$ & {\tt sched\_policy} & string & Scheduler policy currently in force on this host \\
5475 $\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\
5476 $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
5477 $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
5478 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
5479 $\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
5480 $\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
5481 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
5482 $\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
5483 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host \\
5484 \hline
5485 \end{longtable}
5486 \subsection{RPCs associated with class: host}
5487 \subsubsection{RPC name:~disable}
5489 {\bf Overview:}
5490 Puts the host into a state in which no new VMs can be started. Currently
5491 active VMs on the host continue to execute.
5493 \noindent {\bf Signature:}
5494 \begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
5497 \noindent{\bf Arguments:}
5500 \vspace{0.3cm}
5501 \begin{tabular}{|c|c|p{7cm}|}
5502 \hline
5503 {\bf type} & {\bf name} & {\bf description} \\ \hline
5504 {\tt host ref } & host & The Host to disable \\ \hline
5506 \end{tabular}
5508 \vspace{0.3cm}
5510 \noindent {\bf Return Type:}
5511 {\tt
5512 void
5517 \vspace{0.3cm}
5518 \vspace{0.3cm}
5519 \vspace{0.3cm}
5520 \subsubsection{RPC name:~enable}
5522 {\bf Overview:}
5523 Puts the host into a state in which new VMs can be started.
5525 \noindent {\bf Signature:}
5526 \begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
5529 \noindent{\bf Arguments:}
5532 \vspace{0.3cm}
5533 \begin{tabular}{|c|c|p{7cm}|}
5534 \hline
5535 {\bf type} & {\bf name} & {\bf description} \\ \hline
5536 {\tt host ref } & host & The Host to enable \\ \hline
5538 \end{tabular}
5540 \vspace{0.3cm}
5542 \noindent {\bf Return Type:}
5543 {\tt
5544 void
5549 \vspace{0.3cm}
5550 \vspace{0.3cm}
5551 \vspace{0.3cm}
5552 \subsubsection{RPC name:~shutdown}
5554 {\bf Overview:}
5555 Shutdown the host. (This function can only be called if there are no
5556 currently running VMs on the host and it is disabled.).
5558 \noindent {\bf Signature:}
5559 \begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
5562 \noindent{\bf Arguments:}
5565 \vspace{0.3cm}
5566 \begin{tabular}{|c|c|p{7cm}|}
5567 \hline
5568 {\bf type} & {\bf name} & {\bf description} \\ \hline
5569 {\tt host ref } & host & The Host to shutdown \\ \hline
5571 \end{tabular}
5573 \vspace{0.3cm}
5575 \noindent {\bf Return Type:}
5576 {\tt
5577 void
5582 \vspace{0.3cm}
5583 \vspace{0.3cm}
5584 \vspace{0.3cm}
5585 \subsubsection{RPC name:~reboot}
5587 {\bf Overview:}
5588 Reboot the host. (This function can only be called if there are no
5589 currently running VMs on the host and it is disabled.).
5591 \noindent {\bf Signature:}
5592 \begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
5595 \noindent{\bf Arguments:}
5598 \vspace{0.3cm}
5599 \begin{tabular}{|c|c|p{7cm}|}
5600 \hline
5601 {\bf type} & {\bf name} & {\bf description} \\ \hline
5602 {\tt host ref } & host & The Host to reboot \\ \hline
5604 \end{tabular}
5606 \vspace{0.3cm}
5608 \noindent {\bf Return Type:}
5609 {\tt
5610 void
5615 \vspace{0.3cm}
5616 \vspace{0.3cm}
5617 \vspace{0.3cm}
5618 \subsubsection{RPC name:~dmesg}
5620 {\bf Overview:}
5621 Get the host xen dmesg.
5623 \noindent {\bf Signature:}
5624 \begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
5627 \noindent{\bf Arguments:}
5630 \vspace{0.3cm}
5631 \begin{tabular}{|c|c|p{7cm}|}
5632 \hline
5633 {\bf type} & {\bf name} & {\bf description} \\ \hline
5634 {\tt host ref } & host & The Host to query \\ \hline
5636 \end{tabular}
5638 \vspace{0.3cm}
5640 \noindent {\bf Return Type:}
5641 {\tt
5642 string
5646 dmesg string
5647 \vspace{0.3cm}
5648 \vspace{0.3cm}
5649 \vspace{0.3cm}
5650 \subsubsection{RPC name:~dmesg\_clear}
5652 {\bf Overview:}
5653 Get the host xen dmesg, and clear the buffer.
5655 \noindent {\bf Signature:}
5656 \begin{verbatim} string dmesg_clear (session_id s, host ref host)\end{verbatim}
5659 \noindent{\bf Arguments:}
5662 \vspace{0.3cm}
5663 \begin{tabular}{|c|c|p{7cm}|}
5664 \hline
5665 {\bf type} & {\bf name} & {\bf description} \\ \hline
5666 {\tt host ref } & host & The Host to query \\ \hline
5668 \end{tabular}
5670 \vspace{0.3cm}
5672 \noindent {\bf Return Type:}
5673 {\tt
5674 string
5678 dmesg string
5679 \vspace{0.3cm}
5680 \vspace{0.3cm}
5681 \vspace{0.3cm}
5682 \subsubsection{RPC name:~get\_log}
5684 {\bf Overview:}
5685 Get the host's log file.
5687 \noindent {\bf Signature:}
5688 \begin{verbatim} string get_log (session_id s, host ref host)\end{verbatim}
5691 \noindent{\bf Arguments:}
5694 \vspace{0.3cm}
5695 \begin{tabular}{|c|c|p{7cm}|}
5696 \hline
5697 {\bf type} & {\bf name} & {\bf description} \\ \hline
5698 {\tt host ref } & host & The Host to query \\ \hline
5700 \end{tabular}
5702 \vspace{0.3cm}
5704 \noindent {\bf Return Type:}
5705 {\tt
5706 string
5710 The contents of the host's primary log file
5711 \vspace{0.3cm}
5712 \vspace{0.3cm}
5713 \vspace{0.3cm}
5714 \subsubsection{RPC name:~send\_debug\_keys}
5716 {\bf Overview:}
5717 Inject the given string as debugging keys into Xen.
5719 \noindent {\bf Signature:}
5720 \begin{verbatim} void send_debug_keys (session_id s, host ref host, string keys)\end{verbatim}
5723 \noindent{\bf Arguments:}
5726 \vspace{0.3cm}
5727 \begin{tabular}{|c|c|p{7cm}|}
5728 \hline
5729 {\bf type} & {\bf name} & {\bf description} \\ \hline
5730 {\tt host ref } & host & The host \\ \hline
5732 {\tt string } & keys & The keys to send \\ \hline
5734 \end{tabular}
5736 \vspace{0.3cm}
5738 \noindent {\bf Return Type:}
5739 {\tt
5740 void
5745 \vspace{0.3cm}
5746 \vspace{0.3cm}
5747 \vspace{0.3cm}
5748 \subsubsection{RPC name:~list\_methods}
5750 {\bf Overview:}
5751 List all supported methods.
5753 \noindent {\bf Signature:}
5754 \begin{verbatim} (string Set) list_methods (session_id s)\end{verbatim}
5757 \vspace{0.3cm}
5759 \noindent {\bf Return Type:}
5760 {\tt
5761 string Set
5765 The name of every supported method.
5766 \vspace{0.3cm}
5767 \vspace{0.3cm}
5768 \vspace{0.3cm}
5769 \subsubsection{RPC name:~get\_all}
5771 {\bf Overview:}
5772 Return a list of all the hosts known to the system.
5774 \noindent {\bf Signature:}
5775 \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
5778 \vspace{0.3cm}
5780 \noindent {\bf Return Type:}
5781 {\tt
5782 (host ref) Set
5786 A list of all the IDs of all the hosts
5787 \vspace{0.3cm}
5788 \vspace{0.3cm}
5789 \vspace{0.3cm}
5790 \subsubsection{RPC name:~get\_uuid}
5792 {\bf Overview:}
5793 Get the uuid field of the given host.
5795 \noindent {\bf Signature:}
5796 \begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
5799 \noindent{\bf Arguments:}
5802 \vspace{0.3cm}
5803 \begin{tabular}{|c|c|p{7cm}|}
5804 \hline
5805 {\bf type} & {\bf name} & {\bf description} \\ \hline
5806 {\tt host ref } & self & reference to the object \\ \hline
5808 \end{tabular}
5810 \vspace{0.3cm}
5812 \noindent {\bf Return Type:}
5813 {\tt
5814 string
5818 value of the field
5819 \vspace{0.3cm}
5820 \vspace{0.3cm}
5821 \vspace{0.3cm}
5822 \subsubsection{RPC name:~get\_name\_label}
5824 {\bf Overview:}
5825 Get the name/label field of the given host.
5827 \noindent {\bf Signature:}
5828 \begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
5831 \noindent{\bf Arguments:}
5834 \vspace{0.3cm}
5835 \begin{tabular}{|c|c|p{7cm}|}
5836 \hline
5837 {\bf type} & {\bf name} & {\bf description} \\ \hline
5838 {\tt host ref } & self & reference to the object \\ \hline
5840 \end{tabular}
5842 \vspace{0.3cm}
5844 \noindent {\bf Return Type:}
5845 {\tt
5846 string
5850 value of the field
5851 \vspace{0.3cm}
5852 \vspace{0.3cm}
5853 \vspace{0.3cm}
5854 \subsubsection{RPC name:~set\_name\_label}
5856 {\bf Overview:}
5857 Set the name/label field of the given host.
5859 \noindent {\bf Signature:}
5860 \begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
5863 \noindent{\bf Arguments:}
5866 \vspace{0.3cm}
5867 \begin{tabular}{|c|c|p{7cm}|}
5868 \hline
5869 {\bf type} & {\bf name} & {\bf description} \\ \hline
5870 {\tt host ref } & self & reference to the object \\ \hline
5872 {\tt string } & value & New value to set \\ \hline
5874 \end{tabular}
5876 \vspace{0.3cm}
5878 \noindent {\bf Return Type:}
5879 {\tt
5880 void
5885 \vspace{0.3cm}
5886 \vspace{0.3cm}
5887 \vspace{0.3cm}
5888 \subsubsection{RPC name:~get\_name\_description}
5890 {\bf Overview:}
5891 Get the name/description field of the given host.
5893 \noindent {\bf Signature:}
5894 \begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
5897 \noindent{\bf Arguments:}
5900 \vspace{0.3cm}
5901 \begin{tabular}{|c|c|p{7cm}|}
5902 \hline
5903 {\bf type} & {\bf name} & {\bf description} \\ \hline
5904 {\tt host ref } & self & reference to the object \\ \hline
5906 \end{tabular}
5908 \vspace{0.3cm}
5910 \noindent {\bf Return Type:}
5911 {\tt
5912 string
5916 value of the field
5917 \vspace{0.3cm}
5918 \vspace{0.3cm}
5919 \vspace{0.3cm}
5920 \subsubsection{RPC name:~set\_name\_description}
5922 {\bf Overview:}
5923 Set the name/description field of the given host.
5925 \noindent {\bf Signature:}
5926 \begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
5929 \noindent{\bf Arguments:}
5932 \vspace{0.3cm}
5933 \begin{tabular}{|c|c|p{7cm}|}
5934 \hline
5935 {\bf type} & {\bf name} & {\bf description} \\ \hline
5936 {\tt host ref } & self & reference to the object \\ \hline
5938 {\tt string } & value & New value to set \\ \hline
5940 \end{tabular}
5942 \vspace{0.3cm}
5944 \noindent {\bf Return Type:}
5945 {\tt
5946 void
5951 \vspace{0.3cm}
5952 \vspace{0.3cm}
5953 \vspace{0.3cm}
5954 \subsubsection{RPC name:~get\_API\_version\_major}
5956 {\bf Overview:}
5957 Get the API\_version/major field of the given host.
5959 \noindent {\bf Signature:}
5960 \begin{verbatim} int get_API_version_major (session_id s, host ref self)\end{verbatim}
5963 \noindent{\bf Arguments:}
5966 \vspace{0.3cm}
5967 \begin{tabular}{|c|c|p{7cm}|}
5968 \hline
5969 {\bf type} & {\bf name} & {\bf description} \\ \hline
5970 {\tt host ref } & self & reference to the object \\ \hline
5972 \end{tabular}
5974 \vspace{0.3cm}
5976 \noindent {\bf Return Type:}
5977 {\tt
5978 int
5982 value of the field
5983 \vspace{0.3cm}
5984 \vspace{0.3cm}
5985 \vspace{0.3cm}
5986 \subsubsection{RPC name:~get\_API\_version\_minor}
5988 {\bf Overview:}
5989 Get the API\_version/minor field of the given host.
5991 \noindent {\bf Signature:}
5992 \begin{verbatim} int get_API_version_minor (session_id s, host ref self)\end{verbatim}
5995 \noindent{\bf Arguments:}
5998 \vspace{0.3cm}
5999 \begin{tabular}{|c|c|p{7cm}|}
6000 \hline
6001 {\bf type} & {\bf name} & {\bf description} \\ \hline
6002 {\tt host ref } & self & reference to the object \\ \hline
6004 \end{tabular}
6006 \vspace{0.3cm}
6008 \noindent {\bf Return Type:}
6009 {\tt
6010 int
6014 value of the field
6015 \vspace{0.3cm}
6016 \vspace{0.3cm}
6017 \vspace{0.3cm}
6018 \subsubsection{RPC name:~get\_API\_version\_vendor}
6020 {\bf Overview:}
6021 Get the API\_version/vendor field of the given host.
6023 \noindent {\bf Signature:}
6024 \begin{verbatim} string get_API_version_vendor (session_id s, host ref self)\end{verbatim}
6027 \noindent{\bf Arguments:}
6030 \vspace{0.3cm}
6031 \begin{tabular}{|c|c|p{7cm}|}
6032 \hline
6033 {\bf type} & {\bf name} & {\bf description} \\ \hline
6034 {\tt host ref } & self & reference to the object \\ \hline
6036 \end{tabular}
6038 \vspace{0.3cm}
6040 \noindent {\bf Return Type:}
6041 {\tt
6042 string
6046 value of the field
6047 \vspace{0.3cm}
6048 \vspace{0.3cm}
6049 \vspace{0.3cm}
6050 \subsubsection{RPC name:~get\_API\_version\_vendor\_implementation}
6052 {\bf Overview:}
6053 Get the API\_version/vendor\_implementation field of the given host.
6055 \noindent {\bf Signature:}
6056 \begin{verbatim} ((string -> string) Map) get_API_version_vendor_implementation (session_id s, host ref self)\end{verbatim}
6059 \noindent{\bf Arguments:}
6062 \vspace{0.3cm}
6063 \begin{tabular}{|c|c|p{7cm}|}
6064 \hline
6065 {\bf type} & {\bf name} & {\bf description} \\ \hline
6066 {\tt host ref } & self & reference to the object \\ \hline
6068 \end{tabular}
6070 \vspace{0.3cm}
6072 \noindent {\bf Return Type:}
6073 {\tt
6074 (string $\rightarrow$ string) Map
6078 value of the field
6079 \vspace{0.3cm}
6080 \vspace{0.3cm}
6081 \vspace{0.3cm}
6082 \subsubsection{RPC name:~get\_enabled}
6084 {\bf Overview:}
6085 Get the enabled field of the given host.
6087 \noindent {\bf Signature:}
6088 \begin{verbatim} bool get_enabled (session_id s, host ref self)\end{verbatim}
6091 \noindent{\bf Arguments:}
6094 \vspace{0.3cm}
6095 \begin{tabular}{|c|c|p{7cm}|}
6096 \hline
6097 {\bf type} & {\bf name} & {\bf description} \\ \hline
6098 {\tt host ref } & self & reference to the object \\ \hline
6100 \end{tabular}
6102 \vspace{0.3cm}
6104 \noindent {\bf Return Type:}
6105 {\tt
6106 bool
6110 value of the field
6111 \vspace{0.3cm}
6112 \vspace{0.3cm}
6113 \vspace{0.3cm}
6114 \subsubsection{RPC name:~get\_software\_version}
6116 {\bf Overview:}
6117 Get the software\_version field of the given host.
6119 \noindent {\bf Signature:}
6120 \begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
6123 \noindent{\bf Arguments:}
6126 \vspace{0.3cm}
6127 \begin{tabular}{|c|c|p{7cm}|}
6128 \hline
6129 {\bf type} & {\bf name} & {\bf description} \\ \hline
6130 {\tt host ref } & self & reference to the object \\ \hline
6132 \end{tabular}
6134 \vspace{0.3cm}
6136 \noindent {\bf Return Type:}
6137 {\tt
6138 (string $\rightarrow$ string) Map
6142 value of the field
6143 \vspace{0.3cm}
6144 \vspace{0.3cm}
6145 \vspace{0.3cm}
6146 \subsubsection{RPC name:~get\_other\_config}
6148 {\bf Overview:}
6149 Get the other\_config field of the given host.
6151 \noindent {\bf Signature:}
6152 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
6155 \noindent{\bf Arguments:}
6158 \vspace{0.3cm}
6159 \begin{tabular}{|c|c|p{7cm}|}
6160 \hline
6161 {\bf type} & {\bf name} & {\bf description} \\ \hline
6162 {\tt host ref } & self & reference to the object \\ \hline
6164 \end{tabular}
6166 \vspace{0.3cm}
6168 \noindent {\bf Return Type:}
6169 {\tt
6170 (string $\rightarrow$ string) Map
6174 value of the field
6175 \vspace{0.3cm}
6176 \vspace{0.3cm}
6177 \vspace{0.3cm}
6178 \subsubsection{RPC name:~set\_other\_config}
6180 {\bf Overview:}
6181 Set the other\_config field of the given host.
6183 \noindent {\bf Signature:}
6184 \begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6187 \noindent{\bf Arguments:}
6190 \vspace{0.3cm}
6191 \begin{tabular}{|c|c|p{7cm}|}
6192 \hline
6193 {\bf type} & {\bf name} & {\bf description} \\ \hline
6194 {\tt host ref } & self & reference to the object \\ \hline
6196 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6198 \end{tabular}
6200 \vspace{0.3cm}
6202 \noindent {\bf Return Type:}
6203 {\tt
6204 void
6209 \vspace{0.3cm}
6210 \vspace{0.3cm}
6211 \vspace{0.3cm}
6212 \subsubsection{RPC name:~add\_to\_other\_config}
6214 {\bf Overview:}
6215 Add the given key-value pair to the other\_config field of the given host.
6217 \noindent {\bf Signature:}
6218 \begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
6221 \noindent{\bf Arguments:}
6224 \vspace{0.3cm}
6225 \begin{tabular}{|c|c|p{7cm}|}
6226 \hline
6227 {\bf type} & {\bf name} & {\bf description} \\ \hline
6228 {\tt host ref } & self & reference to the object \\ \hline
6230 {\tt string } & key & Key to add \\ \hline
6232 {\tt string } & value & Value to add \\ \hline
6234 \end{tabular}
6236 \vspace{0.3cm}
6238 \noindent {\bf Return Type:}
6239 {\tt
6240 void
6245 \vspace{0.3cm}
6246 \vspace{0.3cm}
6247 \vspace{0.3cm}
6248 \subsubsection{RPC name:~remove\_from\_other\_config}
6250 {\bf Overview:}
6251 Remove the given key and its corresponding value from the other\_config
6252 field of the given host. If the key is not in that Map, then do nothing.
6254 \noindent {\bf Signature:}
6255 \begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
6258 \noindent{\bf Arguments:}
6261 \vspace{0.3cm}
6262 \begin{tabular}{|c|c|p{7cm}|}
6263 \hline
6264 {\bf type} & {\bf name} & {\bf description} \\ \hline
6265 {\tt host ref } & self & reference to the object \\ \hline
6267 {\tt string } & key & Key to remove \\ \hline
6269 \end{tabular}
6271 \vspace{0.3cm}
6273 \noindent {\bf Return Type:}
6274 {\tt
6275 void
6280 \vspace{0.3cm}
6281 \vspace{0.3cm}
6282 \vspace{0.3cm}
6283 \subsubsection{RPC name:~get\_capabilities}
6285 {\bf Overview:}
6286 Get the capabilities field of the given host.
6288 \noindent {\bf Signature:}
6289 \begin{verbatim} (string Set) get_capabilities (session_id s, host ref self)\end{verbatim}
6292 \noindent{\bf Arguments:}
6295 \vspace{0.3cm}
6296 \begin{tabular}{|c|c|p{7cm}|}
6297 \hline
6298 {\bf type} & {\bf name} & {\bf description} \\ \hline
6299 {\tt host ref } & self & reference to the object \\ \hline
6301 \end{tabular}
6303 \vspace{0.3cm}
6305 \noindent {\bf Return Type:}
6306 {\tt
6307 string Set
6311 value of the field
6312 \vspace{0.3cm}
6313 \vspace{0.3cm}
6314 \vspace{0.3cm}
6315 \subsubsection{RPC name:~get\_cpu\_configuration}
6317 {\bf Overview:}
6318 Get the cpu\_configuration field of the given host.
6320 \noindent {\bf Signature:}
6321 \begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, host ref self)\end{verbatim}
6324 \noindent{\bf Arguments:}
6327 \vspace{0.3cm}
6328 \begin{tabular}{|c|c|p{7cm}|}
6329 \hline
6330 {\bf type} & {\bf name} & {\bf description} \\ \hline
6331 {\tt host ref } & self & reference to the object \\ \hline
6333 \end{tabular}
6335 \vspace{0.3cm}
6337 \noindent {\bf Return Type:}
6338 {\tt
6339 (string $\rightarrow$ string) Map
6343 value of the field
6344 \vspace{0.3cm}
6345 \vspace{0.3cm}
6346 \vspace{0.3cm}
6347 \subsubsection{RPC name:~get\_sched\_policy}
6349 {\bf Overview:}
6350 Get the sched\_policy field of the given host.
6352 \noindent {\bf Signature:}
6353 \begin{verbatim} string get_sched_policy (session_id s, host ref self)\end{verbatim}
6356 \noindent{\bf Arguments:}
6359 \vspace{0.3cm}
6360 \begin{tabular}{|c|c|p{7cm}|}
6361 \hline
6362 {\bf type} & {\bf name} & {\bf description} \\ \hline
6363 {\tt host ref } & self & reference to the object \\ \hline
6365 \end{tabular}
6367 \vspace{0.3cm}
6369 \noindent {\bf Return Type:}
6370 {\tt
6371 string
6375 value of the field
6376 \vspace{0.3cm}
6377 \vspace{0.3cm}
6378 \vspace{0.3cm}
6379 \subsubsection{RPC name:~get\_supported\_bootloaders}
6381 {\bf Overview:}
6382 Get the supported\_bootloaders field of the given host.
6384 \noindent {\bf Signature:}
6385 \begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim}
6388 \noindent{\bf Arguments:}
6391 \vspace{0.3cm}
6392 \begin{tabular}{|c|c|p{7cm}|}
6393 \hline
6394 {\bf type} & {\bf name} & {\bf description} \\ \hline
6395 {\tt host ref } & self & reference to the object \\ \hline
6397 \end{tabular}
6399 \vspace{0.3cm}
6401 \noindent {\bf Return Type:}
6402 {\tt
6403 string Set
6407 value of the field
6408 \vspace{0.3cm}
6409 \vspace{0.3cm}
6410 \vspace{0.3cm}
6411 \subsubsection{RPC name:~get\_resident\_VMs}
6413 {\bf Overview:}
6414 Get the resident\_VMs field of the given host.
6416 \noindent {\bf Signature:}
6417 \begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
6420 \noindent{\bf Arguments:}
6423 \vspace{0.3cm}
6424 \begin{tabular}{|c|c|p{7cm}|}
6425 \hline
6426 {\bf type} & {\bf name} & {\bf description} \\ \hline
6427 {\tt host ref } & self & reference to the object \\ \hline
6429 \end{tabular}
6431 \vspace{0.3cm}
6433 \noindent {\bf Return Type:}
6434 {\tt
6435 (VM ref) Set
6439 value of the field
6440 \vspace{0.3cm}
6441 \vspace{0.3cm}
6442 \vspace{0.3cm}
6443 \subsubsection{RPC name:~get\_logging}
6445 {\bf Overview:}
6446 Get the logging field of the given host.
6448 \noindent {\bf Signature:}
6449 \begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
6452 \noindent{\bf Arguments:}
6455 \vspace{0.3cm}
6456 \begin{tabular}{|c|c|p{7cm}|}
6457 \hline
6458 {\bf type} & {\bf name} & {\bf description} \\ \hline
6459 {\tt host ref } & self & reference to the object \\ \hline
6461 \end{tabular}
6463 \vspace{0.3cm}
6465 \noindent {\bf Return Type:}
6466 {\tt
6467 (string $\rightarrow$ string) Map
6471 value of the field
6472 \vspace{0.3cm}
6473 \vspace{0.3cm}
6474 \vspace{0.3cm}
6475 \subsubsection{RPC name:~set\_logging}
6477 {\bf Overview:}
6478 Set the logging field of the given host.
6480 \noindent {\bf Signature:}
6481 \begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
6484 \noindent{\bf Arguments:}
6487 \vspace{0.3cm}
6488 \begin{tabular}{|c|c|p{7cm}|}
6489 \hline
6490 {\bf type} & {\bf name} & {\bf description} \\ \hline
6491 {\tt host ref } & self & reference to the object \\ \hline
6493 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
6495 \end{tabular}
6497 \vspace{0.3cm}
6499 \noindent {\bf Return Type:}
6500 {\tt
6501 void
6506 \vspace{0.3cm}
6507 \vspace{0.3cm}
6508 \vspace{0.3cm}
6509 \subsubsection{RPC name:~add\_to\_logging}
6511 {\bf Overview:}
6512 Add the given key-value pair to the logging field of the given host.
6514 \noindent {\bf Signature:}
6515 \begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\end{verbatim}
6518 \noindent{\bf Arguments:}
6521 \vspace{0.3cm}
6522 \begin{tabular}{|c|c|p{7cm}|}
6523 \hline
6524 {\bf type} & {\bf name} & {\bf description} \\ \hline
6525 {\tt host ref } & self & reference to the object \\ \hline
6527 {\tt string } & key & Key to add \\ \hline
6529 {\tt string } & value & Value to add \\ \hline
6531 \end{tabular}
6533 \vspace{0.3cm}
6535 \noindent {\bf Return Type:}
6536 {\tt
6537 void
6542 \vspace{0.3cm}
6543 \vspace{0.3cm}
6544 \vspace{0.3cm}
6545 \subsubsection{RPC name:~remove\_from\_logging}
6547 {\bf Overview:}
6548 Remove the given key and its corresponding value from the logging field of
6549 the given host. If the key is not in that Map, then do nothing.
6551 \noindent {\bf Signature:}
6552 \begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\end{verbatim}
6555 \noindent{\bf Arguments:}
6558 \vspace{0.3cm}
6559 \begin{tabular}{|c|c|p{7cm}|}
6560 \hline
6561 {\bf type} & {\bf name} & {\bf description} \\ \hline
6562 {\tt host ref } & self & reference to the object \\ \hline
6564 {\tt string } & key & Key to remove \\ \hline
6566 \end{tabular}
6568 \vspace{0.3cm}
6570 \noindent {\bf Return Type:}
6571 {\tt
6572 void
6577 \vspace{0.3cm}
6578 \vspace{0.3cm}
6579 \vspace{0.3cm}
6580 \subsubsection{RPC name:~get\_PIFs}
6582 {\bf Overview:}
6583 Get the PIFs field of the given host.
6585 \noindent {\bf Signature:}
6586 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
6589 \noindent{\bf Arguments:}
6592 \vspace{0.3cm}
6593 \begin{tabular}{|c|c|p{7cm}|}
6594 \hline
6595 {\bf type} & {\bf name} & {\bf description} \\ \hline
6596 {\tt host ref } & self & reference to the object \\ \hline
6598 \end{tabular}
6600 \vspace{0.3cm}
6602 \noindent {\bf Return Type:}
6603 {\tt
6604 (PIF ref) Set
6608 value of the field
6609 \vspace{0.3cm}
6610 \vspace{0.3cm}
6611 \vspace{0.3cm}
6612 \subsubsection{RPC name:~get\_suspend\_image\_sr}
6614 {\bf Overview:}
6615 Get the suspend\_image\_sr field of the given host.
6617 \noindent {\bf Signature:}
6618 \begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
6621 \noindent{\bf Arguments:}
6624 \vspace{0.3cm}
6625 \begin{tabular}{|c|c|p{7cm}|}
6626 \hline
6627 {\bf type} & {\bf name} & {\bf description} \\ \hline
6628 {\tt host ref } & self & reference to the object \\ \hline
6630 \end{tabular}
6632 \vspace{0.3cm}
6634 \noindent {\bf Return Type:}
6635 {\tt
6636 SR ref
6640 value of the field
6641 \vspace{0.3cm}
6642 \vspace{0.3cm}
6643 \vspace{0.3cm}
6644 \subsubsection{RPC name:~set\_suspend\_image\_sr}
6646 {\bf Overview:}
6647 Set the suspend\_image\_sr field of the given host.
6649 \noindent {\bf Signature:}
6650 \begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6653 \noindent{\bf Arguments:}
6656 \vspace{0.3cm}
6657 \begin{tabular}{|c|c|p{7cm}|}
6658 \hline
6659 {\bf type} & {\bf name} & {\bf description} \\ \hline
6660 {\tt host ref } & self & reference to the object \\ \hline
6662 {\tt SR ref } & value & New value to set \\ \hline
6664 \end{tabular}
6666 \vspace{0.3cm}
6668 \noindent {\bf Return Type:}
6669 {\tt
6670 void
6675 \vspace{0.3cm}
6676 \vspace{0.3cm}
6677 \vspace{0.3cm}
6678 \subsubsection{RPC name:~get\_crash\_dump\_sr}
6680 {\bf Overview:}
6681 Get the crash\_dump\_sr field of the given host.
6683 \noindent {\bf Signature:}
6684 \begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
6687 \noindent{\bf Arguments:}
6690 \vspace{0.3cm}
6691 \begin{tabular}{|c|c|p{7cm}|}
6692 \hline
6693 {\bf type} & {\bf name} & {\bf description} \\ \hline
6694 {\tt host ref } & self & reference to the object \\ \hline
6696 \end{tabular}
6698 \vspace{0.3cm}
6700 \noindent {\bf Return Type:}
6701 {\tt
6702 SR ref
6706 value of the field
6707 \vspace{0.3cm}
6708 \vspace{0.3cm}
6709 \vspace{0.3cm}
6710 \subsubsection{RPC name:~set\_crash\_dump\_sr}
6712 {\bf Overview:}
6713 Set the crash\_dump\_sr field of the given host.
6715 \noindent {\bf Signature:}
6716 \begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\end{verbatim}
6719 \noindent{\bf Arguments:}
6722 \vspace{0.3cm}
6723 \begin{tabular}{|c|c|p{7cm}|}
6724 \hline
6725 {\bf type} & {\bf name} & {\bf description} \\ \hline
6726 {\tt host ref } & self & reference to the object \\ \hline
6728 {\tt SR ref } & value & New value to set \\ \hline
6730 \end{tabular}
6732 \vspace{0.3cm}
6734 \noindent {\bf Return Type:}
6735 {\tt
6736 void
6741 \vspace{0.3cm}
6742 \vspace{0.3cm}
6743 \vspace{0.3cm}
6744 \subsubsection{RPC name:~get\_PBDs}
6746 {\bf Overview:}
6747 Get the PBDs field of the given host.
6749 \noindent {\bf Signature:}
6750 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
6753 \noindent{\bf Arguments:}
6756 \vspace{0.3cm}
6757 \begin{tabular}{|c|c|p{7cm}|}
6758 \hline
6759 {\bf type} & {\bf name} & {\bf description} \\ \hline
6760 {\tt host ref } & self & reference to the object \\ \hline
6762 \end{tabular}
6764 \vspace{0.3cm}
6766 \noindent {\bf Return Type:}
6767 {\tt
6768 (PBD ref) Set
6772 value of the field
6773 \vspace{0.3cm}
6774 \vspace{0.3cm}
6775 \vspace{0.3cm}
6776 \subsubsection{RPC name:~get\_host\_CPUs}
6778 {\bf Overview:}
6779 Get the host\_CPUs field of the given host.
6781 \noindent {\bf Signature:}
6782 \begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
6785 \noindent{\bf Arguments:}
6788 \vspace{0.3cm}
6789 \begin{tabular}{|c|c|p{7cm}|}
6790 \hline
6791 {\bf type} & {\bf name} & {\bf description} \\ \hline
6792 {\tt host ref } & self & reference to the object \\ \hline
6794 \end{tabular}
6796 \vspace{0.3cm}
6798 \noindent {\bf Return Type:}
6799 {\tt
6800 (host\_cpu ref) Set
6804 value of the field
6805 \vspace{0.3cm}
6806 \vspace{0.3cm}
6807 \vspace{0.3cm}
6808 \subsubsection{RPC name:~get\_metrics}
6810 {\bf Overview:}
6811 Get the metrics field of the given host.
6813 \noindent {\bf Signature:}
6814 \begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
6817 \noindent{\bf Arguments:}
6820 \vspace{0.3cm}
6821 \begin{tabular}{|c|c|p{7cm}|}
6822 \hline
6823 {\bf type} & {\bf name} & {\bf description} \\ \hline
6824 {\tt host ref } & self & reference to the object \\ \hline
6826 \end{tabular}
6828 \vspace{0.3cm}
6830 \noindent {\bf Return Type:}
6831 {\tt
6832 host\_metrics ref
6836 value of the field
6837 \vspace{0.3cm}
6838 \vspace{0.3cm}
6839 \vspace{0.3cm}
6840 \subsubsection{RPC name:~get\_by\_uuid}
6842 {\bf Overview:}
6843 Get a reference to the host instance with the specified UUID.
6845 \noindent {\bf Signature:}
6846 \begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6849 \noindent{\bf Arguments:}
6852 \vspace{0.3cm}
6853 \begin{tabular}{|c|c|p{7cm}|}
6854 \hline
6855 {\bf type} & {\bf name} & {\bf description} \\ \hline
6856 {\tt string } & uuid & UUID of object to return \\ \hline
6858 \end{tabular}
6860 \vspace{0.3cm}
6862 \noindent {\bf Return Type:}
6863 {\tt
6864 host ref
6868 reference to the object
6869 \vspace{0.3cm}
6870 \vspace{0.3cm}
6871 \vspace{0.3cm}
6872 \subsubsection{RPC name:~get\_record}
6874 {\bf Overview:}
6875 Get a record containing the current state of the given host.
6877 \noindent {\bf Signature:}
6878 \begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
6881 \noindent{\bf Arguments:}
6884 \vspace{0.3cm}
6885 \begin{tabular}{|c|c|p{7cm}|}
6886 \hline
6887 {\bf type} & {\bf name} & {\bf description} \\ \hline
6888 {\tt host ref } & self & reference to the object \\ \hline
6890 \end{tabular}
6892 \vspace{0.3cm}
6894 \noindent {\bf Return Type:}
6895 {\tt
6896 host record
6900 all fields from the object
6901 \vspace{0.3cm}
6902 \vspace{0.3cm}
6903 \vspace{0.3cm}
6904 \subsubsection{RPC name:~get\_by\_name\_label}
6906 {\bf Overview:}
6907 Get all the host instances with the given label.
6909 \noindent {\bf Signature:}
6910 \begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
6913 \noindent{\bf Arguments:}
6916 \vspace{0.3cm}
6917 \begin{tabular}{|c|c|p{7cm}|}
6918 \hline
6919 {\bf type} & {\bf name} & {\bf description} \\ \hline
6920 {\tt string } & label & label of object to return \\ \hline
6922 \end{tabular}
6924 \vspace{0.3cm}
6926 \noindent {\bf Return Type:}
6927 {\tt
6928 (host ref) Set
6932 references to objects with match names
6933 \vspace{0.3cm}
6934 \vspace{0.3cm}
6935 \vspace{0.3cm}
6937 \vspace{1cm}
6938 \newpage
6939 \section{Class: host\_metrics}
6940 \subsection{Fields for class: host\_metrics}
6941 \begin{longtable}{|lllp{0.38\textwidth}|}
6942 \hline
6943 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
6944 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
6945 The metrics associated with a host.}} \\
6946 \hline
6947 Quals & Field & Type & Description \\
6948 \hline
6949 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6950 $\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
6951 $\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
6952 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
6953 \hline
6954 \end{longtable}
6955 \subsection{RPCs associated with class: host\_metrics}
6956 \subsubsection{RPC name:~get\_all}
6958 {\bf Overview:}
6959 Return a list of all the host\_metrics instances known to the system.
6961 \noindent {\bf Signature:}
6962 \begin{verbatim} ((host_metrics ref) Set) get_all (session_id s)\end{verbatim}
6965 \vspace{0.3cm}
6967 \noindent {\bf Return Type:}
6968 {\tt
6969 (host\_metrics ref) Set
6973 references to all objects
6974 \vspace{0.3cm}
6975 \vspace{0.3cm}
6976 \vspace{0.3cm}
6977 \subsubsection{RPC name:~get\_uuid}
6979 {\bf Overview:}
6980 Get the uuid field of the given host\_metrics.
6982 \noindent {\bf Signature:}
6983 \begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
6986 \noindent{\bf Arguments:}
6989 \vspace{0.3cm}
6990 \begin{tabular}{|c|c|p{7cm}|}
6991 \hline
6992 {\bf type} & {\bf name} & {\bf description} \\ \hline
6993 {\tt host\_metrics ref } & self & reference to the object \\ \hline
6995 \end{tabular}
6997 \vspace{0.3cm}
6999 \noindent {\bf Return Type:}
7000 {\tt
7001 string
7005 value of the field
7006 \vspace{0.3cm}
7007 \vspace{0.3cm}
7008 \vspace{0.3cm}
7009 \subsubsection{RPC name:~get\_memory\_total}
7011 {\bf Overview:}
7012 Get the memory/total field of the given host\_metrics.
7014 \noindent {\bf Signature:}
7015 \begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
7018 \noindent{\bf Arguments:}
7021 \vspace{0.3cm}
7022 \begin{tabular}{|c|c|p{7cm}|}
7023 \hline
7024 {\bf type} & {\bf name} & {\bf description} \\ \hline
7025 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7027 \end{tabular}
7029 \vspace{0.3cm}
7031 \noindent {\bf Return Type:}
7032 {\tt
7033 int
7037 value of the field
7038 \vspace{0.3cm}
7039 \vspace{0.3cm}
7040 \vspace{0.3cm}
7041 \subsubsection{RPC name:~get\_memory\_free}
7043 {\bf Overview:}
7044 Get the memory/free field of the given host\_metrics.
7046 \noindent {\bf Signature:}
7047 \begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
7050 \noindent{\bf Arguments:}
7053 \vspace{0.3cm}
7054 \begin{tabular}{|c|c|p{7cm}|}
7055 \hline
7056 {\bf type} & {\bf name} & {\bf description} \\ \hline
7057 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7059 \end{tabular}
7061 \vspace{0.3cm}
7063 \noindent {\bf Return Type:}
7064 {\tt
7065 int
7069 value of the field
7070 \vspace{0.3cm}
7071 \vspace{0.3cm}
7072 \vspace{0.3cm}
7073 \subsubsection{RPC name:~get\_last\_updated}
7075 {\bf Overview:}
7076 Get the last\_updated field of the given host\_metrics.
7078 \noindent {\bf Signature:}
7079 \begin{verbatim} datetime get_last_updated (session_id s, host_metrics ref self)\end{verbatim}
7082 \noindent{\bf Arguments:}
7085 \vspace{0.3cm}
7086 \begin{tabular}{|c|c|p{7cm}|}
7087 \hline
7088 {\bf type} & {\bf name} & {\bf description} \\ \hline
7089 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7091 \end{tabular}
7093 \vspace{0.3cm}
7095 \noindent {\bf Return Type:}
7096 {\tt
7097 datetime
7101 value of the field
7102 \vspace{0.3cm}
7103 \vspace{0.3cm}
7104 \vspace{0.3cm}
7105 \subsubsection{RPC name:~get\_by\_uuid}
7107 {\bf Overview:}
7108 Get a reference to the host\_metrics instance with the specified UUID.
7110 \noindent {\bf Signature:}
7111 \begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7114 \noindent{\bf Arguments:}
7117 \vspace{0.3cm}
7118 \begin{tabular}{|c|c|p{7cm}|}
7119 \hline
7120 {\bf type} & {\bf name} & {\bf description} \\ \hline
7121 {\tt string } & uuid & UUID of object to return \\ \hline
7123 \end{tabular}
7125 \vspace{0.3cm}
7127 \noindent {\bf Return Type:}
7128 {\tt
7129 host\_metrics ref
7133 reference to the object
7134 \vspace{0.3cm}
7135 \vspace{0.3cm}
7136 \vspace{0.3cm}
7137 \subsubsection{RPC name:~get\_record}
7139 {\bf Overview:}
7140 Get a record containing the current state of the given host\_metrics.
7142 \noindent {\bf Signature:}
7143 \begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
7146 \noindent{\bf Arguments:}
7149 \vspace{0.3cm}
7150 \begin{tabular}{|c|c|p{7cm}|}
7151 \hline
7152 {\bf type} & {\bf name} & {\bf description} \\ \hline
7153 {\tt host\_metrics ref } & self & reference to the object \\ \hline
7155 \end{tabular}
7157 \vspace{0.3cm}
7159 \noindent {\bf Return Type:}
7160 {\tt
7161 host\_metrics record
7165 all fields from the object
7166 \vspace{0.3cm}
7167 \vspace{0.3cm}
7168 \vspace{0.3cm}
7170 \vspace{1cm}
7171 \newpage
7172 \section{Class: host\_cpu}
7173 \subsection{Fields for class: host\_cpu}
7174 \begin{longtable}{|lllp{0.38\textwidth}|}
7175 \hline
7176 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
7177 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
7178 \hline
7179 Quals & Field & Type & Description \\
7180 \hline
7181 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7182 $\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the host the CPU is in \\
7183 $\mathit{RO}_\mathit{run}$ & {\tt number} & int & the number of the physical CPU within the host \\
7184 $\mathit{RO}_\mathit{run}$ & {\tt vendor} & string & the vendor of the physical CPU \\
7185 $\mathit{RO}_\mathit{run}$ & {\tt speed} & int & the speed of the physical CPU \\
7186 $\mathit{RO}_\mathit{run}$ & {\tt modelname} & string & the model name of the physical CPU \\
7187 $\mathit{RO}_\mathit{run}$ & {\tt stepping} & string & the stepping of the physical CPU \\
7188 $\mathit{RO}_\mathit{run}$ & {\tt flags} & string & the flags of the physical CPU (a decoded version of the features field) \\
7189 $\mathit{RO}_\mathit{run}$ & {\tt features} & string & the physical CPU feature bitmap \\
7190 $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
7191 \hline
7192 \end{longtable}
7193 \subsection{RPCs associated with class: host\_cpu}
7194 \subsubsection{RPC name:~get\_all}
7196 {\bf Overview:}
7197 Return a list of all the host\_cpus known to the system.
7199 \noindent {\bf Signature:}
7200 \begin{verbatim} ((host_cpu ref) Set) get_all (session_id s)\end{verbatim}
7203 \vspace{0.3cm}
7205 \noindent {\bf Return Type:}
7206 {\tt
7207 (host\_cpu ref) Set
7211 references to all objects
7212 \vspace{0.3cm}
7213 \vspace{0.3cm}
7214 \vspace{0.3cm}
7215 \subsubsection{RPC name:~get\_uuid}
7217 {\bf Overview:}
7218 Get the uuid field of the given host\_cpu.
7220 \noindent {\bf Signature:}
7221 \begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
7224 \noindent{\bf Arguments:}
7227 \vspace{0.3cm}
7228 \begin{tabular}{|c|c|p{7cm}|}
7229 \hline
7230 {\bf type} & {\bf name} & {\bf description} \\ \hline
7231 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7233 \end{tabular}
7235 \vspace{0.3cm}
7237 \noindent {\bf Return Type:}
7238 {\tt
7239 string
7243 value of the field
7244 \vspace{0.3cm}
7245 \vspace{0.3cm}
7246 \vspace{0.3cm}
7247 \subsubsection{RPC name:~get\_host}
7249 {\bf Overview:}
7250 Get the host field of the given host\_cpu.
7252 \noindent {\bf Signature:}
7253 \begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
7256 \noindent{\bf Arguments:}
7259 \vspace{0.3cm}
7260 \begin{tabular}{|c|c|p{7cm}|}
7261 \hline
7262 {\bf type} & {\bf name} & {\bf description} \\ \hline
7263 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7265 \end{tabular}
7267 \vspace{0.3cm}
7269 \noindent {\bf Return Type:}
7270 {\tt
7271 host ref
7275 value of the field
7276 \vspace{0.3cm}
7277 \vspace{0.3cm}
7278 \vspace{0.3cm}
7279 \subsubsection{RPC name:~get\_number}
7281 {\bf Overview:}
7282 Get the number field of the given host\_cpu.
7284 \noindent {\bf Signature:}
7285 \begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
7288 \noindent{\bf Arguments:}
7291 \vspace{0.3cm}
7292 \begin{tabular}{|c|c|p{7cm}|}
7293 \hline
7294 {\bf type} & {\bf name} & {\bf description} \\ \hline
7295 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7297 \end{tabular}
7299 \vspace{0.3cm}
7301 \noindent {\bf Return Type:}
7302 {\tt
7303 int
7307 value of the field
7308 \vspace{0.3cm}
7309 \vspace{0.3cm}
7310 \vspace{0.3cm}
7311 \subsubsection{RPC name:~get\_vendor}
7313 {\bf Overview:}
7314 Get the vendor field of the given host\_cpu.
7316 \noindent {\bf Signature:}
7317 \begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
7320 \noindent{\bf Arguments:}
7323 \vspace{0.3cm}
7324 \begin{tabular}{|c|c|p{7cm}|}
7325 \hline
7326 {\bf type} & {\bf name} & {\bf description} \\ \hline
7327 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7329 \end{tabular}
7331 \vspace{0.3cm}
7333 \noindent {\bf Return Type:}
7334 {\tt
7335 string
7339 value of the field
7340 \vspace{0.3cm}
7341 \vspace{0.3cm}
7342 \vspace{0.3cm}
7343 \subsubsection{RPC name:~get\_speed}
7345 {\bf Overview:}
7346 Get the speed field of the given host\_cpu.
7348 \noindent {\bf Signature:}
7349 \begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
7352 \noindent{\bf Arguments:}
7355 \vspace{0.3cm}
7356 \begin{tabular}{|c|c|p{7cm}|}
7357 \hline
7358 {\bf type} & {\bf name} & {\bf description} \\ \hline
7359 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7361 \end{tabular}
7363 \vspace{0.3cm}
7365 \noindent {\bf Return Type:}
7366 {\tt
7367 int
7371 value of the field
7372 \vspace{0.3cm}
7373 \vspace{0.3cm}
7374 \vspace{0.3cm}
7375 \subsubsection{RPC name:~get\_modelname}
7377 {\bf Overview:}
7378 Get the modelname field of the given host\_cpu.
7380 \noindent {\bf Signature:}
7381 \begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
7384 \noindent{\bf Arguments:}
7387 \vspace{0.3cm}
7388 \begin{tabular}{|c|c|p{7cm}|}
7389 \hline
7390 {\bf type} & {\bf name} & {\bf description} \\ \hline
7391 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7393 \end{tabular}
7395 \vspace{0.3cm}
7397 \noindent {\bf Return Type:}
7398 {\tt
7399 string
7403 value of the field
7404 \vspace{0.3cm}
7405 \vspace{0.3cm}
7406 \vspace{0.3cm}
7407 \subsubsection{RPC name:~get\_stepping}
7409 {\bf Overview:}
7410 Get the stepping field of the given host\_cpu.
7412 \noindent {\bf Signature:}
7413 \begin{verbatim} string get_stepping (session_id s, host_cpu ref self)\end{verbatim}
7416 \noindent{\bf Arguments:}
7419 \vspace{0.3cm}
7420 \begin{tabular}{|c|c|p{7cm}|}
7421 \hline
7422 {\bf type} & {\bf name} & {\bf description} \\ \hline
7423 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7425 \end{tabular}
7427 \vspace{0.3cm}
7429 \noindent {\bf Return Type:}
7430 {\tt
7431 string
7435 value of the field
7436 \vspace{0.3cm}
7437 \vspace{0.3cm}
7438 \vspace{0.3cm}
7439 \subsubsection{RPC name:~get\_flags}
7441 {\bf Overview:}
7442 Get the flags field of the given host\_cpu. As of this version of the
7443 API, the semantics of the returned string are explicitly unspecified,
7444 and may change in the future.
7446 \noindent {\bf Signature:}
7447 \begin{verbatim} string get_flags (session_id s, host_cpu ref self)\end{verbatim}
7450 \noindent{\bf Arguments:}
7453 \vspace{0.3cm}
7454 \begin{tabular}{|c|c|p{7cm}|}
7455 \hline
7456 {\bf type} & {\bf name} & {\bf description} \\ \hline
7457 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7459 \end{tabular}
7461 \vspace{0.3cm}
7463 \noindent {\bf Return Type:}
7464 {\tt
7465 string
7469 value of the field
7470 \vspace{0.3cm}
7471 \vspace{0.3cm}
7472 \vspace{0.3cm}
7473 \subsubsection{RPC name:~get\_features}
7475 {\bf Overview:}
7476 Get the features field of the given host\_cpu. As of this version of the
7477 API, the semantics of the returned string are explicitly unspecified,
7478 and may change in the future.
7480 \noindent {\bf Signature:}
7481 \begin{verbatim} string get_features (session_id s, host_cpu ref self)\end{verbatim}
7484 \noindent{\bf Arguments:}
7487 \vspace{0.3cm}
7488 \begin{tabular}{|c|c|p{7cm}|}
7489 \hline
7490 {\bf type} & {\bf name} & {\bf description} \\ \hline
7491 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7493 \end{tabular}
7495 \vspace{0.3cm}
7497 \noindent {\bf Return Type:}
7498 {\tt
7499 string
7503 value of the field
7504 \vspace{0.3cm}
7505 \vspace{0.3cm}
7506 \vspace{0.3cm}
7507 \subsubsection{RPC name:~get\_utilisation}
7509 {\bf Overview:}
7510 Get the utilisation field of the given host\_cpu.
7512 \noindent {\bf Signature:}
7513 \begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
7516 \noindent{\bf Arguments:}
7519 \vspace{0.3cm}
7520 \begin{tabular}{|c|c|p{7cm}|}
7521 \hline
7522 {\bf type} & {\bf name} & {\bf description} \\ \hline
7523 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7525 \end{tabular}
7527 \vspace{0.3cm}
7529 \noindent {\bf Return Type:}
7530 {\tt
7531 float
7535 value of the field
7536 \vspace{0.3cm}
7537 \vspace{0.3cm}
7538 \vspace{0.3cm}
7539 \subsubsection{RPC name:~get\_by\_uuid}
7541 {\bf Overview:}
7542 Get a reference to the host\_cpu instance with the specified UUID.
7544 \noindent {\bf Signature:}
7545 \begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7548 \noindent{\bf Arguments:}
7551 \vspace{0.3cm}
7552 \begin{tabular}{|c|c|p{7cm}|}
7553 \hline
7554 {\bf type} & {\bf name} & {\bf description} \\ \hline
7555 {\tt string } & uuid & UUID of object to return \\ \hline
7557 \end{tabular}
7559 \vspace{0.3cm}
7561 \noindent {\bf Return Type:}
7562 {\tt
7563 host\_cpu ref
7567 reference to the object
7568 \vspace{0.3cm}
7569 \vspace{0.3cm}
7570 \vspace{0.3cm}
7571 \subsubsection{RPC name:~get\_record}
7573 {\bf Overview:}
7574 Get a record containing the current state of the given host\_cpu.
7576 \noindent {\bf Signature:}
7577 \begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
7580 \noindent{\bf Arguments:}
7583 \vspace{0.3cm}
7584 \begin{tabular}{|c|c|p{7cm}|}
7585 \hline
7586 {\bf type} & {\bf name} & {\bf description} \\ \hline
7587 {\tt host\_cpu ref } & self & reference to the object \\ \hline
7589 \end{tabular}
7591 \vspace{0.3cm}
7593 \noindent {\bf Return Type:}
7594 {\tt
7595 host\_cpu record
7599 all fields from the object
7600 \vspace{0.3cm}
7601 \vspace{0.3cm}
7602 \vspace{0.3cm}
7604 \vspace{1cm}
7605 \newpage
7606 \section{Class: network}
7607 \subsection{Fields for class: network}
7608 \begin{longtable}{|lllp{0.38\textwidth}|}
7609 \hline
7610 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
7611 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7612 virtual network.}} \\
7613 \hline
7614 Quals & Field & Type & Description \\
7615 \hline
7616 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7617 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7618 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7619 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
7620 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
7621 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
7622 \hline
7623 \end{longtable}
7624 \subsection{RPCs associated with class: network}
7625 \subsubsection{RPC name:~get\_all}
7627 {\bf Overview:}
7628 Return a list of all the networks known to the system
7630 \noindent {\bf Signature:}
7631 \begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
7634 \vspace{0.3cm}
7636 \noindent {\bf Return Type:}
7637 {\tt
7638 (network ref) Set
7642 A list of all the IDs of all the networks
7643 \vspace{0.3cm}
7644 \vspace{0.3cm}
7645 \vspace{0.3cm}
7646 \subsubsection{RPC name:~get\_uuid}
7648 {\bf Overview:}
7649 Get the uuid field of the given network.
7651 \noindent {\bf Signature:}
7652 \begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
7655 \noindent{\bf Arguments:}
7658 \vspace{0.3cm}
7659 \begin{tabular}{|c|c|p{7cm}|}
7660 \hline
7661 {\bf type} & {\bf name} & {\bf description} \\ \hline
7662 {\tt network ref } & self & reference to the object \\ \hline
7664 \end{tabular}
7666 \vspace{0.3cm}
7668 \noindent {\bf Return Type:}
7669 {\tt
7670 string
7674 value of the field
7675 \vspace{0.3cm}
7676 \vspace{0.3cm}
7677 \vspace{0.3cm}
7678 \subsubsection{RPC name:~get\_name\_label}
7680 {\bf Overview:}
7681 Get the name/label field of the given network.
7683 \noindent {\bf Signature:}
7684 \begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
7687 \noindent{\bf Arguments:}
7690 \vspace{0.3cm}
7691 \begin{tabular}{|c|c|p{7cm}|}
7692 \hline
7693 {\bf type} & {\bf name} & {\bf description} \\ \hline
7694 {\tt network ref } & self & reference to the object \\ \hline
7696 \end{tabular}
7698 \vspace{0.3cm}
7700 \noindent {\bf Return Type:}
7701 {\tt
7702 string
7706 value of the field
7707 \vspace{0.3cm}
7708 \vspace{0.3cm}
7709 \vspace{0.3cm}
7710 \subsubsection{RPC name:~set\_name\_label}
7712 {\bf Overview:}
7713 Set the name/label field of the given network.
7715 \noindent {\bf Signature:}
7716 \begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
7719 \noindent{\bf Arguments:}
7722 \vspace{0.3cm}
7723 \begin{tabular}{|c|c|p{7cm}|}
7724 \hline
7725 {\bf type} & {\bf name} & {\bf description} \\ \hline
7726 {\tt network ref } & self & reference to the object \\ \hline
7728 {\tt string } & value & New value to set \\ \hline
7730 \end{tabular}
7732 \vspace{0.3cm}
7734 \noindent {\bf Return Type:}
7735 {\tt
7736 void
7741 \vspace{0.3cm}
7742 \vspace{0.3cm}
7743 \vspace{0.3cm}
7744 \subsubsection{RPC name:~get\_name\_description}
7746 {\bf Overview:}
7747 Get the name/description field of the given network.
7749 \noindent {\bf Signature:}
7750 \begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
7753 \noindent{\bf Arguments:}
7756 \vspace{0.3cm}
7757 \begin{tabular}{|c|c|p{7cm}|}
7758 \hline
7759 {\bf type} & {\bf name} & {\bf description} \\ \hline
7760 {\tt network ref } & self & reference to the object \\ \hline
7762 \end{tabular}
7764 \vspace{0.3cm}
7766 \noindent {\bf Return Type:}
7767 {\tt
7768 string
7772 value of the field
7773 \vspace{0.3cm}
7774 \vspace{0.3cm}
7775 \vspace{0.3cm}
7776 \subsubsection{RPC name:~set\_name\_description}
7778 {\bf Overview:}
7779 Set the name/description field of the given network.
7781 \noindent {\bf Signature:}
7782 \begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
7785 \noindent{\bf Arguments:}
7788 \vspace{0.3cm}
7789 \begin{tabular}{|c|c|p{7cm}|}
7790 \hline
7791 {\bf type} & {\bf name} & {\bf description} \\ \hline
7792 {\tt network ref } & self & reference to the object \\ \hline
7794 {\tt string } & value & New value to set \\ \hline
7796 \end{tabular}
7798 \vspace{0.3cm}
7800 \noindent {\bf Return Type:}
7801 {\tt
7802 void
7807 \vspace{0.3cm}
7808 \vspace{0.3cm}
7809 \vspace{0.3cm}
7810 \subsubsection{RPC name:~get\_VIFs}
7812 {\bf Overview:}
7813 Get the VIFs field of the given network.
7815 \noindent {\bf Signature:}
7816 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
7819 \noindent{\bf Arguments:}
7822 \vspace{0.3cm}
7823 \begin{tabular}{|c|c|p{7cm}|}
7824 \hline
7825 {\bf type} & {\bf name} & {\bf description} \\ \hline
7826 {\tt network ref } & self & reference to the object \\ \hline
7828 \end{tabular}
7830 \vspace{0.3cm}
7832 \noindent {\bf Return Type:}
7833 {\tt
7834 (VIF ref) Set
7838 value of the field
7839 \vspace{0.3cm}
7840 \vspace{0.3cm}
7841 \vspace{0.3cm}
7842 \subsubsection{RPC name:~get\_PIFs}
7844 {\bf Overview:}
7845 Get the PIFs field of the given network.
7847 \noindent {\bf Signature:}
7848 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
7851 \noindent{\bf Arguments:}
7854 \vspace{0.3cm}
7855 \begin{tabular}{|c|c|p{7cm}|}
7856 \hline
7857 {\bf type} & {\bf name} & {\bf description} \\ \hline
7858 {\tt network ref } & self & reference to the object \\ \hline
7860 \end{tabular}
7862 \vspace{0.3cm}
7864 \noindent {\bf Return Type:}
7865 {\tt
7866 (PIF ref) Set
7870 value of the field
7871 \vspace{0.3cm}
7872 \vspace{0.3cm}
7873 \vspace{0.3cm}
7874 \subsubsection{RPC name:~get\_other\_config}
7876 {\bf Overview:}
7877 Get the other\_config field of the given network.
7879 \noindent {\bf Signature:}
7880 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, network ref self)\end{verbatim}
7883 \noindent{\bf Arguments:}
7886 \vspace{0.3cm}
7887 \begin{tabular}{|c|c|p{7cm}|}
7888 \hline
7889 {\bf type} & {\bf name} & {\bf description} \\ \hline
7890 {\tt network ref } & self & reference to the object \\ \hline
7892 \end{tabular}
7894 \vspace{0.3cm}
7896 \noindent {\bf Return Type:}
7897 {\tt
7898 (string $\rightarrow$ string) Map
7902 value of the field
7903 \vspace{0.3cm}
7904 \vspace{0.3cm}
7905 \vspace{0.3cm}
7906 \subsubsection{RPC name:~set\_other\_config}
7908 {\bf Overview:}
7909 Set the other\_config field of the given network.
7911 \noindent {\bf Signature:}
7912 \begin{verbatim} void set_other_config (session_id s, network ref self, (string -> string) Map value)\end{verbatim}
7915 \noindent{\bf Arguments:}
7918 \vspace{0.3cm}
7919 \begin{tabular}{|c|c|p{7cm}|}
7920 \hline
7921 {\bf type} & {\bf name} & {\bf description} \\ \hline
7922 {\tt network ref } & self & reference to the object \\ \hline
7924 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
7926 \end{tabular}
7928 \vspace{0.3cm}
7930 \noindent {\bf Return Type:}
7931 {\tt
7932 void
7937 \vspace{0.3cm}
7938 \vspace{0.3cm}
7939 \vspace{0.3cm}
7940 \subsubsection{RPC name:~add\_to\_other\_config}
7942 {\bf Overview:}
7943 Add the given key-value pair to the other\_config field of the given
7944 network.
7946 \noindent {\bf Signature:}
7947 \begin{verbatim} void add_to_other_config (session_id s, network ref self, string key, string value)\end{verbatim}
7950 \noindent{\bf Arguments:}
7953 \vspace{0.3cm}
7954 \begin{tabular}{|c|c|p{7cm}|}
7955 \hline
7956 {\bf type} & {\bf name} & {\bf description} \\ \hline
7957 {\tt network ref } & self & reference to the object \\ \hline
7959 {\tt string } & key & Key to add \\ \hline
7961 {\tt string } & value & Value to add \\ \hline
7963 \end{tabular}
7965 \vspace{0.3cm}
7967 \noindent {\bf Return Type:}
7968 {\tt
7969 void
7974 \vspace{0.3cm}
7975 \vspace{0.3cm}
7976 \vspace{0.3cm}
7977 \subsubsection{RPC name:~remove\_from\_other\_config}
7979 {\bf Overview:}
7980 Remove the given key and its corresponding value from the other\_config
7981 field of the given network. If the key is not in that Map, then do
7982 nothing.
7984 \noindent {\bf Signature:}
7985 \begin{verbatim} void remove_from_other_config (session_id s, network ref self, string key)\end{verbatim}
7988 \noindent{\bf Arguments:}
7991 \vspace{0.3cm}
7992 \begin{tabular}{|c|c|p{7cm}|}
7993 \hline
7994 {\bf type} & {\bf name} & {\bf description} \\ \hline
7995 {\tt network ref } & self & reference to the object \\ \hline
7997 {\tt string } & key & Key to remove \\ \hline
7999 \end{tabular}
8001 \vspace{0.3cm}
8003 \noindent {\bf Return Type:}
8004 {\tt
8005 void
8010 \vspace{0.3cm}
8011 \vspace{0.3cm}
8012 \vspace{0.3cm}
8013 \subsubsection{RPC name:~create}
8015 {\bf Overview:}
8016 Create a new network instance, and return its handle.
8018 \noindent {\bf Signature:}
8019 \begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
8022 \noindent{\bf Arguments:}
8025 \vspace{0.3cm}
8026 \begin{tabular}{|c|c|p{7cm}|}
8027 \hline
8028 {\bf type} & {\bf name} & {\bf description} \\ \hline
8029 {\tt network record } & args & All constructor arguments \\ \hline
8031 \end{tabular}
8033 \vspace{0.3cm}
8035 \noindent {\bf Return Type:}
8036 {\tt
8037 network ref
8041 reference to the newly created object
8042 \vspace{0.3cm}
8043 \vspace{0.3cm}
8044 \vspace{0.3cm}
8045 \subsubsection{RPC name:~destroy}
8047 {\bf Overview:}
8048 Destroy the specified network instance.
8050 \noindent {\bf Signature:}
8051 \begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
8054 \noindent{\bf Arguments:}
8057 \vspace{0.3cm}
8058 \begin{tabular}{|c|c|p{7cm}|}
8059 \hline
8060 {\bf type} & {\bf name} & {\bf description} \\ \hline
8061 {\tt network ref } & self & reference to the object \\ \hline
8063 \end{tabular}
8065 \vspace{0.3cm}
8067 \noindent {\bf Return Type:}
8068 {\tt
8069 void
8074 \vspace{0.3cm}
8075 \vspace{0.3cm}
8076 \vspace{0.3cm}
8077 \subsubsection{RPC name:~get\_by\_uuid}
8079 {\bf Overview:}
8080 Get a reference to the network instance with the specified UUID.
8082 \noindent {\bf Signature:}
8083 \begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8086 \noindent{\bf Arguments:}
8089 \vspace{0.3cm}
8090 \begin{tabular}{|c|c|p{7cm}|}
8091 \hline
8092 {\bf type} & {\bf name} & {\bf description} \\ \hline
8093 {\tt string } & uuid & UUID of object to return \\ \hline
8095 \end{tabular}
8097 \vspace{0.3cm}
8099 \noindent {\bf Return Type:}
8100 {\tt
8101 network ref
8105 reference to the object
8106 \vspace{0.3cm}
8107 \vspace{0.3cm}
8108 \vspace{0.3cm}
8109 \subsubsection{RPC name:~get\_record}
8111 {\bf Overview:}
8112 Get a record containing the current state of the given network.
8114 \noindent {\bf Signature:}
8115 \begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
8118 \noindent{\bf Arguments:}
8121 \vspace{0.3cm}
8122 \begin{tabular}{|c|c|p{7cm}|}
8123 \hline
8124 {\bf type} & {\bf name} & {\bf description} \\ \hline
8125 {\tt network ref } & self & reference to the object \\ \hline
8127 \end{tabular}
8129 \vspace{0.3cm}
8131 \noindent {\bf Return Type:}
8132 {\tt
8133 network record
8137 all fields from the object
8138 \vspace{0.3cm}
8139 \vspace{0.3cm}
8140 \vspace{0.3cm}
8141 \subsubsection{RPC name:~get\_by\_name\_label}
8143 {\bf Overview:}
8144 Get all the network instances with the given label.
8146 \noindent {\bf Signature:}
8147 \begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8150 \noindent{\bf Arguments:}
8153 \vspace{0.3cm}
8154 \begin{tabular}{|c|c|p{7cm}|}
8155 \hline
8156 {\bf type} & {\bf name} & {\bf description} \\ \hline
8157 {\tt string } & label & label of object to return \\ \hline
8159 \end{tabular}
8161 \vspace{0.3cm}
8163 \noindent {\bf Return Type:}
8164 {\tt
8165 (network ref) Set
8169 references to objects with match names
8170 \vspace{0.3cm}
8171 \vspace{0.3cm}
8172 \vspace{0.3cm}
8174 \vspace{1cm}
8175 \newpage
8176 \section{Class: VIF}
8177 \subsection{Fields for class: VIF}
8178 \begin{longtable}{|lllp{0.38\textwidth}|}
8179 \hline
8180 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
8181 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8182 virtual network interface.}} \\
8183 \hline
8184 Quals & Field & Type & Description \\
8185 \hline
8186 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8187 $\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
8188 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
8189 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
8190 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
8191 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
8192 $\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
8193 $\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
8194 $\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
8195 $\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
8196 $\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
8197 $\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
8198 $\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\
8199 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF \\
8200 \hline
8201 \end{longtable}
8202 \subsection{RPCs associated with class: VIF}
8203 \subsubsection{RPC name:~plug}
8205 {\bf Overview:}
8206 Hotplug the specified VIF, dynamically attaching it to the running VM.
8208 \noindent {\bf Signature:}
8209 \begin{verbatim} void plug (session_id s, VIF ref self)\end{verbatim}
8212 \noindent{\bf Arguments:}
8215 \vspace{0.3cm}
8216 \begin{tabular}{|c|c|p{7cm}|}
8217 \hline
8218 {\bf type} & {\bf name} & {\bf description} \\ \hline
8219 {\tt VIF ref } & self & The VIF to hotplug \\ \hline
8221 \end{tabular}
8223 \vspace{0.3cm}
8225 \noindent {\bf Return Type:}
8226 {\tt
8227 void
8232 \vspace{0.3cm}
8233 \vspace{0.3cm}
8234 \vspace{0.3cm}
8235 \subsubsection{RPC name:~unplug}
8237 {\bf Overview:}
8238 Hot-unplug the specified VIF, dynamically unattaching it from the running
8239 VM.
8241 \noindent {\bf Signature:}
8242 \begin{verbatim} void unplug (session_id s, VIF ref self)\end{verbatim}
8245 \noindent{\bf Arguments:}
8248 \vspace{0.3cm}
8249 \begin{tabular}{|c|c|p{7cm}|}
8250 \hline
8251 {\bf type} & {\bf name} & {\bf description} \\ \hline
8252 {\tt VIF ref } & self & The VIF to hot-unplug \\ \hline
8254 \end{tabular}
8256 \vspace{0.3cm}
8258 \noindent {\bf Return Type:}
8259 {\tt
8260 void
8265 \vspace{0.3cm}
8266 \vspace{0.3cm}
8267 \vspace{0.3cm}
8268 \subsubsection{RPC name:~get\_all}
8270 {\bf Overview:}
8271 Return a list of all the VIFs known to the system.
8273 \noindent {\bf Signature:}
8274 \begin{verbatim} ((VIF ref) Set) get_all (session_id s)\end{verbatim}
8277 \vspace{0.3cm}
8279 \noindent {\bf Return Type:}
8280 {\tt
8281 (VIF ref) Set
8285 references to all objects
8286 \vspace{0.3cm}
8287 \vspace{0.3cm}
8288 \vspace{0.3cm}
8289 \subsubsection{RPC name:~get\_uuid}
8291 {\bf Overview:}
8292 Get the uuid field of the given VIF.
8294 \noindent {\bf Signature:}
8295 \begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
8298 \noindent{\bf Arguments:}
8301 \vspace{0.3cm}
8302 \begin{tabular}{|c|c|p{7cm}|}
8303 \hline
8304 {\bf type} & {\bf name} & {\bf description} \\ \hline
8305 {\tt VIF ref } & self & reference to the object \\ \hline
8307 \end{tabular}
8309 \vspace{0.3cm}
8311 \noindent {\bf Return Type:}
8312 {\tt
8313 string
8317 value of the field
8318 \vspace{0.3cm}
8319 \vspace{0.3cm}
8320 \vspace{0.3cm}
8321 \subsubsection{RPC name:~get\_device}
8323 {\bf Overview:}
8324 Get the device field of the given VIF.
8326 \noindent {\bf Signature:}
8327 \begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
8330 \noindent{\bf Arguments:}
8333 \vspace{0.3cm}
8334 \begin{tabular}{|c|c|p{7cm}|}
8335 \hline
8336 {\bf type} & {\bf name} & {\bf description} \\ \hline
8337 {\tt VIF ref } & self & reference to the object \\ \hline
8339 \end{tabular}
8341 \vspace{0.3cm}
8343 \noindent {\bf Return Type:}
8344 {\tt
8345 string
8349 value of the field
8350 \vspace{0.3cm}
8351 \vspace{0.3cm}
8352 \vspace{0.3cm}
8353 \subsubsection{RPC name:~set\_device}
8355 {\bf Overview:}
8356 Set the device field of the given VIF.
8358 \noindent {\bf Signature:}
8359 \begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
8362 \noindent{\bf Arguments:}
8365 \vspace{0.3cm}
8366 \begin{tabular}{|c|c|p{7cm}|}
8367 \hline
8368 {\bf type} & {\bf name} & {\bf description} \\ \hline
8369 {\tt VIF ref } & self & reference to the object \\ \hline
8371 {\tt string } & value & New value to set \\ \hline
8373 \end{tabular}
8375 \vspace{0.3cm}
8377 \noindent {\bf Return Type:}
8378 {\tt
8379 void
8384 \vspace{0.3cm}
8385 \vspace{0.3cm}
8386 \vspace{0.3cm}
8387 \subsubsection{RPC name:~get\_network}
8389 {\bf Overview:}
8390 Get the network field of the given VIF.
8392 \noindent {\bf Signature:}
8393 \begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
8396 \noindent{\bf Arguments:}
8399 \vspace{0.3cm}
8400 \begin{tabular}{|c|c|p{7cm}|}
8401 \hline
8402 {\bf type} & {\bf name} & {\bf description} \\ \hline
8403 {\tt VIF ref } & self & reference to the object \\ \hline
8405 \end{tabular}
8407 \vspace{0.3cm}
8409 \noindent {\bf Return Type:}
8410 {\tt
8411 network ref
8415 value of the field
8416 \vspace{0.3cm}
8417 \vspace{0.3cm}
8418 \vspace{0.3cm}
8419 \subsubsection{RPC name:~get\_VM}
8421 {\bf Overview:}
8422 Get the VM field of the given VIF.
8424 \noindent {\bf Signature:}
8425 \begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
8428 \noindent{\bf Arguments:}
8431 \vspace{0.3cm}
8432 \begin{tabular}{|c|c|p{7cm}|}
8433 \hline
8434 {\bf type} & {\bf name} & {\bf description} \\ \hline
8435 {\tt VIF ref } & self & reference to the object \\ \hline
8437 \end{tabular}
8439 \vspace{0.3cm}
8441 \noindent {\bf Return Type:}
8442 {\tt
8443 VM ref
8447 value of the field
8448 \vspace{0.3cm}
8449 \vspace{0.3cm}
8450 \vspace{0.3cm}
8451 \subsubsection{RPC name:~get\_MAC}
8453 {\bf Overview:}
8454 Get the MAC field of the given VIF.
8456 \noindent {\bf Signature:}
8457 \begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
8460 \noindent{\bf Arguments:}
8463 \vspace{0.3cm}
8464 \begin{tabular}{|c|c|p{7cm}|}
8465 \hline
8466 {\bf type} & {\bf name} & {\bf description} \\ \hline
8467 {\tt VIF ref } & self & reference to the object \\ \hline
8469 \end{tabular}
8471 \vspace{0.3cm}
8473 \noindent {\bf Return Type:}
8474 {\tt
8475 string
8479 value of the field
8480 \vspace{0.3cm}
8481 \vspace{0.3cm}
8482 \vspace{0.3cm}
8483 \subsubsection{RPC name:~set\_MAC}
8485 {\bf Overview:}
8486 Set the MAC field of the given VIF.
8488 \noindent {\bf Signature:}
8489 \begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
8492 \noindent{\bf Arguments:}
8495 \vspace{0.3cm}
8496 \begin{tabular}{|c|c|p{7cm}|}
8497 \hline
8498 {\bf type} & {\bf name} & {\bf description} \\ \hline
8499 {\tt VIF ref } & self & reference to the object \\ \hline
8501 {\tt string } & value & New value to set \\ \hline
8503 \end{tabular}
8505 \vspace{0.3cm}
8507 \noindent {\bf Return Type:}
8508 {\tt
8509 void
8514 \vspace{0.3cm}
8515 \vspace{0.3cm}
8516 \vspace{0.3cm}
8517 \subsubsection{RPC name:~get\_MTU}
8519 {\bf Overview:}
8520 Get the MTU field of the given VIF.
8522 \noindent {\bf Signature:}
8523 \begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
8526 \noindent{\bf Arguments:}
8529 \vspace{0.3cm}
8530 \begin{tabular}{|c|c|p{7cm}|}
8531 \hline
8532 {\bf type} & {\bf name} & {\bf description} \\ \hline
8533 {\tt VIF ref } & self & reference to the object \\ \hline
8535 \end{tabular}
8537 \vspace{0.3cm}
8539 \noindent {\bf Return Type:}
8540 {\tt
8541 int
8545 value of the field
8546 \vspace{0.3cm}
8547 \vspace{0.3cm}
8548 \vspace{0.3cm}
8549 \subsubsection{RPC name:~set\_MTU}
8551 {\bf Overview:}
8552 Set the MTU field of the given VIF.
8554 \noindent {\bf Signature:}
8555 \begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
8558 \noindent{\bf Arguments:}
8561 \vspace{0.3cm}
8562 \begin{tabular}{|c|c|p{7cm}|}
8563 \hline
8564 {\bf type} & {\bf name} & {\bf description} \\ \hline
8565 {\tt VIF ref } & self & reference to the object \\ \hline
8567 {\tt int } & value & New value to set \\ \hline
8569 \end{tabular}
8571 \vspace{0.3cm}
8573 \noindent {\bf Return Type:}
8574 {\tt
8575 void
8580 \vspace{0.3cm}
8581 \vspace{0.3cm}
8582 \vspace{0.3cm}
8583 \subsubsection{RPC name:~get\_currently\_attached}
8585 {\bf Overview:}
8586 Get the currently\_attached field of the given VIF.
8588 \noindent {\bf Signature:}
8589 \begin{verbatim} bool get_currently_attached (session_id s, VIF ref self)\end{verbatim}
8592 \noindent{\bf Arguments:}
8595 \vspace{0.3cm}
8596 \begin{tabular}{|c|c|p{7cm}|}
8597 \hline
8598 {\bf type} & {\bf name} & {\bf description} \\ \hline
8599 {\tt VIF ref } & self & reference to the object \\ \hline
8601 \end{tabular}
8603 \vspace{0.3cm}
8605 \noindent {\bf Return Type:}
8606 {\tt
8607 bool
8611 value of the field
8612 \vspace{0.3cm}
8613 \vspace{0.3cm}
8614 \vspace{0.3cm}
8615 \subsubsection{RPC name:~get\_status\_code}
8617 {\bf Overview:}
8618 Get the status\_code field of the given VIF.
8620 \noindent {\bf Signature:}
8621 \begin{verbatim} int get_status_code (session_id s, VIF ref self)\end{verbatim}
8624 \noindent{\bf Arguments:}
8627 \vspace{0.3cm}
8628 \begin{tabular}{|c|c|p{7cm}|}
8629 \hline
8630 {\bf type} & {\bf name} & {\bf description} \\ \hline
8631 {\tt VIF ref } & self & reference to the object \\ \hline
8633 \end{tabular}
8635 \vspace{0.3cm}
8637 \noindent {\bf Return Type:}
8638 {\tt
8639 int
8643 value of the field
8644 \vspace{0.3cm}
8645 \vspace{0.3cm}
8646 \vspace{0.3cm}
8647 \subsubsection{RPC name:~get\_status\_detail}
8649 {\bf Overview:}
8650 Get the status\_detail field of the given VIF.
8652 \noindent {\bf Signature:}
8653 \begin{verbatim} string get_status_detail (session_id s, VIF ref self)\end{verbatim}
8656 \noindent{\bf Arguments:}
8659 \vspace{0.3cm}
8660 \begin{tabular}{|c|c|p{7cm}|}
8661 \hline
8662 {\bf type} & {\bf name} & {\bf description} \\ \hline
8663 {\tt VIF ref } & self & reference to the object \\ \hline
8665 \end{tabular}
8667 \vspace{0.3cm}
8669 \noindent {\bf Return Type:}
8670 {\tt
8671 string
8675 value of the field
8676 \vspace{0.3cm}
8677 \vspace{0.3cm}
8678 \vspace{0.3cm}
8679 \subsubsection{RPC name:~get\_runtime\_properties}
8681 {\bf Overview:}
8682 Get the runtime\_properties field of the given VIF.
8684 \noindent {\bf Signature:}
8685 \begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VIF ref self)\end{verbatim}
8688 \noindent{\bf Arguments:}
8691 \vspace{0.3cm}
8692 \begin{tabular}{|c|c|p{7cm}|}
8693 \hline
8694 {\bf type} & {\bf name} & {\bf description} \\ \hline
8695 {\tt VIF ref } & self & reference to the object \\ \hline
8697 \end{tabular}
8699 \vspace{0.3cm}
8701 \noindent {\bf Return Type:}
8702 {\tt
8703 (string $\rightarrow$ string) Map
8707 value of the field
8708 \vspace{0.3cm}
8709 \vspace{0.3cm}
8710 \vspace{0.3cm}
8711 \subsubsection{RPC name:~get\_qos\_algorithm\_type}
8713 {\bf Overview:}
8714 Get the qos/algorithm\_type field of the given VIF.
8716 \noindent {\bf Signature:}
8717 \begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim}
8720 \noindent{\bf Arguments:}
8723 \vspace{0.3cm}
8724 \begin{tabular}{|c|c|p{7cm}|}
8725 \hline
8726 {\bf type} & {\bf name} & {\bf description} \\ \hline
8727 {\tt VIF ref } & self & reference to the object \\ \hline
8729 \end{tabular}
8731 \vspace{0.3cm}
8733 \noindent {\bf Return Type:}
8734 {\tt
8735 string
8739 value of the field
8740 \vspace{0.3cm}
8741 \vspace{0.3cm}
8742 \vspace{0.3cm}
8743 \subsubsection{RPC name:~set\_qos\_algorithm\_type}
8745 {\bf Overview:}
8746 Set the qos/algorithm\_type field of the given VIF.
8748 \noindent {\bf Signature:}
8749 \begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim}
8752 \noindent{\bf Arguments:}
8755 \vspace{0.3cm}
8756 \begin{tabular}{|c|c|p{7cm}|}
8757 \hline
8758 {\bf type} & {\bf name} & {\bf description} \\ \hline
8759 {\tt VIF ref } & self & reference to the object \\ \hline
8761 {\tt string } & value & New value to set \\ \hline
8763 \end{tabular}
8765 \vspace{0.3cm}
8767 \noindent {\bf Return Type:}
8768 {\tt
8769 void
8774 \vspace{0.3cm}
8775 \vspace{0.3cm}
8776 \vspace{0.3cm}
8777 \subsubsection{RPC name:~get\_qos\_algorithm\_params}
8779 {\bf Overview:}
8780 Get the qos/algorithm\_params field of the given VIF.
8782 \noindent {\bf Signature:}
8783 \begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim}
8786 \noindent{\bf Arguments:}
8789 \vspace{0.3cm}
8790 \begin{tabular}{|c|c|p{7cm}|}
8791 \hline
8792 {\bf type} & {\bf name} & {\bf description} \\ \hline
8793 {\tt VIF ref } & self & reference to the object \\ \hline
8795 \end{tabular}
8797 \vspace{0.3cm}
8799 \noindent {\bf Return Type:}
8800 {\tt
8801 (string $\rightarrow$ string) Map
8805 value of the field
8806 \vspace{0.3cm}
8807 \vspace{0.3cm}
8808 \vspace{0.3cm}
8809 \subsubsection{RPC name:~set\_qos\_algorithm\_params}
8811 {\bf Overview:}
8812 Set the qos/algorithm\_params field of the given VIF.
8814 \noindent {\bf Signature:}
8815 \begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim}
8818 \noindent{\bf Arguments:}
8821 \vspace{0.3cm}
8822 \begin{tabular}{|c|c|p{7cm}|}
8823 \hline
8824 {\bf type} & {\bf name} & {\bf description} \\ \hline
8825 {\tt VIF ref } & self & reference to the object \\ \hline
8827 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
8829 \end{tabular}
8831 \vspace{0.3cm}
8833 \noindent {\bf Return Type:}
8834 {\tt
8835 void
8840 \vspace{0.3cm}
8841 \vspace{0.3cm}
8842 \vspace{0.3cm}
8843 \subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
8845 {\bf Overview:}
8846 Add the given key-value pair to the qos/algorithm\_params field of the
8847 given VIF.
8849 \noindent {\bf Signature:}
8850 \begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim}
8853 \noindent{\bf Arguments:}
8856 \vspace{0.3cm}
8857 \begin{tabular}{|c|c|p{7cm}|}
8858 \hline
8859 {\bf type} & {\bf name} & {\bf description} \\ \hline
8860 {\tt VIF ref } & self & reference to the object \\ \hline
8862 {\tt string } & key & Key to add \\ \hline
8864 {\tt string } & value & Value to add \\ \hline
8866 \end{tabular}
8868 \vspace{0.3cm}
8870 \noindent {\bf Return Type:}
8871 {\tt
8872 void
8877 \vspace{0.3cm}
8878 \vspace{0.3cm}
8879 \vspace{0.3cm}
8880 \subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
8882 {\bf Overview:}
8883 Remove the given key and its corresponding value from the
8884 qos/algorithm\_params field of the given VIF. If the key is not in that
8885 Map, then do nothing.
8887 \noindent {\bf Signature:}
8888 \begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim}
8891 \noindent{\bf Arguments:}
8894 \vspace{0.3cm}
8895 \begin{tabular}{|c|c|p{7cm}|}
8896 \hline
8897 {\bf type} & {\bf name} & {\bf description} \\ \hline
8898 {\tt VIF ref } & self & reference to the object \\ \hline
8900 {\tt string } & key & Key to remove \\ \hline
8902 \end{tabular}
8904 \vspace{0.3cm}
8906 \noindent {\bf Return Type:}
8907 {\tt
8908 void
8913 \vspace{0.3cm}
8914 \vspace{0.3cm}
8915 \vspace{0.3cm}
8916 \subsubsection{RPC name:~get\_qos\_supported\_algorithms}
8918 {\bf Overview:}
8919 Get the qos/supported\_algorithms field of the given VIF.
8921 \noindent {\bf Signature:}
8922 \begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim}
8925 \noindent{\bf Arguments:}
8928 \vspace{0.3cm}
8929 \begin{tabular}{|c|c|p{7cm}|}
8930 \hline
8931 {\bf type} & {\bf name} & {\bf description} \\ \hline
8932 {\tt VIF ref } & self & reference to the object \\ \hline
8934 \end{tabular}
8936 \vspace{0.3cm}
8938 \noindent {\bf Return Type:}
8939 {\tt
8940 string Set
8944 value of the field
8945 \vspace{0.3cm}
8946 \vspace{0.3cm}
8947 \vspace{0.3cm}
8948 \subsubsection{RPC name:~get\_metrics}
8950 {\bf Overview:}
8951 Get the metrics field of the given VIF.
8953 \noindent {\bf Signature:}
8954 \begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim}
8957 \noindent{\bf Arguments:}
8960 \vspace{0.3cm}
8961 \begin{tabular}{|c|c|p{7cm}|}
8962 \hline
8963 {\bf type} & {\bf name} & {\bf description} \\ \hline
8964 {\tt VIF ref } & self & reference to the object \\ \hline
8966 \end{tabular}
8968 \vspace{0.3cm}
8970 \noindent {\bf Return Type:}
8971 {\tt
8972 VIF\_metrics ref
8976 value of the field
8977 \vspace{0.3cm}
8978 \vspace{0.3cm}
8979 \vspace{0.3cm}
8980 \subsubsection{RPC name:~set\_security\_label}
8982 {\bf Overview:}
8983 Set the security label of the given VIF. Refer to the XSPolicy class
8984 for the format of the security label.
8986 \noindent {\bf Signature:}
8987 \begin{verbatim} void set_security_label (session_id s, VIF ref self, string
8988 security_label, string old_label)\end{verbatim}
8991 \noindent{\bf Arguments:}
8994 \vspace{0.3cm}
8995 \begin{tabular}{|c|c|p{7cm}|}
8996 \hline
8997 {\bf type} & {\bf name} & {\bf description} \\ \hline
8998 {\tt VIF ref } & self & reference to the object \\ \hline
9000 {\tt string } & security\_label & New value of the security label \\ \hline
9001 {\tt string } & old\_label & Optional label value that the security label \\
9002 & & must currently have for the change to succeed.\\ \hline
9003 \end{tabular}
9005 \vspace{0.3cm}
9007 \noindent {\bf Return Type:}
9008 {\tt
9009 void
9013 \vspace{0.3cm}
9015 \noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
9017 \vspace{0.3cm}
9018 \vspace{0.3cm}
9019 \vspace{0.3cm}
9020 \subsubsection{RPC name:~get\_security\_label}
9022 {\bf Overview:}
9023 Get the security label of the given VIF.
9025 \noindent {\bf Signature:}
9026 \begin{verbatim} string get_security_label (session_id s, VIF ref self)\end{verbatim}
9029 \noindent{\bf Arguments:}
9033 \vspace{0.3cm}
9034 \begin{tabular}{|c|c|p{7cm}|}
9035 \hline
9036 {\bf type} & {\bf name} & {\bf description} \\ \hline
9037 {\tt VIF ref } & self & reference to the object \\ \hline
9039 \end{tabular}
9041 \vspace{0.3cm}
9043 \noindent {\bf Return Type:}
9044 {\tt
9045 string
9049 value of the given field
9050 \vspace{0.3cm}
9051 \vspace{0.3cm}
9052 \vspace{0.3cm}
9053 \subsubsection{RPC name:~create}
9055 {\bf Overview:}
9056 Create a new VIF instance, and return its handle.
9058 \noindent {\bf Signature:}
9059 \begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
9062 \noindent{\bf Arguments:}
9065 \vspace{0.3cm}
9066 \begin{tabular}{|c|c|p{7cm}|}
9067 \hline
9068 {\bf type} & {\bf name} & {\bf description} \\ \hline
9069 {\tt VIF record } & args & All constructor arguments \\ \hline
9071 \end{tabular}
9073 \vspace{0.3cm}
9075 \noindent {\bf Return Type:}
9076 {\tt
9077 VIF ref
9081 reference to the newly created object
9082 \vspace{0.3cm}
9083 \vspace{0.3cm}
9084 \vspace{0.3cm}
9085 \subsubsection{RPC name:~destroy}
9087 {\bf Overview:}
9088 Destroy the specified VIF instance.
9090 \noindent {\bf Signature:}
9091 \begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
9094 \noindent{\bf Arguments:}
9097 \vspace{0.3cm}
9098 \begin{tabular}{|c|c|p{7cm}|}
9099 \hline
9100 {\bf type} & {\bf name} & {\bf description} \\ \hline
9101 {\tt VIF ref } & self & reference to the object \\ \hline
9103 \end{tabular}
9105 \vspace{0.3cm}
9107 \noindent {\bf Return Type:}
9108 {\tt
9109 void
9114 \vspace{0.3cm}
9115 \vspace{0.3cm}
9116 \vspace{0.3cm}
9117 \subsubsection{RPC name:~get\_by\_uuid}
9119 {\bf Overview:}
9120 Get a reference to the VIF instance with the specified UUID.
9122 \noindent {\bf Signature:}
9123 \begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\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 string } & uuid & UUID of object to return \\ \hline
9135 \end{tabular}
9137 \vspace{0.3cm}
9139 \noindent {\bf Return Type:}
9140 {\tt
9141 VIF ref
9145 reference to the object
9146 \vspace{0.3cm}
9147 \vspace{0.3cm}
9148 \vspace{0.3cm}
9149 \subsubsection{RPC name:~get\_record}
9151 {\bf Overview:}
9152 Get a record containing the current state of the given VIF.
9154 \noindent {\bf Signature:}
9155 \begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
9158 \noindent{\bf Arguments:}
9161 \vspace{0.3cm}
9162 \begin{tabular}{|c|c|p{7cm}|}
9163 \hline
9164 {\bf type} & {\bf name} & {\bf description} \\ \hline
9165 {\tt VIF ref } & self & reference to the object \\ \hline
9167 \end{tabular}
9169 \vspace{0.3cm}
9171 \noindent {\bf Return Type:}
9172 {\tt
9173 VIF record
9177 all fields from the object
9178 \vspace{0.3cm}
9179 \vspace{0.3cm}
9180 \vspace{0.3cm}
9182 \vspace{1cm}
9183 \newpage
9184 \section{Class: VIF\_metrics}
9185 \subsection{Fields for class: VIF\_metrics}
9186 \begin{longtable}{|lllp{0.38\textwidth}|}
9187 \hline
9188 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\
9189 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
9190 The metrics associated with a virtual network device.}} \\
9191 \hline
9192 Quals & Field & Type & Description \\
9193 \hline
9194 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9195 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
9196 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
9197 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
9198 \hline
9199 \end{longtable}
9200 \subsection{RPCs associated with class: VIF\_metrics}
9201 \subsubsection{RPC name:~get\_all}
9203 {\bf Overview:}
9204 Return a list of all the VIF\_metrics instances known to the system.
9206 \noindent {\bf Signature:}
9207 \begin{verbatim} ((VIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
9210 \vspace{0.3cm}
9212 \noindent {\bf Return Type:}
9213 {\tt
9214 (VIF\_metrics ref) Set
9218 references to all objects
9219 \vspace{0.3cm}
9220 \vspace{0.3cm}
9221 \vspace{0.3cm}
9222 \subsubsection{RPC name:~get\_uuid}
9224 {\bf Overview:}
9225 Get the uuid field of the given VIF\_metrics.
9227 \noindent {\bf Signature:}
9228 \begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim}
9231 \noindent{\bf Arguments:}
9234 \vspace{0.3cm}
9235 \begin{tabular}{|c|c|p{7cm}|}
9236 \hline
9237 {\bf type} & {\bf name} & {\bf description} \\ \hline
9238 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9240 \end{tabular}
9242 \vspace{0.3cm}
9244 \noindent {\bf Return Type:}
9245 {\tt
9246 string
9250 value of the field
9251 \vspace{0.3cm}
9252 \vspace{0.3cm}
9253 \vspace{0.3cm}
9254 \subsubsection{RPC name:~get\_io\_read\_kbs}
9256 {\bf Overview:}
9257 Get the io/read\_kbs field of the given VIF\_metrics.
9259 \noindent {\bf Signature:}
9260 \begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9263 \noindent{\bf Arguments:}
9266 \vspace{0.3cm}
9267 \begin{tabular}{|c|c|p{7cm}|}
9268 \hline
9269 {\bf type} & {\bf name} & {\bf description} \\ \hline
9270 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9272 \end{tabular}
9274 \vspace{0.3cm}
9276 \noindent {\bf Return Type:}
9277 {\tt
9278 float
9282 value of the field
9283 \vspace{0.3cm}
9284 \vspace{0.3cm}
9285 \vspace{0.3cm}
9286 \subsubsection{RPC name:~get\_io\_write\_kbs}
9288 {\bf Overview:}
9289 Get the io/write\_kbs field of the given VIF\_metrics.
9291 \noindent {\bf Signature:}
9292 \begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
9295 \noindent{\bf Arguments:}
9298 \vspace{0.3cm}
9299 \begin{tabular}{|c|c|p{7cm}|}
9300 \hline
9301 {\bf type} & {\bf name} & {\bf description} \\ \hline
9302 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9304 \end{tabular}
9306 \vspace{0.3cm}
9308 \noindent {\bf Return Type:}
9309 {\tt
9310 float
9314 value of the field
9315 \vspace{0.3cm}
9316 \vspace{0.3cm}
9317 \vspace{0.3cm}
9318 \subsubsection{RPC name:~get\_last\_updated}
9320 {\bf Overview:}
9321 Get the last\_updated field of the given VIF\_metrics.
9323 \noindent {\bf Signature:}
9324 \begin{verbatim} datetime get_last_updated (session_id s, VIF_metrics ref self)\end{verbatim}
9327 \noindent{\bf Arguments:}
9330 \vspace{0.3cm}
9331 \begin{tabular}{|c|c|p{7cm}|}
9332 \hline
9333 {\bf type} & {\bf name} & {\bf description} \\ \hline
9334 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9336 \end{tabular}
9338 \vspace{0.3cm}
9340 \noindent {\bf Return Type:}
9341 {\tt
9342 datetime
9346 value of the field
9347 \vspace{0.3cm}
9348 \vspace{0.3cm}
9349 \vspace{0.3cm}
9350 \subsubsection{RPC name:~get\_by\_uuid}
9352 {\bf Overview:}
9353 Get a reference to the VIF\_metrics instance with the specified UUID.
9355 \noindent {\bf Signature:}
9356 \begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9359 \noindent{\bf Arguments:}
9362 \vspace{0.3cm}
9363 \begin{tabular}{|c|c|p{7cm}|}
9364 \hline
9365 {\bf type} & {\bf name} & {\bf description} \\ \hline
9366 {\tt string } & uuid & UUID of object to return \\ \hline
9368 \end{tabular}
9370 \vspace{0.3cm}
9372 \noindent {\bf Return Type:}
9373 {\tt
9374 VIF\_metrics ref
9378 reference to the object
9379 \vspace{0.3cm}
9380 \vspace{0.3cm}
9381 \vspace{0.3cm}
9382 \subsubsection{RPC name:~get\_record}
9384 {\bf Overview:}
9385 Get a record containing the current state of the given VIF\_metrics.
9387 \noindent {\bf Signature:}
9388 \begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim}
9391 \noindent{\bf Arguments:}
9394 \vspace{0.3cm}
9395 \begin{tabular}{|c|c|p{7cm}|}
9396 \hline
9397 {\bf type} & {\bf name} & {\bf description} \\ \hline
9398 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
9400 \end{tabular}
9402 \vspace{0.3cm}
9404 \noindent {\bf Return Type:}
9405 {\tt
9406 VIF\_metrics record
9410 all fields from the object
9411 \vspace{0.3cm}
9412 \vspace{0.3cm}
9413 \vspace{0.3cm}
9415 \vspace{1cm}
9416 \newpage
9417 \section{Class: PIF}
9418 \subsection{Fields for class: PIF}
9419 \begin{longtable}{|lllp{0.38\textwidth}|}
9420 \hline
9421 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
9422 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
9423 physical network interface (note separate VLANs are represented as several
9424 PIFs).}} \\
9425 \hline
9426 Quals & Field & Type & Description \\
9427 \hline
9428 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9429 $\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
9430 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
9431 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
9432 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
9433 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
9434 $\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
9435 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF \\
9436 \hline
9437 \end{longtable}
9438 \subsection{RPCs associated with class: PIF}
9439 \subsubsection{RPC name:~create\_VLAN}
9441 {\bf Overview:}
9442 Create a VLAN interface from an existing physical interface.
9444 \noindent {\bf Signature:}
9445 \begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
9448 \noindent{\bf Arguments:}
9451 \vspace{0.3cm}
9452 \begin{tabular}{|c|c|p{7cm}|}
9453 \hline
9454 {\bf type} & {\bf name} & {\bf description} \\ \hline
9455 {\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
9457 {\tt network ref } & network & network to which this interface should be connected \\ \hline
9459 {\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
9461 {\tt int } & VLAN & VLAN tag for the new interface \\ \hline
9463 \end{tabular}
9465 \vspace{0.3cm}
9467 \noindent {\bf Return Type:}
9468 {\tt
9469 PIF ref
9473 The reference of the created PIF object
9474 \vspace{0.3cm}
9476 \noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
9478 \vspace{0.6cm}
9479 \subsubsection{RPC name:~destroy}
9481 {\bf Overview:}
9482 Destroy the interface (provided it is a synthetic interface like a VLAN;
9483 fail if it is a physical interface).
9485 \noindent {\bf Signature:}
9486 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
9489 \noindent{\bf Arguments:}
9492 \vspace{0.3cm}
9493 \begin{tabular}{|c|c|p{7cm}|}
9494 \hline
9495 {\bf type} & {\bf name} & {\bf description} \\ \hline
9496 {\tt PIF ref } & self & the PIF object to destroy \\ \hline
9498 \end{tabular}
9500 \vspace{0.3cm}
9502 \noindent {\bf Return Type:}
9503 {\tt
9504 void
9509 \vspace{0.3cm}
9511 \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
9513 \vspace{0.6cm}
9514 \subsubsection{RPC name:~get\_all}
9516 {\bf Overview:}
9517 Return a list of all the PIFs known to the system.
9519 \noindent {\bf Signature:}
9520 \begin{verbatim} ((PIF ref) Set) get_all (session_id s)\end{verbatim}
9523 \vspace{0.3cm}
9525 \noindent {\bf Return Type:}
9526 {\tt
9527 (PIF ref) Set
9531 references to all objects
9532 \vspace{0.3cm}
9533 \vspace{0.3cm}
9534 \vspace{0.3cm}
9535 \subsubsection{RPC name:~get\_uuid}
9537 {\bf Overview:}
9538 Get the uuid field of the given PIF.
9540 \noindent {\bf Signature:}
9541 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
9544 \noindent{\bf Arguments:}
9547 \vspace{0.3cm}
9548 \begin{tabular}{|c|c|p{7cm}|}
9549 \hline
9550 {\bf type} & {\bf name} & {\bf description} \\ \hline
9551 {\tt PIF ref } & self & reference to the object \\ \hline
9553 \end{tabular}
9555 \vspace{0.3cm}
9557 \noindent {\bf Return Type:}
9558 {\tt
9559 string
9563 value of the field
9564 \vspace{0.3cm}
9565 \vspace{0.3cm}
9566 \vspace{0.3cm}
9567 \subsubsection{RPC name:~get\_device}
9569 {\bf Overview:}
9570 Get the device field of the given PIF.
9572 \noindent {\bf Signature:}
9573 \begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
9576 \noindent{\bf Arguments:}
9579 \vspace{0.3cm}
9580 \begin{tabular}{|c|c|p{7cm}|}
9581 \hline
9582 {\bf type} & {\bf name} & {\bf description} \\ \hline
9583 {\tt PIF ref } & self & reference to the object \\ \hline
9585 \end{tabular}
9587 \vspace{0.3cm}
9589 \noindent {\bf Return Type:}
9590 {\tt
9591 string
9595 value of the field
9596 \vspace{0.3cm}
9597 \vspace{0.3cm}
9598 \vspace{0.3cm}
9599 \subsubsection{RPC name:~set\_device}
9601 {\bf Overview:}
9602 Set the device field of the given PIF.
9604 \noindent {\bf Signature:}
9605 \begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
9608 \noindent{\bf Arguments:}
9611 \vspace{0.3cm}
9612 \begin{tabular}{|c|c|p{7cm}|}
9613 \hline
9614 {\bf type} & {\bf name} & {\bf description} \\ \hline
9615 {\tt PIF ref } & self & reference to the object \\ \hline
9617 {\tt string } & value & New value to set \\ \hline
9619 \end{tabular}
9621 \vspace{0.3cm}
9623 \noindent {\bf Return Type:}
9624 {\tt
9625 void
9630 \vspace{0.3cm}
9631 \vspace{0.3cm}
9632 \vspace{0.3cm}
9633 \subsubsection{RPC name:~get\_network}
9635 {\bf Overview:}
9636 Get the network field of the given PIF.
9638 \noindent {\bf Signature:}
9639 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
9642 \noindent{\bf Arguments:}
9645 \vspace{0.3cm}
9646 \begin{tabular}{|c|c|p{7cm}|}
9647 \hline
9648 {\bf type} & {\bf name} & {\bf description} \\ \hline
9649 {\tt PIF ref } & self & reference to the object \\ \hline
9651 \end{tabular}
9653 \vspace{0.3cm}
9655 \noindent {\bf Return Type:}
9656 {\tt
9657 network ref
9661 value of the field
9662 \vspace{0.3cm}
9663 \vspace{0.3cm}
9664 \vspace{0.3cm}
9665 \subsubsection{RPC name:~get\_host}
9667 {\bf Overview:}
9668 Get the host field of the given PIF.
9670 \noindent {\bf Signature:}
9671 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
9674 \noindent{\bf Arguments:}
9677 \vspace{0.3cm}
9678 \begin{tabular}{|c|c|p{7cm}|}
9679 \hline
9680 {\bf type} & {\bf name} & {\bf description} \\ \hline
9681 {\tt PIF ref } & self & reference to the object \\ \hline
9683 \end{tabular}
9685 \vspace{0.3cm}
9687 \noindent {\bf Return Type:}
9688 {\tt
9689 host ref
9693 value of the field
9694 \vspace{0.3cm}
9695 \vspace{0.3cm}
9696 \vspace{0.3cm}
9697 \subsubsection{RPC name:~get\_MAC}
9699 {\bf Overview:}
9700 Get the MAC field of the given PIF.
9702 \noindent {\bf Signature:}
9703 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
9706 \noindent{\bf Arguments:}
9709 \vspace{0.3cm}
9710 \begin{tabular}{|c|c|p{7cm}|}
9711 \hline
9712 {\bf type} & {\bf name} & {\bf description} \\ \hline
9713 {\tt PIF ref } & self & reference to the object \\ \hline
9715 \end{tabular}
9717 \vspace{0.3cm}
9719 \noindent {\bf Return Type:}
9720 {\tt
9721 string
9725 value of the field
9726 \vspace{0.3cm}
9727 \vspace{0.3cm}
9728 \vspace{0.3cm}
9729 \subsubsection{RPC name:~set\_MAC}
9731 {\bf Overview:}
9732 Set the MAC field of the given PIF.
9734 \noindent {\bf Signature:}
9735 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
9738 \noindent{\bf Arguments:}
9741 \vspace{0.3cm}
9742 \begin{tabular}{|c|c|p{7cm}|}
9743 \hline
9744 {\bf type} & {\bf name} & {\bf description} \\ \hline
9745 {\tt PIF ref } & self & reference to the object \\ \hline
9747 {\tt string } & value & New value to set \\ \hline
9749 \end{tabular}
9751 \vspace{0.3cm}
9753 \noindent {\bf Return Type:}
9754 {\tt
9755 void
9760 \vspace{0.3cm}
9761 \vspace{0.3cm}
9762 \vspace{0.3cm}
9763 \subsubsection{RPC name:~get\_MTU}
9765 {\bf Overview:}
9766 Get the MTU field of the given PIF.
9768 \noindent {\bf Signature:}
9769 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
9772 \noindent{\bf Arguments:}
9775 \vspace{0.3cm}
9776 \begin{tabular}{|c|c|p{7cm}|}
9777 \hline
9778 {\bf type} & {\bf name} & {\bf description} \\ \hline
9779 {\tt PIF ref } & self & reference to the object \\ \hline
9781 \end{tabular}
9783 \vspace{0.3cm}
9785 \noindent {\bf Return Type:}
9786 {\tt
9787 int
9791 value of the field
9792 \vspace{0.3cm}
9793 \vspace{0.3cm}
9794 \vspace{0.3cm}
9795 \subsubsection{RPC name:~set\_MTU}
9797 {\bf Overview:}
9798 Set the MTU field of the given PIF.
9800 \noindent {\bf Signature:}
9801 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
9804 \noindent{\bf Arguments:}
9807 \vspace{0.3cm}
9808 \begin{tabular}{|c|c|p{7cm}|}
9809 \hline
9810 {\bf type} & {\bf name} & {\bf description} \\ \hline
9811 {\tt PIF ref } & self & reference to the object \\ \hline
9813 {\tt int } & value & New value to set \\ \hline
9815 \end{tabular}
9817 \vspace{0.3cm}
9819 \noindent {\bf Return Type:}
9820 {\tt
9821 void
9826 \vspace{0.3cm}
9827 \vspace{0.3cm}
9828 \vspace{0.3cm}
9829 \subsubsection{RPC name:~get\_VLAN}
9831 {\bf Overview:}
9832 Get the VLAN field of the given PIF.
9834 \noindent {\bf Signature:}
9835 \begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
9838 \noindent{\bf Arguments:}
9841 \vspace{0.3cm}
9842 \begin{tabular}{|c|c|p{7cm}|}
9843 \hline
9844 {\bf type} & {\bf name} & {\bf description} \\ \hline
9845 {\tt PIF ref } & self & reference to the object \\ \hline
9847 \end{tabular}
9849 \vspace{0.3cm}
9851 \noindent {\bf Return Type:}
9852 {\tt
9853 int
9857 value of the field
9858 \vspace{0.3cm}
9859 \vspace{0.3cm}
9860 \vspace{0.3cm}
9861 \subsubsection{RPC name:~set\_VLAN}
9863 {\bf Overview:}
9864 Set the VLAN field of the given PIF.
9866 \noindent {\bf Signature:}
9867 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
9870 \noindent{\bf Arguments:}
9873 \vspace{0.3cm}
9874 \begin{tabular}{|c|c|p{7cm}|}
9875 \hline
9876 {\bf type} & {\bf name} & {\bf description} \\ \hline
9877 {\tt PIF ref } & self & reference to the object \\ \hline
9879 {\tt int } & value & New value to set \\ \hline
9881 \end{tabular}
9883 \vspace{0.3cm}
9885 \noindent {\bf Return Type:}
9886 {\tt
9887 void
9892 \vspace{0.3cm}
9893 \vspace{0.3cm}
9894 \vspace{0.3cm}
9895 \subsubsection{RPC name:~get\_metrics}
9897 {\bf Overview:}
9898 Get the metrics field of the given PIF.
9900 \noindent {\bf Signature:}
9901 \begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
9904 \noindent{\bf Arguments:}
9907 \vspace{0.3cm}
9908 \begin{tabular}{|c|c|p{7cm}|}
9909 \hline
9910 {\bf type} & {\bf name} & {\bf description} \\ \hline
9911 {\tt PIF ref } & self & reference to the object \\ \hline
9913 \end{tabular}
9915 \vspace{0.3cm}
9917 \noindent {\bf Return Type:}
9918 {\tt
9919 PIF\_metrics ref
9923 value of the field
9924 \vspace{0.3cm}
9925 \vspace{0.3cm}
9926 \vspace{0.3cm}
9927 \subsubsection{RPC name:~get\_by\_uuid}
9929 {\bf Overview:}
9930 Get a reference to the PIF instance with the specified UUID.
9932 \noindent {\bf Signature:}
9933 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9936 \noindent{\bf Arguments:}
9939 \vspace{0.3cm}
9940 \begin{tabular}{|c|c|p{7cm}|}
9941 \hline
9942 {\bf type} & {\bf name} & {\bf description} \\ \hline
9943 {\tt string } & uuid & UUID of object to return \\ \hline
9945 \end{tabular}
9947 \vspace{0.3cm}
9949 \noindent {\bf Return Type:}
9950 {\tt
9951 PIF ref
9955 reference to the object
9956 \vspace{0.3cm}
9957 \vspace{0.3cm}
9958 \vspace{0.3cm}
9959 \subsubsection{RPC name:~get\_record}
9961 {\bf Overview:}
9962 Get a record containing the current state of the given PIF.
9964 \noindent {\bf Signature:}
9965 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
9968 \noindent{\bf Arguments:}
9971 \vspace{0.3cm}
9972 \begin{tabular}{|c|c|p{7cm}|}
9973 \hline
9974 {\bf type} & {\bf name} & {\bf description} \\ \hline
9975 {\tt PIF ref } & self & reference to the object \\ \hline
9977 \end{tabular}
9979 \vspace{0.3cm}
9981 \noindent {\bf Return Type:}
9982 {\tt
9983 PIF record
9987 all fields from the object
9988 \vspace{0.3cm}
9989 \vspace{0.3cm}
9990 \vspace{0.3cm}
9992 \vspace{1cm}
9993 \newpage
9994 \section{Class: PIF\_metrics}
9995 \subsection{Fields for class: PIF\_metrics}
9996 \begin{longtable}{|lllp{0.38\textwidth}|}
9997 \hline
9998 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
9999 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10000 The metrics associated with a physical network interface.}} \\
10001 \hline
10002 Quals & Field & Type & Description \\
10003 \hline
10004 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10005 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
10006 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
10007 $\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
10008 \hline
10009 \end{longtable}
10010 \subsection{RPCs associated with class: PIF\_metrics}
10011 \subsubsection{RPC name:~get\_all}
10013 {\bf Overview:}
10014 Return a list of all the PIF\_metrics instances known to the system.
10016 \noindent {\bf Signature:}
10017 \begin{verbatim} ((PIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
10020 \vspace{0.3cm}
10022 \noindent {\bf Return Type:}
10023 {\tt
10024 (PIF\_metrics ref) Set
10028 references to all objects
10029 \vspace{0.3cm}
10030 \vspace{0.3cm}
10031 \vspace{0.3cm}
10032 \subsubsection{RPC name:~get\_uuid}
10034 {\bf Overview:}
10035 Get the uuid field of the given PIF\_metrics.
10037 \noindent {\bf Signature:}
10038 \begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
10041 \noindent{\bf Arguments:}
10044 \vspace{0.3cm}
10045 \begin{tabular}{|c|c|p{7cm}|}
10046 \hline
10047 {\bf type} & {\bf name} & {\bf description} \\ \hline
10048 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10050 \end{tabular}
10052 \vspace{0.3cm}
10054 \noindent {\bf Return Type:}
10055 {\tt
10056 string
10060 value of the field
10061 \vspace{0.3cm}
10062 \vspace{0.3cm}
10063 \vspace{0.3cm}
10064 \subsubsection{RPC name:~get\_io\_read\_kbs}
10066 {\bf Overview:}
10067 Get the io/read\_kbs field of the given PIF\_metrics.
10069 \noindent {\bf Signature:}
10070 \begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10073 \noindent{\bf Arguments:}
10076 \vspace{0.3cm}
10077 \begin{tabular}{|c|c|p{7cm}|}
10078 \hline
10079 {\bf type} & {\bf name} & {\bf description} \\ \hline
10080 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10082 \end{tabular}
10084 \vspace{0.3cm}
10086 \noindent {\bf Return Type:}
10087 {\tt
10088 float
10092 value of the field
10093 \vspace{0.3cm}
10094 \vspace{0.3cm}
10095 \vspace{0.3cm}
10096 \subsubsection{RPC name:~get\_io\_write\_kbs}
10098 {\bf Overview:}
10099 Get the io/write\_kbs field of the given PIF\_metrics.
10101 \noindent {\bf Signature:}
10102 \begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
10105 \noindent{\bf Arguments:}
10108 \vspace{0.3cm}
10109 \begin{tabular}{|c|c|p{7cm}|}
10110 \hline
10111 {\bf type} & {\bf name} & {\bf description} \\ \hline
10112 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10114 \end{tabular}
10116 \vspace{0.3cm}
10118 \noindent {\bf Return Type:}
10119 {\tt
10120 float
10124 value of the field
10125 \vspace{0.3cm}
10126 \vspace{0.3cm}
10127 \vspace{0.3cm}
10128 \subsubsection{RPC name:~get\_last\_updated}
10130 {\bf Overview:}
10131 Get the last\_updated field of the given PIF\_metrics.
10133 \noindent {\bf Signature:}
10134 \begin{verbatim} datetime get_last_updated (session_id s, PIF_metrics ref self)\end{verbatim}
10137 \noindent{\bf Arguments:}
10140 \vspace{0.3cm}
10141 \begin{tabular}{|c|c|p{7cm}|}
10142 \hline
10143 {\bf type} & {\bf name} & {\bf description} \\ \hline
10144 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10146 \end{tabular}
10148 \vspace{0.3cm}
10150 \noindent {\bf Return Type:}
10151 {\tt
10152 datetime
10156 value of the field
10157 \vspace{0.3cm}
10158 \vspace{0.3cm}
10159 \vspace{0.3cm}
10160 \subsubsection{RPC name:~get\_by\_uuid}
10162 {\bf Overview:}
10163 Get a reference to the PIF\_metrics instance with the specified UUID.
10165 \noindent {\bf Signature:}
10166 \begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10169 \noindent{\bf Arguments:}
10172 \vspace{0.3cm}
10173 \begin{tabular}{|c|c|p{7cm}|}
10174 \hline
10175 {\bf type} & {\bf name} & {\bf description} \\ \hline
10176 {\tt string } & uuid & UUID of object to return \\ \hline
10178 \end{tabular}
10180 \vspace{0.3cm}
10182 \noindent {\bf Return Type:}
10183 {\tt
10184 PIF\_metrics ref
10188 reference to the object
10189 \vspace{0.3cm}
10190 \vspace{0.3cm}
10191 \vspace{0.3cm}
10192 \subsubsection{RPC name:~get\_record}
10194 {\bf Overview:}
10195 Get a record containing the current state of the given PIF\_metrics.
10197 \noindent {\bf Signature:}
10198 \begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
10201 \noindent{\bf Arguments:}
10204 \vspace{0.3cm}
10205 \begin{tabular}{|c|c|p{7cm}|}
10206 \hline
10207 {\bf type} & {\bf name} & {\bf description} \\ \hline
10208 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
10210 \end{tabular}
10212 \vspace{0.3cm}
10214 \noindent {\bf Return Type:}
10215 {\tt
10216 PIF\_metrics record
10220 all fields from the object
10221 \vspace{0.3cm}
10222 \vspace{0.3cm}
10223 \vspace{0.3cm}
10225 \vspace{1cm}
10226 \newpage
10227 \section{Class: SR}
10228 \subsection{Fields for class: SR}
10229 \begin{longtable}{|lllp{0.38\textwidth}|}
10230 \hline
10231 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
10232 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10233 storage repository.}} \\
10234 \hline
10235 Quals & Field & Type & Description \\
10236 \hline
10237 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10238 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
10239 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
10240 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
10241 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
10242 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
10243 $\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 \\
10244 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
10245 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
10246 $\mathit{RO}_\mathit{ins}$ & {\tt content\_type} & string & the type of the SR's content, if required (e.g. ISOs) \\
10247 \hline
10248 \end{longtable}
10249 \subsection{RPCs associated with class: SR}
10250 \subsubsection{RPC name:~get\_supported\_types}
10252 {\bf Overview:}
10253 Return a set of all the SR types supported by the system.
10255 \noindent {\bf Signature:}
10256 \begin{verbatim} (string Set) get_supported_types (session_id s)\end{verbatim}
10259 \vspace{0.3cm}
10261 \noindent {\bf Return Type:}
10262 {\tt
10263 string Set
10267 the supported SR types
10268 \vspace{0.3cm}
10269 \vspace{0.3cm}
10270 \vspace{0.3cm}
10271 \subsubsection{RPC name:~get\_all}
10273 {\bf Overview:}
10274 Return a list of all the SRs known to the system.
10276 \noindent {\bf Signature:}
10277 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
10280 \vspace{0.3cm}
10282 \noindent {\bf Return Type:}
10283 {\tt
10284 (SR ref) Set
10288 references to all objects
10289 \vspace{0.3cm}
10290 \vspace{0.3cm}
10291 \vspace{0.3cm}
10292 \subsubsection{RPC name:~get\_uuid}
10294 {\bf Overview:}
10295 Get the uuid field of the given SR.
10297 \noindent {\bf Signature:}
10298 \begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
10301 \noindent{\bf Arguments:}
10304 \vspace{0.3cm}
10305 \begin{tabular}{|c|c|p{7cm}|}
10306 \hline
10307 {\bf type} & {\bf name} & {\bf description} \\ \hline
10308 {\tt SR ref } & self & reference to the object \\ \hline
10310 \end{tabular}
10312 \vspace{0.3cm}
10314 \noindent {\bf Return Type:}
10315 {\tt
10316 string
10320 value of the field
10321 \vspace{0.3cm}
10322 \vspace{0.3cm}
10323 \vspace{0.3cm}
10324 \subsubsection{RPC name:~get\_name\_label}
10326 {\bf Overview:}
10327 Get the name/label field of the given SR.
10329 \noindent {\bf Signature:}
10330 \begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
10333 \noindent{\bf Arguments:}
10336 \vspace{0.3cm}
10337 \begin{tabular}{|c|c|p{7cm}|}
10338 \hline
10339 {\bf type} & {\bf name} & {\bf description} \\ \hline
10340 {\tt SR ref } & self & reference to the object \\ \hline
10342 \end{tabular}
10344 \vspace{0.3cm}
10346 \noindent {\bf Return Type:}
10347 {\tt
10348 string
10352 value of the field
10353 \vspace{0.3cm}
10354 \vspace{0.3cm}
10355 \vspace{0.3cm}
10356 \subsubsection{RPC name:~set\_name\_label}
10358 {\bf Overview:}
10359 Set the name/label field of the given SR.
10361 \noindent {\bf Signature:}
10362 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
10365 \noindent{\bf Arguments:}
10368 \vspace{0.3cm}
10369 \begin{tabular}{|c|c|p{7cm}|}
10370 \hline
10371 {\bf type} & {\bf name} & {\bf description} \\ \hline
10372 {\tt SR ref } & self & reference to the object \\ \hline
10374 {\tt string } & value & New value to set \\ \hline
10376 \end{tabular}
10378 \vspace{0.3cm}
10380 \noindent {\bf Return Type:}
10381 {\tt
10382 void
10387 \vspace{0.3cm}
10388 \vspace{0.3cm}
10389 \vspace{0.3cm}
10390 \subsubsection{RPC name:~get\_name\_description}
10392 {\bf Overview:}
10393 Get the name/description field of the given SR.
10395 \noindent {\bf Signature:}
10396 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
10399 \noindent{\bf Arguments:}
10402 \vspace{0.3cm}
10403 \begin{tabular}{|c|c|p{7cm}|}
10404 \hline
10405 {\bf type} & {\bf name} & {\bf description} \\ \hline
10406 {\tt SR ref } & self & reference to the object \\ \hline
10408 \end{tabular}
10410 \vspace{0.3cm}
10412 \noindent {\bf Return Type:}
10413 {\tt
10414 string
10418 value of the field
10419 \vspace{0.3cm}
10420 \vspace{0.3cm}
10421 \vspace{0.3cm}
10422 \subsubsection{RPC name:~set\_name\_description}
10424 {\bf Overview:}
10425 Set the name/description field of the given SR.
10427 \noindent {\bf Signature:}
10428 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
10431 \noindent{\bf Arguments:}
10434 \vspace{0.3cm}
10435 \begin{tabular}{|c|c|p{7cm}|}
10436 \hline
10437 {\bf type} & {\bf name} & {\bf description} \\ \hline
10438 {\tt SR ref } & self & reference to the object \\ \hline
10440 {\tt string } & value & New value to set \\ \hline
10442 \end{tabular}
10444 \vspace{0.3cm}
10446 \noindent {\bf Return Type:}
10447 {\tt
10448 void
10453 \vspace{0.3cm}
10454 \vspace{0.3cm}
10455 \vspace{0.3cm}
10456 \subsubsection{RPC name:~get\_VDIs}
10458 {\bf Overview:}
10459 Get the VDIs field of the given SR.
10461 \noindent {\bf Signature:}
10462 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
10465 \noindent{\bf Arguments:}
10468 \vspace{0.3cm}
10469 \begin{tabular}{|c|c|p{7cm}|}
10470 \hline
10471 {\bf type} & {\bf name} & {\bf description} \\ \hline
10472 {\tt SR ref } & self & reference to the object \\ \hline
10474 \end{tabular}
10476 \vspace{0.3cm}
10478 \noindent {\bf Return Type:}
10479 {\tt
10480 (VDI ref) Set
10484 value of the field
10485 \vspace{0.3cm}
10486 \vspace{0.3cm}
10487 \vspace{0.3cm}
10488 \subsubsection{RPC name:~get\_PBDs}
10490 {\bf Overview:}
10491 Get the PBDs field of the given SR.
10493 \noindent {\bf Signature:}
10494 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
10497 \noindent{\bf Arguments:}
10500 \vspace{0.3cm}
10501 \begin{tabular}{|c|c|p{7cm}|}
10502 \hline
10503 {\bf type} & {\bf name} & {\bf description} \\ \hline
10504 {\tt SR ref } & self & reference to the object \\ \hline
10506 \end{tabular}
10508 \vspace{0.3cm}
10510 \noindent {\bf Return Type:}
10511 {\tt
10512 (PBD ref) Set
10516 value of the field
10517 \vspace{0.3cm}
10518 \vspace{0.3cm}
10519 \vspace{0.3cm}
10520 \subsubsection{RPC name:~get\_virtual\_allocation}
10522 {\bf Overview:}
10523 Get the virtual\_allocation field of the given SR.
10525 \noindent {\bf Signature:}
10526 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
10529 \noindent{\bf Arguments:}
10532 \vspace{0.3cm}
10533 \begin{tabular}{|c|c|p{7cm}|}
10534 \hline
10535 {\bf type} & {\bf name} & {\bf description} \\ \hline
10536 {\tt SR ref } & self & reference to the object \\ \hline
10538 \end{tabular}
10540 \vspace{0.3cm}
10542 \noindent {\bf Return Type:}
10543 {\tt
10544 int
10548 value of the field
10549 \vspace{0.3cm}
10550 \vspace{0.3cm}
10551 \vspace{0.3cm}
10552 \subsubsection{RPC name:~get\_physical\_utilisation}
10554 {\bf Overview:}
10555 Get the physical\_utilisation field of the given SR.
10557 \noindent {\bf Signature:}
10558 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
10561 \noindent{\bf Arguments:}
10564 \vspace{0.3cm}
10565 \begin{tabular}{|c|c|p{7cm}|}
10566 \hline
10567 {\bf type} & {\bf name} & {\bf description} \\ \hline
10568 {\tt SR ref } & self & reference to the object \\ \hline
10570 \end{tabular}
10572 \vspace{0.3cm}
10574 \noindent {\bf Return Type:}
10575 {\tt
10576 int
10580 value of the field
10581 \vspace{0.3cm}
10582 \vspace{0.3cm}
10583 \vspace{0.3cm}
10584 \subsubsection{RPC name:~get\_physical\_size}
10586 {\bf Overview:}
10587 Get the physical\_size field of the given SR.
10589 \noindent {\bf Signature:}
10590 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
10593 \noindent{\bf Arguments:}
10596 \vspace{0.3cm}
10597 \begin{tabular}{|c|c|p{7cm}|}
10598 \hline
10599 {\bf type} & {\bf name} & {\bf description} \\ \hline
10600 {\tt SR ref } & self & reference to the object \\ \hline
10602 \end{tabular}
10604 \vspace{0.3cm}
10606 \noindent {\bf Return Type:}
10607 {\tt
10608 int
10612 value of the field
10613 \vspace{0.3cm}
10614 \vspace{0.3cm}
10615 \vspace{0.3cm}
10616 \subsubsection{RPC name:~get\_type}
10618 {\bf Overview:}
10619 Get the type field of the given SR.
10621 \noindent {\bf Signature:}
10622 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
10625 \noindent{\bf Arguments:}
10628 \vspace{0.3cm}
10629 \begin{tabular}{|c|c|p{7cm}|}
10630 \hline
10631 {\bf type} & {\bf name} & {\bf description} \\ \hline
10632 {\tt SR ref } & self & reference to the object \\ \hline
10634 \end{tabular}
10636 \vspace{0.3cm}
10638 \noindent {\bf Return Type:}
10639 {\tt
10640 string
10644 value of the field
10645 \vspace{0.3cm}
10646 \vspace{0.3cm}
10647 \vspace{0.3cm}
10648 \subsubsection{RPC name:~get\_content\_type}
10650 {\bf Overview:}
10651 Get the content\_type field of the given SR.
10653 \noindent {\bf Signature:}
10654 \begin{verbatim} string get_content_type (session_id s, SR ref self)\end{verbatim}
10657 \noindent{\bf Arguments:}
10660 \vspace{0.3cm}
10661 \begin{tabular}{|c|c|p{7cm}|}
10662 \hline
10663 {\bf type} & {\bf name} & {\bf description} \\ \hline
10664 {\tt SR ref } & self & reference to the object \\ \hline
10666 \end{tabular}
10668 \vspace{0.3cm}
10670 \noindent {\bf Return Type:}
10671 {\tt
10672 string
10676 value of the field
10677 \vspace{0.3cm}
10678 \vspace{0.3cm}
10679 \vspace{0.3cm}
10680 \subsubsection{RPC name:~get\_by\_uuid}
10682 {\bf Overview:}
10683 Get a reference to the SR instance with the specified UUID.
10685 \noindent {\bf Signature:}
10686 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10689 \noindent{\bf Arguments:}
10692 \vspace{0.3cm}
10693 \begin{tabular}{|c|c|p{7cm}|}
10694 \hline
10695 {\bf type} & {\bf name} & {\bf description} \\ \hline
10696 {\tt string } & uuid & UUID of object to return \\ \hline
10698 \end{tabular}
10700 \vspace{0.3cm}
10702 \noindent {\bf Return Type:}
10703 {\tt
10704 SR ref
10708 reference to the object
10709 \vspace{0.3cm}
10710 \vspace{0.3cm}
10711 \vspace{0.3cm}
10712 \subsubsection{RPC name:~get\_record}
10714 {\bf Overview:}
10715 Get a record containing the current state of the given SR.
10717 \noindent {\bf Signature:}
10718 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
10721 \noindent{\bf Arguments:}
10724 \vspace{0.3cm}
10725 \begin{tabular}{|c|c|p{7cm}|}
10726 \hline
10727 {\bf type} & {\bf name} & {\bf description} \\ \hline
10728 {\tt SR ref } & self & reference to the object \\ \hline
10730 \end{tabular}
10732 \vspace{0.3cm}
10734 \noindent {\bf Return Type:}
10735 {\tt
10736 SR record
10740 all fields from the object
10741 \vspace{0.3cm}
10742 \vspace{0.3cm}
10743 \vspace{0.3cm}
10744 \subsubsection{RPC name:~get\_by\_name\_label}
10746 {\bf Overview:}
10747 Get all the SR instances with the given label.
10749 \noindent {\bf Signature:}
10750 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
10753 \noindent{\bf Arguments:}
10756 \vspace{0.3cm}
10757 \begin{tabular}{|c|c|p{7cm}|}
10758 \hline
10759 {\bf type} & {\bf name} & {\bf description} \\ \hline
10760 {\tt string } & label & label of object to return \\ \hline
10762 \end{tabular}
10764 \vspace{0.3cm}
10766 \noindent {\bf Return Type:}
10767 {\tt
10768 (SR ref) Set
10772 references to objects with match names
10773 \vspace{0.3cm}
10774 \vspace{0.3cm}
10775 \vspace{0.3cm}
10777 \vspace{1cm}
10778 \newpage
10779 \section{Class: VDI}
10780 \subsection{Fields for class: VDI}
10781 \begin{longtable}{|lllp{0.38\textwidth}|}
10782 \hline
10783 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
10784 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10785 virtual disk image.}} \\
10786 \hline
10787 Quals & Field & Type & Description \\
10788 \hline
10789 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10790 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
10791 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
10792 $\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
10793 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
10794 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
10795 $\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 \\
10796 $\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) \\
10797 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
10798 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
10799 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
10800 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
10801 $\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
10802 \hline
10803 \end{longtable}
10804 \subsection{RPCs associated with class: VDI}
10805 \subsubsection{RPC name:~get\_all}
10807 {\bf Overview:}
10808 Return a list of all the VDIs known to the system.
10810 \noindent {\bf Signature:}
10811 \begin{verbatim} ((VDI ref) Set) get_all (session_id s)\end{verbatim}
10814 \vspace{0.3cm}
10816 \noindent {\bf Return Type:}
10817 {\tt
10818 (VDI ref) Set
10822 references to all objects
10823 \vspace{0.3cm}
10824 \vspace{0.3cm}
10825 \vspace{0.3cm}
10826 \subsubsection{RPC name:~get\_uuid}
10828 {\bf Overview:}
10829 Get the uuid field of the given VDI.
10831 \noindent {\bf Signature:}
10832 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
10835 \noindent{\bf Arguments:}
10838 \vspace{0.3cm}
10839 \begin{tabular}{|c|c|p{7cm}|}
10840 \hline
10841 {\bf type} & {\bf name} & {\bf description} \\ \hline
10842 {\tt VDI ref } & self & reference to the object \\ \hline
10844 \end{tabular}
10846 \vspace{0.3cm}
10848 \noindent {\bf Return Type:}
10849 {\tt
10850 string
10854 value of the field
10855 \vspace{0.3cm}
10856 \vspace{0.3cm}
10857 \vspace{0.3cm}
10858 \subsubsection{RPC name:~get\_name\_label}
10860 {\bf Overview:}
10861 Get the name/label field of the given VDI.
10863 \noindent {\bf Signature:}
10864 \begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
10867 \noindent{\bf Arguments:}
10870 \vspace{0.3cm}
10871 \begin{tabular}{|c|c|p{7cm}|}
10872 \hline
10873 {\bf type} & {\bf name} & {\bf description} \\ \hline
10874 {\tt VDI ref } & self & reference to the object \\ \hline
10876 \end{tabular}
10878 \vspace{0.3cm}
10880 \noindent {\bf Return Type:}
10881 {\tt
10882 string
10886 value of the field
10887 \vspace{0.3cm}
10888 \vspace{0.3cm}
10889 \vspace{0.3cm}
10890 \subsubsection{RPC name:~set\_name\_label}
10892 {\bf Overview:}
10893 Set the name/label field of the given VDI.
10895 \noindent {\bf Signature:}
10896 \begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
10899 \noindent{\bf Arguments:}
10902 \vspace{0.3cm}
10903 \begin{tabular}{|c|c|p{7cm}|}
10904 \hline
10905 {\bf type} & {\bf name} & {\bf description} \\ \hline
10906 {\tt VDI ref } & self & reference to the object \\ \hline
10908 {\tt string } & value & New value to set \\ \hline
10910 \end{tabular}
10912 \vspace{0.3cm}
10914 \noindent {\bf Return Type:}
10915 {\tt
10916 void
10921 \vspace{0.3cm}
10922 \vspace{0.3cm}
10923 \vspace{0.3cm}
10924 \subsubsection{RPC name:~get\_name\_description}
10926 {\bf Overview:}
10927 Get the name/description field of the given VDI.
10929 \noindent {\bf Signature:}
10930 \begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
10933 \noindent{\bf Arguments:}
10936 \vspace{0.3cm}
10937 \begin{tabular}{|c|c|p{7cm}|}
10938 \hline
10939 {\bf type} & {\bf name} & {\bf description} \\ \hline
10940 {\tt VDI ref } & self & reference to the object \\ \hline
10942 \end{tabular}
10944 \vspace{0.3cm}
10946 \noindent {\bf Return Type:}
10947 {\tt
10948 string
10952 value of the field
10953 \vspace{0.3cm}
10954 \vspace{0.3cm}
10955 \vspace{0.3cm}
10956 \subsubsection{RPC name:~set\_name\_description}
10958 {\bf Overview:}
10959 Set the name/description field of the given VDI.
10961 \noindent {\bf Signature:}
10962 \begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
10965 \noindent{\bf Arguments:}
10968 \vspace{0.3cm}
10969 \begin{tabular}{|c|c|p{7cm}|}
10970 \hline
10971 {\bf type} & {\bf name} & {\bf description} \\ \hline
10972 {\tt VDI ref } & self & reference to the object \\ \hline
10974 {\tt string } & value & New value to set \\ \hline
10976 \end{tabular}
10978 \vspace{0.3cm}
10980 \noindent {\bf Return Type:}
10981 {\tt