ia64/xen-unstable

view docs/xen-api/xenapi-datamodel.tex @ 14045:7819d9332fba

Split the VBD I/O statistics out into a VBD_metrics class. Document the
VBD.type field, and add it to the C bindings (this was already in Xend).

Signed-off-by: Ewan Mellor <ewan@xensource.com>
author Ewan Mellor <ewan@xensource.com>
date Tue Feb 20 21:28:19 2007 +0000 (2007-02-20)
parents 988b90c6b4f3
children 0aa6755159d5
line source
1 %
2 % Copyright (c) 2006 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 VM} & A virtual machine (or 'guest') \\
28 {\tt VM\_metrics} & The metrics associated with a VM \\
29 {\tt host} & A physical host \\
30 {\tt host\_metrics} & The metrics associated with a host \\
31 {\tt host\_cpu} & A physical CPU \\
32 {\tt network} & A virtual network \\
33 {\tt VIF} & A virtual network interface \\
34 {\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
35 {\tt PIF\_metrics} & The metrics associated with a physical network interface \\
36 {\tt SR} & A storage repository \\
37 {\tt VDI} & A virtual disk image \\
38 {\tt VBD} & A virtual block device \\
39 {\tt VBD\_metrics} & The metrics associated with a virtual block device \\
40 {\tt PBD} & The physical block devices through which hosts access SRs \\
41 {\tt crashdump} & A VM crashdump \\
42 {\tt VTPM} & A virtual TPM device \\
43 {\tt console} & A console \\
44 {\tt user} & A user of the system \\
45 {\tt debug} & A basic class for testing \\
46 \hline
47 \end{tabular}\end{center}
48 \section{Relationships Between Classes}
49 Fields that are bound together are shown in the following table:
50 \begin{center}\begin{tabular}{|ll|l|}
51 \hline
52 {\em object.field} & {\em object.field} & {\em relationship} \\
54 \hline
55 host.PBDs & PBD.host & many-to-one\\
56 SR.PBDs & PBD.SR & many-to-one\\
57 VDI.VBDs & VBD.VDI & many-to-one\\
58 VDI.crash\_dumps & crashdump.VDI & many-to-one\\
59 VBD.VM & VM.VBDs & one-to-many\\
60 crashdump.VM & VM.crash\_dumps & one-to-many\\
61 VIF.VM & VM.VIFs & one-to-many\\
62 VIF.network & network.VIFs & one-to-many\\
63 host.metrics & host\_metrics.host & one-to-one\\
64 PIF.metrics & PIF\_metrics.PIF & one-to-one\\
65 PIF.host & host.PIFs & one-to-many\\
66 PIF.network & network.PIFs & one-to-many\\
67 SR.VDIs & VDI.SR & many-to-one\\
68 VTPM.VM & VM.VTPMs & one-to-many\\
69 console.VM & VM.consoles & one-to-many\\
70 host.resident\_VMs & VM.resident\_on & many-to-one\\
71 host.host\_CPUs & host\_cpu.host & many-to-one\\
72 \hline
73 \end{tabular}\end{center}
75 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
76 relationships:
78 \begin{center}\resizebox{0.8\textwidth}{!}{
79 \includegraphics{xenapi-datamodel-graph}
80 }\end{center}
81 \
82 \subsection{List of bound fields}
83 \section{Types}
84 \subsection{Primitives}
85 The following primitive types are used to specify methods and fields in the API Reference:
87 \begin{center}\begin{tabular}{|ll|}
88 \hline
89 Type & Description \\
90 \hline
91 String & text strings \\
92 Int & 64-bit integers \\
93 Float & IEEE double-precision floating-point numbers \\
94 Bool & boolean \\
95 DateTime & date and timestamp \\
96 Ref (object name) & reference to an object of class name \\
97 \hline
98 \end{tabular}\end{center}
99 \subsection{Higher order types}
100 The following type constructors are used:
102 \begin{center}\begin{tabular}{|ll|}
103 \hline
104 Type & Description \\
105 \hline
106 List (t) & an arbitrary-length list of elements of type t \\
107 Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
108 \hline
109 \end{tabular}\end{center}
110 \subsection{Enumeration types}
111 The following enumeration types are used:
113 \begin{longtable}{|ll|}
114 \hline
115 {\tt enum console\_protocol} & \\
116 \hline
117 \hspace{0.5cm}{\tt vt100} & VT100 terminal \\
118 \hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
119 \hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
120 \hline
121 \end{longtable}
123 \vspace{1cm}
124 \begin{longtable}{|ll|}
125 \hline
126 {\tt enum vdi\_type} & \\
127 \hline
128 \hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
129 \hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
130 \hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
131 \hspace{0.5cm}{\tt suspend} & a disk that stores a suspend image \\
132 \hspace{0.5cm}{\tt crashdump} & a disk that stores VM crashdump information \\
133 \hline
134 \end{longtable}
136 \vspace{1cm}
137 \begin{longtable}{|ll|}
138 \hline
139 {\tt enum vm\_power\_state} & \\
140 \hline
141 \hspace{0.5cm}{\tt Halted} & Halted \\
142 \hspace{0.5cm}{\tt Paused} & Paused \\
143 \hspace{0.5cm}{\tt Running} & Running \\
144 \hspace{0.5cm}{\tt Suspended} & Suspended \\
145 \hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
146 \hline
147 \end{longtable}
149 \vspace{1cm}
150 \begin{longtable}{|ll|}
151 \hline
152 {\tt enum task\_allowed\_operations} & \\
153 \hline
154 \hspace{0.5cm}{\tt Cancel} & Cancel \\
155 \hline
156 \end{longtable}
158 \vspace{1cm}
159 \begin{longtable}{|ll|}
160 \hline
161 {\tt enum task\_status\_type} & \\
162 \hline
163 \hspace{0.5cm}{\tt pending} & task is in progress \\
164 \hspace{0.5cm}{\tt success} & task was completed successfully \\
165 \hspace{0.5cm}{\tt failure} & task has failed \\
166 \hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
167 \hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
168 \hline
169 \end{longtable}
171 \vspace{1cm}
172 \begin{longtable}{|ll|}
173 \hline
174 {\tt enum on\_normal\_exit} & \\
175 \hline
176 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
177 \hspace{0.5cm}{\tt restart} & restart the VM \\
178 \hline
179 \end{longtable}
181 \vspace{1cm}
182 \begin{longtable}{|ll|}
183 \hline
184 {\tt enum on\_crash\_behaviour} & \\
185 \hline
186 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
187 \hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
188 \hspace{0.5cm}{\tt restart} & restart the VM \\
189 \hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
190 \hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
191 \hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
192 \hline
193 \end{longtable}
195 \vspace{1cm}
196 \begin{longtable}{|ll|}
197 \hline
198 {\tt enum vbd\_mode} & \\
199 \hline
200 \hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
201 \hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
202 \hline
203 \end{longtable}
205 \vspace{1cm}
206 \begin{longtable}{|ll|}
207 \hline
208 {\tt enum vbd\_type} & \\
209 \hline
210 \hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
211 \hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
212 \hline
213 \end{longtable}
215 \vspace{1cm}
217 \newpage
218 \section{Class: session}
219 \subsection{Fields for class: session}
220 \begin{longtable}{|lllp{0.38\textwidth}|}
221 \hline
222 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
223 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
224 session.}} \\
225 \hline
226 Quals & Field & Type & Description \\
227 \hline
228 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
229 $\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
230 $\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
231 $\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
232 \hline
233 \end{longtable}
234 \subsection{Additional RPCs associated with class: session}
235 \subsubsection{RPC name:~login\_with\_password}
237 {\bf Overview:}
238 Attempt to authenticate the user, returning a session\_id if successful.
240 \noindent {\bf Signature:}
241 \begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
244 \noindent{\bf Arguments:}
247 \vspace{0.3cm}
248 \begin{tabular}{|c|c|p{7cm}|}
249 \hline
250 {\bf type} & {\bf name} & {\bf description} \\ \hline
251 {\tt string } & uname & Username for login. \\ \hline
253 {\tt string } & pwd & Password for login. \\ \hline
255 \end{tabular}
257 \vspace{0.3cm}
259 \noindent {\bf Return Type:}
260 {\tt
261 session ref
262 }
265 ID of newly created session
266 \vspace{0.3cm}
267 \vspace{0.3cm}
268 \vspace{0.3cm}
269 \subsubsection{RPC name:~logout}
271 {\bf Overview:}
272 Log out of a session.
274 \noindent {\bf Signature:}
275 \begin{verbatim} void logout (session_id s)\end{verbatim}
278 \vspace{0.3cm}
280 \noindent {\bf Return Type:}
281 {\tt
282 void
283 }
287 \vspace{0.3cm}
288 \vspace{0.3cm}
289 \vspace{0.3cm}
290 \subsubsection{RPC name:~get\_uuid}
292 {\bf Overview:}
293 Get the uuid field of the given session.
295 \noindent {\bf Signature:}
296 \begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
299 \noindent{\bf Arguments:}
302 \vspace{0.3cm}
303 \begin{tabular}{|c|c|p{7cm}|}
304 \hline
305 {\bf type} & {\bf name} & {\bf description} \\ \hline
306 {\tt session ref } & self & reference to the object \\ \hline
308 \end{tabular}
310 \vspace{0.3cm}
312 \noindent {\bf Return Type:}
313 {\tt
314 string
315 }
318 value of the field
319 \vspace{0.3cm}
320 \vspace{0.3cm}
321 \vspace{0.3cm}
322 \subsubsection{RPC name:~get\_this\_host}
324 {\bf Overview:}
325 Get the this\_host field of the given session.
327 \noindent {\bf Signature:}
328 \begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
331 \noindent{\bf Arguments:}
334 \vspace{0.3cm}
335 \begin{tabular}{|c|c|p{7cm}|}
336 \hline
337 {\bf type} & {\bf name} & {\bf description} \\ \hline
338 {\tt session ref } & self & reference to the object \\ \hline
340 \end{tabular}
342 \vspace{0.3cm}
344 \noindent {\bf Return Type:}
345 {\tt
346 host ref
347 }
350 value of the field
351 \vspace{0.3cm}
352 \vspace{0.3cm}
353 \vspace{0.3cm}
354 \subsubsection{RPC name:~get\_this\_user}
356 {\bf Overview:}
357 Get the this\_user field of the given session.
359 \noindent {\bf Signature:}
360 \begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
363 \noindent{\bf Arguments:}
366 \vspace{0.3cm}
367 \begin{tabular}{|c|c|p{7cm}|}
368 \hline
369 {\bf type} & {\bf name} & {\bf description} \\ \hline
370 {\tt session ref } & self & reference to the object \\ \hline
372 \end{tabular}
374 \vspace{0.3cm}
376 \noindent {\bf Return Type:}
377 {\tt
378 user ref
379 }
382 value of the field
383 \vspace{0.3cm}
384 \vspace{0.3cm}
385 \vspace{0.3cm}
386 \subsubsection{RPC name:~get\_last\_active}
388 {\bf Overview:}
389 Get the last\_active field of the given session.
391 \noindent {\bf Signature:}
392 \begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
395 \noindent{\bf Arguments:}
398 \vspace{0.3cm}
399 \begin{tabular}{|c|c|p{7cm}|}
400 \hline
401 {\bf type} & {\bf name} & {\bf description} \\ \hline
402 {\tt session ref } & self & reference to the object \\ \hline
404 \end{tabular}
406 \vspace{0.3cm}
408 \noindent {\bf Return Type:}
409 {\tt
410 int
411 }
414 value of the field
415 \vspace{0.3cm}
416 \vspace{0.3cm}
417 \vspace{0.3cm}
418 \subsubsection{RPC name:~get\_by\_uuid}
420 {\bf Overview:}
421 Get a reference to the session instance with the specified UUID.
423 \noindent {\bf Signature:}
424 \begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
427 \noindent{\bf Arguments:}
430 \vspace{0.3cm}
431 \begin{tabular}{|c|c|p{7cm}|}
432 \hline
433 {\bf type} & {\bf name} & {\bf description} \\ \hline
434 {\tt string } & uuid & UUID of object to return \\ \hline
436 \end{tabular}
438 \vspace{0.3cm}
440 \noindent {\bf Return Type:}
441 {\tt
442 session ref
443 }
446 reference to the object
447 \vspace{0.3cm}
448 \vspace{0.3cm}
449 \vspace{0.3cm}
450 \subsubsection{RPC name:~get\_record}
452 {\bf Overview:}
453 Get a record containing the current state of the given session.
455 \noindent {\bf Signature:}
456 \begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
459 \noindent{\bf Arguments:}
462 \vspace{0.3cm}
463 \begin{tabular}{|c|c|p{7cm}|}
464 \hline
465 {\bf type} & {\bf name} & {\bf description} \\ \hline
466 {\tt session ref } & self & reference to the object \\ \hline
468 \end{tabular}
470 \vspace{0.3cm}
472 \noindent {\bf Return Type:}
473 {\tt
474 session record
475 }
478 all fields from the object
479 \vspace{0.3cm}
480 \vspace{0.3cm}
481 \vspace{0.3cm}
483 \vspace{1cm}
484 \newpage
485 \section{Class: task}
486 \subsection{Fields for class: task}
487 \begin{longtable}{|lllp{0.38\textwidth}|}
488 \hline
489 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
490 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
491 long-running asynchronous task.}} \\
492 \hline
493 Quals & Field & Type & Description \\
494 \hline
495 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
496 $\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
497 $\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
498 $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
499 $\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
500 $\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. \\
501 $\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. \\
502 $\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. \\
503 $\mathit{RO}_\mathit{run}$ & {\tt error\_code} & int & if the task has failed, this field contains the error code. Undefined otherwise. \\
504 $\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. \\
505 $\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
506 \hline
507 \end{longtable}
508 \subsection{Additional RPCs associated with class: task}
509 \subsubsection{RPC name:~cancel}
511 {\bf Overview:}
512 Cancel this task. If task.allowed\_operations does not contain Cancel,
513 then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
514 status 'cancelling', and you should continue to check its status until it
515 shows 'cancelled'. There is no guarantee as to the time within which this
516 task will be cancelled.
518 \noindent {\bf Signature:}
519 \begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
522 \noindent{\bf Arguments:}
525 \vspace{0.3cm}
526 \begin{tabular}{|c|c|p{7cm}|}
527 \hline
528 {\bf type} & {\bf name} & {\bf description} \\ \hline
529 {\tt task ref } & task & The task \\ \hline
531 \end{tabular}
533 \vspace{0.3cm}
535 \noindent {\bf Return Type:}
536 {\tt
537 void
538 }
542 \vspace{0.3cm}
544 \noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
546 \vspace{0.6cm}
547 \subsubsection{RPC name:~get\_all}
549 {\bf Overview:}
550 Return a list of all the tasks known to the system.
552 \noindent {\bf Signature:}
553 \begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
556 \vspace{0.3cm}
558 \noindent {\bf Return Type:}
559 {\tt
560 (task ref) Set
561 }
564 references to all objects
565 \vspace{0.3cm}
566 \vspace{0.3cm}
567 \vspace{0.3cm}
568 \subsubsection{RPC name:~get\_uuid}
570 {\bf Overview:}
571 Get the uuid field of the given task.
573 \noindent {\bf Signature:}
574 \begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
577 \noindent{\bf Arguments:}
580 \vspace{0.3cm}
581 \begin{tabular}{|c|c|p{7cm}|}
582 \hline
583 {\bf type} & {\bf name} & {\bf description} \\ \hline
584 {\tt task ref } & self & reference to the object \\ \hline
586 \end{tabular}
588 \vspace{0.3cm}
590 \noindent {\bf Return Type:}
591 {\tt
592 string
593 }
596 value of the field
597 \vspace{0.3cm}
598 \vspace{0.3cm}
599 \vspace{0.3cm}
600 \subsubsection{RPC name:~get\_name\_label}
602 {\bf Overview:}
603 Get the name/label field of the given task.
605 \noindent {\bf Signature:}
606 \begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
609 \noindent{\bf Arguments:}
612 \vspace{0.3cm}
613 \begin{tabular}{|c|c|p{7cm}|}
614 \hline
615 {\bf type} & {\bf name} & {\bf description} \\ \hline
616 {\tt task ref } & self & reference to the object \\ \hline
618 \end{tabular}
620 \vspace{0.3cm}
622 \noindent {\bf Return Type:}
623 {\tt
624 string
625 }
628 value of the field
629 \vspace{0.3cm}
630 \vspace{0.3cm}
631 \vspace{0.3cm}
632 \subsubsection{RPC name:~get\_name\_description}
634 {\bf Overview:}
635 Get the name/description field of the given task.
637 \noindent {\bf Signature:}
638 \begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
641 \noindent{\bf Arguments:}
644 \vspace{0.3cm}
645 \begin{tabular}{|c|c|p{7cm}|}
646 \hline
647 {\bf type} & {\bf name} & {\bf description} \\ \hline
648 {\tt task ref } & self & reference to the object \\ \hline
650 \end{tabular}
652 \vspace{0.3cm}
654 \noindent {\bf Return Type:}
655 {\tt
656 string
657 }
660 value of the field
661 \vspace{0.3cm}
662 \vspace{0.3cm}
663 \vspace{0.3cm}
664 \subsubsection{RPC name:~get\_status}
666 {\bf Overview:}
667 Get the status field of the given task.
669 \noindent {\bf Signature:}
670 \begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
673 \noindent{\bf Arguments:}
676 \vspace{0.3cm}
677 \begin{tabular}{|c|c|p{7cm}|}
678 \hline
679 {\bf type} & {\bf name} & {\bf description} \\ \hline
680 {\tt task ref } & self & reference to the object \\ \hline
682 \end{tabular}
684 \vspace{0.3cm}
686 \noindent {\bf Return Type:}
687 {\tt
688 task\_status\_type
689 }
692 value of the field
693 \vspace{0.3cm}
694 \vspace{0.3cm}
695 \vspace{0.3cm}
696 \subsubsection{RPC name:~get\_session}
698 {\bf Overview:}
699 Get the session field of the given task.
701 \noindent {\bf Signature:}
702 \begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
705 \noindent{\bf Arguments:}
708 \vspace{0.3cm}
709 \begin{tabular}{|c|c|p{7cm}|}
710 \hline
711 {\bf type} & {\bf name} & {\bf description} \\ \hline
712 {\tt task ref } & self & reference to the object \\ \hline
714 \end{tabular}
716 \vspace{0.3cm}
718 \noindent {\bf Return Type:}
719 {\tt
720 session ref
721 }
724 value of the field
725 \vspace{0.3cm}
726 \vspace{0.3cm}
727 \vspace{0.3cm}
728 \subsubsection{RPC name:~get\_progress}
730 {\bf Overview:}
731 Get the progress field of the given task.
733 \noindent {\bf Signature:}
734 \begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
737 \noindent{\bf Arguments:}
740 \vspace{0.3cm}
741 \begin{tabular}{|c|c|p{7cm}|}
742 \hline
743 {\bf type} & {\bf name} & {\bf description} \\ \hline
744 {\tt task ref } & self & reference to the object \\ \hline
746 \end{tabular}
748 \vspace{0.3cm}
750 \noindent {\bf Return Type:}
751 {\tt
752 int
753 }
756 value of the field
757 \vspace{0.3cm}
758 \vspace{0.3cm}
759 \vspace{0.3cm}
760 \subsubsection{RPC name:~get\_type}
762 {\bf Overview:}
763 Get the type field of the given task.
765 \noindent {\bf Signature:}
766 \begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
769 \noindent{\bf Arguments:}
772 \vspace{0.3cm}
773 \begin{tabular}{|c|c|p{7cm}|}
774 \hline
775 {\bf type} & {\bf name} & {\bf description} \\ \hline
776 {\tt task ref } & self & reference to the object \\ \hline
778 \end{tabular}
780 \vspace{0.3cm}
782 \noindent {\bf Return Type:}
783 {\tt
784 string
785 }
788 value of the field
789 \vspace{0.3cm}
790 \vspace{0.3cm}
791 \vspace{0.3cm}
792 \subsubsection{RPC name:~get\_result}
794 {\bf Overview:}
795 Get the result field of the given task.
797 \noindent {\bf Signature:}
798 \begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
801 \noindent{\bf Arguments:}
804 \vspace{0.3cm}
805 \begin{tabular}{|c|c|p{7cm}|}
806 \hline
807 {\bf type} & {\bf name} & {\bf description} \\ \hline
808 {\tt task ref } & self & reference to the object \\ \hline
810 \end{tabular}
812 \vspace{0.3cm}
814 \noindent {\bf Return Type:}
815 {\tt
816 string
817 }
820 value of the field
821 \vspace{0.3cm}
822 \vspace{0.3cm}
823 \vspace{0.3cm}
824 \subsubsection{RPC name:~get\_error\_code}
826 {\bf Overview:}
827 Get the error\_code field of the given task.
829 \noindent {\bf Signature:}
830 \begin{verbatim} int get_error_code (session_id s, task ref self)\end{verbatim}
833 \noindent{\bf Arguments:}
836 \vspace{0.3cm}
837 \begin{tabular}{|c|c|p{7cm}|}
838 \hline
839 {\bf type} & {\bf name} & {\bf description} \\ \hline
840 {\tt task ref } & self & reference to the object \\ \hline
842 \end{tabular}
844 \vspace{0.3cm}
846 \noindent {\bf Return Type:}
847 {\tt
848 int
849 }
852 value of the field
853 \vspace{0.3cm}
854 \vspace{0.3cm}
855 \vspace{0.3cm}
856 \subsubsection{RPC name:~get\_error\_info}
858 {\bf Overview:}
859 Get the error\_info field of the given task.
861 \noindent {\bf Signature:}
862 \begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
865 \noindent{\bf Arguments:}
868 \vspace{0.3cm}
869 \begin{tabular}{|c|c|p{7cm}|}
870 \hline
871 {\bf type} & {\bf name} & {\bf description} \\ \hline
872 {\tt task ref } & self & reference to the object \\ \hline
874 \end{tabular}
876 \vspace{0.3cm}
878 \noindent {\bf Return Type:}
879 {\tt
880 string Set
881 }
884 value of the field
885 \vspace{0.3cm}
886 \vspace{0.3cm}
887 \vspace{0.3cm}
888 \subsubsection{RPC name:~get\_allowed\_operations}
890 {\bf Overview:}
891 Get the allowed\_operations field of the given task.
893 \noindent {\bf Signature:}
894 \begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
897 \noindent{\bf Arguments:}
900 \vspace{0.3cm}
901 \begin{tabular}{|c|c|p{7cm}|}
902 \hline
903 {\bf type} & {\bf name} & {\bf description} \\ \hline
904 {\tt task ref } & self & reference to the object \\ \hline
906 \end{tabular}
908 \vspace{0.3cm}
910 \noindent {\bf Return Type:}
911 {\tt
912 (task\_allowed\_operations) Set
913 }
916 value of the field
917 \vspace{0.3cm}
918 \vspace{0.3cm}
919 \vspace{0.3cm}
920 \subsubsection{RPC name:~get\_by\_uuid}
922 {\bf Overview:}
923 Get a reference to the task instance with the specified UUID.
925 \noindent {\bf Signature:}
926 \begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
929 \noindent{\bf Arguments:}
932 \vspace{0.3cm}
933 \begin{tabular}{|c|c|p{7cm}|}
934 \hline
935 {\bf type} & {\bf name} & {\bf description} \\ \hline
936 {\tt string } & uuid & UUID of object to return \\ \hline
938 \end{tabular}
940 \vspace{0.3cm}
942 \noindent {\bf Return Type:}
943 {\tt
944 task ref
945 }
948 reference to the object
949 \vspace{0.3cm}
950 \vspace{0.3cm}
951 \vspace{0.3cm}
952 \subsubsection{RPC name:~get\_record}
954 {\bf Overview:}
955 Get a record containing the current state of the given task.
957 \noindent {\bf Signature:}
958 \begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
961 \noindent{\bf Arguments:}
964 \vspace{0.3cm}
965 \begin{tabular}{|c|c|p{7cm}|}
966 \hline
967 {\bf type} & {\bf name} & {\bf description} \\ \hline
968 {\tt task ref } & self & reference to the object \\ \hline
970 \end{tabular}
972 \vspace{0.3cm}
974 \noindent {\bf Return Type:}
975 {\tt
976 task record
977 }
980 all fields from the object
981 \vspace{0.3cm}
982 \vspace{0.3cm}
983 \vspace{0.3cm}
984 \subsubsection{RPC name:~get\_by\_name\_label}
986 {\bf Overview:}
987 Get all the task instances with the given label.
989 \noindent {\bf Signature:}
990 \begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
993 \noindent{\bf Arguments:}
996 \vspace{0.3cm}
997 \begin{tabular}{|c|c|p{7cm}|}
998 \hline
999 {\bf type} & {\bf name} & {\bf description} \\ \hline
1000 {\tt string } & label & label of object to return \\ \hline
1002 \end{tabular}
1004 \vspace{0.3cm}
1006 \noindent {\bf Return Type:}
1007 {\tt
1008 (task ref) Set
1012 references to objects with match names
1013 \vspace{0.3cm}
1014 \vspace{0.3cm}
1015 \vspace{0.3cm}
1017 \vspace{1cm}
1018 \newpage
1019 \section{Class: VM}
1020 \subsection{Fields for class: VM}
1021 \begin{longtable}{|lllp{0.38\textwidth}|}
1022 \hline
1023 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1024 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
1025 virtual machine (or 'guest').
1027 VM booting is controlled by setting one of the two mutually exclusive
1028 groups: "PV", and "HVM". If HVM.boot\_policy is the empty string, then
1029 paravirtual domain building and booting will be used; otherwise the VM will
1030 be loaded as an HVM domain, and booted using an emulated BIOS.
1032 When paravirtual booting is in use, the PV/bootloader field indicates the
1033 bootloader to use. It may be "pygrub", in which case the platform's
1034 default installation of pygrub will be used, or a full path within the
1035 control domain to some other bootloader. The other fields, PV/kernel,
1036 PV/ramdisk, PV/args and PV/bootloader\_args will be passed to the
1037 bootloader unmodified, and interpretation of those fields is then specific
1038 to the bootloader itself, including the possibility that the bootloader
1039 will ignore some or all of those given values. Finally the paths of all
1040 bootable disks are added to the bootloader commandline (a disk is bootable
1041 if its VBD has the bootable flag set). There may be zero, one or many
1042 bootable disks; the bootloader decides which disk (if any) to boot from.
1044 If the bootloader is pygrub, then the menu.lst is parsed if present in the
1045 guest's filesystem, otherwise the specified kernel and ramdisk are used, or
1046 an autodetected kernel is used if nothing is specified and autodetection is
1047 possible. PV/args is appended to the kernel command line, no matter which
1048 mechanism is used for finding the kernel.
1050 If PV/bootloader is empty but PV/kernel is specified, then the kernel and
1051 ramdisk values will be treated as paths within the control domain. If both
1052 PV/bootloader and PV/kernel are empty, then the behaviour is as if
1053 PV/bootloader was specified as "pygrub".
1055 When using HVM booting, HVM/boot\_policy and HVM/boot\_params specify the
1056 boot handling. Only one policy is currently defined: "BIOS order". In
1057 this case, HVM/boot\_params should contain one key-value pair "order" = "N"
1058 where N is the string that will be passed to QEMU.}} \\
1059 \hline
1060 Quals & Field & Type & Description \\
1061 \hline
1062 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1063 $\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1064 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1065 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1066 $\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1067 $\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 \\
1068 $\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1069 $\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) \\
1070 $\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1071 $\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1072 $\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1073 $\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1074 $\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) mininum (bytes) \\
1075 $\mathit{RW}$ & {\tt VCPUs/policy} & string & the name of the VCPU scheduling policy to be applied \\
1076 $\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
1077 $\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
1078 $\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
1079 $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1080 $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1081 $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1082 $\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1083 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1084 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1085 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
1086 $\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1087 $\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1088 $\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
1089 $\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
1090 $\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1091 $\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1092 $\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
1093 $\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
1094 $\mathit{RW}$ & {\tt platform/std\_VGA} & bool & emulate standard VGA instead of cirrus logic \\
1095 $\mathit{RW}$ & {\tt platform/serial} & string & redirect serial port to pty \\
1096 $\mathit{RW}$ & {\tt platform/localtime} & bool & set RTC to local time \\
1097 $\mathit{RW}$ & {\tt platform/clock\_offset} & bool & timeshift applied to guest's clock \\
1098 $\mathit{RW}$ & {\tt platform/enable\_audio} & bool & emulate audio \\
1099 $\mathit{RO}_\mathit{ins}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1100 $\mathit{RO}_\mathit{run}$ & {\tt tools\_version} & (string $\rightarrow$ string) Map & versions of installed paravirtualised drivers \\
1101 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
1102 $\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
1103 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM. \\
1104 \hline
1105 \end{longtable}
1106 \subsection{Additional RPCs associated with class: VM}
1107 \subsubsection{RPC name:~clone}
1109 {\bf Overview:}
1110 Clones the specified VM, making a new VM. Clone automatically exploits the
1111 capabilities of the underlying storage repository in which the VM's disk
1112 images are stored (e.g. Copy on Write). This function can only be called
1113 when the VM is in the Halted State.
1115 \noindent {\bf Signature:}
1116 \begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1119 \noindent{\bf Arguments:}
1122 \vspace{0.3cm}
1123 \begin{tabular}{|c|c|p{7cm}|}
1124 \hline
1125 {\bf type} & {\bf name} & {\bf description} \\ \hline
1126 {\tt VM ref } & vm & The VM to be cloned \\ \hline
1128 {\tt string } & new\_name & The name of the cloned VM \\ \hline
1130 \end{tabular}
1132 \vspace{0.3cm}
1134 \noindent {\bf Return Type:}
1135 {\tt
1136 VM ref
1140 The ID of the newly created VM.
1141 \vspace{0.3cm}
1143 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1145 \vspace{0.6cm}
1146 \subsubsection{RPC name:~start}
1148 {\bf Overview:}
1149 Start the specified VM. This function can only be called with the VM is in
1150 the Halted State.
1152 \noindent {\bf Signature:}
1153 \begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1156 \noindent{\bf Arguments:}
1159 \vspace{0.3cm}
1160 \begin{tabular}{|c|c|p{7cm}|}
1161 \hline
1162 {\bf type} & {\bf name} & {\bf description} \\ \hline
1163 {\tt VM ref } & vm & The VM to start \\ \hline
1165 {\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1167 \end{tabular}
1169 \vspace{0.3cm}
1171 \noindent {\bf Return Type:}
1172 {\tt
1173 void
1178 \vspace{0.3cm}
1180 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1182 \vspace{0.6cm}
1183 \subsubsection{RPC name:~pause}
1185 {\bf Overview:}
1186 Pause the specified VM. This can only be called when the specified VM is in
1187 the Running state.
1189 \noindent {\bf Signature:}
1190 \begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1193 \noindent{\bf Arguments:}
1196 \vspace{0.3cm}
1197 \begin{tabular}{|c|c|p{7cm}|}
1198 \hline
1199 {\bf type} & {\bf name} & {\bf description} \\ \hline
1200 {\tt VM ref } & vm & The VM to pause \\ \hline
1202 \end{tabular}
1204 \vspace{0.3cm}
1206 \noindent {\bf Return Type:}
1207 {\tt
1208 void
1213 \vspace{0.3cm}
1215 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1217 \vspace{0.6cm}
1218 \subsubsection{RPC name:~unpause}
1220 {\bf Overview:}
1221 Resume the specified VM. This can only be called when the specified VM is
1222 in the Paused state.
1224 \noindent {\bf Signature:}
1225 \begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1228 \noindent{\bf Arguments:}
1231 \vspace{0.3cm}
1232 \begin{tabular}{|c|c|p{7cm}|}
1233 \hline
1234 {\bf type} & {\bf name} & {\bf description} \\ \hline
1235 {\tt VM ref } & vm & The VM to unpause \\ \hline
1237 \end{tabular}
1239 \vspace{0.3cm}
1241 \noindent {\bf Return Type:}
1242 {\tt
1243 void
1248 \vspace{0.3cm}
1250 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1252 \vspace{0.6cm}
1253 \subsubsection{RPC name:~clean\_shutdown}
1255 {\bf Overview:}
1256 Attempt to cleanly shutdown the specified VM. (Note: this may not be
1257 supported---e.g. if a guest agent is not installed).
1259 Once shutdown has been completed perform poweroff action specified in guest
1260 configuration.
1262 This can only be called when the specified VM is in the Running state.
1264 \noindent {\bf Signature:}
1265 \begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1268 \noindent{\bf Arguments:}
1271 \vspace{0.3cm}
1272 \begin{tabular}{|c|c|p{7cm}|}
1273 \hline
1274 {\bf type} & {\bf name} & {\bf description} \\ \hline
1275 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1277 \end{tabular}
1279 \vspace{0.3cm}
1281 \noindent {\bf Return Type:}
1282 {\tt
1283 void
1288 \vspace{0.3cm}
1290 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1292 \vspace{0.6cm}
1293 \subsubsection{RPC name:~clean\_reboot}
1295 {\bf Overview:}
1296 Attempt to cleanly shutdown the specified VM (Note: this may not be
1297 supported---e.g. if a guest agent is not installed).
1299 Once shutdown has been completed perform reboot action specified in guest
1300 configuration.
1302 This can only be called when the specified VM is in the Running state.
1304 \noindent {\bf Signature:}
1305 \begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1308 \noindent{\bf Arguments:}
1311 \vspace{0.3cm}
1312 \begin{tabular}{|c|c|p{7cm}|}
1313 \hline
1314 {\bf type} & {\bf name} & {\bf description} \\ \hline
1315 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1317 \end{tabular}
1319 \vspace{0.3cm}
1321 \noindent {\bf Return Type:}
1322 {\tt
1323 void
1328 \vspace{0.3cm}
1330 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1332 \vspace{0.6cm}
1333 \subsubsection{RPC name:~hard\_shutdown}
1335 {\bf Overview:}
1336 Stop executing the specified VM without attempting a clean shutdown. Then
1337 perform poweroff action specified in VM configuration.
1339 \noindent {\bf Signature:}
1340 \begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1343 \noindent{\bf Arguments:}
1346 \vspace{0.3cm}
1347 \begin{tabular}{|c|c|p{7cm}|}
1348 \hline
1349 {\bf type} & {\bf name} & {\bf description} \\ \hline
1350 {\tt VM ref } & vm & The VM to destroy \\ \hline
1352 \end{tabular}
1354 \vspace{0.3cm}
1356 \noindent {\bf Return Type:}
1357 {\tt
1358 void
1363 \vspace{0.3cm}
1364 \vspace{0.3cm}
1365 \vspace{0.3cm}
1366 \subsubsection{RPC name:~hard\_reboot}
1368 {\bf Overview:}
1369 Stop executing the specified VM without attempting a clean shutdown. Then
1370 perform reboot action specified in VM configuration.
1372 \noindent {\bf Signature:}
1373 \begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1376 \noindent{\bf Arguments:}
1379 \vspace{0.3cm}
1380 \begin{tabular}{|c|c|p{7cm}|}
1381 \hline
1382 {\bf type} & {\bf name} & {\bf description} \\ \hline
1383 {\tt VM ref } & vm & The VM to reboot \\ \hline
1385 \end{tabular}
1387 \vspace{0.3cm}
1389 \noindent {\bf Return Type:}
1390 {\tt
1391 void
1396 \vspace{0.3cm}
1397 \vspace{0.3cm}
1398 \vspace{0.3cm}
1399 \subsubsection{RPC name:~suspend}
1401 {\bf Overview:}
1402 Suspend the specified VM to disk. This can only be called when the
1403 specified VM is in the Running state.
1405 \noindent {\bf Signature:}
1406 \begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1409 \noindent{\bf Arguments:}
1412 \vspace{0.3cm}
1413 \begin{tabular}{|c|c|p{7cm}|}
1414 \hline
1415 {\bf type} & {\bf name} & {\bf description} \\ \hline
1416 {\tt VM ref } & vm & The VM to hibernate \\ \hline
1418 \end{tabular}
1420 \vspace{0.3cm}
1422 \noindent {\bf Return Type:}
1423 {\tt
1424 void
1429 \vspace{0.3cm}
1431 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1433 \vspace{0.6cm}
1434 \subsubsection{RPC name:~resume}
1436 {\bf Overview:}
1437 Awaken the specified VM and resume it. This can only be called when the
1438 specified VM is in the Suspended state.
1440 \noindent {\bf Signature:}
1441 \begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1444 \noindent{\bf Arguments:}
1447 \vspace{0.3cm}
1448 \begin{tabular}{|c|c|p{7cm}|}
1449 \hline
1450 {\bf type} & {\bf name} & {\bf description} \\ \hline
1451 {\tt VM ref } & vm & The VM to unhibernate \\ \hline
1453 {\tt bool } & start\_paused & Unhibernate VM in paused state if set to true. \\ \hline
1455 \end{tabular}
1457 \vspace{0.3cm}
1459 \noindent {\bf Return Type:}
1460 {\tt
1461 void
1466 \vspace{0.3cm}
1468 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1470 \vspace{0.6cm}
1471 \subsubsection{RPC name:~get\_all}
1473 {\bf Overview:}
1474 Return a list of all the VMs known to the system.
1476 \noindent {\bf Signature:}
1477 \begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
1480 \vspace{0.3cm}
1482 \noindent {\bf Return Type:}
1483 {\tt
1484 (VM ref) Set
1488 A list of all the IDs of all the VMs
1489 \vspace{0.3cm}
1490 \vspace{0.3cm}
1491 \vspace{0.3cm}
1492 \subsubsection{RPC name:~get\_uuid}
1494 {\bf Overview:}
1495 Get the uuid field of the given VM.
1497 \noindent {\bf Signature:}
1498 \begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
1501 \noindent{\bf Arguments:}
1504 \vspace{0.3cm}
1505 \begin{tabular}{|c|c|p{7cm}|}
1506 \hline
1507 {\bf type} & {\bf name} & {\bf description} \\ \hline
1508 {\tt VM ref } & self & reference to the object \\ \hline
1510 \end{tabular}
1512 \vspace{0.3cm}
1514 \noindent {\bf Return Type:}
1515 {\tt
1516 string
1520 value of the field
1521 \vspace{0.3cm}
1522 \vspace{0.3cm}
1523 \vspace{0.3cm}
1524 \subsubsection{RPC name:~get\_power\_state}
1526 {\bf Overview:}
1527 Get the power\_state field of the given VM.
1529 \noindent {\bf Signature:}
1530 \begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
1533 \noindent{\bf Arguments:}
1536 \vspace{0.3cm}
1537 \begin{tabular}{|c|c|p{7cm}|}
1538 \hline
1539 {\bf type} & {\bf name} & {\bf description} \\ \hline
1540 {\tt VM ref } & self & reference to the object \\ \hline
1542 \end{tabular}
1544 \vspace{0.3cm}
1546 \noindent {\bf Return Type:}
1547 {\tt
1548 vm\_power\_state
1552 value of the field
1553 \vspace{0.3cm}
1554 \vspace{0.3cm}
1555 \vspace{0.3cm}
1556 \subsubsection{RPC name:~get\_name\_label}
1558 {\bf Overview:}
1559 Get the name/label field of the given VM.
1561 \noindent {\bf Signature:}
1562 \begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
1565 \noindent{\bf Arguments:}
1568 \vspace{0.3cm}
1569 \begin{tabular}{|c|c|p{7cm}|}
1570 \hline
1571 {\bf type} & {\bf name} & {\bf description} \\ \hline
1572 {\tt VM ref } & self & reference to the object \\ \hline
1574 \end{tabular}
1576 \vspace{0.3cm}
1578 \noindent {\bf Return Type:}
1579 {\tt
1580 string
1584 value of the field
1585 \vspace{0.3cm}
1586 \vspace{0.3cm}
1587 \vspace{0.3cm}
1588 \subsubsection{RPC name:~set\_name\_label}
1590 {\bf Overview:}
1591 Set the name/label field of the given VM.
1593 \noindent {\bf Signature:}
1594 \begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
1597 \noindent{\bf Arguments:}
1600 \vspace{0.3cm}
1601 \begin{tabular}{|c|c|p{7cm}|}
1602 \hline
1603 {\bf type} & {\bf name} & {\bf description} \\ \hline
1604 {\tt VM ref } & self & reference to the object \\ \hline
1606 {\tt string } & value & New value to set \\ \hline
1608 \end{tabular}
1610 \vspace{0.3cm}
1612 \noindent {\bf Return Type:}
1613 {\tt
1614 void
1619 \vspace{0.3cm}
1620 \vspace{0.3cm}
1621 \vspace{0.3cm}
1622 \subsubsection{RPC name:~get\_name\_description}
1624 {\bf Overview:}
1625 Get the name/description field of the given VM.
1627 \noindent {\bf Signature:}
1628 \begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
1631 \noindent{\bf Arguments:}
1634 \vspace{0.3cm}
1635 \begin{tabular}{|c|c|p{7cm}|}
1636 \hline
1637 {\bf type} & {\bf name} & {\bf description} \\ \hline
1638 {\tt VM ref } & self & reference to the object \\ \hline
1640 \end{tabular}
1642 \vspace{0.3cm}
1644 \noindent {\bf Return Type:}
1645 {\tt
1646 string
1650 value of the field
1651 \vspace{0.3cm}
1652 \vspace{0.3cm}
1653 \vspace{0.3cm}
1654 \subsubsection{RPC name:~set\_name\_description}
1656 {\bf Overview:}
1657 Set the name/description field of the given VM.
1659 \noindent {\bf Signature:}
1660 \begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
1663 \noindent{\bf Arguments:}
1666 \vspace{0.3cm}
1667 \begin{tabular}{|c|c|p{7cm}|}
1668 \hline
1669 {\bf type} & {\bf name} & {\bf description} \\ \hline
1670 {\tt VM ref } & self & reference to the object \\ \hline
1672 {\tt string } & value & New value to set \\ \hline
1674 \end{tabular}
1676 \vspace{0.3cm}
1678 \noindent {\bf Return Type:}
1679 {\tt
1680 void
1685 \vspace{0.3cm}
1686 \vspace{0.3cm}
1687 \vspace{0.3cm}
1688 \subsubsection{RPC name:~get\_user\_version}
1690 {\bf Overview:}
1691 Get the user\_version field of the given VM.
1693 \noindent {\bf Signature:}
1694 \begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
1697 \noindent{\bf Arguments:}
1700 \vspace{0.3cm}
1701 \begin{tabular}{|c|c|p{7cm}|}
1702 \hline
1703 {\bf type} & {\bf name} & {\bf description} \\ \hline
1704 {\tt VM ref } & self & reference to the object \\ \hline
1706 \end{tabular}
1708 \vspace{0.3cm}
1710 \noindent {\bf Return Type:}
1711 {\tt
1712 int
1716 value of the field
1717 \vspace{0.3cm}
1718 \vspace{0.3cm}
1719 \vspace{0.3cm}
1720 \subsubsection{RPC name:~set\_user\_version}
1722 {\bf Overview:}
1723 Set the user\_version field of the given VM.
1725 \noindent {\bf Signature:}
1726 \begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
1729 \noindent{\bf Arguments:}
1732 \vspace{0.3cm}
1733 \begin{tabular}{|c|c|p{7cm}|}
1734 \hline
1735 {\bf type} & {\bf name} & {\bf description} \\ \hline
1736 {\tt VM ref } & self & reference to the object \\ \hline
1738 {\tt int } & value & New value to set \\ \hline
1740 \end{tabular}
1742 \vspace{0.3cm}
1744 \noindent {\bf Return Type:}
1745 {\tt
1746 void
1751 \vspace{0.3cm}
1752 \vspace{0.3cm}
1753 \vspace{0.3cm}
1754 \subsubsection{RPC name:~get\_is\_a\_template}
1756 {\bf Overview:}
1757 Get the is\_a\_template field of the given VM.
1759 \noindent {\bf Signature:}
1760 \begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
1763 \noindent{\bf Arguments:}
1766 \vspace{0.3cm}
1767 \begin{tabular}{|c|c|p{7cm}|}
1768 \hline
1769 {\bf type} & {\bf name} & {\bf description} \\ \hline
1770 {\tt VM ref } & self & reference to the object \\ \hline
1772 \end{tabular}
1774 \vspace{0.3cm}
1776 \noindent {\bf Return Type:}
1777 {\tt
1778 bool
1782 value of the field
1783 \vspace{0.3cm}
1784 \vspace{0.3cm}
1785 \vspace{0.3cm}
1786 \subsubsection{RPC name:~set\_is\_a\_template}
1788 {\bf Overview:}
1789 Set the is\_a\_template field of the given VM.
1791 \noindent {\bf Signature:}
1792 \begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
1795 \noindent{\bf Arguments:}
1798 \vspace{0.3cm}
1799 \begin{tabular}{|c|c|p{7cm}|}
1800 \hline
1801 {\bf type} & {\bf name} & {\bf description} \\ \hline
1802 {\tt VM ref } & self & reference to the object \\ \hline
1804 {\tt bool } & value & New value to set \\ \hline
1806 \end{tabular}
1808 \vspace{0.3cm}
1810 \noindent {\bf Return Type:}
1811 {\tt
1812 void
1817 \vspace{0.3cm}
1818 \vspace{0.3cm}
1819 \vspace{0.3cm}
1820 \subsubsection{RPC name:~get\_auto\_power\_on}
1822 {\bf Overview:}
1823 Get the auto\_power\_on field of the given VM.
1825 \noindent {\bf Signature:}
1826 \begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
1829 \noindent{\bf Arguments:}
1832 \vspace{0.3cm}
1833 \begin{tabular}{|c|c|p{7cm}|}
1834 \hline
1835 {\bf type} & {\bf name} & {\bf description} \\ \hline
1836 {\tt VM ref } & self & reference to the object \\ \hline
1838 \end{tabular}
1840 \vspace{0.3cm}
1842 \noindent {\bf Return Type:}
1843 {\tt
1844 bool
1848 value of the field
1849 \vspace{0.3cm}
1850 \vspace{0.3cm}
1851 \vspace{0.3cm}
1852 \subsubsection{RPC name:~set\_auto\_power\_on}
1854 {\bf Overview:}
1855 Set the auto\_power\_on field of the given VM.
1857 \noindent {\bf Signature:}
1858 \begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
1861 \noindent{\bf Arguments:}
1864 \vspace{0.3cm}
1865 \begin{tabular}{|c|c|p{7cm}|}
1866 \hline
1867 {\bf type} & {\bf name} & {\bf description} \\ \hline
1868 {\tt VM ref } & self & reference to the object \\ \hline
1870 {\tt bool } & value & New value to set \\ \hline
1872 \end{tabular}
1874 \vspace{0.3cm}
1876 \noindent {\bf Return Type:}
1877 {\tt
1878 void
1883 \vspace{0.3cm}
1884 \vspace{0.3cm}
1885 \vspace{0.3cm}
1886 \subsubsection{RPC name:~get\_suspend\_VDI}
1888 {\bf Overview:}
1889 Get the suspend\_VDI field of the given VM.
1891 \noindent {\bf Signature:}
1892 \begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
1895 \noindent{\bf Arguments:}
1898 \vspace{0.3cm}
1899 \begin{tabular}{|c|c|p{7cm}|}
1900 \hline
1901 {\bf type} & {\bf name} & {\bf description} \\ \hline
1902 {\tt VM ref } & self & reference to the object \\ \hline
1904 \end{tabular}
1906 \vspace{0.3cm}
1908 \noindent {\bf Return Type:}
1909 {\tt
1910 VDI ref
1914 value of the field
1915 \vspace{0.3cm}
1916 \vspace{0.3cm}
1917 \vspace{0.3cm}
1918 \subsubsection{RPC name:~get\_resident\_on}
1920 {\bf Overview:}
1921 Get the resident\_on field of the given VM.
1923 \noindent {\bf Signature:}
1924 \begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
1927 \noindent{\bf Arguments:}
1930 \vspace{0.3cm}
1931 \begin{tabular}{|c|c|p{7cm}|}
1932 \hline
1933 {\bf type} & {\bf name} & {\bf description} \\ \hline
1934 {\tt VM ref } & self & reference to the object \\ \hline
1936 \end{tabular}
1938 \vspace{0.3cm}
1940 \noindent {\bf Return Type:}
1941 {\tt
1942 host ref
1946 value of the field
1947 \vspace{0.3cm}
1948 \vspace{0.3cm}
1949 \vspace{0.3cm}
1950 \subsubsection{RPC name:~get\_memory\_static\_max}
1952 {\bf Overview:}
1953 Get the memory/static\_max field of the given VM.
1955 \noindent {\bf Signature:}
1956 \begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
1959 \noindent{\bf Arguments:}
1962 \vspace{0.3cm}
1963 \begin{tabular}{|c|c|p{7cm}|}
1964 \hline
1965 {\bf type} & {\bf name} & {\bf description} \\ \hline
1966 {\tt VM ref } & self & reference to the object \\ \hline
1968 \end{tabular}
1970 \vspace{0.3cm}
1972 \noindent {\bf Return Type:}
1973 {\tt
1974 int
1978 value of the field
1979 \vspace{0.3cm}
1980 \vspace{0.3cm}
1981 \vspace{0.3cm}
1982 \subsubsection{RPC name:~set\_memory\_static\_max}
1984 {\bf Overview:}
1985 Set the memory/static\_max field of the given VM.
1987 \noindent {\bf Signature:}
1988 \begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
1991 \noindent{\bf Arguments:}
1994 \vspace{0.3cm}
1995 \begin{tabular}{|c|c|p{7cm}|}
1996 \hline
1997 {\bf type} & {\bf name} & {\bf description} \\ \hline
1998 {\tt VM ref } & self & reference to the object \\ \hline
2000 {\tt int } & value & New value to set \\ \hline
2002 \end{tabular}
2004 \vspace{0.3cm}
2006 \noindent {\bf Return Type:}
2007 {\tt
2008 void
2013 \vspace{0.3cm}
2014 \vspace{0.3cm}
2015 \vspace{0.3cm}
2016 \subsubsection{RPC name:~get\_memory\_dynamic\_max}
2018 {\bf Overview:}
2019 Get the memory/dynamic\_max field of the given VM.
2021 \noindent {\bf Signature:}
2022 \begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
2025 \noindent{\bf Arguments:}
2028 \vspace{0.3cm}
2029 \begin{tabular}{|c|c|p{7cm}|}
2030 \hline
2031 {\bf type} & {\bf name} & {\bf description} \\ \hline
2032 {\tt VM ref } & self & reference to the object \\ \hline
2034 \end{tabular}
2036 \vspace{0.3cm}
2038 \noindent {\bf Return Type:}
2039 {\tt
2040 int
2044 value of the field
2045 \vspace{0.3cm}
2046 \vspace{0.3cm}
2047 \vspace{0.3cm}
2048 \subsubsection{RPC name:~set\_memory\_dynamic\_max}
2050 {\bf Overview:}
2051 Set the memory/dynamic\_max field of the given VM.
2053 \noindent {\bf Signature:}
2054 \begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2057 \noindent{\bf Arguments:}
2060 \vspace{0.3cm}
2061 \begin{tabular}{|c|c|p{7cm}|}
2062 \hline
2063 {\bf type} & {\bf name} & {\bf description} \\ \hline
2064 {\tt VM ref } & self & reference to the object \\ \hline
2066 {\tt int } & value & New value to set \\ \hline
2068 \end{tabular}
2070 \vspace{0.3cm}
2072 \noindent {\bf Return Type:}
2073 {\tt
2074 void
2079 \vspace{0.3cm}
2080 \vspace{0.3cm}
2081 \vspace{0.3cm}
2082 \subsubsection{RPC name:~get\_memory\_dynamic\_min}
2084 {\bf Overview:}
2085 Get the memory/dynamic\_min field of the given VM.
2087 \noindent {\bf Signature:}
2088 \begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2091 \noindent{\bf Arguments:}
2094 \vspace{0.3cm}
2095 \begin{tabular}{|c|c|p{7cm}|}
2096 \hline
2097 {\bf type} & {\bf name} & {\bf description} \\ \hline
2098 {\tt VM ref } & self & reference to the object \\ \hline
2100 \end{tabular}
2102 \vspace{0.3cm}
2104 \noindent {\bf Return Type:}
2105 {\tt
2106 int
2110 value of the field
2111 \vspace{0.3cm}
2112 \vspace{0.3cm}
2113 \vspace{0.3cm}
2114 \subsubsection{RPC name:~set\_memory\_dynamic\_min}
2116 {\bf Overview:}
2117 Set the memory/dynamic\_min field of the given VM.
2119 \noindent {\bf Signature:}
2120 \begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2123 \noindent{\bf Arguments:}
2126 \vspace{0.3cm}
2127 \begin{tabular}{|c|c|p{7cm}|}
2128 \hline
2129 {\bf type} & {\bf name} & {\bf description} \\ \hline
2130 {\tt VM ref } & self & reference to the object \\ \hline
2132 {\tt int } & value & New value to set \\ \hline
2134 \end{tabular}
2136 \vspace{0.3cm}
2138 \noindent {\bf Return Type:}
2139 {\tt
2140 void
2145 \vspace{0.3cm}
2146 \vspace{0.3cm}
2147 \vspace{0.3cm}
2148 \subsubsection{RPC name:~get\_memory\_static\_min}
2150 {\bf Overview:}
2151 Get the memory/static\_min field of the given VM.
2153 \noindent {\bf Signature:}
2154 \begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2157 \noindent{\bf Arguments:}
2160 \vspace{0.3cm}
2161 \begin{tabular}{|c|c|p{7cm}|}
2162 \hline
2163 {\bf type} & {\bf name} & {\bf description} \\ \hline
2164 {\tt VM ref } & self & reference to the object \\ \hline
2166 \end{tabular}
2168 \vspace{0.3cm}
2170 \noindent {\bf Return Type:}
2171 {\tt
2172 int
2176 value of the field
2177 \vspace{0.3cm}
2178 \vspace{0.3cm}
2179 \vspace{0.3cm}
2180 \subsubsection{RPC name:~set\_memory\_static\_min}
2182 {\bf Overview:}
2183 Set the memory/static\_min field of the given VM.
2185 \noindent {\bf Signature:}
2186 \begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
2189 \noindent{\bf Arguments:}
2192 \vspace{0.3cm}
2193 \begin{tabular}{|c|c|p{7cm}|}
2194 \hline
2195 {\bf type} & {\bf name} & {\bf description} \\ \hline
2196 {\tt VM ref } & self & reference to the object \\ \hline
2198 {\tt int } & value & New value to set \\ \hline
2200 \end{tabular}
2202 \vspace{0.3cm}
2204 \noindent {\bf Return Type:}
2205 {\tt
2206 void
2211 \vspace{0.3cm}
2212 \vspace{0.3cm}
2213 \vspace{0.3cm}
2214 \subsubsection{RPC name:~get\_VCPUs\_policy}
2216 {\bf Overview:}
2217 Get the VCPUs/policy field of the given VM.
2219 \noindent {\bf Signature:}
2220 \begin{verbatim} string get_VCPUs_policy (session_id s, VM ref self)\end{verbatim}
2223 \noindent{\bf Arguments:}
2226 \vspace{0.3cm}
2227 \begin{tabular}{|c|c|p{7cm}|}
2228 \hline
2229 {\bf type} & {\bf name} & {\bf description} \\ \hline
2230 {\tt VM ref } & self & reference to the object \\ \hline
2232 \end{tabular}
2234 \vspace{0.3cm}
2236 \noindent {\bf Return Type:}
2237 {\tt
2238 string
2242 value of the field
2243 \vspace{0.3cm}
2244 \vspace{0.3cm}
2245 \vspace{0.3cm}
2246 \subsubsection{RPC name:~set\_VCPUs\_policy}
2248 {\bf Overview:}
2249 Set the VCPUs/policy field of the given VM.
2251 \noindent {\bf Signature:}
2252 \begin{verbatim} void set_VCPUs_policy (session_id s, VM ref self, string value)\end{verbatim}
2255 \noindent{\bf Arguments:}
2258 \vspace{0.3cm}
2259 \begin{tabular}{|c|c|p{7cm}|}
2260 \hline
2261 {\bf type} & {\bf name} & {\bf description} \\ \hline
2262 {\tt VM ref } & self & reference to the object \\ \hline
2264 {\tt string } & value & New value to set \\ \hline
2266 \end{tabular}
2268 \vspace{0.3cm}
2270 \noindent {\bf Return Type:}
2271 {\tt
2272 void
2277 \vspace{0.3cm}
2278 \vspace{0.3cm}
2279 \vspace{0.3cm}
2280 \subsubsection{RPC name:~get\_VCPUs\_params}
2282 {\bf Overview:}
2283 Get the VCPUs/params field of the given VM.
2285 \noindent {\bf Signature:}
2286 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2289 \noindent{\bf Arguments:}
2292 \vspace{0.3cm}
2293 \begin{tabular}{|c|c|p{7cm}|}
2294 \hline
2295 {\bf type} & {\bf name} & {\bf description} \\ \hline
2296 {\tt VM ref } & self & reference to the object \\ \hline
2298 \end{tabular}
2300 \vspace{0.3cm}
2302 \noindent {\bf Return Type:}
2303 {\tt
2304 (string $\rightarrow$ string) Map
2308 value of the field
2309 \vspace{0.3cm}
2310 \vspace{0.3cm}
2311 \vspace{0.3cm}
2312 \subsubsection{RPC name:~set\_VCPUs\_params}
2314 {\bf Overview:}
2315 Set the VCPUs/params field of the given VM.
2317 \noindent {\bf Signature:}
2318 \begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
2321 \noindent{\bf Arguments:}
2324 \vspace{0.3cm}
2325 \begin{tabular}{|c|c|p{7cm}|}
2326 \hline
2327 {\bf type} & {\bf name} & {\bf description} \\ \hline
2328 {\tt VM ref } & self & reference to the object \\ \hline
2330 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
2332 \end{tabular}
2334 \vspace{0.3cm}
2336 \noindent {\bf Return Type:}
2337 {\tt
2338 void
2343 \vspace{0.3cm}
2344 \vspace{0.3cm}
2345 \vspace{0.3cm}
2346 \subsubsection{RPC name:~add\_to\_VCPUs\_params}
2348 {\bf Overview:}
2349 Add the given key-value pair to the VCPUs/params field of the given VM.
2351 \noindent {\bf Signature:}
2352 \begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
2355 \noindent{\bf Arguments:}
2358 \vspace{0.3cm}
2359 \begin{tabular}{|c|c|p{7cm}|}
2360 \hline
2361 {\bf type} & {\bf name} & {\bf description} \\ \hline
2362 {\tt VM ref } & self & reference to the object \\ \hline
2364 {\tt string } & key & Key to add \\ \hline
2366 {\tt string } & value & Value to add \\ \hline
2368 \end{tabular}
2370 \vspace{0.3cm}
2372 \noindent {\bf Return Type:}
2373 {\tt
2374 void
2379 \vspace{0.3cm}
2380 \vspace{0.3cm}
2381 \vspace{0.3cm}
2382 \subsubsection{RPC name:~remove\_from\_VCPUs\_params}
2384 {\bf Overview:}
2385 Remove the given key and its corresponding value from the VCPUs/params
2386 field of the given VM. If the key is not in that Map, then do nothing.
2388 \noindent {\bf Signature:}
2389 \begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
2392 \noindent{\bf Arguments:}
2395 \vspace{0.3cm}
2396 \begin{tabular}{|c|c|p{7cm}|}
2397 \hline
2398 {\bf type} & {\bf name} & {\bf description} \\ \hline
2399 {\tt VM ref } & self & reference to the object \\ \hline
2401 {\tt string } & key & Key to remove \\ \hline
2403 \end{tabular}
2405 \vspace{0.3cm}
2407 \noindent {\bf Return Type:}
2408 {\tt
2409 void
2414 \vspace{0.3cm}
2415 \vspace{0.3cm}
2416 \vspace{0.3cm}
2417 \subsubsection{RPC name:~get\_VCPUs\_max}
2419 {\bf Overview:}
2420 Get the VCPUs/max field of the given VM.
2422 \noindent {\bf Signature:}
2423 \begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
2426 \noindent{\bf Arguments:}
2429 \vspace{0.3cm}
2430 \begin{tabular}{|c|c|p{7cm}|}
2431 \hline
2432 {\bf type} & {\bf name} & {\bf description} \\ \hline
2433 {\tt VM ref } & self & reference to the object \\ \hline
2435 \end{tabular}
2437 \vspace{0.3cm}
2439 \noindent {\bf Return Type:}
2440 {\tt
2441 int
2445 value of the field
2446 \vspace{0.3cm}
2447 \vspace{0.3cm}
2448 \vspace{0.3cm}
2449 \subsubsection{RPC name:~set\_VCPUs\_max}
2451 {\bf Overview:}
2452 Set the VCPUs/max field of the given VM.
2454 \noindent {\bf Signature:}
2455 \begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
2458 \noindent{\bf Arguments:}
2461 \vspace{0.3cm}
2462 \begin{tabular}{|c|c|p{7cm}|}
2463 \hline
2464 {\bf type} & {\bf name} & {\bf description} \\ \hline
2465 {\tt VM ref } & self & reference to the object \\ \hline
2467 {\tt int } & value & New value to set \\ \hline
2469 \end{tabular}
2471 \vspace{0.3cm}
2473 \noindent {\bf Return Type:}
2474 {\tt
2475 void
2480 \vspace{0.3cm}
2481 \vspace{0.3cm}
2482 \vspace{0.3cm}
2483 \subsubsection{RPC name:~get\_VCPUs\_at\_startup}
2485 {\bf Overview:}
2486 Get the VCPUs/at\_startup field of the given VM.
2488 \noindent {\bf Signature:}
2489 \begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
2492 \noindent{\bf Arguments:}
2495 \vspace{0.3cm}
2496 \begin{tabular}{|c|c|p{7cm}|}
2497 \hline
2498 {\bf type} & {\bf name} & {\bf description} \\ \hline
2499 {\tt VM ref } & self & reference to the object \\ \hline
2501 \end{tabular}
2503 \vspace{0.3cm}
2505 \noindent {\bf Return Type:}
2506 {\tt
2507 int
2511 value of the field
2512 \vspace{0.3cm}
2513 \vspace{0.3cm}
2514 \vspace{0.3cm}
2515 \subsubsection{RPC name:~set\_VCPUs\_at\_startup}
2517 {\bf Overview:}
2518 Set the VCPUs/at\_startup field of the given VM.
2520 \noindent {\bf Signature:}
2521 \begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
2524 \noindent{\bf Arguments:}
2527 \vspace{0.3cm}
2528 \begin{tabular}{|c|c|p{7cm}|}
2529 \hline
2530 {\bf type} & {\bf name} & {\bf description} \\ \hline
2531 {\tt VM ref } & self & reference to the object \\ \hline
2533 {\tt int } & value & New value to set \\ \hline
2535 \end{tabular}
2537 \vspace{0.3cm}
2539 \noindent {\bf Return Type:}
2540 {\tt
2541 void
2546 \vspace{0.3cm}
2547 \vspace{0.3cm}
2548 \vspace{0.3cm}
2549 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
2551 {\bf Overview:}
2552 Get the actions/after\_shutdown field of the given VM.
2554 \noindent {\bf Signature:}
2555 \begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
2558 \noindent{\bf Arguments:}
2561 \vspace{0.3cm}
2562 \begin{tabular}{|c|c|p{7cm}|}
2563 \hline
2564 {\bf type} & {\bf name} & {\bf description} \\ \hline
2565 {\tt VM ref } & self & reference to the object \\ \hline
2567 \end{tabular}
2569 \vspace{0.3cm}
2571 \noindent {\bf Return Type:}
2572 {\tt
2573 on\_normal\_exit
2577 value of the field
2578 \vspace{0.3cm}
2579 \vspace{0.3cm}
2580 \vspace{0.3cm}
2581 \subsubsection{RPC name:~set\_actions\_after\_shutdown}
2583 {\bf Overview:}
2584 Set the actions/after\_shutdown field of the given VM.
2586 \noindent {\bf Signature:}
2587 \begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2590 \noindent{\bf Arguments:}
2593 \vspace{0.3cm}
2594 \begin{tabular}{|c|c|p{7cm}|}
2595 \hline
2596 {\bf type} & {\bf name} & {\bf description} \\ \hline
2597 {\tt VM ref } & self & reference to the object \\ \hline
2599 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2601 \end{tabular}
2603 \vspace{0.3cm}
2605 \noindent {\bf Return Type:}
2606 {\tt
2607 void
2612 \vspace{0.3cm}
2613 \vspace{0.3cm}
2614 \vspace{0.3cm}
2615 \subsubsection{RPC name:~get\_actions\_after\_reboot}
2617 {\bf Overview:}
2618 Get the actions/after\_reboot field of the given VM.
2620 \noindent {\bf Signature:}
2621 \begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
2624 \noindent{\bf Arguments:}
2627 \vspace{0.3cm}
2628 \begin{tabular}{|c|c|p{7cm}|}
2629 \hline
2630 {\bf type} & {\bf name} & {\bf description} \\ \hline
2631 {\tt VM ref } & self & reference to the object \\ \hline
2633 \end{tabular}
2635 \vspace{0.3cm}
2637 \noindent {\bf Return Type:}
2638 {\tt
2639 on\_normal\_exit
2643 value of the field
2644 \vspace{0.3cm}
2645 \vspace{0.3cm}
2646 \vspace{0.3cm}
2647 \subsubsection{RPC name:~set\_actions\_after\_reboot}
2649 {\bf Overview:}
2650 Set the actions/after\_reboot field of the given VM.
2652 \noindent {\bf Signature:}
2653 \begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2656 \noindent{\bf Arguments:}
2659 \vspace{0.3cm}
2660 \begin{tabular}{|c|c|p{7cm}|}
2661 \hline
2662 {\bf type} & {\bf name} & {\bf description} \\ \hline
2663 {\tt VM ref } & self & reference to the object \\ \hline
2665 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2667 \end{tabular}
2669 \vspace{0.3cm}
2671 \noindent {\bf Return Type:}
2672 {\tt
2673 void
2678 \vspace{0.3cm}
2679 \vspace{0.3cm}
2680 \vspace{0.3cm}
2681 \subsubsection{RPC name:~get\_actions\_after\_crash}
2683 {\bf Overview:}
2684 Get the actions/after\_crash field of the given VM.
2686 \noindent {\bf Signature:}
2687 \begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
2690 \noindent{\bf Arguments:}
2693 \vspace{0.3cm}
2694 \begin{tabular}{|c|c|p{7cm}|}
2695 \hline
2696 {\bf type} & {\bf name} & {\bf description} \\ \hline
2697 {\tt VM ref } & self & reference to the object \\ \hline
2699 \end{tabular}
2701 \vspace{0.3cm}
2703 \noindent {\bf Return Type:}
2704 {\tt
2705 on\_crash\_behaviour
2709 value of the field
2710 \vspace{0.3cm}
2711 \vspace{0.3cm}
2712 \vspace{0.3cm}
2713 \subsubsection{RPC name:~set\_actions\_after\_crash}
2715 {\bf Overview:}
2716 Set the actions/after\_crash field of the given VM.
2718 \noindent {\bf Signature:}
2719 \begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
2722 \noindent{\bf Arguments:}
2725 \vspace{0.3cm}
2726 \begin{tabular}{|c|c|p{7cm}|}
2727 \hline
2728 {\bf type} & {\bf name} & {\bf description} \\ \hline
2729 {\tt VM ref } & self & reference to the object \\ \hline
2731 {\tt on\_crash\_behaviour } & value & New value to set \\ \hline
2733 \end{tabular}
2735 \vspace{0.3cm}
2737 \noindent {\bf Return Type:}
2738 {\tt
2739 void
2744 \vspace{0.3cm}
2745 \vspace{0.3cm}
2746 \vspace{0.3cm}
2747 \subsubsection{RPC name:~get\_consoles}
2749 {\bf Overview:}
2750 Get the consoles field of the given VM.
2752 \noindent {\bf Signature:}
2753 \begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
2756 \noindent{\bf Arguments:}
2759 \vspace{0.3cm}
2760 \begin{tabular}{|c|c|p{7cm}|}
2761 \hline
2762 {\bf type} & {\bf name} & {\bf description} \\ \hline
2763 {\tt VM ref } & self & reference to the object \\ \hline
2765 \end{tabular}
2767 \vspace{0.3cm}
2769 \noindent {\bf Return Type:}
2770 {\tt
2771 (console ref) Set
2775 value of the field
2776 \vspace{0.3cm}
2777 \vspace{0.3cm}
2778 \vspace{0.3cm}
2779 \subsubsection{RPC name:~get\_VIFs}
2781 {\bf Overview:}
2782 Get the VIFs field of the given VM.
2784 \noindent {\bf Signature:}
2785 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
2788 \noindent{\bf Arguments:}
2791 \vspace{0.3cm}
2792 \begin{tabular}{|c|c|p{7cm}|}
2793 \hline
2794 {\bf type} & {\bf name} & {\bf description} \\ \hline
2795 {\tt VM ref } & self & reference to the object \\ \hline
2797 \end{tabular}
2799 \vspace{0.3cm}
2801 \noindent {\bf Return Type:}
2802 {\tt
2803 (VIF ref) Set
2807 value of the field
2808 \vspace{0.3cm}
2809 \vspace{0.3cm}
2810 \vspace{0.3cm}
2811 \subsubsection{RPC name:~get\_VBDs}
2813 {\bf Overview:}
2814 Get the VBDs field of the given VM.
2816 \noindent {\bf Signature:}
2817 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
2820 \noindent{\bf Arguments:}
2823 \vspace{0.3cm}
2824 \begin{tabular}{|c|c|p{7cm}|}
2825 \hline
2826 {\bf type} & {\bf name} & {\bf description} \\ \hline
2827 {\tt VM ref } & self & reference to the object \\ \hline
2829 \end{tabular}
2831 \vspace{0.3cm}
2833 \noindent {\bf Return Type:}
2834 {\tt
2835 (VBD ref) Set
2839 value of the field
2840 \vspace{0.3cm}
2841 \vspace{0.3cm}
2842 \vspace{0.3cm}
2843 \subsubsection{RPC name:~get\_crash\_dumps}
2845 {\bf Overview:}
2846 Get the crash\_dumps field of the given VM.
2848 \noindent {\bf Signature:}
2849 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
2852 \noindent{\bf Arguments:}
2855 \vspace{0.3cm}
2856 \begin{tabular}{|c|c|p{7cm}|}
2857 \hline
2858 {\bf type} & {\bf name} & {\bf description} \\ \hline
2859 {\tt VM ref } & self & reference to the object \\ \hline
2861 \end{tabular}
2863 \vspace{0.3cm}
2865 \noindent {\bf Return Type:}
2866 {\tt
2867 (crashdump ref) Set
2871 value of the field
2872 \vspace{0.3cm}
2873 \vspace{0.3cm}
2874 \vspace{0.3cm}
2875 \subsubsection{RPC name:~get\_VTPMs}
2877 {\bf Overview:}
2878 Get the VTPMs field of the given VM.
2880 \noindent {\bf Signature:}
2881 \begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
2884 \noindent{\bf Arguments:}
2887 \vspace{0.3cm}
2888 \begin{tabular}{|c|c|p{7cm}|}
2889 \hline
2890 {\bf type} & {\bf name} & {\bf description} \\ \hline
2891 {\tt VM ref } & self & reference to the object \\ \hline
2893 \end{tabular}
2895 \vspace{0.3cm}
2897 \noindent {\bf Return Type:}
2898 {\tt
2899 (VTPM ref) Set
2903 value of the field
2904 \vspace{0.3cm}
2905 \vspace{0.3cm}
2906 \vspace{0.3cm}
2907 \subsubsection{RPC name:~get\_PV\_bootloader}
2909 {\bf Overview:}
2910 Get the PV/bootloader field of the given VM.
2912 \noindent {\bf Signature:}
2913 \begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
2916 \noindent{\bf Arguments:}
2919 \vspace{0.3cm}
2920 \begin{tabular}{|c|c|p{7cm}|}
2921 \hline
2922 {\bf type} & {\bf name} & {\bf description} \\ \hline
2923 {\tt VM ref } & self & reference to the object \\ \hline
2925 \end{tabular}
2927 \vspace{0.3cm}
2929 \noindent {\bf Return Type:}
2930 {\tt
2931 string
2935 value of the field
2936 \vspace{0.3cm}
2937 \vspace{0.3cm}
2938 \vspace{0.3cm}
2939 \subsubsection{RPC name:~set\_PV\_bootloader}
2941 {\bf Overview:}
2942 Set the PV/bootloader field of the given VM.
2944 \noindent {\bf Signature:}
2945 \begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
2948 \noindent{\bf Arguments:}
2951 \vspace{0.3cm}
2952 \begin{tabular}{|c|c|p{7cm}|}
2953 \hline
2954 {\bf type} & {\bf name} & {\bf description} \\ \hline
2955 {\tt VM ref } & self & reference to the object \\ \hline
2957 {\tt string } & value & New value to set \\ \hline
2959 \end{tabular}
2961 \vspace{0.3cm}
2963 \noindent {\bf Return Type:}
2964 {\tt
2965 void
2970 \vspace{0.3cm}
2971 \vspace{0.3cm}
2972 \vspace{0.3cm}
2973 \subsubsection{RPC name:~get\_PV\_kernel}
2975 {\bf Overview:}
2976 Get the PV/kernel field of the given VM.
2978 \noindent {\bf Signature:}
2979 \begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
2982 \noindent{\bf Arguments:}
2985 \vspace{0.3cm}
2986 \begin{tabular}{|c|c|p{7cm}|}
2987 \hline
2988 {\bf type} & {\bf name} & {\bf description} \\ \hline
2989 {\tt VM ref } & self & reference to the object \\ \hline
2991 \end{tabular}
2993 \vspace{0.3cm}
2995 \noindent {\bf Return Type:}
2996 {\tt
2997 string
3001 value of the field
3002 \vspace{0.3cm}
3003 \vspace{0.3cm}
3004 \vspace{0.3cm}
3005 \subsubsection{RPC name:~set\_PV\_kernel}
3007 {\bf Overview:}
3008 Set the PV/kernel field of the given VM.
3010 \noindent {\bf Signature:}
3011 \begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3014 \noindent{\bf Arguments:}
3017 \vspace{0.3cm}
3018 \begin{tabular}{|c|c|p{7cm}|}
3019 \hline
3020 {\bf type} & {\bf name} & {\bf description} \\ \hline
3021 {\tt VM ref } & self & reference to the object \\ \hline
3023 {\tt string } & value & New value to set \\ \hline
3025 \end{tabular}
3027 \vspace{0.3cm}
3029 \noindent {\bf Return Type:}
3030 {\tt
3031 void
3036 \vspace{0.3cm}
3037 \vspace{0.3cm}
3038 \vspace{0.3cm}
3039 \subsubsection{RPC name:~get\_PV\_ramdisk}
3041 {\bf Overview:}
3042 Get the PV/ramdisk field of the given VM.
3044 \noindent {\bf Signature:}
3045 \begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3048 \noindent{\bf Arguments:}
3051 \vspace{0.3cm}
3052 \begin{tabular}{|c|c|p{7cm}|}
3053 \hline
3054 {\bf type} & {\bf name} & {\bf description} \\ \hline
3055 {\tt VM ref } & self & reference to the object \\ \hline
3057 \end{tabular}
3059 \vspace{0.3cm}
3061 \noindent {\bf Return Type:}
3062 {\tt
3063 string
3067 value of the field
3068 \vspace{0.3cm}
3069 \vspace{0.3cm}
3070 \vspace{0.3cm}
3071 \subsubsection{RPC name:~set\_PV\_ramdisk}
3073 {\bf Overview:}
3074 Set the PV/ramdisk field of the given VM.
3076 \noindent {\bf Signature:}
3077 \begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3080 \noindent{\bf Arguments:}
3083 \vspace{0.3cm}
3084 \begin{tabular}{|c|c|p{7cm}|}
3085 \hline
3086 {\bf type} & {\bf name} & {\bf description} \\ \hline
3087 {\tt VM ref } & self & reference to the object \\ \hline
3089 {\tt string } & value & New value to set \\ \hline
3091 \end{tabular}
3093 \vspace{0.3cm}
3095 \noindent {\bf Return Type:}
3096 {\tt
3097 void
3102 \vspace{0.3cm}
3103 \vspace{0.3cm}
3104 \vspace{0.3cm}
3105 \subsubsection{RPC name:~get\_PV\_args}
3107 {\bf Overview:}
3108 Get the PV/args field of the given VM.
3110 \noindent {\bf Signature:}
3111 \begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3114 \noindent{\bf Arguments:}
3117 \vspace{0.3cm}
3118 \begin{tabular}{|c|c|p{7cm}|}
3119 \hline
3120 {\bf type} & {\bf name} & {\bf description} \\ \hline
3121 {\tt VM ref } & self & reference to the object \\ \hline
3123 \end{tabular}
3125 \vspace{0.3cm}
3127 \noindent {\bf Return Type:}
3128 {\tt
3129 string
3133 value of the field
3134 \vspace{0.3cm}
3135 \vspace{0.3cm}
3136 \vspace{0.3cm}
3137 \subsubsection{RPC name:~set\_PV\_args}
3139 {\bf Overview:}
3140 Set the PV/args field of the given VM.
3142 \noindent {\bf Signature:}
3143 \begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3146 \noindent{\bf Arguments:}
3149 \vspace{0.3cm}
3150 \begin{tabular}{|c|c|p{7cm}|}
3151 \hline
3152 {\bf type} & {\bf name} & {\bf description} \\ \hline
3153 {\tt VM ref } & self & reference to the object \\ \hline
3155 {\tt string } & value & New value to set \\ \hline
3157 \end{tabular}
3159 \vspace{0.3cm}
3161 \noindent {\bf Return Type:}
3162 {\tt
3163 void
3168 \vspace{0.3cm}
3169 \vspace{0.3cm}
3170 \vspace{0.3cm}
3171 \subsubsection{RPC name:~get\_PV\_bootloader\_args}
3173 {\bf Overview:}
3174 Get the PV/bootloader\_args field of the given VM.
3176 \noindent {\bf Signature:}
3177 \begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3180 \noindent{\bf Arguments:}
3183 \vspace{0.3cm}
3184 \begin{tabular}{|c|c|p{7cm}|}
3185 \hline
3186 {\bf type} & {\bf name} & {\bf description} \\ \hline
3187 {\tt VM ref } & self & reference to the object \\ \hline
3189 \end{tabular}
3191 \vspace{0.3cm}
3193 \noindent {\bf Return Type:}
3194 {\tt
3195 string
3199 value of the field
3200 \vspace{0.3cm}
3201 \vspace{0.3cm}
3202 \vspace{0.3cm}
3203 \subsubsection{RPC name:~set\_PV\_bootloader\_args}
3205 {\bf Overview:}
3206 Set the PV/bootloader\_args field of the given VM.
3208 \noindent {\bf Signature:}
3209 \begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3212 \noindent{\bf Arguments:}
3215 \vspace{0.3cm}
3216 \begin{tabular}{|c|c|p{7cm}|}
3217 \hline
3218 {\bf type} & {\bf name} & {\bf description} \\ \hline
3219 {\tt VM ref } & self & reference to the object \\ \hline
3221 {\tt string } & value & New value to set \\ \hline
3223 \end{tabular}
3225 \vspace{0.3cm}
3227 \noindent {\bf Return Type:}
3228 {\tt
3229 void
3234 \vspace{0.3cm}
3235 \vspace{0.3cm}
3236 \vspace{0.3cm}
3237 \subsubsection{RPC name:~get\_HVM\_boot\_policy}
3239 {\bf Overview:}
3240 Get the HVM/boot\_policy field of the given VM.
3242 \noindent {\bf Signature:}
3243 \begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
3246 \noindent{\bf Arguments:}
3249 \vspace{0.3cm}
3250 \begin{tabular}{|c|c|p{7cm}|}
3251 \hline
3252 {\bf type} & {\bf name} & {\bf description} \\ \hline
3253 {\tt VM ref } & self & reference to the object \\ \hline
3255 \end{tabular}
3257 \vspace{0.3cm}
3259 \noindent {\bf Return Type:}
3260 {\tt
3261 string
3265 value of the field
3266 \vspace{0.3cm}
3267 \vspace{0.3cm}
3268 \vspace{0.3cm}
3269 \subsubsection{RPC name:~set\_HVM\_boot\_policy}
3271 {\bf Overview:}
3272 Set the HVM/boot\_policy field of the given VM.
3274 \noindent {\bf Signature:}
3275 \begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
3278 \noindent{\bf Arguments:}
3281 \vspace{0.3cm}
3282 \begin{tabular}{|c|c|p{7cm}|}
3283 \hline
3284 {\bf type} & {\bf name} & {\bf description} \\ \hline
3285 {\tt VM ref } & self & reference to the object \\ \hline
3287 {\tt string } & value & New value to set \\ \hline
3289 \end{tabular}
3291 \vspace{0.3cm}
3293 \noindent {\bf Return Type:}
3294 {\tt
3295 void
3300 \vspace{0.3cm}
3301 \vspace{0.3cm}
3302 \vspace{0.3cm}
3303 \subsubsection{RPC name:~get\_HVM\_boot\_params}
3305 {\bf Overview:}
3306 Get the HVM/boot\_params field of the given VM.
3308 \noindent {\bf Signature:}
3309 \begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
3312 \noindent{\bf Arguments:}
3315 \vspace{0.3cm}
3316 \begin{tabular}{|c|c|p{7cm}|}
3317 \hline
3318 {\bf type} & {\bf name} & {\bf description} \\ \hline
3319 {\tt VM ref } & self & reference to the object \\ \hline
3321 \end{tabular}
3323 \vspace{0.3cm}
3325 \noindent {\bf Return Type:}
3326 {\tt
3327 (string $\rightarrow$ string) Map
3331 value of the field
3332 \vspace{0.3cm}
3333 \vspace{0.3cm}
3334 \vspace{0.3cm}
3335 \subsubsection{RPC name:~set\_HVM\_boot\_params}
3337 {\bf Overview:}
3338 Set the HVM/boot\_params field of the given VM.
3340 \noindent {\bf Signature:}
3341 \begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3344 \noindent{\bf Arguments:}
3347 \vspace{0.3cm}
3348 \begin{tabular}{|c|c|p{7cm}|}
3349 \hline
3350 {\bf type} & {\bf name} & {\bf description} \\ \hline
3351 {\tt VM ref } & self & reference to the object \\ \hline
3353 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3355 \end{tabular}
3357 \vspace{0.3cm}
3359 \noindent {\bf Return Type:}
3360 {\tt
3361 void
3366 \vspace{0.3cm}
3367 \vspace{0.3cm}
3368 \vspace{0.3cm}
3369 \subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
3371 {\bf Overview:}
3372 Add the given key-value pair to the HVM/boot\_params field of the given VM.
3374 \noindent {\bf Signature:}
3375 \begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
3378 \noindent{\bf Arguments:}
3381 \vspace{0.3cm}
3382 \begin{tabular}{|c|c|p{7cm}|}
3383 \hline
3384 {\bf type} & {\bf name} & {\bf description} \\ \hline
3385 {\tt VM ref } & self & reference to the object \\ \hline
3387 {\tt string } & key & Key to add \\ \hline
3389 {\tt string } & value & Value to add \\ \hline
3391 \end{tabular}
3393 \vspace{0.3cm}
3395 \noindent {\bf Return Type:}
3396 {\tt
3397 void
3402 \vspace{0.3cm}
3403 \vspace{0.3cm}
3404 \vspace{0.3cm}
3405 \subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
3407 {\bf Overview:}
3408 Remove the given key and its corresponding value from the HVM/boot\_params
3409 field of the given VM. If the key is not in that Map, then do nothing.
3411 \noindent {\bf Signature:}
3412 \begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
3415 \noindent{\bf Arguments:}
3418 \vspace{0.3cm}
3419 \begin{tabular}{|c|c|p{7cm}|}
3420 \hline
3421 {\bf type} & {\bf name} & {\bf description} \\ \hline
3422 {\tt VM ref } & self & reference to the object \\ \hline
3424 {\tt string } & key & Key to remove \\ \hline
3426 \end{tabular}
3428 \vspace{0.3cm}
3430 \noindent {\bf Return Type:}
3431 {\tt
3432 void
3437 \vspace{0.3cm}
3438 \vspace{0.3cm}
3439 \vspace{0.3cm}
3440 \subsubsection{RPC name:~get\_platform\_std\_VGA}
3442 {\bf Overview:}
3443 Get the platform/std\_VGA field of the given VM.
3445 \noindent {\bf Signature:}
3446 \begin{verbatim} bool get_platform_std_VGA (session_id s, VM ref self)\end{verbatim}
3449 \noindent{\bf Arguments:}
3452 \vspace{0.3cm}
3453 \begin{tabular}{|c|c|p{7cm}|}
3454 \hline
3455 {\bf type} & {\bf name} & {\bf description} \\ \hline
3456 {\tt VM ref } & self & reference to the object \\ \hline
3458 \end{tabular}
3460 \vspace{0.3cm}
3462 \noindent {\bf Return Type:}
3463 {\tt
3464 bool
3468 value of the field
3469 \vspace{0.3cm}
3470 \vspace{0.3cm}
3471 \vspace{0.3cm}
3472 \subsubsection{RPC name:~set\_platform\_std\_VGA}
3474 {\bf Overview:}
3475 Set the platform/std\_VGA field of the given VM.
3477 \noindent {\bf Signature:}
3478 \begin{verbatim} void set_platform_std_VGA (session_id s, VM ref self, bool value)\end{verbatim}
3481 \noindent{\bf Arguments:}
3484 \vspace{0.3cm}
3485 \begin{tabular}{|c|c|p{7cm}|}
3486 \hline
3487 {\bf type} & {\bf name} & {\bf description} \\ \hline
3488 {\tt VM ref } & self & reference to the object \\ \hline
3490 {\tt bool } & value & New value to set \\ \hline
3492 \end{tabular}
3494 \vspace{0.3cm}
3496 \noindent {\bf Return Type:}
3497 {\tt
3498 void
3503 \vspace{0.3cm}
3504 \vspace{0.3cm}
3505 \vspace{0.3cm}
3506 \subsubsection{RPC name:~get\_platform\_serial}
3508 {\bf Overview:}
3509 Get the platform/serial field of the given VM.
3511 \noindent {\bf Signature:}
3512 \begin{verbatim} string get_platform_serial (session_id s, VM ref self)\end{verbatim}
3515 \noindent{\bf Arguments:}
3518 \vspace{0.3cm}
3519 \begin{tabular}{|c|c|p{7cm}|}
3520 \hline
3521 {\bf type} & {\bf name} & {\bf description} \\ \hline
3522 {\tt VM ref } & self & reference to the object \\ \hline
3524 \end{tabular}
3526 \vspace{0.3cm}
3528 \noindent {\bf Return Type:}
3529 {\tt
3530 string
3534 value of the field
3535 \vspace{0.3cm}
3536 \vspace{0.3cm}
3537 \vspace{0.3cm}
3538 \subsubsection{RPC name:~set\_platform\_serial}
3540 {\bf Overview:}
3541 Set the platform/serial field of the given VM.
3543 \noindent {\bf Signature:}
3544 \begin{verbatim} void set_platform_serial (session_id s, VM ref self, string value)\end{verbatim}
3547 \noindent{\bf Arguments:}
3550 \vspace{0.3cm}
3551 \begin{tabular}{|c|c|p{7cm}|}
3552 \hline
3553 {\bf type} & {\bf name} & {\bf description} \\ \hline
3554 {\tt VM ref } & self & reference to the object \\ \hline
3556 {\tt string } & value & New value to set \\ \hline
3558 \end{tabular}
3560 \vspace{0.3cm}
3562 \noindent {\bf Return Type:}
3563 {\tt
3564 void
3569 \vspace{0.3cm}
3570 \vspace{0.3cm}
3571 \vspace{0.3cm}
3572 \subsubsection{RPC name:~get\_platform\_localtime}
3574 {\bf Overview:}
3575 Get the platform/localtime field of the given VM.
3577 \noindent {\bf Signature:}
3578 \begin{verbatim} bool get_platform_localtime (session_id s, VM ref self)\end{verbatim}
3581 \noindent{\bf Arguments:}
3584 \vspace{0.3cm}
3585 \begin{tabular}{|c|c|p{7cm}|}
3586 \hline
3587 {\bf type} & {\bf name} & {\bf description} \\ \hline
3588 {\tt VM ref } & self & reference to the object \\ \hline
3590 \end{tabular}
3592 \vspace{0.3cm}
3594 \noindent {\bf Return Type:}
3595 {\tt
3596 bool
3600 value of the field
3601 \vspace{0.3cm}
3602 \vspace{0.3cm}
3603 \vspace{0.3cm}
3604 \subsubsection{RPC name:~set\_platform\_localtime}
3606 {\bf Overview:}
3607 Set the platform/localtime field of the given VM.
3609 \noindent {\bf Signature:}
3610 \begin{verbatim} void set_platform_localtime (session_id s, VM ref self, bool value)\end{verbatim}
3613 \noindent{\bf Arguments:}
3616 \vspace{0.3cm}
3617 \begin{tabular}{|c|c|p{7cm}|}
3618 \hline
3619 {\bf type} & {\bf name} & {\bf description} \\ \hline
3620 {\tt VM ref } & self & reference to the object \\ \hline
3622 {\tt bool } & value & New value to set \\ \hline
3624 \end{tabular}
3626 \vspace{0.3cm}
3628 \noindent {\bf Return Type:}
3629 {\tt
3630 void
3635 \vspace{0.3cm}
3636 \vspace{0.3cm}
3637 \vspace{0.3cm}
3638 \subsubsection{RPC name:~get\_platform\_clock\_offset}
3640 {\bf Overview:}
3641 Get the platform/clock\_offset field of the given VM.
3643 \noindent {\bf Signature:}
3644 \begin{verbatim} bool get_platform_clock_offset (session_id s, VM ref self)\end{verbatim}
3647 \noindent{\bf Arguments:}
3650 \vspace{0.3cm}
3651 \begin{tabular}{|c|c|p{7cm}|}
3652 \hline
3653 {\bf type} & {\bf name} & {\bf description} \\ \hline
3654 {\tt VM ref } & self & reference to the object \\ \hline
3656 \end{tabular}
3658 \vspace{0.3cm}
3660 \noindent {\bf Return Type:}
3661 {\tt
3662 bool
3666 value of the field
3667 \vspace{0.3cm}
3668 \vspace{0.3cm}
3669 \vspace{0.3cm}
3670 \subsubsection{RPC name:~set\_platform\_clock\_offset}
3672 {\bf Overview:}
3673 Set the platform/clock\_offset field of the given VM.
3675 \noindent {\bf Signature:}
3676 \begin{verbatim} void set_platform_clock_offset (session_id s, VM ref self, bool value)\end{verbatim}
3679 \noindent{\bf Arguments:}
3682 \vspace{0.3cm}
3683 \begin{tabular}{|c|c|p{7cm}|}
3684 \hline
3685 {\bf type} & {\bf name} & {\bf description} \\ \hline
3686 {\tt VM ref } & self & reference to the object \\ \hline
3688 {\tt bool } & value & New value to set \\ \hline
3690 \end{tabular}
3692 \vspace{0.3cm}
3694 \noindent {\bf Return Type:}
3695 {\tt
3696 void
3701 \vspace{0.3cm}
3702 \vspace{0.3cm}
3703 \vspace{0.3cm}
3704 \subsubsection{RPC name:~get\_platform\_enable\_audio}
3706 {\bf Overview:}
3707 Get the platform/enable\_audio field of the given VM.
3709 \noindent {\bf Signature:}
3710 \begin{verbatim} bool get_platform_enable_audio (session_id s, VM ref self)\end{verbatim}
3713 \noindent{\bf Arguments:}
3716 \vspace{0.3cm}
3717 \begin{tabular}{|c|c|p{7cm}|}
3718 \hline
3719 {\bf type} & {\bf name} & {\bf description} \\ \hline
3720 {\tt VM ref } & self & reference to the object \\ \hline
3722 \end{tabular}
3724 \vspace{0.3cm}
3726 \noindent {\bf Return Type:}
3727 {\tt
3728 bool
3732 value of the field
3733 \vspace{0.3cm}
3734 \vspace{0.3cm}
3735 \vspace{0.3cm}
3736 \subsubsection{RPC name:~set\_platform\_enable\_audio}
3738 {\bf Overview:}
3739 Set the platform/enable\_audio field of the given VM.
3741 \noindent {\bf Signature:}
3742 \begin{verbatim} void set_platform_enable_audio (session_id s, VM ref self, bool value)\end{verbatim}
3745 \noindent{\bf Arguments:}
3748 \vspace{0.3cm}
3749 \begin{tabular}{|c|c|p{7cm}|}
3750 \hline
3751 {\bf type} & {\bf name} & {\bf description} \\ \hline
3752 {\tt VM ref } & self & reference to the object \\ \hline
3754 {\tt bool } & value & New value to set \\ \hline
3756 \end{tabular}
3758 \vspace{0.3cm}
3760 \noindent {\bf Return Type:}
3761 {\tt
3762 void
3767 \vspace{0.3cm}
3768 \vspace{0.3cm}
3769 \vspace{0.3cm}
3770 \subsubsection{RPC name:~get\_PCI\_bus}
3772 {\bf Overview:}
3773 Get the PCI\_bus field of the given VM.
3775 \noindent {\bf Signature:}
3776 \begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
3779 \noindent{\bf Arguments:}
3782 \vspace{0.3cm}
3783 \begin{tabular}{|c|c|p{7cm}|}
3784 \hline
3785 {\bf type} & {\bf name} & {\bf description} \\ \hline
3786 {\tt VM ref } & self & reference to the object \\ \hline
3788 \end{tabular}
3790 \vspace{0.3cm}
3792 \noindent {\bf Return Type:}
3793 {\tt
3794 string
3798 value of the field
3799 \vspace{0.3cm}
3800 \vspace{0.3cm}
3801 \vspace{0.3cm}
3802 \subsubsection{RPC name:~get\_tools\_version}
3804 {\bf Overview:}
3805 Get the tools\_version field of the given VM.
3807 \noindent {\bf Signature:}
3808 \begin{verbatim} ((string -> string) Map) get_tools_version (session_id s, VM ref self)\end{verbatim}
3811 \noindent{\bf Arguments:}
3814 \vspace{0.3cm}
3815 \begin{tabular}{|c|c|p{7cm}|}
3816 \hline
3817 {\bf type} & {\bf name} & {\bf description} \\ \hline
3818 {\tt VM ref } & self & reference to the object \\ \hline
3820 \end{tabular}
3822 \vspace{0.3cm}
3824 \noindent {\bf Return Type:}
3825 {\tt
3826 (string $\rightarrow$ string) Map
3830 value of the field
3831 \vspace{0.3cm}
3832 \vspace{0.3cm}
3833 \vspace{0.3cm}
3834 \subsubsection{RPC name:~get\_other\_config}
3836 {\bf Overview:}
3837 Get the other\_config field of the given VM.
3839 \noindent {\bf Signature:}
3840 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
3843 \noindent{\bf Arguments:}
3846 \vspace{0.3cm}
3847 \begin{tabular}{|c|c|p{7cm}|}
3848 \hline
3849 {\bf type} & {\bf name} & {\bf description} \\ \hline
3850 {\tt VM ref } & self & reference to the object \\ \hline
3852 \end{tabular}
3854 \vspace{0.3cm}
3856 \noindent {\bf Return Type:}
3857 {\tt
3858 (string $\rightarrow$ string) Map
3862 value of the field
3863 \vspace{0.3cm}
3864 \vspace{0.3cm}
3865 \vspace{0.3cm}
3866 \subsubsection{RPC name:~set\_other\_config}
3868 {\bf Overview:}
3869 Set the other\_config field of the given VM.
3871 \noindent {\bf Signature:}
3872 \begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3875 \noindent{\bf Arguments:}
3878 \vspace{0.3cm}
3879 \begin{tabular}{|c|c|p{7cm}|}
3880 \hline
3881 {\bf type} & {\bf name} & {\bf description} \\ \hline
3882 {\tt VM ref } & self & reference to the object \\ \hline
3884 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3886 \end{tabular}
3888 \vspace{0.3cm}
3890 \noindent {\bf Return Type:}
3891 {\tt
3892 void
3897 \vspace{0.3cm}
3898 \vspace{0.3cm}
3899 \vspace{0.3cm}
3900 \subsubsection{RPC name:~add\_to\_other\_config}
3902 {\bf Overview:}
3903 Add the given key-value pair to the other\_config field of the given VM.
3905 \noindent {\bf Signature:}
3906 \begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
3909 \noindent{\bf Arguments:}
3912 \vspace{0.3cm}
3913 \begin{tabular}{|c|c|p{7cm}|}
3914 \hline
3915 {\bf type} & {\bf name} & {\bf description} \\ \hline
3916 {\tt VM ref } & self & reference to the object \\ \hline
3918 {\tt string } & key & Key to add \\ \hline
3920 {\tt string } & value & Value to add \\ \hline
3922 \end{tabular}
3924 \vspace{0.3cm}
3926 \noindent {\bf Return Type:}
3927 {\tt
3928 void
3933 \vspace{0.3cm}
3934 \vspace{0.3cm}
3935 \vspace{0.3cm}
3936 \subsubsection{RPC name:~remove\_from\_other\_config}
3938 {\bf Overview:}
3939 Remove the given key and its corresponding value from the other\_config
3940 field of the given VM. If the key is not in that Map, then do nothing.
3942 \noindent {\bf Signature:}
3943 \begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
3946 \noindent{\bf Arguments:}
3949 \vspace{0.3cm}
3950 \begin{tabular}{|c|c|p{7cm}|}
3951 \hline
3952 {\bf type} & {\bf name} & {\bf description} \\ \hline
3953 {\tt VM ref } & self & reference to the object \\ \hline
3955 {\tt string } & key & Key to remove \\ \hline
3957 \end{tabular}
3959 \vspace{0.3cm}
3961 \noindent {\bf Return Type:}
3962 {\tt
3963 void
3968 \vspace{0.3cm}
3969 \vspace{0.3cm}
3970 \vspace{0.3cm}
3971 \subsubsection{RPC name:~get\_is\_control\_domain}
3973 {\bf Overview:}
3974 Get the is\_control\_domain field of the given VM.
3976 \noindent {\bf Signature:}
3977 \begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
3980 \noindent{\bf Arguments:}
3983 \vspace{0.3cm}
3984 \begin{tabular}{|c|c|p{7cm}|}
3985 \hline
3986 {\bf type} & {\bf name} & {\bf description} \\ \hline
3987 {\tt VM ref } & self & reference to the object \\ \hline
3989 \end{tabular}
3991 \vspace{0.3cm}
3993 \noindent {\bf Return Type:}
3994 {\tt
3995 bool
3999 value of the field
4000 \vspace{0.3cm}
4001 \vspace{0.3cm}
4002 \vspace{0.3cm}
4003 \subsubsection{RPC name:~get\_metrics}
4005 {\bf Overview:}
4006 Get the metrics field of the given VM.
4008 \noindent {\bf Signature:}
4009 \begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
4012 \noindent{\bf Arguments:}
4015 \vspace{0.3cm}
4016 \begin{tabular}{|c|c|p{7cm}|}
4017 \hline
4018 {\bf type} & {\bf name} & {\bf description} \\ \hline
4019 {\tt VM ref } & self & reference to the object \\ \hline
4021 \end{tabular}
4023 \vspace{0.3cm}
4025 \noindent {\bf Return Type:}
4026 {\tt
4027 VM\_metrics ref
4031 value of the field
4032 \vspace{0.3cm}
4033 \vspace{0.3cm}
4034 \vspace{0.3cm}
4035 \subsubsection{RPC name:~create}
4037 {\bf Overview:}
4038 Create a new VM instance, and return its handle.
4040 \noindent {\bf Signature:}
4041 \begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4044 \noindent{\bf Arguments:}
4047 \vspace{0.3cm}
4048 \begin{tabular}{|c|c|p{7cm}|}
4049 \hline
4050 {\bf type} & {\bf name} & {\bf description} \\ \hline
4051 {\tt VM record } & args & All constructor arguments \\ \hline
4053 \end{tabular}
4055 \vspace{0.3cm}
4057 \noindent {\bf Return Type:}
4058 {\tt
4059 VM ref
4063 reference to the newly created object
4064 \vspace{0.3cm}
4065 \vspace{0.3cm}
4066 \vspace{0.3cm}
4067 \subsubsection{RPC name:~destroy}
4069 {\bf Overview:}
4070 Destroy the specified VM. The VM is completely removed from the system.
4071 This function can only be called when the VM is in the Halted State.
4073 \noindent {\bf Signature:}
4074 \begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4077 \noindent{\bf Arguments:}
4080 \vspace{0.3cm}
4081 \begin{tabular}{|c|c|p{7cm}|}
4082 \hline
4083 {\bf type} & {\bf name} & {\bf description} \\ \hline
4084 {\tt VM ref } & self & reference to the object \\ \hline
4086 \end{tabular}
4088 \vspace{0.3cm}
4090 \noindent {\bf Return Type:}
4091 {\tt
4092 void
4097 \vspace{0.3cm}
4098 \vspace{0.3cm}
4099 \vspace{0.3cm}
4100 \subsubsection{RPC name:~get\_by\_uuid}
4102 {\bf Overview:}
4103 Get a reference to the VM instance with the specified UUID.
4105 \noindent {\bf Signature:}
4106 \begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4109 \noindent{\bf Arguments:}
4112 \vspace{0.3cm}
4113 \begin{tabular}{|c|c|p{7cm}|}
4114 \hline
4115 {\bf type} & {\bf name} & {\bf description} \\ \hline
4116 {\tt string } & uuid & UUID of object to return \\ \hline
4118 \end{tabular}
4120 \vspace{0.3cm}
4122 \noindent {\bf Return Type:}
4123 {\tt
4124 VM ref
4128 reference to the object
4129 \vspace{0.3cm}
4130 \vspace{0.3cm}
4131 \vspace{0.3cm}
4132 \subsubsection{RPC name:~get\_record}
4134 {\bf Overview:}
4135 Get a record containing the current state of the given VM.
4137 \noindent {\bf Signature:}
4138 \begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4141 \noindent{\bf Arguments:}
4144 \vspace{0.3cm}
4145 \begin{tabular}{|c|c|p{7cm}|}
4146 \hline
4147 {\bf type} & {\bf name} & {\bf description} \\ \hline
4148 {\tt VM ref } & self & reference to the object \\ \hline
4150 \end{tabular}
4152 \vspace{0.3cm}
4154 \noindent {\bf Return Type:}
4155 {\tt
4156 VM record
4160 all fields from the object
4161 \vspace{0.3cm}
4162 \vspace{0.3cm}
4163 \vspace{0.3cm}
4164 \subsubsection{RPC name:~get\_by\_name\_label}
4166 {\bf Overview:}
4167 Get all the VM instances with the given label.
4169 \noindent {\bf Signature:}
4170 \begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4173 \noindent{\bf Arguments:}
4176 \vspace{0.3cm}
4177 \begin{tabular}{|c|c|p{7cm}|}
4178 \hline
4179 {\bf type} & {\bf name} & {\bf description} \\ \hline
4180 {\tt string } & label & label of object to return \\ \hline
4182 \end{tabular}
4184 \vspace{0.3cm}
4186 \noindent {\bf Return Type:}
4187 {\tt
4188 (VM ref) Set
4192 references to objects with match names
4193 \vspace{0.3cm}
4194 \vspace{0.3cm}
4195 \vspace{0.3cm}
4197 \vspace{1cm}
4198 \newpage
4199 \section{Class: VM\_metrics}
4200 \subsection{Fields for class: VM\_metrics}
4201 \begin{longtable}{|lllp{0.38\textwidth}|}
4202 \hline
4203 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
4204 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
4205 The metrics associated with a VM.}} \\
4206 \hline
4207 Quals & Field & Type & Description \\
4208 \hline
4209 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4210 $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
4211 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
4212 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
4213 \hline
4214 \end{longtable}
4215 \subsection{Additional RPCs associated with class: VM\_metrics}
4216 \subsubsection{RPC name:~get\_uuid}
4218 {\bf Overview:}
4219 Get the uuid field of the given VM\_metrics.
4221 \noindent {\bf Signature:}
4222 \begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
4225 \noindent{\bf Arguments:}
4228 \vspace{0.3cm}
4229 \begin{tabular}{|c|c|p{7cm}|}
4230 \hline
4231 {\bf type} & {\bf name} & {\bf description} \\ \hline
4232 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4234 \end{tabular}
4236 \vspace{0.3cm}
4238 \noindent {\bf Return Type:}
4239 {\tt
4240 string
4244 value of the field
4245 \vspace{0.3cm}
4246 \vspace{0.3cm}
4247 \vspace{0.3cm}
4248 \subsubsection{RPC name:~get\_memory\_actual}
4250 {\bf Overview:}
4251 Get the memory/actual field of the given VM\_metrics.
4253 \noindent {\bf Signature:}
4254 \begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
4257 \noindent{\bf Arguments:}
4260 \vspace{0.3cm}
4261 \begin{tabular}{|c|c|p{7cm}|}
4262 \hline
4263 {\bf type} & {\bf name} & {\bf description} \\ \hline
4264 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4266 \end{tabular}
4268 \vspace{0.3cm}
4270 \noindent {\bf Return Type:}
4271 {\tt
4272 int
4276 value of the field
4277 \vspace{0.3cm}
4278 \vspace{0.3cm}
4279 \vspace{0.3cm}
4280 \subsubsection{RPC name:~get\_VCPUs\_number}
4282 {\bf Overview:}
4283 Get the VCPUs/number field of the given VM\_metrics.
4285 \noindent {\bf Signature:}
4286 \begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
4289 \noindent{\bf Arguments:}
4292 \vspace{0.3cm}
4293 \begin{tabular}{|c|c|p{7cm}|}
4294 \hline
4295 {\bf type} & {\bf name} & {\bf description} \\ \hline
4296 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4298 \end{tabular}
4300 \vspace{0.3cm}
4302 \noindent {\bf Return Type:}
4303 {\tt
4304 int
4308 value of the field
4309 \vspace{0.3cm}
4310 \vspace{0.3cm}
4311 \vspace{0.3cm}
4312 \subsubsection{RPC name:~get\_VCPUs\_utilisation}
4314 {\bf Overview:}
4315 Get the VCPUs/utilisation field of the given VM\_metrics.
4317 \noindent {\bf Signature:}
4318 \begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
4321 \noindent{\bf Arguments:}
4324 \vspace{0.3cm}
4325 \begin{tabular}{|c|c|p{7cm}|}
4326 \hline
4327 {\bf type} & {\bf name} & {\bf description} \\ \hline
4328 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4330 \end{tabular}
4332 \vspace{0.3cm}
4334 \noindent {\bf Return Type:}
4335 {\tt
4336 (int $\rightarrow$ float) Map
4340 value of the field
4341 \vspace{0.3cm}
4342 \vspace{0.3cm}
4343 \vspace{0.3cm}
4344 \subsubsection{RPC name:~get\_by\_uuid}
4346 {\bf Overview:}
4347 Get a reference to the VM\_metrics instance with the specified UUID.
4349 \noindent {\bf Signature:}
4350 \begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4353 \noindent{\bf Arguments:}
4356 \vspace{0.3cm}
4357 \begin{tabular}{|c|c|p{7cm}|}
4358 \hline
4359 {\bf type} & {\bf name} & {\bf description} \\ \hline
4360 {\tt string } & uuid & UUID of object to return \\ \hline
4362 \end{tabular}
4364 \vspace{0.3cm}
4366 \noindent {\bf Return Type:}
4367 {\tt
4368 VM\_metrics ref
4372 reference to the object
4373 \vspace{0.3cm}
4374 \vspace{0.3cm}
4375 \vspace{0.3cm}
4376 \subsubsection{RPC name:~get\_record}
4378 {\bf Overview:}
4379 Get a record containing the current state of the given VM\_metrics.
4381 \noindent {\bf Signature:}
4382 \begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
4385 \noindent{\bf Arguments:}
4388 \vspace{0.3cm}
4389 \begin{tabular}{|c|c|p{7cm}|}
4390 \hline
4391 {\bf type} & {\bf name} & {\bf description} \\ \hline
4392 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4394 \end{tabular}
4396 \vspace{0.3cm}
4398 \noindent {\bf Return Type:}
4399 {\tt
4400 VM\_metrics record
4404 all fields from the object
4405 \vspace{0.3cm}
4406 \vspace{0.3cm}
4407 \vspace{0.3cm}
4409 \vspace{1cm}
4410 \newpage
4411 \section{Class: host}
4412 \subsection{Fields for class: host}
4413 \begin{longtable}{|lllp{0.38\textwidth}|}
4414 \hline
4415 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
4416 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
4417 physical host.}} \\
4418 \hline
4419 Quals & Field & Type & Description \\
4420 \hline
4421 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4422 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
4423 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
4424 $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
4425 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
4426 $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
4427 $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
4428 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
4429 $\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
4430 $\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
4431 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
4432 $\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
4433 $\mathit{RO}_\mathit{ins}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host. \\
4434 \hline
4435 \end{longtable}
4436 \subsection{Additional RPCs associated with class: host}
4437 \subsubsection{RPC name:~disable}
4439 {\bf Overview:}
4440 Puts the host into a state in which no new VMs can be started. Currently
4441 active VMs on the host continue to execute.
4443 \noindent {\bf Signature:}
4444 \begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
4447 \noindent{\bf Arguments:}
4450 \vspace{0.3cm}
4451 \begin{tabular}{|c|c|p{7cm}|}
4452 \hline
4453 {\bf type} & {\bf name} & {\bf description} \\ \hline
4454 {\tt host ref } & host & The Host to disable \\ \hline
4456 \end{tabular}
4458 \vspace{0.3cm}
4460 \noindent {\bf Return Type:}
4461 {\tt
4462 void
4467 \vspace{0.3cm}
4468 \vspace{0.3cm}
4469 \vspace{0.3cm}
4470 \subsubsection{RPC name:~enable}
4472 {\bf Overview:}
4473 Puts the host into a state in which new VMs can be started.
4475 \noindent {\bf Signature:}
4476 \begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
4479 \noindent{\bf Arguments:}
4482 \vspace{0.3cm}
4483 \begin{tabular}{|c|c|p{7cm}|}
4484 \hline
4485 {\bf type} & {\bf name} & {\bf description} \\ \hline
4486 {\tt host ref } & host & The Host to enable \\ \hline
4488 \end{tabular}
4490 \vspace{0.3cm}
4492 \noindent {\bf Return Type:}
4493 {\tt
4494 void
4499 \vspace{0.3cm}
4500 \vspace{0.3cm}
4501 \vspace{0.3cm}
4502 \subsubsection{RPC name:~shutdown}
4504 {\bf Overview:}
4505 Shutdown the host. (This function can only be called if there are no
4506 currently running VMs on the host and it is disabled.).
4508 \noindent {\bf Signature:}
4509 \begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
4512 \noindent{\bf Arguments:}
4515 \vspace{0.3cm}
4516 \begin{tabular}{|c|c|p{7cm}|}
4517 \hline
4518 {\bf type} & {\bf name} & {\bf description} \\ \hline
4519 {\tt host ref } & host & The Host to shutdown \\ \hline
4521 \end{tabular}
4523 \vspace{0.3cm}
4525 \noindent {\bf Return Type:}
4526 {\tt
4527 void
4532 \vspace{0.3cm}
4533 \vspace{0.3cm}
4534 \vspace{0.3cm}
4535 \subsubsection{RPC name:~reboot}
4537 {\bf Overview:}
4538 Reboot the host. (This function can only be called if there are no
4539 currently running VMs on the host and it is disabled.).
4541 \noindent {\bf Signature:}
4542 \begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
4545 \noindent{\bf Arguments:}
4548 \vspace{0.3cm}
4549 \begin{tabular}{|c|c|p{7cm}|}
4550 \hline
4551 {\bf type} & {\bf name} & {\bf description} \\ \hline
4552 {\tt host ref } & host & The Host to reboot \\ \hline
4554 \end{tabular}
4556 \vspace{0.3cm}
4558 \noindent {\bf Return Type:}
4559 {\tt
4560 void
4565 \vspace{0.3cm}
4566 \vspace{0.3cm}
4567 \vspace{0.3cm}
4568 \subsubsection{RPC name:~dmesg}
4570 {\bf Overview:}
4571 Get the host xen dmesg.
4573 \noindent {\bf Signature:}
4574 \begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
4577 \noindent{\bf Arguments:}
4580 \vspace{0.3cm}
4581 \begin{tabular}{|c|c|p{7cm}|}
4582 \hline
4583 {\bf type} & {\bf name} & {\bf description} \\ \hline
4584 {\tt host ref } & host & The Host to query \\ \hline
4586 \end{tabular}
4588 \vspace{0.3cm}
4590 \noindent {\bf Return Type:}
4591 {\tt
4592 string
4596 dmesg string
4597 \vspace{0.3cm}
4598 \vspace{0.3cm}
4599 \vspace{0.3cm}
4600 \subsubsection{RPC name:~get\_all}
4602 {\bf Overview:}
4603 Return a list of all the hosts known to the system.
4605 \noindent {\bf Signature:}
4606 \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
4609 \vspace{0.3cm}
4611 \noindent {\bf Return Type:}
4612 {\tt
4613 (host ref) Set
4617 A list of all the IDs of all the hosts
4618 \vspace{0.3cm}
4619 \vspace{0.3cm}
4620 \vspace{0.3cm}
4621 \subsubsection{RPC name:~get\_uuid}
4623 {\bf Overview:}
4624 Get the uuid field of the given host.
4626 \noindent {\bf Signature:}
4627 \begin{verbatim} string get_uuid (session_id s, host ref self)\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 host ref } & self & reference to the object \\ \hline
4639 \end{tabular}
4641 \vspace{0.3cm}
4643 \noindent {\bf Return Type:}
4644 {\tt
4645 string
4649 value of the field
4650 \vspace{0.3cm}
4651 \vspace{0.3cm}
4652 \vspace{0.3cm}
4653 \subsubsection{RPC name:~get\_name\_label}
4655 {\bf Overview:}
4656 Get the name/label field of the given host.
4658 \noindent {\bf Signature:}
4659 \begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
4662 \noindent{\bf Arguments:}
4665 \vspace{0.3cm}
4666 \begin{tabular}{|c|c|p{7cm}|}
4667 \hline
4668 {\bf type} & {\bf name} & {\bf description} \\ \hline
4669 {\tt host ref } & self & reference to the object \\ \hline
4671 \end{tabular}
4673 \vspace{0.3cm}
4675 \noindent {\bf Return Type:}
4676 {\tt
4677 string
4681 value of the field
4682 \vspace{0.3cm}
4683 \vspace{0.3cm}
4684 \vspace{0.3cm}
4685 \subsubsection{RPC name:~set\_name\_label}
4687 {\bf Overview:}
4688 Set the name/label field of the given host.
4690 \noindent {\bf Signature:}
4691 \begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
4694 \noindent{\bf Arguments:}
4697 \vspace{0.3cm}
4698 \begin{tabular}{|c|c|p{7cm}|}
4699 \hline
4700 {\bf type} & {\bf name} & {\bf description} \\ \hline
4701 {\tt host ref } & self & reference to the object \\ \hline
4703 {\tt string } & value & New value to set \\ \hline
4705 \end{tabular}
4707 \vspace{0.3cm}
4709 \noindent {\bf Return Type:}
4710 {\tt
4711 void
4716 \vspace{0.3cm}
4717 \vspace{0.3cm}
4718 \vspace{0.3cm}
4719 \subsubsection{RPC name:~get\_name\_description}
4721 {\bf Overview:}
4722 Get the name/description field of the given host.
4724 \noindent {\bf Signature:}
4725 \begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
4728 \noindent{\bf Arguments:}
4731 \vspace{0.3cm}
4732 \begin{tabular}{|c|c|p{7cm}|}
4733 \hline
4734 {\bf type} & {\bf name} & {\bf description} \\ \hline
4735 {\tt host ref } & self & reference to the object \\ \hline
4737 \end{tabular}
4739 \vspace{0.3cm}
4741 \noindent {\bf Return Type:}
4742 {\tt
4743 string
4747 value of the field
4748 \vspace{0.3cm}
4749 \vspace{0.3cm}
4750 \vspace{0.3cm}
4751 \subsubsection{RPC name:~set\_name\_description}
4753 {\bf Overview:}
4754 Set the name/description field of the given host.
4756 \noindent {\bf Signature:}
4757 \begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
4760 \noindent{\bf Arguments:}
4763 \vspace{0.3cm}
4764 \begin{tabular}{|c|c|p{7cm}|}
4765 \hline
4766 {\bf type} & {\bf name} & {\bf description} \\ \hline
4767 {\tt host ref } & self & reference to the object \\ \hline
4769 {\tt string } & value & New value to set \\ \hline
4771 \end{tabular}
4773 \vspace{0.3cm}
4775 \noindent {\bf Return Type:}
4776 {\tt
4777 void
4782 \vspace{0.3cm}
4783 \vspace{0.3cm}
4784 \vspace{0.3cm}
4785 \subsubsection{RPC name:~get\_software\_version}
4787 {\bf Overview:}
4788 Get the software\_version field of the given host.
4790 \noindent {\bf Signature:}
4791 \begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
4794 \noindent{\bf Arguments:}
4797 \vspace{0.3cm}
4798 \begin{tabular}{|c|c|p{7cm}|}
4799 \hline
4800 {\bf type} & {\bf name} & {\bf description} \\ \hline
4801 {\tt host ref } & self & reference to the object \\ \hline
4803 \end{tabular}
4805 \vspace{0.3cm}
4807 \noindent {\bf Return Type:}
4808 {\tt
4809 (string $\rightarrow$ string) Map
4813 value of the field
4814 \vspace{0.3cm}
4815 \vspace{0.3cm}
4816 \vspace{0.3cm}
4817 \subsubsection{RPC name:~get\_other\_config}
4819 {\bf Overview:}
4820 Get the other\_config field of the given host.
4822 \noindent {\bf Signature:}
4823 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
4826 \noindent{\bf Arguments:}
4829 \vspace{0.3cm}
4830 \begin{tabular}{|c|c|p{7cm}|}
4831 \hline
4832 {\bf type} & {\bf name} & {\bf description} \\ \hline
4833 {\tt host ref } & self & reference to the object \\ \hline
4835 \end{tabular}
4837 \vspace{0.3cm}
4839 \noindent {\bf Return Type:}
4840 {\tt
4841 (string $\rightarrow$ string) Map
4845 value of the field
4846 \vspace{0.3cm}
4847 \vspace{0.3cm}
4848 \vspace{0.3cm}
4849 \subsubsection{RPC name:~set\_other\_config}
4851 {\bf Overview:}
4852 Set the other\_config field of the given host.
4854 \noindent {\bf Signature:}
4855 \begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
4858 \noindent{\bf Arguments:}
4861 \vspace{0.3cm}
4862 \begin{tabular}{|c|c|p{7cm}|}
4863 \hline
4864 {\bf type} & {\bf name} & {\bf description} \\ \hline
4865 {\tt host ref } & self & reference to the object \\ \hline
4867 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4869 \end{tabular}
4871 \vspace{0.3cm}
4873 \noindent {\bf Return Type:}
4874 {\tt
4875 void
4880 \vspace{0.3cm}
4881 \vspace{0.3cm}
4882 \vspace{0.3cm}
4883 \subsubsection{RPC name:~add\_to\_other\_config}
4885 {\bf Overview:}
4886 Add the given key-value pair to the other\_config field of the given host.
4888 \noindent {\bf Signature:}
4889 \begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
4892 \noindent{\bf Arguments:}
4895 \vspace{0.3cm}
4896 \begin{tabular}{|c|c|p{7cm}|}
4897 \hline
4898 {\bf type} & {\bf name} & {\bf description} \\ \hline
4899 {\tt host ref } & self & reference to the object \\ \hline
4901 {\tt string } & key & Key to add \\ \hline
4903 {\tt string } & value & Value to add \\ \hline
4905 \end{tabular}
4907 \vspace{0.3cm}
4909 \noindent {\bf Return Type:}
4910 {\tt
4911 void
4916 \vspace{0.3cm}
4917 \vspace{0.3cm}
4918 \vspace{0.3cm}
4919 \subsubsection{RPC name:~remove\_from\_other\_config}
4921 {\bf Overview:}
4922 Remove the given key and its corresponding value from the other\_config
4923 field of the given host. If the key is not in that Map, then do nothing.
4925 \noindent {\bf Signature:}
4926 \begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
4929 \noindent{\bf Arguments:}
4932 \vspace{0.3cm}
4933 \begin{tabular}{|c|c|p{7cm}|}
4934 \hline
4935 {\bf type} & {\bf name} & {\bf description} \\ \hline
4936 {\tt host ref } & self & reference to the object \\ \hline
4938 {\tt string } & key & Key to remove \\ \hline
4940 \end{tabular}
4942 \vspace{0.3cm}
4944 \noindent {\bf Return Type:}
4945 {\tt
4946 void
4951 \vspace{0.3cm}
4952 \vspace{0.3cm}
4953 \vspace{0.3cm}
4954 \subsubsection{RPC name:~get\_resident\_VMs}
4956 {\bf Overview:}
4957 Get the resident\_VMs field of the given host.
4959 \noindent {\bf Signature:}
4960 \begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
4963 \noindent{\bf Arguments:}
4966 \vspace{0.3cm}
4967 \begin{tabular}{|c|c|p{7cm}|}
4968 \hline
4969 {\bf type} & {\bf name} & {\bf description} \\ \hline
4970 {\tt host ref } & self & reference to the object \\ \hline
4972 \end{tabular}
4974 \vspace{0.3cm}
4976 \noindent {\bf Return Type:}
4977 {\tt
4978 (VM ref) Set
4982 value of the field
4983 \vspace{0.3cm}
4984 \vspace{0.3cm}
4985 \vspace{0.3cm}
4986 \subsubsection{RPC name:~get\_logging}
4988 {\bf Overview:}
4989 Get the logging field of the given host.
4991 \noindent {\bf Signature:}
4992 \begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
4995 \noindent{\bf Arguments:}
4998 \vspace{0.3cm}
4999 \begin{tabular}{|c|c|p{7cm}|}
5000 \hline
5001 {\bf type} & {\bf name} & {\bf description} \\ \hline
5002 {\tt host ref } & self & reference to the object \\ \hline
5004 \end{tabular}
5006 \vspace{0.3cm}
5008 \noindent {\bf Return Type:}
5009 {\tt
5010 (string $\rightarrow$ string) Map
5014 value of the field
5015 \vspace{0.3cm}
5016 \vspace{0.3cm}
5017 \vspace{0.3cm}
5018 \subsubsection{RPC name:~set\_logging}
5020 {\bf Overview:}
5021 Set the logging field of the given host.
5023 \noindent {\bf Signature:}
5024 \begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
5027 \noindent{\bf Arguments:}
5030 \vspace{0.3cm}
5031 \begin{tabular}{|c|c|p{7cm}|}
5032 \hline
5033 {\bf type} & {\bf name} & {\bf description} \\ \hline
5034 {\tt host ref } & self & reference to the object \\ \hline
5036 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
5038 \end{tabular}
5040 \vspace{0.3cm}
5042 \noindent {\bf Return Type:}
5043 {\tt
5044 void
5049 \vspace{0.3cm}
5050 \vspace{0.3cm}
5051 \vspace{0.3cm}
5052 \subsubsection{RPC name:~add\_to\_logging}
5054 {\bf Overview:}
5055 Add the given key-value pair to the logging field of the given host.
5057 \noindent {\bf Signature:}
5058 \begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\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 host ref } & self & reference to the object \\ \hline
5070 {\tt string } & key & Key to add \\ \hline
5072 {\tt string } & value & Value to add \\ \hline
5074 \end{tabular}
5076 \vspace{0.3cm}
5078 \noindent {\bf Return Type:}
5079 {\tt
5080 void
5085 \vspace{0.3cm}
5086 \vspace{0.3cm}
5087 \vspace{0.3cm}
5088 \subsubsection{RPC name:~remove\_from\_logging}
5090 {\bf Overview:}
5091 Remove the given key and its corresponding value from the logging field of
5092 the given host. If the key is not in that Map, then do nothing.
5094 \noindent {\bf Signature:}
5095 \begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\end{verbatim}
5098 \noindent{\bf Arguments:}
5101 \vspace{0.3cm}
5102 \begin{tabular}{|c|c|p{7cm}|}
5103 \hline
5104 {\bf type} & {\bf name} & {\bf description} \\ \hline
5105 {\tt host ref } & self & reference to the object \\ \hline
5107 {\tt string } & key & Key to remove \\ \hline
5109 \end{tabular}
5111 \vspace{0.3cm}
5113 \noindent {\bf Return Type:}
5114 {\tt
5115 void
5120 \vspace{0.3cm}
5121 \vspace{0.3cm}
5122 \vspace{0.3cm}
5123 \subsubsection{RPC name:~get\_PIFs}
5125 {\bf Overview:}
5126 Get the PIFs field of the given host.
5128 \noindent {\bf Signature:}
5129 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
5132 \noindent{\bf Arguments:}
5135 \vspace{0.3cm}
5136 \begin{tabular}{|c|c|p{7cm}|}
5137 \hline
5138 {\bf type} & {\bf name} & {\bf description} \\ \hline
5139 {\tt host ref } & self & reference to the object \\ \hline
5141 \end{tabular}
5143 \vspace{0.3cm}
5145 \noindent {\bf Return Type:}
5146 {\tt
5147 (PIF ref) Set
5151 value of the field
5152 \vspace{0.3cm}
5153 \vspace{0.3cm}
5154 \vspace{0.3cm}
5155 \subsubsection{RPC name:~get\_suspend\_image\_sr}
5157 {\bf Overview:}
5158 Get the suspend\_image\_sr field of the given host.
5160 \noindent {\bf Signature:}
5161 \begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
5164 \noindent{\bf Arguments:}
5167 \vspace{0.3cm}
5168 \begin{tabular}{|c|c|p{7cm}|}
5169 \hline
5170 {\bf type} & {\bf name} & {\bf description} \\ \hline
5171 {\tt host ref } & self & reference to the object \\ \hline
5173 \end{tabular}
5175 \vspace{0.3cm}
5177 \noindent {\bf Return Type:}
5178 {\tt
5179 SR ref
5183 value of the field
5184 \vspace{0.3cm}
5185 \vspace{0.3cm}
5186 \vspace{0.3cm}
5187 \subsubsection{RPC name:~set\_suspend\_image\_sr}
5189 {\bf Overview:}
5190 Set the suspend\_image\_sr field of the given host.
5192 \noindent {\bf Signature:}
5193 \begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\end{verbatim}
5196 \noindent{\bf Arguments:}
5199 \vspace{0.3cm}
5200 \begin{tabular}{|c|c|p{7cm}|}
5201 \hline
5202 {\bf type} & {\bf name} & {\bf description} \\ \hline
5203 {\tt host ref } & self & reference to the object \\ \hline
5205 {\tt SR ref } & value & New value to set \\ \hline
5207 \end{tabular}
5209 \vspace{0.3cm}
5211 \noindent {\bf Return Type:}
5212 {\tt
5213 void
5218 \vspace{0.3cm}
5219 \vspace{0.3cm}
5220 \vspace{0.3cm}
5221 \subsubsection{RPC name:~get\_crash\_dump\_sr}
5223 {\bf Overview:}
5224 Get the crash\_dump\_sr field of the given host.
5226 \noindent {\bf Signature:}
5227 \begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
5230 \noindent{\bf Arguments:}
5233 \vspace{0.3cm}
5234 \begin{tabular}{|c|c|p{7cm}|}
5235 \hline
5236 {\bf type} & {\bf name} & {\bf description} \\ \hline
5237 {\tt host ref } & self & reference to the object \\ \hline
5239 \end{tabular}
5241 \vspace{0.3cm}
5243 \noindent {\bf Return Type:}
5244 {\tt
5245 SR ref
5249 value of the field
5250 \vspace{0.3cm}
5251 \vspace{0.3cm}
5252 \vspace{0.3cm}
5253 \subsubsection{RPC name:~set\_crash\_dump\_sr}
5255 {\bf Overview:}
5256 Set the crash\_dump\_sr field of the given host.
5258 \noindent {\bf Signature:}
5259 \begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\end{verbatim}
5262 \noindent{\bf Arguments:}
5265 \vspace{0.3cm}
5266 \begin{tabular}{|c|c|p{7cm}|}
5267 \hline
5268 {\bf type} & {\bf name} & {\bf description} \\ \hline
5269 {\tt host ref } & self & reference to the object \\ \hline
5271 {\tt SR ref } & value & New value to set \\ \hline
5273 \end{tabular}
5275 \vspace{0.3cm}
5277 \noindent {\bf Return Type:}
5278 {\tt
5279 void
5284 \vspace{0.3cm}
5285 \vspace{0.3cm}
5286 \vspace{0.3cm}
5287 \subsubsection{RPC name:~get\_PBDs}
5289 {\bf Overview:}
5290 Get the PBDs field of the given host.
5292 \noindent {\bf Signature:}
5293 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
5296 \noindent{\bf Arguments:}
5299 \vspace{0.3cm}
5300 \begin{tabular}{|c|c|p{7cm}|}
5301 \hline
5302 {\bf type} & {\bf name} & {\bf description} \\ \hline
5303 {\tt host ref } & self & reference to the object \\ \hline
5305 \end{tabular}
5307 \vspace{0.3cm}
5309 \noindent {\bf Return Type:}
5310 {\tt
5311 (PBD ref) Set
5315 value of the field
5316 \vspace{0.3cm}
5317 \vspace{0.3cm}
5318 \vspace{0.3cm}
5319 \subsubsection{RPC name:~get\_host\_CPUs}
5321 {\bf Overview:}
5322 Get the host\_CPUs field of the given host.
5324 \noindent {\bf Signature:}
5325 \begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
5328 \noindent{\bf Arguments:}
5331 \vspace{0.3cm}
5332 \begin{tabular}{|c|c|p{7cm}|}
5333 \hline
5334 {\bf type} & {\bf name} & {\bf description} \\ \hline
5335 {\tt host ref } & self & reference to the object \\ \hline
5337 \end{tabular}
5339 \vspace{0.3cm}
5341 \noindent {\bf Return Type:}
5342 {\tt
5343 (host\_cpu ref) Set
5347 value of the field
5348 \vspace{0.3cm}
5349 \vspace{0.3cm}
5350 \vspace{0.3cm}
5351 \subsubsection{RPC name:~get\_metrics}
5353 {\bf Overview:}
5354 Get the metrics field of the given host.
5356 \noindent {\bf Signature:}
5357 \begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
5360 \noindent{\bf Arguments:}
5363 \vspace{0.3cm}
5364 \begin{tabular}{|c|c|p{7cm}|}
5365 \hline
5366 {\bf type} & {\bf name} & {\bf description} \\ \hline
5367 {\tt host ref } & self & reference to the object \\ \hline
5369 \end{tabular}
5371 \vspace{0.3cm}
5373 \noindent {\bf Return Type:}
5374 {\tt
5375 host\_metrics ref
5379 value of the field
5380 \vspace{0.3cm}
5381 \vspace{0.3cm}
5382 \vspace{0.3cm}
5383 \subsubsection{RPC name:~create}
5385 {\bf Overview:}
5386 Create a new host instance, and return its handle.
5388 \noindent {\bf Signature:}
5389 \begin{verbatim} (host ref) create (session_id s, host record args)\end{verbatim}
5392 \noindent{\bf Arguments:}
5395 \vspace{0.3cm}
5396 \begin{tabular}{|c|c|p{7cm}|}
5397 \hline
5398 {\bf type} & {\bf name} & {\bf description} \\ \hline
5399 {\tt host record } & args & All constructor arguments \\ \hline
5401 \end{tabular}
5403 \vspace{0.3cm}
5405 \noindent {\bf Return Type:}
5406 {\tt
5407 host ref
5411 reference to the newly created object
5412 \vspace{0.3cm}
5413 \vspace{0.3cm}
5414 \vspace{0.3cm}
5415 \subsubsection{RPC name:~destroy}
5417 {\bf Overview:}
5418 Destroy the specified host instance.
5420 \noindent {\bf Signature:}
5421 \begin{verbatim} void destroy (session_id s, host ref self)\end{verbatim}
5424 \noindent{\bf Arguments:}
5427 \vspace{0.3cm}
5428 \begin{tabular}{|c|c|p{7cm}|}
5429 \hline
5430 {\bf type} & {\bf name} & {\bf description} \\ \hline
5431 {\tt host ref } & self & reference to the object \\ \hline
5433 \end{tabular}
5435 \vspace{0.3cm}
5437 \noindent {\bf Return Type:}
5438 {\tt
5439 void
5444 \vspace{0.3cm}
5445 \vspace{0.3cm}
5446 \vspace{0.3cm}
5447 \subsubsection{RPC name:~get\_by\_uuid}
5449 {\bf Overview:}
5450 Get a reference to the host instance with the specified UUID.
5452 \noindent {\bf Signature:}
5453 \begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5456 \noindent{\bf Arguments:}
5459 \vspace{0.3cm}
5460 \begin{tabular}{|c|c|p{7cm}|}
5461 \hline
5462 {\bf type} & {\bf name} & {\bf description} \\ \hline
5463 {\tt string } & uuid & UUID of object to return \\ \hline
5465 \end{tabular}
5467 \vspace{0.3cm}
5469 \noindent {\bf Return Type:}
5470 {\tt
5471 host ref
5475 reference to the object
5476 \vspace{0.3cm}
5477 \vspace{0.3cm}
5478 \vspace{0.3cm}
5479 \subsubsection{RPC name:~get\_record}
5481 {\bf Overview:}
5482 Get a record containing the current state of the given host.
5484 \noindent {\bf Signature:}
5485 \begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
5488 \noindent{\bf Arguments:}
5491 \vspace{0.3cm}
5492 \begin{tabular}{|c|c|p{7cm}|}
5493 \hline
5494 {\bf type} & {\bf name} & {\bf description} \\ \hline
5495 {\tt host ref } & self & reference to the object \\ \hline
5497 \end{tabular}
5499 \vspace{0.3cm}
5501 \noindent {\bf Return Type:}
5502 {\tt
5503 host record
5507 all fields from the object
5508 \vspace{0.3cm}
5509 \vspace{0.3cm}
5510 \vspace{0.3cm}
5511 \subsubsection{RPC name:~get\_by\_name\_label}
5513 {\bf Overview:}
5514 Get all the host instances with the given label.
5516 \noindent {\bf Signature:}
5517 \begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
5520 \noindent{\bf Arguments:}
5523 \vspace{0.3cm}
5524 \begin{tabular}{|c|c|p{7cm}|}
5525 \hline
5526 {\bf type} & {\bf name} & {\bf description} \\ \hline
5527 {\tt string } & label & label of object to return \\ \hline
5529 \end{tabular}
5531 \vspace{0.3cm}
5533 \noindent {\bf Return Type:}
5534 {\tt
5535 (host ref) Set
5539 references to objects with match names
5540 \vspace{0.3cm}
5541 \vspace{0.3cm}
5542 \vspace{0.3cm}
5544 \vspace{1cm}
5545 \newpage
5546 \section{Class: host\_metrics}
5547 \subsection{Fields for class: host\_metrics}
5548 \begin{longtable}{|lllp{0.38\textwidth}|}
5549 \hline
5550 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
5551 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
5552 The metrics associated with a host.}} \\
5553 \hline
5554 Quals & Field & Type & Description \\
5555 \hline
5556 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5557 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & Host to which these metrics apply \\
5558 $\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
5559 $\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
5560 \hline
5561 \end{longtable}
5562 \subsection{Additional RPCs associated with class: host\_metrics}
5563 \subsubsection{RPC name:~get\_uuid}
5565 {\bf Overview:}
5566 Get the uuid field of the given host\_metrics.
5568 \noindent {\bf Signature:}
5569 \begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
5572 \noindent{\bf Arguments:}
5575 \vspace{0.3cm}
5576 \begin{tabular}{|c|c|p{7cm}|}
5577 \hline
5578 {\bf type} & {\bf name} & {\bf description} \\ \hline
5579 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5581 \end{tabular}
5583 \vspace{0.3cm}
5585 \noindent {\bf Return Type:}
5586 {\tt
5587 string
5591 value of the field
5592 \vspace{0.3cm}
5593 \vspace{0.3cm}
5594 \vspace{0.3cm}
5595 \subsubsection{RPC name:~get\_host}
5597 {\bf Overview:}
5598 Get the host field of the given host\_metrics.
5600 \noindent {\bf Signature:}
5601 \begin{verbatim} (host ref) get_host (session_id s, host_metrics ref self)\end{verbatim}
5604 \noindent{\bf Arguments:}
5607 \vspace{0.3cm}
5608 \begin{tabular}{|c|c|p{7cm}|}
5609 \hline
5610 {\bf type} & {\bf name} & {\bf description} \\ \hline
5611 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5613 \end{tabular}
5615 \vspace{0.3cm}
5617 \noindent {\bf Return Type:}
5618 {\tt
5619 host ref
5623 value of the field
5624 \vspace{0.3cm}
5625 \vspace{0.3cm}
5626 \vspace{0.3cm}
5627 \subsubsection{RPC name:~get\_memory\_total}
5629 {\bf Overview:}
5630 Get the memory/total field of the given host\_metrics.
5632 \noindent {\bf Signature:}
5633 \begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
5636 \noindent{\bf Arguments:}
5639 \vspace{0.3cm}
5640 \begin{tabular}{|c|c|p{7cm}|}
5641 \hline
5642 {\bf type} & {\bf name} & {\bf description} \\ \hline
5643 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5645 \end{tabular}
5647 \vspace{0.3cm}
5649 \noindent {\bf Return Type:}
5650 {\tt
5651 int
5655 value of the field
5656 \vspace{0.3cm}
5657 \vspace{0.3cm}
5658 \vspace{0.3cm}
5659 \subsubsection{RPC name:~get\_memory\_free}
5661 {\bf Overview:}
5662 Get the memory/free field of the given host\_metrics.
5664 \noindent {\bf Signature:}
5665 \begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
5668 \noindent{\bf Arguments:}
5671 \vspace{0.3cm}
5672 \begin{tabular}{|c|c|p{7cm}|}
5673 \hline
5674 {\bf type} & {\bf name} & {\bf description} \\ \hline
5675 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5677 \end{tabular}
5679 \vspace{0.3cm}
5681 \noindent {\bf Return Type:}
5682 {\tt
5683 int
5687 value of the field
5688 \vspace{0.3cm}
5689 \vspace{0.3cm}
5690 \vspace{0.3cm}
5691 \subsubsection{RPC name:~get\_by\_uuid}
5693 {\bf Overview:}
5694 Get a reference to the host\_metrics instance with the specified UUID.
5696 \noindent {\bf Signature:}
5697 \begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5700 \noindent{\bf Arguments:}
5703 \vspace{0.3cm}
5704 \begin{tabular}{|c|c|p{7cm}|}
5705 \hline
5706 {\bf type} & {\bf name} & {\bf description} \\ \hline
5707 {\tt string } & uuid & UUID of object to return \\ \hline
5709 \end{tabular}
5711 \vspace{0.3cm}
5713 \noindent {\bf Return Type:}
5714 {\tt
5715 host\_metrics ref
5719 reference to the object
5720 \vspace{0.3cm}
5721 \vspace{0.3cm}
5722 \vspace{0.3cm}
5723 \subsubsection{RPC name:~get\_record}
5725 {\bf Overview:}
5726 Get a record containing the current state of the given host\_metrics.
5728 \noindent {\bf Signature:}
5729 \begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
5732 \noindent{\bf Arguments:}
5735 \vspace{0.3cm}
5736 \begin{tabular}{|c|c|p{7cm}|}
5737 \hline
5738 {\bf type} & {\bf name} & {\bf description} \\ \hline
5739 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5741 \end{tabular}
5743 \vspace{0.3cm}
5745 \noindent {\bf Return Type:}
5746 {\tt
5747 host\_metrics record
5751 all fields from the object
5752 \vspace{0.3cm}
5753 \vspace{0.3cm}
5754 \vspace{0.3cm}
5756 \vspace{1cm}
5757 \newpage
5758 \section{Class: host\_cpu}
5759 \subsection{Fields for class: host\_cpu}
5760 \begin{longtable}{|lllp{0.38\textwidth}|}
5761 \hline
5762 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
5763 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
5764 \hline
5765 Quals & Field & Type & Description \\
5766 \hline
5767 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5768 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & the host the CPU is in \\
5769 $\mathit{RO}_\mathit{ins}$ & {\tt number} & int & the number of the physical CPU within the host \\
5770 $\mathit{RO}_\mathit{ins}$ & {\tt vendor} & string & the vendor of the physical CPU \\
5771 $\mathit{RO}_\mathit{ins}$ & {\tt speed} & int & the speed of the physical CPU \\
5772 $\mathit{RO}_\mathit{ins}$ & {\tt modelname} & string & the model name of the physical CPU \\
5773 $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
5774 \hline
5775 \end{longtable}
5776 \subsection{Additional RPCs associated with class: host\_cpu}
5777 \subsubsection{RPC name:~get\_uuid}
5779 {\bf Overview:}
5780 Get the uuid field of the given host\_cpu.
5782 \noindent {\bf Signature:}
5783 \begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
5786 \noindent{\bf Arguments:}
5789 \vspace{0.3cm}
5790 \begin{tabular}{|c|c|p{7cm}|}
5791 \hline
5792 {\bf type} & {\bf name} & {\bf description} \\ \hline
5793 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5795 \end{tabular}
5797 \vspace{0.3cm}
5799 \noindent {\bf Return Type:}
5800 {\tt
5801 string
5805 value of the field
5806 \vspace{0.3cm}
5807 \vspace{0.3cm}
5808 \vspace{0.3cm}
5809 \subsubsection{RPC name:~get\_host}
5811 {\bf Overview:}
5812 Get the host field of the given host\_cpu.
5814 \noindent {\bf Signature:}
5815 \begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
5818 \noindent{\bf Arguments:}
5821 \vspace{0.3cm}
5822 \begin{tabular}{|c|c|p{7cm}|}
5823 \hline
5824 {\bf type} & {\bf name} & {\bf description} \\ \hline
5825 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5827 \end{tabular}
5829 \vspace{0.3cm}
5831 \noindent {\bf Return Type:}
5832 {\tt
5833 host ref
5837 value of the field
5838 \vspace{0.3cm}
5839 \vspace{0.3cm}
5840 \vspace{0.3cm}
5841 \subsubsection{RPC name:~get\_number}
5843 {\bf Overview:}
5844 Get the number field of the given host\_cpu.
5846 \noindent {\bf Signature:}
5847 \begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
5850 \noindent{\bf Arguments:}
5853 \vspace{0.3cm}
5854 \begin{tabular}{|c|c|p{7cm}|}
5855 \hline
5856 {\bf type} & {\bf name} & {\bf description} \\ \hline
5857 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5859 \end{tabular}
5861 \vspace{0.3cm}
5863 \noindent {\bf Return Type:}
5864 {\tt
5865 int
5869 value of the field
5870 \vspace{0.3cm}
5871 \vspace{0.3cm}
5872 \vspace{0.3cm}
5873 \subsubsection{RPC name:~get\_vendor}
5875 {\bf Overview:}
5876 Get the vendor field of the given host\_cpu.
5878 \noindent {\bf Signature:}
5879 \begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
5882 \noindent{\bf Arguments:}
5885 \vspace{0.3cm}
5886 \begin{tabular}{|c|c|p{7cm}|}
5887 \hline
5888 {\bf type} & {\bf name} & {\bf description} \\ \hline
5889 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5891 \end{tabular}
5893 \vspace{0.3cm}
5895 \noindent {\bf Return Type:}
5896 {\tt
5897 string
5901 value of the field
5902 \vspace{0.3cm}
5903 \vspace{0.3cm}
5904 \vspace{0.3cm}
5905 \subsubsection{RPC name:~get\_speed}
5907 {\bf Overview:}
5908 Get the speed field of the given host\_cpu.
5910 \noindent {\bf Signature:}
5911 \begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
5914 \noindent{\bf Arguments:}
5917 \vspace{0.3cm}
5918 \begin{tabular}{|c|c|p{7cm}|}
5919 \hline
5920 {\bf type} & {\bf name} & {\bf description} \\ \hline
5921 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5923 \end{tabular}
5925 \vspace{0.3cm}
5927 \noindent {\bf Return Type:}
5928 {\tt
5929 int
5933 value of the field
5934 \vspace{0.3cm}
5935 \vspace{0.3cm}
5936 \vspace{0.3cm}
5937 \subsubsection{RPC name:~get\_modelname}
5939 {\bf Overview:}
5940 Get the modelname field of the given host\_cpu.
5942 \noindent {\bf Signature:}
5943 \begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
5946 \noindent{\bf Arguments:}
5949 \vspace{0.3cm}
5950 \begin{tabular}{|c|c|p{7cm}|}
5951 \hline
5952 {\bf type} & {\bf name} & {\bf description} \\ \hline
5953 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5955 \end{tabular}
5957 \vspace{0.3cm}
5959 \noindent {\bf Return Type:}
5960 {\tt
5961 string
5965 value of the field
5966 \vspace{0.3cm}
5967 \vspace{0.3cm}
5968 \vspace{0.3cm}
5969 \subsubsection{RPC name:~get\_utilisation}
5971 {\bf Overview:}
5972 Get the utilisation field of the given host\_cpu.
5974 \noindent {\bf Signature:}
5975 \begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
5978 \noindent{\bf Arguments:}
5981 \vspace{0.3cm}
5982 \begin{tabular}{|c|c|p{7cm}|}
5983 \hline
5984 {\bf type} & {\bf name} & {\bf description} \\ \hline
5985 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5987 \end{tabular}
5989 \vspace{0.3cm}
5991 \noindent {\bf Return Type:}
5992 {\tt
5993 float
5997 value of the field
5998 \vspace{0.3cm}
5999 \vspace{0.3cm}
6000 \vspace{0.3cm}
6001 \subsubsection{RPC name:~create}
6003 {\bf Overview:}
6004 Create a new host\_cpu instance, and return its handle.
6006 \noindent {\bf Signature:}
6007 \begin{verbatim} (host_cpu ref) create (session_id s, host_cpu record args)\end{verbatim}
6010 \noindent{\bf Arguments:}
6013 \vspace{0.3cm}
6014 \begin{tabular}{|c|c|p{7cm}|}
6015 \hline
6016 {\bf type} & {\bf name} & {\bf description} \\ \hline
6017 {\tt host\_cpu record } & args & All constructor arguments \\ \hline
6019 \end{tabular}
6021 \vspace{0.3cm}
6023 \noindent {\bf Return Type:}
6024 {\tt
6025 host\_cpu ref
6029 reference to the newly created object
6030 \vspace{0.3cm}
6031 \vspace{0.3cm}
6032 \vspace{0.3cm}
6033 \subsubsection{RPC name:~destroy}
6035 {\bf Overview:}
6036 Destroy the specified host\_cpu instance.
6038 \noindent {\bf Signature:}
6039 \begin{verbatim} void destroy (session_id s, host_cpu ref self)\end{verbatim}
6042 \noindent{\bf Arguments:}
6045 \vspace{0.3cm}
6046 \begin{tabular}{|c|c|p{7cm}|}
6047 \hline
6048 {\bf type} & {\bf name} & {\bf description} \\ \hline
6049 {\tt host\_cpu ref } & self & reference to the object \\ \hline
6051 \end{tabular}
6053 \vspace{0.3cm}
6055 \noindent {\bf Return Type:}
6056 {\tt
6057 void
6062 \vspace{0.3cm}
6063 \vspace{0.3cm}
6064 \vspace{0.3cm}
6065 \subsubsection{RPC name:~get\_by\_uuid}
6067 {\bf Overview:}
6068 Get a reference to the host\_cpu instance with the specified UUID.
6070 \noindent {\bf Signature:}
6071 \begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6074 \noindent{\bf Arguments:}
6077 \vspace{0.3cm}
6078 \begin{tabular}{|c|c|p{7cm}|}
6079 \hline
6080 {\bf type} & {\bf name} & {\bf description} \\ \hline
6081 {\tt string } & uuid & UUID of object to return \\ \hline
6083 \end{tabular}
6085 \vspace{0.3cm}
6087 \noindent {\bf Return Type:}
6088 {\tt
6089 host\_cpu ref
6093 reference to the object
6094 \vspace{0.3cm}
6095 \vspace{0.3cm}
6096 \vspace{0.3cm}
6097 \subsubsection{RPC name:~get\_record}
6099 {\bf Overview:}
6100 Get a record containing the current state of the given host\_cpu.
6102 \noindent {\bf Signature:}
6103 \begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
6106 \noindent{\bf Arguments:}
6109 \vspace{0.3cm}
6110 \begin{tabular}{|c|c|p{7cm}|}
6111 \hline
6112 {\bf type} & {\bf name} & {\bf description} \\ \hline
6113 {\tt host\_cpu ref } & self & reference to the object \\ \hline
6115 \end{tabular}
6117 \vspace{0.3cm}
6119 \noindent {\bf Return Type:}
6120 {\tt
6121 host\_cpu record
6125 all fields from the object
6126 \vspace{0.3cm}
6127 \vspace{0.3cm}
6128 \vspace{0.3cm}
6130 \vspace{1cm}
6131 \newpage
6132 \section{Class: network}
6133 \subsection{Fields for class: network}
6134 \begin{longtable}{|lllp{0.38\textwidth}|}
6135 \hline
6136 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
6137 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
6138 virtual network.}} \\
6139 \hline
6140 Quals & Field & Type & Description \\
6141 \hline
6142 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6143 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
6144 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
6145 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
6146 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
6147 $\mathit{RW}$ & {\tt default\_gateway} & string & default gateway IP address. Used for auto-configuring guests with fixed IP setting \\
6148 $\mathit{RW}$ & {\tt default\_netmask} & string & default netmask. Used for auto-configuring guests with fixed IP setting \\
6149 \hline
6150 \end{longtable}
6151 \subsection{Additional RPCs associated with class: network}
6152 \subsubsection{RPC name:~get\_all}
6154 {\bf Overview:}
6155 Return a list of all the networks known to the system
6157 \noindent {\bf Signature:}
6158 \begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
6161 \vspace{0.3cm}
6163 \noindent {\bf Return Type:}
6164 {\tt
6165 (network ref) Set
6169 A list of all the IDs of all the networks
6170 \vspace{0.3cm}
6171 \vspace{0.3cm}
6172 \vspace{0.3cm}
6173 \subsubsection{RPC name:~get\_uuid}
6175 {\bf Overview:}
6176 Get the uuid field of the given network.
6178 \noindent {\bf Signature:}
6179 \begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
6182 \noindent{\bf Arguments:}
6185 \vspace{0.3cm}
6186 \begin{tabular}{|c|c|p{7cm}|}
6187 \hline
6188 {\bf type} & {\bf name} & {\bf description} \\ \hline
6189 {\tt network ref } & self & reference to the object \\ \hline
6191 \end{tabular}
6193 \vspace{0.3cm}
6195 \noindent {\bf Return Type:}
6196 {\tt
6197 string
6201 value of the field
6202 \vspace{0.3cm}
6203 \vspace{0.3cm}
6204 \vspace{0.3cm}
6205 \subsubsection{RPC name:~get\_name\_label}
6207 {\bf Overview:}
6208 Get the name/label field of the given network.
6210 \noindent {\bf Signature:}
6211 \begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
6214 \noindent{\bf Arguments:}
6217 \vspace{0.3cm}
6218 \begin{tabular}{|c|c|p{7cm}|}
6219 \hline
6220 {\bf type} & {\bf name} & {\bf description} \\ \hline
6221 {\tt network ref } & self & reference to the object \\ \hline
6223 \end{tabular}
6225 \vspace{0.3cm}
6227 \noindent {\bf Return Type:}
6228 {\tt
6229 string
6233 value of the field
6234 \vspace{0.3cm}
6235 \vspace{0.3cm}
6236 \vspace{0.3cm}
6237 \subsubsection{RPC name:~set\_name\_label}
6239 {\bf Overview:}
6240 Set the name/label field of the given network.
6242 \noindent {\bf Signature:}
6243 \begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
6246 \noindent{\bf Arguments:}
6249 \vspace{0.3cm}
6250 \begin{tabular}{|c|c|p{7cm}|}
6251 \hline
6252 {\bf type} & {\bf name} & {\bf description} \\ \hline
6253 {\tt network ref } & self & reference to the object \\ \hline
6255 {\tt string } & value & New value to set \\ \hline
6257 \end{tabular}
6259 \vspace{0.3cm}
6261 \noindent {\bf Return Type:}
6262 {\tt
6263 void
6268 \vspace{0.3cm}
6269 \vspace{0.3cm}
6270 \vspace{0.3cm}
6271 \subsubsection{RPC name:~get\_name\_description}
6273 {\bf Overview:}
6274 Get the name/description field of the given network.
6276 \noindent {\bf Signature:}
6277 \begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
6280 \noindent{\bf Arguments:}
6283 \vspace{0.3cm}
6284 \begin{tabular}{|c|c|p{7cm}|}
6285 \hline
6286 {\bf type} & {\bf name} & {\bf description} \\ \hline
6287 {\tt network ref } & self & reference to the object \\ \hline
6289 \end{tabular}
6291 \vspace{0.3cm}
6293 \noindent {\bf Return Type:}
6294 {\tt
6295 string
6299 value of the field
6300 \vspace{0.3cm}
6301 \vspace{0.3cm}
6302 \vspace{0.3cm}
6303 \subsubsection{RPC name:~set\_name\_description}
6305 {\bf Overview:}
6306 Set the name/description field of the given network.
6308 \noindent {\bf Signature:}
6309 \begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
6312 \noindent{\bf Arguments:}
6315 \vspace{0.3cm}
6316 \begin{tabular}{|c|c|p{7cm}|}
6317 \hline
6318 {\bf type} & {\bf name} & {\bf description} \\ \hline
6319 {\tt network ref } & self & reference to the object \\ \hline
6321 {\tt string } & value & New value to set \\ \hline
6323 \end{tabular}
6325 \vspace{0.3cm}
6327 \noindent {\bf Return Type:}
6328 {\tt
6329 void
6334 \vspace{0.3cm}
6335 \vspace{0.3cm}
6336 \vspace{0.3cm}
6337 \subsubsection{RPC name:~get\_VIFs}
6339 {\bf Overview:}
6340 Get the VIFs field of the given network.
6342 \noindent {\bf Signature:}
6343 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
6346 \noindent{\bf Arguments:}
6349 \vspace{0.3cm}
6350 \begin{tabular}{|c|c|p{7cm}|}
6351 \hline
6352 {\bf type} & {\bf name} & {\bf description} \\ \hline
6353 {\tt network ref } & self & reference to the object \\ \hline
6355 \end{tabular}
6357 \vspace{0.3cm}
6359 \noindent {\bf Return Type:}
6360 {\tt
6361 (VIF ref) Set
6365 value of the field
6366 \vspace{0.3cm}
6367 \vspace{0.3cm}
6368 \vspace{0.3cm}
6369 \subsubsection{RPC name:~get\_PIFs}
6371 {\bf Overview:}
6372 Get the PIFs field of the given network.
6374 \noindent {\bf Signature:}
6375 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
6378 \noindent{\bf Arguments:}
6381 \vspace{0.3cm}
6382 \begin{tabular}{|c|c|p{7cm}|}
6383 \hline
6384 {\bf type} & {\bf name} & {\bf description} \\ \hline
6385 {\tt network ref } & self & reference to the object \\ \hline
6387 \end{tabular}
6389 \vspace{0.3cm}
6391 \noindent {\bf Return Type:}
6392 {\tt
6393 (PIF ref) Set
6397 value of the field
6398 \vspace{0.3cm}
6399 \vspace{0.3cm}
6400 \vspace{0.3cm}
6401 \subsubsection{RPC name:~get\_default\_gateway}
6403 {\bf Overview:}
6404 Get the default\_gateway field of the given network.
6406 \noindent {\bf Signature:}
6407 \begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
6410 \noindent{\bf Arguments:}
6413 \vspace{0.3cm}
6414 \begin{tabular}{|c|c|p{7cm}|}
6415 \hline
6416 {\bf type} & {\bf name} & {\bf description} \\ \hline
6417 {\tt network ref } & self & reference to the object \\ \hline
6419 \end{tabular}
6421 \vspace{0.3cm}
6423 \noindent {\bf Return Type:}
6424 {\tt
6425 string
6429 value of the field
6430 \vspace{0.3cm}
6431 \vspace{0.3cm}
6432 \vspace{0.3cm}
6433 \subsubsection{RPC name:~set\_default\_gateway}
6435 {\bf Overview:}
6436 Set the default\_gateway field of the given network.
6438 \noindent {\bf Signature:}
6439 \begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
6442 \noindent{\bf Arguments:}
6445 \vspace{0.3cm}
6446 \begin{tabular}{|c|c|p{7cm}|}
6447 \hline
6448 {\bf type} & {\bf name} & {\bf description} \\ \hline
6449 {\tt network ref } & self & reference to the object \\ \hline
6451 {\tt string } & value & New value to set \\ \hline
6453 \end{tabular}
6455 \vspace{0.3cm}
6457 \noindent {\bf Return Type:}
6458 {\tt
6459 void
6464 \vspace{0.3cm}
6465 \vspace{0.3cm}
6466 \vspace{0.3cm}
6467 \subsubsection{RPC name:~get\_default\_netmask}
6469 {\bf Overview:}
6470 Get the default\_netmask field of the given network.
6472 \noindent {\bf Signature:}
6473 \begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
6476 \noindent{\bf Arguments:}
6479 \vspace{0.3cm}
6480 \begin{tabular}{|c|c|p{7cm}|}
6481 \hline
6482 {\bf type} & {\bf name} & {\bf description} \\ \hline
6483 {\tt network ref } & self & reference to the object \\ \hline
6485 \end{tabular}
6487 \vspace{0.3cm}
6489 \noindent {\bf Return Type:}
6490 {\tt
6491 string
6495 value of the field
6496 \vspace{0.3cm}
6497 \vspace{0.3cm}
6498 \vspace{0.3cm}
6499 \subsubsection{RPC name:~set\_default\_netmask}
6501 {\bf Overview:}
6502 Set the default\_netmask field of the given network.
6504 \noindent {\bf Signature:}
6505 \begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
6508 \noindent{\bf Arguments:}
6511 \vspace{0.3cm}
6512 \begin{tabular}{|c|c|p{7cm}|}
6513 \hline
6514 {\bf type} & {\bf name} & {\bf description} \\ \hline
6515 {\tt network ref } & self & reference to the object \\ \hline
6517 {\tt string } & value & New value to set \\ \hline
6519 \end{tabular}
6521 \vspace{0.3cm}
6523 \noindent {\bf Return Type:}
6524 {\tt
6525 void
6530 \vspace{0.3cm}
6531 \vspace{0.3cm}
6532 \vspace{0.3cm}
6533 \subsubsection{RPC name:~create}
6535 {\bf Overview:}
6536 Create a new network instance, and return its handle.
6538 \noindent {\bf Signature:}
6539 \begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
6542 \noindent{\bf Arguments:}
6545 \vspace{0.3cm}
6546 \begin{tabular}{|c|c|p{7cm}|}
6547 \hline
6548 {\bf type} & {\bf name} & {\bf description} \\ \hline
6549 {\tt network record } & args & All constructor arguments \\ \hline
6551 \end{tabular}
6553 \vspace{0.3cm}
6555 \noindent {\bf Return Type:}
6556 {\tt
6557 network ref
6561 reference to the newly created object
6562 \vspace{0.3cm}
6563 \vspace{0.3cm}
6564 \vspace{0.3cm}
6565 \subsubsection{RPC name:~destroy}
6567 {\bf Overview:}
6568 Destroy the specified network instance.
6570 \noindent {\bf Signature:}
6571 \begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
6574 \noindent{\bf Arguments:}
6577 \vspace{0.3cm}
6578 \begin{tabular}{|c|c|p{7cm}|}
6579 \hline
6580 {\bf type} & {\bf name} & {\bf description} \\ \hline
6581 {\tt network ref } & self & reference to the object \\ \hline
6583 \end{tabular}
6585 \vspace{0.3cm}
6587 \noindent {\bf Return Type:}
6588 {\tt
6589 void
6594 \vspace{0.3cm}
6595 \vspace{0.3cm}
6596 \vspace{0.3cm}
6597 \subsubsection{RPC name:~get\_by\_uuid}
6599 {\bf Overview:}
6600 Get a reference to the network instance with the specified UUID.
6602 \noindent {\bf Signature:}
6603 \begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6606 \noindent{\bf Arguments:}
6609 \vspace{0.3cm}
6610 \begin{tabular}{|c|c|p{7cm}|}
6611 \hline
6612 {\bf type} & {\bf name} & {\bf description} \\ \hline
6613 {\tt string } & uuid & UUID of object to return \\ \hline
6615 \end{tabular}
6617 \vspace{0.3cm}
6619 \noindent {\bf Return Type:}
6620 {\tt
6621 network ref
6625 reference to the object
6626 \vspace{0.3cm}
6627 \vspace{0.3cm}
6628 \vspace{0.3cm}
6629 \subsubsection{RPC name:~get\_record}
6631 {\bf Overview:}
6632 Get a record containing the current state of the given network.
6634 \noindent {\bf Signature:}
6635 \begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
6638 \noindent{\bf Arguments:}
6641 \vspace{0.3cm}
6642 \begin{tabular}{|c|c|p{7cm}|}
6643 \hline
6644 {\bf type} & {\bf name} & {\bf description} \\ \hline
6645 {\tt network ref } & self & reference to the object \\ \hline
6647 \end{tabular}
6649 \vspace{0.3cm}
6651 \noindent {\bf Return Type:}
6652 {\tt
6653 network record
6657 all fields from the object
6658 \vspace{0.3cm}
6659 \vspace{0.3cm}
6660 \vspace{0.3cm}
6661 \subsubsection{RPC name:~get\_by\_name\_label}
6663 {\bf Overview:}
6664 Get all the network instances with the given label.
6666 \noindent {\bf Signature:}
6667 \begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
6670 \noindent{\bf Arguments:}
6673 \vspace{0.3cm}
6674 \begin{tabular}{|c|c|p{7cm}|}
6675 \hline
6676 {\bf type} & {\bf name} & {\bf description} \\ \hline
6677 {\tt string } & label & label of object to return \\ \hline
6679 \end{tabular}
6681 \vspace{0.3cm}
6683 \noindent {\bf Return Type:}
6684 {\tt
6685 (network ref) Set
6689 references to objects with match names
6690 \vspace{0.3cm}
6691 \vspace{0.3cm}
6692 \vspace{0.3cm}
6694 \vspace{1cm}
6695 \newpage
6696 \section{Class: VIF}
6697 \subsection{Fields for class: VIF}
6698 \begin{longtable}{|lllp{0.38\textwidth}|}
6699 \hline
6700 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
6701 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
6702 virtual network interface.}} \\
6703 \hline
6704 Quals & Field & Type & Description \\
6705 \hline
6706 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6707 $\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
6708 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
6709 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
6710 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
6711 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
6712 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
6713 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
6714 \hline
6715 \end{longtable}
6716 \subsection{Additional RPCs associated with class: VIF}
6717 \subsubsection{RPC name:~get\_uuid}
6719 {\bf Overview:}
6720 Get the uuid field of the given VIF.
6722 \noindent {\bf Signature:}
6723 \begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
6726 \noindent{\bf Arguments:}
6729 \vspace{0.3cm}
6730 \begin{tabular}{|c|c|p{7cm}|}
6731 \hline
6732 {\bf type} & {\bf name} & {\bf description} \\ \hline
6733 {\tt VIF ref } & self & reference to the object \\ \hline
6735 \end{tabular}
6737 \vspace{0.3cm}
6739 \noindent {\bf Return Type:}
6740 {\tt
6741 string
6745 value of the field
6746 \vspace{0.3cm}
6747 \vspace{0.3cm}
6748 \vspace{0.3cm}
6749 \subsubsection{RPC name:~get\_device}
6751 {\bf Overview:}
6752 Get the device field of the given VIF.
6754 \noindent {\bf Signature:}
6755 \begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
6758 \noindent{\bf Arguments:}
6761 \vspace{0.3cm}
6762 \begin{tabular}{|c|c|p{7cm}|}
6763 \hline
6764 {\bf type} & {\bf name} & {\bf description} \\ \hline
6765 {\tt VIF ref } & self & reference to the object \\ \hline
6767 \end{tabular}
6769 \vspace{0.3cm}
6771 \noindent {\bf Return Type:}
6772 {\tt
6773 string
6777 value of the field
6778 \vspace{0.3cm}
6779 \vspace{0.3cm}
6780 \vspace{0.3cm}
6781 \subsubsection{RPC name:~set\_device}
6783 {\bf Overview:}
6784 Set the device field of the given VIF.
6786 \noindent {\bf Signature:}
6787 \begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
6790 \noindent{\bf Arguments:}
6793 \vspace{0.3cm}
6794 \begin{tabular}{|c|c|p{7cm}|}
6795 \hline
6796 {\bf type} & {\bf name} & {\bf description} \\ \hline
6797 {\tt VIF ref } & self & reference to the object \\ \hline
6799 {\tt string } & value & New value to set \\ \hline
6801 \end{tabular}
6803 \vspace{0.3cm}
6805 \noindent {\bf Return Type:}
6806 {\tt
6807 void
6812 \vspace{0.3cm}
6813 \vspace{0.3cm}
6814 \vspace{0.3cm}
6815 \subsubsection{RPC name:~get\_network}
6817 {\bf Overview:}
6818 Get the network field of the given VIF.
6820 \noindent {\bf Signature:}
6821 \begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
6824 \noindent{\bf Arguments:}
6827 \vspace{0.3cm}
6828 \begin{tabular}{|c|c|p{7cm}|}
6829 \hline
6830 {\bf type} & {\bf name} & {\bf description} \\ \hline
6831 {\tt VIF ref } & self & reference to the object \\ \hline
6833 \end{tabular}
6835 \vspace{0.3cm}
6837 \noindent {\bf Return Type:}
6838 {\tt
6839 network ref
6843 value of the field
6844 \vspace{0.3cm}
6845 \vspace{0.3cm}
6846 \vspace{0.3cm}
6847 \subsubsection{RPC name:~get\_VM}
6849 {\bf Overview:}
6850 Get the VM field of the given VIF.
6852 \noindent {\bf Signature:}
6853 \begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
6856 \noindent{\bf Arguments:}
6859 \vspace{0.3cm}
6860 \begin{tabular}{|c|c|p{7cm}|}
6861 \hline
6862 {\bf type} & {\bf name} & {\bf description} \\ \hline
6863 {\tt VIF ref } & self & reference to the object \\ \hline
6865 \end{tabular}
6867 \vspace{0.3cm}
6869 \noindent {\bf Return Type:}
6870 {\tt
6871 VM ref
6875 value of the field
6876 \vspace{0.3cm}
6877 \vspace{0.3cm}
6878 \vspace{0.3cm}
6879 \subsubsection{RPC name:~get\_MAC}
6881 {\bf Overview:}
6882 Get the MAC field of the given VIF.
6884 \noindent {\bf Signature:}
6885 \begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
6888 \noindent{\bf Arguments:}
6891 \vspace{0.3cm}
6892 \begin{tabular}{|c|c|p{7cm}|}
6893 \hline
6894 {\bf type} & {\bf name} & {\bf description} \\ \hline
6895 {\tt VIF ref } & self & reference to the object \\ \hline
6897 \end{tabular}
6899 \vspace{0.3cm}
6901 \noindent {\bf Return Type:}
6902 {\tt
6903 string
6907 value of the field
6908 \vspace{0.3cm}
6909 \vspace{0.3cm}
6910 \vspace{0.3cm}
6911 \subsubsection{RPC name:~set\_MAC}
6913 {\bf Overview:}
6914 Set the MAC field of the given VIF.
6916 \noindent {\bf Signature:}
6917 \begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
6920 \noindent{\bf Arguments:}
6923 \vspace{0.3cm}
6924 \begin{tabular}{|c|c|p{7cm}|}
6925 \hline
6926 {\bf type} & {\bf name} & {\bf description} \\ \hline
6927 {\tt VIF ref } & self & reference to the object \\ \hline
6929 {\tt string } & value & New value to set \\ \hline
6931 \end{tabular}
6933 \vspace{0.3cm}
6935 \noindent {\bf Return Type:}
6936 {\tt
6937 void
6942 \vspace{0.3cm}
6943 \vspace{0.3cm}
6944 \vspace{0.3cm}
6945 \subsubsection{RPC name:~get\_MTU}
6947 {\bf Overview:}
6948 Get the MTU field of the given VIF.
6950 \noindent {\bf Signature:}
6951 \begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
6954 \noindent{\bf Arguments:}
6957 \vspace{0.3cm}
6958 \begin{tabular}{|c|c|p{7cm}|}
6959 \hline
6960 {\bf type} & {\bf name} & {\bf description} \\ \hline
6961 {\tt VIF ref } & self & reference to the object \\ \hline
6963 \end{tabular}
6965 \vspace{0.3cm}
6967 \noindent {\bf Return Type:}
6968 {\tt
6969 int
6973 value of the field
6974 \vspace{0.3cm}
6975 \vspace{0.3cm}
6976 \vspace{0.3cm}
6977 \subsubsection{RPC name:~set\_MTU}
6979 {\bf Overview:}
6980 Set the MTU field of the given VIF.
6982 \noindent {\bf Signature:}
6983 \begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\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 VIF ref } & self & reference to the object \\ \hline
6995 {\tt int } & value & New value to set \\ \hline
6997 \end{tabular}
6999 \vspace{0.3cm}
7001 \noindent {\bf Return Type:}
7002 {\tt
7003 void
7008 \vspace{0.3cm}
7009 \vspace{0.3cm}
7010 \vspace{0.3cm}
7011 \subsubsection{RPC name:~get\_io\_read\_kbs}
7013 {\bf Overview:}
7014 Get the io/read\_kbs field of the given VIF.
7016 \noindent {\bf Signature:}
7017 \begin{verbatim} float get_io_read_kbs (session_id s, VIF ref self)\end{verbatim}
7020 \noindent{\bf Arguments:}
7023 \vspace{0.3cm}
7024 \begin{tabular}{|c|c|p{7cm}|}
7025 \hline
7026 {\bf type} & {\bf name} & {\bf description} \\ \hline
7027 {\tt VIF ref } & self & reference to the object \\ \hline
7029 \end{tabular}
7031 \vspace{0.3cm}
7033 \noindent {\bf Return Type:}
7034 {\tt
7035 float
7039 value of the field
7040 \vspace{0.3cm}
7041 \vspace{0.3cm}
7042 \vspace{0.3cm}
7043 \subsubsection{RPC name:~get\_io\_write\_kbs}
7045 {\bf Overview:}
7046 Get the io/write\_kbs field of the given VIF.
7048 \noindent {\bf Signature:}
7049 \begin{verbatim} float get_io_write_kbs (session_id s, VIF ref self)\end{verbatim}
7052 \noindent{\bf Arguments:}
7055 \vspace{0.3cm}
7056 \begin{tabular}{|c|c|p{7cm}|}
7057 \hline
7058 {\bf type} & {\bf name} & {\bf description} \\ \hline
7059 {\tt VIF ref } & self & reference to the object \\ \hline
7061 \end{tabular}
7063 \vspace{0.3cm}
7065 \noindent {\bf Return Type:}
7066 {\tt
7067 float
7071 value of the field
7072 \vspace{0.3cm}
7073 \vspace{0.3cm}
7074 \vspace{0.3cm}
7075 \subsubsection{RPC name:~create}
7077 {\bf Overview:}
7078 Create a new VIF instance, and return its handle.
7080 \noindent {\bf Signature:}
7081 \begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
7084 \noindent{\bf Arguments:}
7087 \vspace{0.3cm}
7088 \begin{tabular}{|c|c|p{7cm}|}
7089 \hline
7090 {\bf type} & {\bf name} & {\bf description} \\ \hline
7091 {\tt VIF record } & args & All constructor arguments \\ \hline
7093 \end{tabular}
7095 \vspace{0.3cm}
7097 \noindent {\bf Return Type:}
7098 {\tt
7099 VIF ref
7103 reference to the newly created object
7104 \vspace{0.3cm}
7105 \vspace{0.3cm}
7106 \vspace{0.3cm}
7107 \subsubsection{RPC name:~destroy}
7109 {\bf Overview:}
7110 Destroy the specified VIF instance.
7112 \noindent {\bf Signature:}
7113 \begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
7116 \noindent{\bf Arguments:}
7119 \vspace{0.3cm}
7120 \begin{tabular}{|c|c|p{7cm}|}
7121 \hline
7122 {\bf type} & {\bf name} & {\bf description} \\ \hline
7123 {\tt VIF ref } & self & reference to the object \\ \hline
7125 \end{tabular}
7127 \vspace{0.3cm}
7129 \noindent {\bf Return Type:}
7130 {\tt
7131 void
7136 \vspace{0.3cm}
7137 \vspace{0.3cm}
7138 \vspace{0.3cm}
7139 \subsubsection{RPC name:~get\_by\_uuid}
7141 {\bf Overview:}
7142 Get a reference to the VIF instance with the specified UUID.
7144 \noindent {\bf Signature:}
7145 \begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7148 \noindent{\bf Arguments:}
7151 \vspace{0.3cm}
7152 \begin{tabular}{|c|c|p{7cm}|}
7153 \hline
7154 {\bf type} & {\bf name} & {\bf description} \\ \hline
7155 {\tt string } & uuid & UUID of object to return \\ \hline
7157 \end{tabular}
7159 \vspace{0.3cm}
7161 \noindent {\bf Return Type:}
7162 {\tt
7163 VIF ref
7167 reference to the object
7168 \vspace{0.3cm}
7169 \vspace{0.3cm}
7170 \vspace{0.3cm}
7171 \subsubsection{RPC name:~get\_record}
7173 {\bf Overview:}
7174 Get a record containing the current state of the given VIF.
7176 \noindent {\bf Signature:}
7177 \begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
7180 \noindent{\bf Arguments:}
7183 \vspace{0.3cm}
7184 \begin{tabular}{|c|c|p{7cm}|}
7185 \hline
7186 {\bf type} & {\bf name} & {\bf description} \\ \hline
7187 {\tt VIF ref } & self & reference to the object \\ \hline
7189 \end{tabular}
7191 \vspace{0.3cm}
7193 \noindent {\bf Return Type:}
7194 {\tt
7195 VIF record
7199 all fields from the object
7200 \vspace{0.3cm}
7201 \vspace{0.3cm}
7202 \vspace{0.3cm}
7204 \vspace{1cm}
7205 \newpage
7206 \section{Class: PIF}
7207 \subsection{Fields for class: PIF}
7208 \begin{longtable}{|lllp{0.38\textwidth}|}
7209 \hline
7210 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
7211 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7212 physical network interface (note separate VLANs are represented as several
7213 PIFs).}} \\
7214 \hline
7215 Quals & Field & Type & Description \\
7216 \hline
7217 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7218 $\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
7219 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
7220 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
7221 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
7222 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
7223 $\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
7224 $\mathit{RO}_\mathit{ins}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF. \\
7225 \hline
7226 \end{longtable}
7227 \subsection{Additional RPCs associated with class: PIF}
7228 \subsubsection{RPC name:~create\_VLAN}
7230 {\bf Overview:}
7231 Create a VLAN interface from an existing physical interface.
7233 \noindent {\bf Signature:}
7234 \begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
7237 \noindent{\bf Arguments:}
7240 \vspace{0.3cm}
7241 \begin{tabular}{|c|c|p{7cm}|}
7242 \hline
7243 {\bf type} & {\bf name} & {\bf description} \\ \hline
7244 {\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
7246 {\tt network ref } & network & network to which this interface should be connected \\ \hline
7248 {\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
7250 {\tt int } & VLAN & VLAN tag for the new interface \\ \hline
7252 \end{tabular}
7254 \vspace{0.3cm}
7256 \noindent {\bf Return Type:}
7257 {\tt
7258 PIF ref
7262 The reference of the created PIF object
7263 \vspace{0.3cm}
7265 \noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
7267 \vspace{0.6cm}
7268 \subsubsection{RPC name:~destroy}
7270 {\bf Overview:}
7271 Destroy the interface (provided it is a synthetic interface like a VLAN;
7272 fail if it is a physical interface).
7274 \noindent {\bf Signature:}
7275 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
7278 \noindent{\bf Arguments:}
7281 \vspace{0.3cm}
7282 \begin{tabular}{|c|c|p{7cm}|}
7283 \hline
7284 {\bf type} & {\bf name} & {\bf description} \\ \hline
7285 {\tt PIF ref } & self & the PIF object to destroy \\ \hline
7287 \end{tabular}
7289 \vspace{0.3cm}
7291 \noindent {\bf Return Type:}
7292 {\tt
7293 void
7298 \vspace{0.3cm}
7300 \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
7302 \vspace{0.6cm}
7303 \subsubsection{RPC name:~get\_uuid}
7305 {\bf Overview:}
7306 Get the uuid field of the given PIF.
7308 \noindent {\bf Signature:}
7309 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
7312 \noindent{\bf Arguments:}
7315 \vspace{0.3cm}
7316 \begin{tabular}{|c|c|p{7cm}|}
7317 \hline
7318 {\bf type} & {\bf name} & {\bf description} \\ \hline
7319 {\tt PIF ref } & self & reference to the object \\ \hline
7321 \end{tabular}
7323 \vspace{0.3cm}
7325 \noindent {\bf Return Type:}
7326 {\tt
7327 string
7331 value of the field
7332 \vspace{0.3cm}
7333 \vspace{0.3cm}
7334 \vspace{0.3cm}
7335 \subsubsection{RPC name:~get\_device}
7337 {\bf Overview:}
7338 Get the device field of the given PIF.
7340 \noindent {\bf Signature:}
7341 \begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
7344 \noindent{\bf Arguments:}
7347 \vspace{0.3cm}
7348 \begin{tabular}{|c|c|p{7cm}|}
7349 \hline
7350 {\bf type} & {\bf name} & {\bf description} \\ \hline
7351 {\tt PIF ref } & self & reference to the object \\ \hline
7353 \end{tabular}
7355 \vspace{0.3cm}
7357 \noindent {\bf Return Type:}
7358 {\tt
7359 string
7363 value of the field
7364 \vspace{0.3cm}
7365 \vspace{0.3cm}
7366 \vspace{0.3cm}
7367 \subsubsection{RPC name:~set\_device}
7369 {\bf Overview:}
7370 Set the device field of the given PIF.
7372 \noindent {\bf Signature:}
7373 \begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
7376 \noindent{\bf Arguments:}
7379 \vspace{0.3cm}
7380 \begin{tabular}{|c|c|p{7cm}|}
7381 \hline
7382 {\bf type} & {\bf name} & {\bf description} \\ \hline
7383 {\tt PIF ref } & self & reference to the object \\ \hline
7385 {\tt string } & value & New value to set \\ \hline
7387 \end{tabular}
7389 \vspace{0.3cm}
7391 \noindent {\bf Return Type:}
7392 {\tt
7393 void
7398 \vspace{0.3cm}
7399 \vspace{0.3cm}
7400 \vspace{0.3cm}
7401 \subsubsection{RPC name:~get\_network}
7403 {\bf Overview:}
7404 Get the network field of the given PIF.
7406 \noindent {\bf Signature:}
7407 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
7410 \noindent{\bf Arguments:}
7413 \vspace{0.3cm}
7414 \begin{tabular}{|c|c|p{7cm}|}
7415 \hline
7416 {\bf type} & {\bf name} & {\bf description} \\ \hline
7417 {\tt PIF ref } & self & reference to the object \\ \hline
7419 \end{tabular}
7421 \vspace{0.3cm}
7423 \noindent {\bf Return Type:}
7424 {\tt
7425 network ref
7429 value of the field
7430 \vspace{0.3cm}
7431 \vspace{0.3cm}
7432 \vspace{0.3cm}
7433 \subsubsection{RPC name:~get\_host}
7435 {\bf Overview:}
7436 Get the host field of the given PIF.
7438 \noindent {\bf Signature:}
7439 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
7442 \noindent{\bf Arguments:}
7445 \vspace{0.3cm}
7446 \begin{tabular}{|c|c|p{7cm}|}
7447 \hline
7448 {\bf type} & {\bf name} & {\bf description} \\ \hline
7449 {\tt PIF ref } & self & reference to the object \\ \hline
7451 \end{tabular}
7453 \vspace{0.3cm}
7455 \noindent {\bf Return Type:}
7456 {\tt
7457 host ref
7461 value of the field
7462 \vspace{0.3cm}
7463 \vspace{0.3cm}
7464 \vspace{0.3cm}
7465 \subsubsection{RPC name:~get\_MAC}
7467 {\bf Overview:}
7468 Get the MAC field of the given PIF.
7470 \noindent {\bf Signature:}
7471 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
7474 \noindent{\bf Arguments:}
7477 \vspace{0.3cm}
7478 \begin{tabular}{|c|c|p{7cm}|}
7479 \hline
7480 {\bf type} & {\bf name} & {\bf description} \\ \hline
7481 {\tt PIF ref } & self & reference to the object \\ \hline
7483 \end{tabular}
7485 \vspace{0.3cm}
7487 \noindent {\bf Return Type:}
7488 {\tt
7489 string
7493 value of the field
7494 \vspace{0.3cm}
7495 \vspace{0.3cm}
7496 \vspace{0.3cm}
7497 \subsubsection{RPC name:~set\_MAC}
7499 {\bf Overview:}
7500 Set the MAC field of the given PIF.
7502 \noindent {\bf Signature:}
7503 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
7506 \noindent{\bf Arguments:}
7509 \vspace{0.3cm}
7510 \begin{tabular}{|c|c|p{7cm}|}
7511 \hline
7512 {\bf type} & {\bf name} & {\bf description} \\ \hline
7513 {\tt PIF ref } & self & reference to the object \\ \hline
7515 {\tt string } & value & New value to set \\ \hline
7517 \end{tabular}
7519 \vspace{0.3cm}
7521 \noindent {\bf Return Type:}
7522 {\tt
7523 void
7528 \vspace{0.3cm}
7529 \vspace{0.3cm}
7530 \vspace{0.3cm}
7531 \subsubsection{RPC name:~get\_MTU}
7533 {\bf Overview:}
7534 Get the MTU field of the given PIF.
7536 \noindent {\bf Signature:}
7537 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
7540 \noindent{\bf Arguments:}
7543 \vspace{0.3cm}
7544 \begin{tabular}{|c|c|p{7cm}|}
7545 \hline
7546 {\bf type} & {\bf name} & {\bf description} \\ \hline
7547 {\tt PIF ref } & self & reference to the object \\ \hline
7549 \end{tabular}
7551 \vspace{0.3cm}
7553 \noindent {\bf Return Type:}
7554 {\tt
7555 int
7559 value of the field
7560 \vspace{0.3cm}
7561 \vspace{0.3cm}
7562 \vspace{0.3cm}
7563 \subsubsection{RPC name:~set\_MTU}
7565 {\bf Overview:}
7566 Set the MTU field of the given PIF.
7568 \noindent {\bf Signature:}
7569 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
7572 \noindent{\bf Arguments:}
7575 \vspace{0.3cm}
7576 \begin{tabular}{|c|c|p{7cm}|}
7577 \hline
7578 {\bf type} & {\bf name} & {\bf description} \\ \hline
7579 {\tt PIF ref } & self & reference to the object \\ \hline
7581 {\tt int } & value & New value to set \\ \hline
7583 \end{tabular}
7585 \vspace{0.3cm}
7587 \noindent {\bf Return Type:}
7588 {\tt
7589 void
7594 \vspace{0.3cm}
7595 \vspace{0.3cm}
7596 \vspace{0.3cm}
7597 \subsubsection{RPC name:~get\_VLAN}
7599 {\bf Overview:}
7600 Get the VLAN field of the given PIF.
7602 \noindent {\bf Signature:}
7603 \begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
7606 \noindent{\bf Arguments:}
7609 \vspace{0.3cm}
7610 \begin{tabular}{|c|c|p{7cm}|}
7611 \hline
7612 {\bf type} & {\bf name} & {\bf description} \\ \hline
7613 {\tt PIF ref } & self & reference to the object \\ \hline
7615 \end{tabular}
7617 \vspace{0.3cm}
7619 \noindent {\bf Return Type:}
7620 {\tt
7621 int
7625 value of the field
7626 \vspace{0.3cm}
7627 \vspace{0.3cm}
7628 \vspace{0.3cm}
7629 \subsubsection{RPC name:~set\_VLAN}
7631 {\bf Overview:}
7632 Set the VLAN field of the given PIF.
7634 \noindent {\bf Signature:}
7635 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
7638 \noindent{\bf Arguments:}
7641 \vspace{0.3cm}
7642 \begin{tabular}{|c|c|p{7cm}|}
7643 \hline
7644 {\bf type} & {\bf name} & {\bf description} \\ \hline
7645 {\tt PIF ref } & self & reference to the object \\ \hline
7647 {\tt int } & value & New value to set \\ \hline
7649 \end{tabular}
7651 \vspace{0.3cm}
7653 \noindent {\bf Return Type:}
7654 {\tt
7655 void
7660 \vspace{0.3cm}
7661 \vspace{0.3cm}
7662 \vspace{0.3cm}
7663 \subsubsection{RPC name:~get\_metrics}
7665 {\bf Overview:}
7666 Get the metrics field of the given PIF.
7668 \noindent {\bf Signature:}
7669 \begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
7672 \noindent{\bf Arguments:}
7675 \vspace{0.3cm}
7676 \begin{tabular}{|c|c|p{7cm}|}
7677 \hline
7678 {\bf type} & {\bf name} & {\bf description} \\ \hline
7679 {\tt PIF ref } & self & reference to the object \\ \hline
7681 \end{tabular}
7683 \vspace{0.3cm}
7685 \noindent {\bf Return Type:}
7686 {\tt
7687 PIF\_metrics ref
7691 value of the field
7692 \vspace{0.3cm}
7693 \vspace{0.3cm}
7694 \vspace{0.3cm}
7695 \subsubsection{RPC name:~get\_by\_uuid}
7697 {\bf Overview:}
7698 Get a reference to the PIF instance with the specified UUID.
7700 \noindent {\bf Signature:}
7701 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7704 \noindent{\bf Arguments:}
7707 \vspace{0.3cm}
7708 \begin{tabular}{|c|c|p{7cm}|}
7709 \hline
7710 {\bf type} & {\bf name} & {\bf description} \\ \hline
7711 {\tt string } & uuid & UUID of object to return \\ \hline
7713 \end{tabular}
7715 \vspace{0.3cm}
7717 \noindent {\bf Return Type:}
7718 {\tt
7719 PIF ref
7723 reference to the object
7724 \vspace{0.3cm}
7725 \vspace{0.3cm}
7726 \vspace{0.3cm}
7727 \subsubsection{RPC name:~get\_record}
7729 {\bf Overview:}
7730 Get a record containing the current state of the given PIF.
7732 \noindent {\bf Signature:}
7733 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
7736 \noindent{\bf Arguments:}
7739 \vspace{0.3cm}
7740 \begin{tabular}{|c|c|p{7cm}|}
7741 \hline
7742 {\bf type} & {\bf name} & {\bf description} \\ \hline
7743 {\tt PIF ref } & self & reference to the object \\ \hline
7745 \end{tabular}
7747 \vspace{0.3cm}
7749 \noindent {\bf Return Type:}
7750 {\tt
7751 PIF record
7755 all fields from the object
7756 \vspace{0.3cm}
7757 \vspace{0.3cm}
7758 \vspace{0.3cm}
7760 \vspace{1cm}
7761 \newpage
7762 \section{Class: PIF\_metrics}
7763 \subsection{Fields for class: PIF\_metrics}
7764 \begin{longtable}{|lllp{0.38\textwidth}|}
7765 \hline
7766 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
7767 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
7768 The metrics associated with a physical network interface.}} \\
7769 \hline
7770 Quals & Field & Type & Description \\
7771 \hline
7772 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7773 $\mathit{RO}_\mathit{ins}$ & {\tt PIF} & PIF ref & PIF to which these metrics apply \\
7774 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
7775 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
7776 \hline
7777 \end{longtable}
7778 \subsection{Additional RPCs associated with class: PIF\_metrics}
7779 \subsubsection{RPC name:~get\_uuid}
7781 {\bf Overview:}
7782 Get the uuid field of the given PIF\_metrics.
7784 \noindent {\bf Signature:}
7785 \begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
7788 \noindent{\bf Arguments:}
7791 \vspace{0.3cm}
7792 \begin{tabular}{|c|c|p{7cm}|}
7793 \hline
7794 {\bf type} & {\bf name} & {\bf description} \\ \hline
7795 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
7797 \end{tabular}
7799 \vspace{0.3cm}
7801 \noindent {\bf Return Type:}
7802 {\tt
7803 string
7807 value of the field
7808 \vspace{0.3cm}
7809 \vspace{0.3cm}
7810 \vspace{0.3cm}
7811 \subsubsection{RPC name:~get\_PIF}
7813 {\bf Overview:}
7814 Get the PIF field of the given PIF\_metrics.
7816 \noindent {\bf Signature:}
7817 \begin{verbatim} (PIF ref) get_PIF (session_id s, PIF_metrics ref self)\end{verbatim}
7820 \noindent{\bf Arguments:}
7823 \vspace{0.3cm}
7824 \begin{tabular}{|c|c|p{7cm}|}
7825 \hline
7826 {\bf type} & {\bf name} & {\bf description} \\ \hline
7827 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
7829 \end{tabular}
7831 \vspace{0.3cm}
7833 \noindent {\bf Return Type:}
7834 {\tt
7835 PIF ref
7839 value of the field
7840 \vspace{0.3cm}
7841 \vspace{0.3cm}
7842 \vspace{0.3cm}
7843 \subsubsection{RPC name:~get\_io\_read\_kbs}
7845 {\bf Overview:}
7846 Get the io/read\_kbs field of the given PIF\_metrics.
7848 \noindent {\bf Signature:}
7849 \begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
7852 \noindent{\bf Arguments:}
7855 \vspace{0.3cm}
7856 \begin{tabular}{|c|c|p{7cm}|}
7857 \hline
7858 {\bf type} & {\bf name} & {\bf description} \\ \hline
7859 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
7861 \end{tabular}
7863 \vspace{0.3cm}
7865 \noindent {\bf Return Type:}
7866 {\tt
7867 float
7871 value of the field
7872 \vspace{0.3cm}
7873 \vspace{0.3cm}
7874 \vspace{0.3cm}
7875 \subsubsection{RPC name:~get\_io\_write\_kbs}
7877 {\bf Overview:}
7878 Get the io/write\_kbs field of the given PIF\_metrics.
7880 \noindent {\bf Signature:}
7881 \begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
7884 \noindent{\bf Arguments:}
7887 \vspace{0.3cm}
7888 \begin{tabular}{|c|c|p{7cm}|}
7889 \hline
7890 {\bf type} & {\bf name} & {\bf description} \\ \hline
7891 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
7893 \end{tabular}
7895 \vspace{0.3cm}
7897 \noindent {\bf Return Type:}
7898 {\tt
7899 float
7903 value of the field
7904 \vspace{0.3cm}
7905 \vspace{0.3cm}
7906 \vspace{0.3cm}
7907 \subsubsection{RPC name:~get\_by\_uuid}
7909 {\bf Overview:}
7910 Get a reference to the PIF\_metrics instance with the specified UUID.
7912 \noindent {\bf Signature:}
7913 \begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7916 \noindent{\bf Arguments:}
7919 \vspace{0.3cm}
7920 \begin{tabular}{|c|c|p{7cm}|}
7921 \hline
7922 {\bf type} & {\bf name} & {\bf description} \\ \hline
7923 {\tt string } & uuid & UUID of object to return \\ \hline
7925 \end{tabular}
7927 \vspace{0.3cm}
7929 \noindent {\bf Return Type:}
7930 {\tt
7931 PIF\_metrics ref
7935 reference to the object
7936 \vspace{0.3cm}
7937 \vspace{0.3cm}
7938 \vspace{0.3cm}
7939 \subsubsection{RPC name:~get\_record}
7941 {\bf Overview:}
7942 Get a record containing the current state of the given PIF\_metrics.
7944 \noindent {\bf Signature:}
7945 \begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
7948 \noindent{\bf Arguments:}
7951 \vspace{0.3cm}
7952 \begin{tabular}{|c|c|p{7cm}|}
7953 \hline
7954 {\bf type} & {\bf name} & {\bf description} \\ \hline
7955 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
7957 \end{tabular}
7959 \vspace{0.3cm}
7961 \noindent {\bf Return Type:}
7962 {\tt
7963 PIF\_metrics record
7967 all fields from the object
7968 \vspace{0.3cm}
7969 \vspace{0.3cm}
7970 \vspace{0.3cm}
7972 \vspace{1cm}
7973 \newpage
7974 \section{Class: SR}
7975 \subsection{Fields for class: SR}
7976 \begin{longtable}{|lllp{0.38\textwidth}|}
7977 \hline
7978 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
7979 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7980 storage repository.}} \\
7981 \hline
7982 Quals & Field & Type & Description \\
7983 \hline
7984 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7985 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7986 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7987 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
7988 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
7989 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
7990 $\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 \\
7991 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
7992 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
7993 $\mathit{RO}_\mathit{ins}$ & {\tt location} & string & a string that uniquely determines the location of the storage repository; the format of this string depends on the repository's type \\
7994 \hline
7995 \end{longtable}
7996 \subsection{Additional RPCs associated with class: SR}
7997 \subsubsection{RPC name:~clone}
7999 {\bf Overview:}
8000 Take an exact copy of the Storage Repository;
8001 the cloned storage repository has the same type as its parent
8003 \noindent {\bf Signature:}
8004 \begin{verbatim} (SR ref) clone (session_id s, SR ref sr, string loc, string name)\end{verbatim}
8007 \noindent{\bf Arguments:}
8010 \vspace{0.3cm}
8011 \begin{tabular}{|c|c|p{7cm}|}
8012 \hline
8013 {\bf type} & {\bf name} & {\bf description} \\ \hline
8014 {\tt SR ref } & sr & The Storage Repository to clone \\ \hline
8016 {\tt string } & loc & The location string that defines where the new storage repository will be located \\ \hline
8018 {\tt string } & name & The name of the new storage repository \\ \hline
8020 \end{tabular}
8022 \vspace{0.3cm}
8024 \noindent {\bf Return Type:}
8025 {\tt
8026 SR ref
8030 The ID of the newly created Storage Repository.
8031 \vspace{0.3cm}
8032 \vspace{0.3cm}
8033 \vspace{0.3cm}
8034 \subsubsection{RPC name:~get\_all}
8036 {\bf Overview:}
8037 Return a list of all the Storage Repositories known to the system
8039 \noindent {\bf Signature:}
8040 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
8043 \vspace{0.3cm}
8045 \noindent {\bf Return Type:}
8046 {\tt
8047 (SR ref) Set
8051 A list of all the IDs of all the Storage Repositories
8052 \vspace{0.3cm}
8053 \vspace{0.3cm}
8054 \vspace{0.3cm}
8055 \subsubsection{RPC name:~get\_uuid}
8057 {\bf Overview:}
8058 Get the uuid field of the given SR.
8060 \noindent {\bf Signature:}
8061 \begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
8064 \noindent{\bf Arguments:}
8067 \vspace{0.3cm}
8068 \begin{tabular}{|c|c|p{7cm}|}
8069 \hline
8070 {\bf type} & {\bf name} & {\bf description} \\ \hline
8071 {\tt SR ref } & self & reference to the object \\ \hline
8073 \end{tabular}
8075 \vspace{0.3cm}
8077 \noindent {\bf Return Type:}
8078 {\tt
8079 string
8083 value of the field
8084 \vspace{0.3cm}
8085 \vspace{0.3cm}
8086 \vspace{0.3cm}
8087 \subsubsection{RPC name:~get\_name\_label}
8089 {\bf Overview:}
8090 Get the name/label field of the given SR.
8092 \noindent {\bf Signature:}
8093 \begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
8096 \noindent{\bf Arguments:}
8099 \vspace{0.3cm}
8100 \begin{tabular}{|c|c|p{7cm}|}
8101 \hline
8102 {\bf type} & {\bf name} & {\bf description} \\ \hline
8103 {\tt SR ref } & self & reference to the object \\ \hline
8105 \end{tabular}
8107 \vspace{0.3cm}
8109 \noindent {\bf Return Type:}
8110 {\tt
8111 string
8115 value of the field
8116 \vspace{0.3cm}
8117 \vspace{0.3cm}
8118 \vspace{0.3cm}
8119 \subsubsection{RPC name:~set\_name\_label}
8121 {\bf Overview:}
8122 Set the name/label field of the given SR.
8124 \noindent {\bf Signature:}
8125 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
8128 \noindent{\bf Arguments:}
8131 \vspace{0.3cm}
8132 \begin{tabular}{|c|c|p{7cm}|}
8133 \hline
8134 {\bf type} & {\bf name} & {\bf description} \\ \hline
8135 {\tt SR ref } & self & reference to the object \\ \hline
8137 {\tt string } & value & New value to set \\ \hline
8139 \end{tabular}
8141 \vspace{0.3cm}
8143 \noindent {\bf Return Type:}
8144 {\tt
8145 void
8150 \vspace{0.3cm}
8151 \vspace{0.3cm}
8152 \vspace{0.3cm}
8153 \subsubsection{RPC name:~get\_name\_description}
8155 {\bf Overview:}
8156 Get the name/description field of the given SR.
8158 \noindent {\bf Signature:}
8159 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
8162 \noindent{\bf Arguments:}
8165 \vspace{0.3cm}
8166 \begin{tabular}{|c|c|p{7cm}|}
8167 \hline
8168 {\bf type} & {\bf name} & {\bf description} \\ \hline
8169 {\tt SR ref } & self & reference to the object \\ \hline
8171 \end{tabular}
8173 \vspace{0.3cm}
8175 \noindent {\bf Return Type:}
8176 {\tt
8177 string
8181 value of the field
8182 \vspace{0.3cm}
8183 \vspace{0.3cm}
8184 \vspace{0.3cm}
8185 \subsubsection{RPC name:~set\_name\_description}
8187 {\bf Overview:}
8188 Set the name/description field of the given SR.
8190 \noindent {\bf Signature:}
8191 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
8194 \noindent{\bf Arguments:}
8197 \vspace{0.3cm}
8198 \begin{tabular}{|c|c|p{7cm}|}
8199 \hline
8200 {\bf type} & {\bf name} & {\bf description} \\ \hline
8201 {\tt SR ref } & self & reference to the object \\ \hline
8203 {\tt string } & value & New value to set \\ \hline
8205 \end{tabular}
8207 \vspace{0.3cm}
8209 \noindent {\bf Return Type:}
8210 {\tt
8211 void
8216 \vspace{0.3cm}
8217 \vspace{0.3cm}
8218 \vspace{0.3cm}
8219 \subsubsection{RPC name:~get\_VDIs}
8221 {\bf Overview:}
8222 Get the VDIs field of the given SR.
8224 \noindent {\bf Signature:}
8225 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
8228 \noindent{\bf Arguments:}
8231 \vspace{0.3cm}
8232 \begin{tabular}{|c|c|p{7cm}|}
8233 \hline
8234 {\bf type} & {\bf name} & {\bf description} \\ \hline
8235 {\tt SR ref } & self & reference to the object \\ \hline
8237 \end{tabular}
8239 \vspace{0.3cm}
8241 \noindent {\bf Return Type:}
8242 {\tt
8243 (VDI ref) Set
8247 value of the field
8248 \vspace{0.3cm}
8249 \vspace{0.3cm}
8250 \vspace{0.3cm}
8251 \subsubsection{RPC name:~get\_PBDs}
8253 {\bf Overview:}
8254 Get the PBDs field of the given SR.
8256 \noindent {\bf Signature:}
8257 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
8260 \noindent{\bf Arguments:}
8263 \vspace{0.3cm}
8264 \begin{tabular}{|c|c|p{7cm}|}
8265 \hline
8266 {\bf type} & {\bf name} & {\bf description} \\ \hline
8267 {\tt SR ref } & self & reference to the object \\ \hline
8269 \end{tabular}
8271 \vspace{0.3cm}
8273 \noindent {\bf Return Type:}
8274 {\tt
8275 (PBD ref) Set
8279 value of the field
8280 \vspace{0.3cm}
8281 \vspace{0.3cm}
8282 \vspace{0.3cm}
8283 \subsubsection{RPC name:~get\_virtual\_allocation}
8285 {\bf Overview:}
8286 Get the virtual\_allocation field of the given SR.
8288 \noindent {\bf Signature:}
8289 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
8292 \noindent{\bf Arguments:}
8295 \vspace{0.3cm}
8296 \begin{tabular}{|c|c|p{7cm}|}
8297 \hline
8298 {\bf type} & {\bf name} & {\bf description} \\ \hline
8299 {\tt SR ref } & self & reference to the object \\ \hline
8301 \end{tabular}
8303 \vspace{0.3cm}
8305 \noindent {\bf Return Type:}
8306 {\tt
8307 int
8311 value of the field
8312 \vspace{0.3cm}
8313 \vspace{0.3cm}
8314 \vspace{0.3cm}
8315 \subsubsection{RPC name:~get\_physical\_utilisation}
8317 {\bf Overview:}
8318 Get the physical\_utilisation field of the given SR.
8320 \noindent {\bf Signature:}
8321 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
8324 \noindent{\bf Arguments:}
8327 \vspace{0.3cm}
8328 \begin{tabular}{|c|c|p{7cm}|}
8329 \hline
8330 {\bf type} & {\bf name} & {\bf description} \\ \hline
8331 {\tt SR ref } & self & reference to the object \\ \hline
8333 \end{tabular}
8335 \vspace{0.3cm}
8337 \noindent {\bf Return Type:}
8338 {\tt
8339 int
8343 value of the field
8344 \vspace{0.3cm}
8345 \vspace{0.3cm}
8346 \vspace{0.3cm}
8347 \subsubsection{RPC name:~get\_physical\_size}
8349 {\bf Overview:}
8350 Get the physical\_size field of the given SR.
8352 \noindent {\bf Signature:}
8353 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
8356 \noindent{\bf Arguments:}
8359 \vspace{0.3cm}
8360 \begin{tabular}{|c|c|p{7cm}|}
8361 \hline
8362 {\bf type} & {\bf name} & {\bf description} \\ \hline
8363 {\tt SR ref } & self & reference to the object \\ \hline
8365 \end{tabular}
8367 \vspace{0.3cm}
8369 \noindent {\bf Return Type:}
8370 {\tt
8371 int
8375 value of the field
8376 \vspace{0.3cm}
8377 \vspace{0.3cm}
8378 \vspace{0.3cm}
8379 \subsubsection{RPC name:~get\_type}
8381 {\bf Overview:}
8382 Get the type field of the given SR.
8384 \noindent {\bf Signature:}
8385 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
8388 \noindent{\bf Arguments:}
8391 \vspace{0.3cm}
8392 \begin{tabular}{|c|c|p{7cm}|}
8393 \hline
8394 {\bf type} & {\bf name} & {\bf description} \\ \hline
8395 {\tt SR ref } & self & reference to the object \\ \hline
8397 \end{tabular}
8399 \vspace{0.3cm}
8401 \noindent {\bf Return Type:}
8402 {\tt
8403 string
8407 value of the field
8408 \vspace{0.3cm}
8409 \vspace{0.3cm}
8410 \vspace{0.3cm}
8411 \subsubsection{RPC name:~get\_location}
8413 {\bf Overview:}
8414 Get the location field of the given SR.
8416 \noindent {\bf Signature:}
8417 \begin{verbatim} string get_location (session_id s, SR ref self)\end{verbatim}
8420 \noindent{\bf Arguments:}
8423 \vspace{0.3cm}
8424 \begin{tabular}{|c|c|p{7cm}|}
8425 \hline
8426 {\bf type} & {\bf name} & {\bf description} \\ \hline
8427 {\tt SR ref } & self & reference to the object \\ \hline
8429 \end{tabular}
8431 \vspace{0.3cm}
8433 \noindent {\bf Return Type:}
8434 {\tt
8435 string
8439 value of the field
8440 \vspace{0.3cm}
8441 \vspace{0.3cm}
8442 \vspace{0.3cm}
8443 \subsubsection{RPC name:~create}
8445 {\bf Overview:}
8446 Create a new SR instance, and return its handle.
8448 \noindent {\bf Signature:}
8449 \begin{verbatim} (SR ref) create (session_id s, SR record args)\end{verbatim}
8452 \noindent{\bf Arguments:}
8455 \vspace{0.3cm}
8456 \begin{tabular}{|c|c|p{7cm}|}
8457 \hline
8458 {\bf type} & {\bf name} & {\bf description} \\ \hline
8459 {\tt SR record } & args & All constructor arguments \\ \hline
8461 \end{tabular}
8463 \vspace{0.3cm}
8465 \noindent {\bf Return Type:}
8466 {\tt
8467 SR ref
8471 reference to the newly created object
8472 \vspace{0.3cm}
8473 \vspace{0.3cm}
8474 \vspace{0.3cm}
8475 \subsubsection{RPC name:~destroy}
8477 {\bf Overview:}
8478 Destroy the specified SR instance.
8480 \noindent {\bf Signature:}
8481 \begin{verbatim} void destroy (session_id s, SR ref self)\end{verbatim}
8484 \noindent{\bf Arguments:}
8487 \vspace{0.3cm}
8488 \begin{tabular}{|c|c|p{7cm}|}
8489 \hline
8490 {\bf type} & {\bf name} & {\bf description} \\ \hline
8491 {\tt SR ref } & self & reference to the object \\ \hline
8493 \end{tabular}
8495 \vspace{0.3cm}
8497 \noindent {\bf Return Type:}
8498 {\tt
8499 void
8504 \vspace{0.3cm}
8505 \vspace{0.3cm}
8506 \vspace{0.3cm}
8507 \subsubsection{RPC name:~get\_by\_uuid}
8509 {\bf Overview:}
8510 Get a reference to the SR instance with the specified UUID.
8512 \noindent {\bf Signature:}
8513 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8516 \noindent{\bf Arguments:}
8519 \vspace{0.3cm}
8520 \begin{tabular}{|c|c|p{7cm}|}
8521 \hline
8522 {\bf type} & {\bf name} & {\bf description} \\ \hline
8523 {\tt string } & uuid & UUID of object to return \\ \hline
8525 \end{tabular}
8527 \vspace{0.3cm}
8529 \noindent {\bf Return Type:}
8530 {\tt
8531 SR ref
8535 reference to the object
8536 \vspace{0.3cm}
8537 \vspace{0.3cm}
8538 \vspace{0.3cm}
8539 \subsubsection{RPC name:~get\_record}
8541 {\bf Overview:}
8542 Get a record containing the current state of the given SR.
8544 \noindent {\bf Signature:}
8545 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
8548 \noindent{\bf Arguments:}
8551 \vspace{0.3cm}
8552 \begin{tabular}{|c|c|p{7cm}|}
8553 \hline
8554 {\bf type} & {\bf name} & {\bf description} \\ \hline
8555 {\tt SR ref } & self & reference to the object \\ \hline
8557 \end{tabular}
8559 \vspace{0.3cm}
8561 \noindent {\bf Return Type:}
8562 {\tt
8563 SR record
8567 all fields from the object
8568 \vspace{0.3cm}
8569 \vspace{0.3cm}
8570 \vspace{0.3cm}
8571 \subsubsection{RPC name:~get\_by\_name\_label}
8573 {\bf Overview:}
8574 Get all the SR instances with the given label.
8576 \noindent {\bf Signature:}
8577 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8580 \noindent{\bf Arguments:}
8583 \vspace{0.3cm}
8584 \begin{tabular}{|c|c|p{7cm}|}
8585 \hline
8586 {\bf type} & {\bf name} & {\bf description} \\ \hline
8587 {\tt string } & label & label of object to return \\ \hline
8589 \end{tabular}
8591 \vspace{0.3cm}
8593 \noindent {\bf Return Type:}
8594 {\tt
8595 (SR ref) Set
8599 references to objects with match names
8600 \vspace{0.3cm}
8601 \vspace{0.3cm}
8602 \vspace{0.3cm}
8604 \vspace{1cm}
8605 \newpage
8606 \section{Class: VDI}
8607 \subsection{Fields for class: VDI}
8608 \begin{longtable}{|lllp{0.38\textwidth}|}
8609 \hline
8610 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
8611 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8612 virtual disk image.}} \\
8613 \hline
8614 Quals & Field & Type & Description \\
8615 \hline
8616 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8617 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
8618 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
8619 $\mathit{RW}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
8620 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
8621 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
8622 $\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in multiples of sector\_size field) \\
8623 $\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) \\
8624 $\mathit{RO}_\mathit{ins}$ & {\tt sector\_size} & int & sector size of VDI (in bytes) \\
8625 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
8626 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
8627 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
8628 \hline
8629 \end{longtable}
8630 \subsection{Additional RPCs associated with class: VDI}
8631 \subsubsection{RPC name:~snapshot}
8633 {\bf Overview:}
8634 Take an exact copy of the VDI; the snapshot lives in the same Storage
8635 Repository as its parent.
8637 \noindent {\bf Signature:}
8638 \begin{verbatim} (VDI ref) snapshot (session_id s, VDI ref vdi)\end{verbatim}
8641 \noindent{\bf Arguments:}
8644 \vspace{0.3cm}
8645 \begin{tabular}{|c|c|p{7cm}|}
8646 \hline
8647 {\bf type} & {\bf name} & {\bf description} \\ \hline
8648 {\tt VDI ref } & vdi & The VDI to snapshot \\ \hline
8650 \end{tabular}
8652 \vspace{0.3cm}
8654 \noindent {\bf Return Type:}
8655 {\tt
8656 VDI ref
8660 The ID of the newly created VDI.
8661 \vspace{0.3cm}
8662 \vspace{0.3cm}
8663 \vspace{0.3cm}
8664 \subsubsection{RPC name:~resize}
8666 {\bf Overview:}
8667 Resize the vdi to the size.
8669 \noindent {\bf Signature:}
8670 \begin{verbatim} void resize (session_id s, VDI ref vdi, int size)\end{verbatim}
8673 \noindent{\bf Arguments:}
8676 \vspace{0.3cm}
8677 \begin{tabular}{|c|c|p{7cm}|}
8678 \hline
8679 {\bf type} & {\bf name} & {\bf description} \\ \hline
8680 {\tt VDI ref } & vdi & The VDI to resize \\ \hline
8682 {\tt int } & size & The new size of the VDI \\ \hline
8684 \end{tabular}
8686 \vspace{0.3cm}
8688 \noindent {\bf Return Type:}
8689 {\tt
8690 void
8695 \vspace{0.3cm}
8696 \vspace{0.3cm}
8697 \vspace{0.3cm}
8698 \subsubsection{RPC name:~get\_uuid}
8700 {\bf Overview:}
8701 Get the uuid field of the given VDI.
8703 \noindent {\bf Signature:}
8704 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
8707 \noindent{\bf Arguments:}
8710 \vspace{0.3cm}
8711 \begin{tabular}{|c|c|p{7cm}|}
8712 \hline
8713 {\bf type} & {\bf name} & {\bf description} \\ \hline
8714 {\tt VDI ref } & self & reference to the object \\ \hline
8716 \end{tabular}
8718 \vspace{0.3cm}
8720 \noindent {\bf Return Type:}
8721 {\tt
8722 string
8726 value of the field
8727 \vspace{0.3cm}
8728 \vspace{0.3cm}
8729 \vspace{0.3cm}
8730 \subsubsection{RPC name:~get\_name\_label}
8732 {\bf Overview:}
8733 Get the name/label field of the given VDI.
8735 \noindent {\bf Signature:}
8736 \begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
8739 \noindent{\bf Arguments:}
8742 \vspace{0.3cm}
8743 \begin{tabular}{|c|c|p{7cm}|}
8744 \hline
8745 {\bf type} & {\bf name} & {\bf description} \\ \hline
8746 {\tt VDI ref } & self & reference to the object \\ \hline
8748 \end{tabular}
8750 \vspace{0.3cm}
8752 \noindent {\bf Return Type:}
8753 {\tt
8754 string
8758 value of the field
8759 \vspace{0.3cm}
8760 \vspace{0.3cm}
8761 \vspace{0.3cm}
8762 \subsubsection{RPC name:~set\_name\_label}
8764 {\bf Overview:}
8765 Set the name/label field of the given VDI.
8767 \noindent {\bf Signature:}
8768 \begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
8771 \noindent{\bf Arguments:}
8774 \vspace{0.3cm}
8775 \begin{tabular}{|c|c|p{7cm}|}
8776 \hline
8777 {\bf type} & {\bf name} & {\bf description} \\ \hline
8778 {\tt VDI ref } & self & reference to the object \\ \hline
8780 {\tt string } & value & New value to set \\ \hline
8782 \end{tabular}
8784 \vspace{0.3cm}
8786 \noindent {\bf Return Type:}
8787 {\tt
8788 void
8793 \vspace{0.3cm}
8794 \vspace{0.3cm}
8795 \vspace{0.3cm}
8796 \subsubsection{RPC name:~get\_name\_description}
8798 {\bf Overview:}
8799 Get the name/description field of the given VDI.
8801 \noindent {\bf Signature:}
8802 \begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
8805 \noindent{\bf Arguments:}
8808 \vspace{0.3cm}
8809 \begin{tabular}{|c|c|p{7cm}|}
8810 \hline
8811 {\bf type} & {\bf name} & {\bf description} \\ \hline
8812 {\tt VDI ref } & self & reference to the object \\ \hline
8814 \end{tabular}
8816 \vspace{0.3cm}
8818 \noindent {\bf Return Type:}
8819 {\tt
8820 string
8824 value of the field
8825 \vspace{0.3cm}
8826 \vspace{0.3cm}
8827 \vspace{0.3cm}
8828 \subsubsection{RPC name:~set\_name\_description}
8830 {\bf Overview:}
8831 Set the name/description field of the given VDI.
8833 \noindent {\bf Signature:}
8834 \begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
8837 \noindent{\bf Arguments:}
8840 \vspace{0.3cm}
8841 \begin{tabular}{|c|c|p{7cm}|}
8842 \hline
8843 {\bf type} & {\bf name} & {\bf description} \\ \hline
8844 {\tt VDI ref } & self & reference to the object \\ \hline
8846 {\tt string } & value & New value to set \\ \hline
8848 \end{tabular}
8850 \vspace{0.3cm}
8852 \noindent {\bf Return Type:}
8853 {\tt
8854 void
8859 \vspace{0.3cm}
8860 \vspace{0.3cm}
8861 \vspace{0.3cm}
8862 \subsubsection{RPC name:~get\_SR}
8864 {\bf Overview:}
8865 Get the SR field of the given VDI.
8867 \noindent {\bf Signature:}
8868 \begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
8871 \noindent{\bf Arguments:}
8874 \vspace{0.3cm}
8875 \begin{tabular}{|c|c|p{7cm}|}
8876 \hline
8877 {\bf type} & {\bf name} & {\bf description} \\ \hline
8878 {\tt VDI ref } & self & reference to the object \\ \hline
8880 \end{tabular}
8882 \vspace{0.3cm}
8884 \noindent {\bf Return Type:}
8885 {\tt
8886 SR ref
8890 value of the field
8891 \vspace{0.3cm}
8892 \vspace{0.3cm}
8893 \vspace{0.3cm}
8894 \subsubsection{RPC name:~set\_SR}
8896 {\bf Overview:}
8897 Set the SR field of the given VDI.
8899 \noindent {\bf Signature:}
8900 \begin{verbatim} void set_SR (session_id s, VDI ref self, SR ref value)\end{verbatim}
8903 \noindent{\bf Arguments:}
8906 \vspace{0.3cm}
8907 \begin{tabular}{|c|c|p{7cm}|}
8908 \hline
8909 {\bf type} & {\bf name} & {\bf description} \\ \hline
8910 {\tt VDI ref } & self & reference to the object \\ \hline
8912 {\tt SR ref } & value & New value to set \\ \hline
8914 \end{tabular}
8916 \vspace{0.3cm}
8918 \noindent {\bf Return Type:}
8919 {\tt
8920 void
8925 \vspace{0.3cm}
8926 \vspace{0.3cm}
8927 \vspace{0.3cm}
8928 \subsubsection{RPC name:~get\_VBDs}
8930 {\bf Overview:}
8931 Get the VBDs field of the given VDI.
8933 \noindent {\bf Signature:}
8934 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
8937 \noindent{\bf Arguments:}
8940 \vspace{0.3cm}
8941 \begin{tabular}{|c|c|p{7cm}|}
8942 \hline
8943 {\bf type} & {\bf name} & {\bf description} \\ \hline
8944 {\tt VDI ref } & self & reference to the object \\ \hline
8946 \end{tabular}
8948 \vspace{0.3cm}
8950 \noindent {\bf Return Type:}
8951 {\tt
8952 (VBD ref) Set
8956 value of the field
8957 \vspace{0.3cm}
8958 \vspace{0.3cm}
8959 \vspace{0.3cm}
8960 \subsubsection{RPC name:~get\_crash\_dumps}
8962 {\bf Overview:}
8963 Get the crash\_dumps field of the given VDI.
8965 \noindent {\bf Signature:}
8966 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VDI ref self)\end{verbatim}
8969 \noindent{\bf Arguments:}
8972 \vspace{0.3cm}
8973 \begin{tabular}{|c|c|p{7cm}|}
8974 \hline
8975 {\bf type} & {\bf name} & {\bf description} \\ \hline
8976 {\tt VDI ref } & self & reference to the object \\ \hline
8978 \end{tabular}
8980 \vspace{0.3cm}
8982 \noindent {\bf Return Type:}
8983 {\tt
8984 (crashdump ref) Set
8988 value of the field
8989 \vspace{0.3cm}
8990 \vspace{0.3cm}
8991 \vspace{0.3cm}
8992 \subsubsection{RPC name:~get\_virtual\_size}
8994 {\bf Overview:}
8995 Get the virtual\_size field of the given VDI.
8997 \noindent {\bf Signature:}
8998 \begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
9001 \noindent{\bf Arguments:}
9004 \vspace{0.3cm}
9005 \begin{tabular}{|c|c|p{7cm}|}
9006 \hline
9007 {\bf type} & {\bf name} & {\bf description} \\ \hline
9008 {\tt VDI ref } & self & reference to the object \\ \hline
9010 \end{tabular}
9012 \vspace{0.3cm}
9014 \noindent {\bf Return Type:}
9015 {\tt
9016 int
9020 value of the field
9021 \vspace{0.3cm}
9022 \vspace{0.3cm}
9023 \vspace{0.3cm}
9024 \subsubsection{RPC name:~set\_virtual\_size}
9026 {\bf Overview:}
9027 Set the virtual\_size field of the given VDI.
9029 \noindent {\bf Signature:}
9030 \begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
9033 \noindent{\bf Arguments:}
9036 \vspace{0.3cm}
9037 \begin{tabular}{|c|c|p{7cm}|}
9038 \hline
9039 {\bf type} & {\bf name} & {\bf description} \\ \hline
9040 {\tt VDI ref } & self & reference to the object \\ \hline
9042 {\tt int } & value & New value to set \\ \hline
9044 \end{tabular}
9046 \vspace{0.3cm}
9048 \noindent {\bf Return Type:}
9049 {\tt
9050 void
9055 \vspace{0.3cm}
9056 \vspace{0.3cm}
9057 \vspace{0.3cm}
9058 \subsubsection{RPC name:~get\_physical\_utilisation}
9060 {\bf Overview:}
9061 Get the physical\_utilisation field of the given VDI.
9063 \noindent {\bf Signature:}
9064 \begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\end{verbatim}
9067 \noindent{\bf Arguments:}
9070 \vspace{0.3cm}
9071 \begin{tabular}{|c|c|p{7cm}|}
9072 \hline
9073 {\bf type} & {\bf name} & {\bf description} \\ \hline
9074 {\tt VDI ref } & self & reference to the object \\ \hline
9076 \end{tabular}
9078 \vspace{0.3cm}
9080 \noindent {\bf Return Type:}
9081 {\tt
9082 int
9086 value of the field
9087 \vspace{0.3cm}
9088 \vspace{0.3cm}
9089 \vspace{0.3cm}
9090 \subsubsection{RPC name:~get\_sector\_size}
9092 {\bf Overview:}
9093 Get the sector\_size field of the given VDI.
9095 \noindent {\bf Signature:}
9096 \begin{verbatim} int get_sector_size (session_id s, VDI ref self)\end{verbatim}
9099 \noindent{\bf Arguments:}
9102 \vspace{0.3cm}
9103 \begin{tabular}{|c|c|p{7cm}|}
9104 \hline
9105 {\bf type} & {\bf name} & {\bf description} \\ \hline
9106 {\tt VDI ref } & self & reference to the object \\ \hline
9108 \end{tabular}
9110 \vspace{0.3cm}
9112 \noindent {\bf Return Type:}
9113 {\tt
9114 int
9118 value of the field
9119 \vspace{0.3cm}
9120 \vspace{0.3cm}
9121 \vspace{0.3cm}
9122 \subsubsection{RPC name:~get\_type}
9124 {\bf Overview:}
9125 Get the type field of the given VDI.
9127 \noindent {\bf Signature:}
9128 \begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
9131 \noindent{\bf Arguments:}
9134 \vspace{0.3cm}
9135 \begin{tabular}{|c|c|p{7cm}|}
9136 \hline
9137 {\bf type} & {\bf name} & {\bf description} \\ \hline
9138 {\tt VDI ref } & self & reference to the object \\ \hline
9140 \end{tabular}
9142 \vspace{0.3cm}
9144 \noindent {\bf Return Type:}
9145 {\tt
9146 vdi\_type
9150 value of the field
9151 \vspace{0.3cm}
9152 \vspace{0.3cm}
9153 \vspace{0.3cm}
9154 \subsubsection{RPC name:~get\_sharable}
9156 {\bf Overview:}
9157 Get the sharable field of the given VDI.
9159 \noindent {\bf Signature:}
9160 \begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
9163 \noindent{\bf Arguments:}
9166 \vspace{0.3cm}
9167 \begin{tabular}{|c|c|p{7cm}|}
9168 \hline
9169 {\bf type} & {\bf name} & {\bf description} \\ \hline
9170 {\tt VDI ref } & self & reference to the object \\ \hline
9172 \end{tabular}
9174 \vspace{0.3cm}
9176 \noindent {\bf Return Type:}
9177 {\tt
9178 bool
9182 value of the field
9183 \vspace{0.3cm}
9184 \vspace{0.3cm}
9185 \vspace{0.3cm}
9186 \subsubsection{RPC name:~set\_sharable}
9188 {\bf Overview:}
9189 Set the sharable field of the given VDI.
9191 \noindent {\bf Signature:}
9192 \begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
9195 \noindent{\bf Arguments:}
9198 \vspace{0.3cm}
9199 \begin{tabular}{|c|c|p{7cm}|}
9200 \hline
9201 {\bf type} & {\bf name} & {\bf description} \\ \hline
9202 {\tt VDI ref } & self & reference to the object \\ \hline
9204 {\tt bool } & value & New value to set \\ \hline
9206 \end{tabular}
9208 \vspace{0.3cm}
9210 \noindent {\bf Return Type:}
9211 {\tt
9212 void
9217 \vspace{0.3cm}
9218 \vspace{0.3cm}
9219 \vspace{0.3cm}
9220 \subsubsection{RPC name:~get\_read\_only}
9222 {\bf Overview:}
9223 Get the read\_only field of the given VDI.
9225 \noindent {\bf Signature:}
9226 \begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
9229 \noindent{\bf Arguments:}
9232 \vspace{0.3cm}
9233 \begin{tabular}{|c|c|p{7cm}|}
9234 \hline
9235 {\bf type} & {\bf name} & {\bf description} \\ \hline
9236 {\tt VDI ref } & self & reference to the object \\ \hline
9238 \end{tabular}
9240 \vspace{0.3cm}
9242 \noindent {\bf Return Type:}
9243 {\tt
9244 bool
9248 value of the field
9249 \vspace{0.3cm}
9250 \vspace{0.3cm}
9251 \vspace{0.3cm}
9252 \subsubsection{RPC name:~set\_read\_only}
9254 {\bf Overview:}
9255 Set the read\_only field of the given VDI.
9257 \noindent {\bf Signature:}
9258 \begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
9261 \noindent{\bf Arguments:}
9264 \vspace{0.3cm}
9265 \begin{tabular}{|c|c|p{7cm}|}
9266 \hline
9267 {\bf type} & {\bf name} & {\bf description} \\ \hline
9268 {\tt VDI ref } & self & reference to the object \\ \hline
9270 {\tt bool } & value & New value to set \\ \hline
9272 \end{tabular}
9274 \vspace{0.3cm}
9276 \noindent {\bf Return Type:}
9277 {\tt
9278 void
9283 \vspace{0.3cm}
9284 \vspace{0.3cm}
9285 \vspace{0.3cm}
9286 \subsubsection{RPC name:~create}
9288 {\bf Overview:}
9289 Create a new VDI instance, and return its handle.
9291 \noindent {\bf Signature:}
9292 \begin{verbatim} (VDI ref) create (session_id s, VDI record args)\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 VDI record } & args & All constructor arguments \\ \hline
9304 \end{tabular}
9306 \vspace{0.3cm}
9308 \noindent {\bf Return Type:}
9309 {\tt
9310 VDI ref
9314 reference to the newly created object
9315 \vspace{0.3cm}
9316 \vspace{0.3cm}
9317 \vspace{0.3cm}
9318 \subsubsection{RPC name:~destroy}
9320 {\bf Overview:}
9321 Destroy the specified VDI instance.
9323 \noindent {\bf Signature:}
9324 \begin{verbatim} void destroy (session_id s, VDI 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 VDI ref } & self & reference to the object \\ \hline
9336 \end{tabular}
9338 \vspace{0.3cm}
9340 \noindent {\bf Return Type:}
9341 {\tt
9342 void
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 VDI instance with the specified UUID.
9355 \noindent {\bf Signature:}
9356 \begin{verbatim} (VDI 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 VDI 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 VDI.
9387 \noindent {\bf Signature:}
9388 \begin{verbatim} (VDI record) get_record (session_id s, VDI 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 VDI ref } & self & reference to the object \\ \hline
9400 \end{tabular}
9402 \vspace{0.3cm}
9404 \noindent {\bf Return Type:}
9405 {\tt
9406 VDI record
9410 all fields from the object
9411 \vspace{0.3cm}
9412 \vspace{0.3cm}
9413 \vspace{0.3cm}
9414 \subsubsection{RPC name:~get\_by\_name\_label}
9416 {\bf Overview:}
9417 Get all the VDI instances with the given label.
9419 \noindent {\bf Signature:}
9420 \begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
9423 \noindent{\bf Arguments:}
9426 \vspace{0.3cm}
9427 \begin{tabular}{|c|c|p{7cm}|}
9428 \hline
9429 {\bf type} & {\bf name} & {\bf description} \\ \hline
9430 {\tt string } & label & label of object to return \\ \hline
9432 \end{tabular}
9434 \vspace{0.3cm}
9436 \noindent {\bf Return Type:}
9437 {\tt
9438 (VDI ref) Set
9442 references to objects with match names
9443 \vspace{0.3cm}
9444 \vspace{0.3cm}
9445 \vspace{0.3cm}
9447 \vspace{1cm}
9448 \newpage
9449 \section{Class: VBD}
9450 \subsection{Fields for class: VBD}
9451 \begin{longtable}{|lllp{0.38\textwidth}|}
9452 \hline
9453 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
9454 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
9455 virtual block device.}} \\
9456 \hline
9457 Quals & Field & Type & Description \\
9458 \hline
9459 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9460 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
9461 $\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
9462 $\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
9463 $\mathit{RW}$ & {\tt bootable} & bool & true if this VBD is bootable \\
9464 $\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the VBD should be mounted with \\
9465 $\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
9466 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VBD\_metrics ref & metrics associated with this VBD. \\
9467 \hline
9468 \end{longtable}
9469 \subsection{Additional RPCs associated with class: VBD}
9470 \subsubsection{RPC name:~media\_change}
9472 {\bf Overview:}
9473 Change the media in the device for CDROM-like devices only. For other
9474 devices, detach the VBD and attach a new one.
9476 \noindent {\bf Signature:}
9477 \begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
9480 \noindent{\bf Arguments:}
9483 \vspace{0.3cm}
9484 \begin{tabular}{|c|c|p{7cm}|}
9485 \hline
9486 {\bf type} & {\bf name} & {\bf description} \\ \hline
9487 {\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
9489 {\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
9491 \end{tabular}
9493 \vspace{0.3cm}
9495 \noindent {\bf Return Type:}
9496 {\tt
9497 void
9502 \vspace{0.3cm}
9503 \vspace{0.3cm}
9504 \vspace{0.3cm}
9505 \subsubsection{RPC name:~get\_uuid}
9507 {\bf Overview:}
9508 Get the uuid field of the given VBD.
9510 \noindent {\bf Signature:}
9511 \begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
9514 \noindent{\bf Arguments:}
9517 \vspace{0.3cm}
9518 \begin{tabular}{|c|c|p{7cm}|}
9519 \hline
9520 {\bf type} & {\bf name} & {\bf description} \\ \hline
9521 {\tt VBD ref } & self & reference to the object \\ \hline
9523 \end{tabular}
9525 \vspace{0.3cm}
9527 \noindent {\bf Return Type:}
9528 {\tt
9529 string
9533 value of the field
9534 \vspace{0.3cm}
9535 \vspace{0.3cm}
9536 \vspace{0.3cm}
9537 \subsubsection{RPC name:~get\_VM}
9539 {\bf Overview:}
9540 Get the VM field of the given VBD.
9542 \noindent {\bf Signature:}
9543 \begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
9546 \noindent{\bf Arguments:}
9549 \vspace{0.3cm}
9550 \begin{tabular}{|c|c|p{7cm}|}
9551 \hline
9552 {\bf type} & {\bf name} & {\bf description} \\ \hline
9553 {\tt VBD ref } & self & reference to the object \\ \hline
9555 \end{tabular}
9557 \vspace{0.3cm}
9559 \noindent {\bf Return Type:}
9560 {\tt
9561 VM ref
9565 value of the field
9566 \vspace{0.3cm}
9567 \vspace{0.3cm}
9568 \vspace{0.3cm}
9569 \subsubsection{RPC name:~get\_VDI}
9571 {\bf Overview:}
9572 Get the VDI field of the given VBD.
9574 \noindent {\bf Signature:}
9575 \begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
9578 \noindent{\bf Arguments:}
9581 \vspace{0.3cm}
9582 \begin{tabular}{|c|c|p{7cm}|}
9583 \hline
9584 {\bf type} & {\bf name} & {\bf description} \\ \hline
9585 {\tt VBD ref } & self & reference to the object \\ \hline
9587 \end{tabular}
9589 \vspace{0.3cm}
9591 \noindent {\bf Return Type:}
9592 {\tt
9593 VDI ref
9597 value of the field
9598 \vspace{0.3cm}
9599 \vspace{0.3cm}
9600 \vspace{0.3cm}
9601 \subsubsection{RPC name:~get\_device}
9603 {\bf Overview:}
9604 Get the device field of the given VBD.
9606 \noindent {\bf Signature:}
9607 \begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
9610 \noindent{\bf Arguments:}
9613 \vspace{0.3cm}
9614 \begin{tabular}{|c|c|p{7cm}|}
9615 \hline
9616 {\bf type} & {\bf name} & {\bf description} \\ \hline
9617 {\tt VBD ref } & self & reference to the object \\ \hline
9619 \end{tabular}
9621 \vspace{0.3cm}
9623 \noindent {\bf Return Type:}
9624 {\tt
9625 string
9629 value of the field
9630 \vspace{0.3cm}
9631 \vspace{0.3cm}
9632 \vspace{0.3cm}
9633 \subsubsection{RPC name:~set\_device}
9635 {\bf Overview:}
9636 Set the device field of the given VBD.
9638 \noindent {\bf Signature:}
9639 \begin{verbatim} void set_device (session_id s, VBD ref self, string value)\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 VBD ref } & self & reference to the object \\ \hline
9651 {\tt string } & value & New value to set \\ \hline
9653 \end{tabular}
9655 \vspace{0.3cm}
9657 \noindent {\bf Return Type:}
9658 {\tt
9659 void
9664 \vspace{0.3cm}
9665 \vspace{0.3cm}
9666 \vspace{0.3cm}
9667 \subsubsection{RPC name:~get\_bootable}
9669 {\bf Overview:}
9670 Get the bootable field of the given VBD.
9672 \noindent {\bf Signature:}
9673 \begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim}
9676 \noindent{\bf Arguments:}
9679 \vspace{0.3cm}
9680 \begin{tabular}{|c|c|p{7cm}|}
9681 \hline
9682 {\bf type} & {\bf name} & {\bf description} \\ \hline
9683 {\tt VBD ref } & self & reference to the object \\ \hline
9685 \end{tabular}
9687 \vspace{0.3cm}
9689 \noindent {\bf Return Type:}
9690 {\tt
9691 bool
9695 value of the field
9696 \vspace{0.3cm}
9697 \vspace{0.3cm}
9698 \vspace{0.3cm}
9699 \subsubsection{RPC name:~set\_bootable}
9701 {\bf Overview:}
9702 Set the bootable field of the given VBD.
9704 \noindent {\bf Signature:}
9705 \begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim}
9708 \noindent{\bf Arguments:}
9711 \vspace{0.3cm}
9712 \begin{tabular}{|c|c|p{7cm}|}
9713 \hline
9714 {\bf type} & {\bf name} & {\bf description} \\ \hline
9715 {\tt VBD ref } & self & reference to the object \\ \hline
9717 {\tt bool } & value & New value to set \\ \hline
9719 \end{tabular}
9721 \vspace{0.3cm}
9723 \noindent {\bf Return Type:}
9724 {\tt
9725 void
9730 \vspace{0.3cm}
9731 \vspace{0.3cm}
9732 \vspace{0.3cm}
9733 \subsubsection{RPC name:~get\_mode}
9735 {\bf Overview:}
9736 Get the mode field of the given VBD.
9738 \noindent {\bf Signature:}
9739 \begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
9742 \noindent{\bf Arguments:}
9745 \vspace{0.3cm}
9746 \begin{tabular}{|c|c|p{7cm}|}
9747 \hline
9748 {\bf type} & {\bf name} & {\bf description} \\ \hline
9749 {\tt VBD ref } & self & reference to the object \\ \hline
9751 \end{tabular}
9753 \vspace{0.3cm}
9755 \noindent {\bf Return Type:}
9756 {\tt
9757 vbd\_mode
9761 value of the field
9762 \vspace{0.3cm}
9763 \vspace{0.3cm}
9764 \vspace{0.3cm}
9765 \subsubsection{RPC name:~set\_mode}
9767 {\bf Overview:}
9768 Set the mode field of the given VBD.
9770 \noindent {\bf Signature:}
9771 \begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
9774 \noindent{\bf Arguments:}
9777 \vspace{0.3cm}
9778 \begin{tabular}{|c|c|p{7cm}|}
9779 \hline
9780 {\bf type} & {\bf name} & {\bf description} \\ \hline
9781 {\tt VBD ref } & self & reference to the object \\ \hline
9783 {\tt vbd\_mode } & value & New value to set \\ \hline
9785 \end{tabular}
9787 \vspace{0.3cm}
9789 \noindent {\bf Return Type:}
9790 {\tt
9791 void
9796 \vspace{0.3cm}
9797 \vspace{0.3cm}
9798 \vspace{0.3cm}
9799 \subsubsection{RPC name:~get\_type}
9801 {\bf Overview:}
9802 Get the type field of the given VBD.
9804 \noindent {\bf Signature:}
9805 \begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
9808 \noindent{\bf Arguments:}
9811 \vspace{0.3cm}
9812 \begin{tabular}{|c|c|p{7cm}|}
9813 \hline
9814 {\bf type} & {\bf name} & {\bf description} \\ \hline
9815 {\tt VBD ref } & self & reference to the object \\ \hline
9817 \end{tabular}
9819 \vspace{0.3cm}
9821 \noindent {\bf Return Type:}
9822 {\tt
9823 vbd\_type
9827 value of the field
9828 \vspace{0.3cm}
9829 \vspace{0.3cm}
9830 \vspace{0.3cm}
9831 \subsubsection{RPC name:~set\_type}
9833 {\bf Overview:}
9834 Set the type field of the given VBD.
9836 \noindent {\bf Signature:}
9837 \begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
9840 \noindent{\bf Arguments:}
9843 \vspace{0.3cm}
9844 \begin{tabular}{|c|c|p{7cm}|}
9845 \hline
9846 {\bf type} & {\bf name} & {\bf description} \\ \hline
9847 {\tt VBD ref } & self & reference to the object \\ \hline
9849 {\tt vbd\_type } & value & New value to set \\ \hline
9851 \end{tabular}
9853 \vspace{0.3cm}
9855 \noindent {\bf Return Type:}
9856 {\tt
9857 void
9862 \vspace{0.3cm}
9863 \vspace{0.3cm}
9864 \vspace{0.3cm}
9865 \subsubsection{RPC name:~get\_metrics}
9867 {\bf Overview:}
9868 Get the metrics field of the given VBD.
9870 \noindent {\bf Signature:}
9871 \begin{verbatim} (VBD_metrics ref) get_metrics (session_id s, VBD ref self)\end{verbatim}
9874 \noindent{\bf Arguments:}
9877 \vspace{0.3cm}
9878 \begin{tabular}{|c|c|p{7cm}|}
9879 \hline
9880 {\bf type} & {\bf name} & {\bf description} \\ \hline
9881 {\tt VBD ref } & self & reference to the object \\ \hline
9883 \end{tabular}
9885 \vspace{0.3cm}
9887 \noindent {\bf Return Type:}
9888 {\tt
9889 VBD\_metrics ref
9893 value of the field
9894 \vspace{0.3cm}
9895 \vspace{0.3cm}
9896 \vspace{0.3cm}
9897 \subsubsection{RPC name:~create}
9899 {\bf Overview:}
9900 Create a new VBD instance, and return its handle.
9902 \noindent {\bf Signature:}
9903 \begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
9906 \noindent{\bf Arguments:}
9909 \vspace{0.3cm}
9910 \begin{tabular}{|c|c|p{7cm}|}
9911 \hline
9912 {\bf type} & {\bf name} & {\bf description} \\ \hline
9913 {\tt VBD record } & args & All constructor arguments \\ \hline
9915 \end{tabular}
9917 \vspace{0.3cm}
9919 \noindent {\bf Return Type:}
9920 {\tt
9921 VBD ref
9925 reference to the newly created object
9926 \vspace{0.3cm}
9927 \vspace{0.3cm}
9928 \vspace{0.3cm}
9929 \subsubsection{RPC name:~destroy}
9931 {\bf Overview:}
9932 Destroy the specified VBD instance.
9934 \noindent {\bf Signature:}
9935 \begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
9938 \noindent{\bf Arguments:}
9941 \vspace{0.3cm}
9942 \begin{tabular}{|c|c|p{7cm}|}
9943 \hline
9944 {\bf type} & {\bf name} & {\bf description} \\ \hline
9945 {\tt VBD ref } & self & reference to the object \\ \hline
9947 \end{tabular}
9949 \vspace{0.3cm}
9951 \noindent {\bf Return Type:}
9952 {\tt
9953 void
9958 \vspace{0.3cm}
9959 \vspace{0.3cm}
9960 \vspace{0.3cm}
9961 \subsubsection{RPC name:~get\_by\_uuid}
9963 {\bf Overview:}
9964 Get a reference to the VBD instance with the specified UUID.
9966 \noindent {\bf Signature:}
9967 \begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9970 \noindent{\bf Arguments:}
9973 \vspace{0.3cm}
9974 \begin{tabular}{|c|c|p{7cm}|}
9975 \hline
9976 {\bf type} & {\bf name} & {\bf description} \\ \hline
9977 {\tt string } & uuid & UUID of object to return \\ \hline
9979 \end{tabular}
9981 \vspace{0.3cm}
9983 \noindent {\bf Return Type:}
9984 {\tt
9985 VBD ref
9989 reference to the object
9990 \vspace{0.3cm}
9991 \vspace{0.3cm}
9992 \vspace{0.3cm}
9993 \subsubsection{RPC name:~get\_record}
9995 {\bf Overview:}
9996 Get a record containing the current state of the given VBD.
9998 \noindent {\bf Signature:}
9999 \begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
10002 \noindent{\bf Arguments:}
10005 \vspace{0.3cm}
10006 \begin{tabular}{|c|c|p{7cm}|}
10007 \hline
10008 {\bf type} & {\bf name} & {\bf description} \\ \hline
10009 {\tt VBD ref } & self & reference to the object \\ \hline
10011 \end{tabular}
10013 \vspace{0.3cm}
10015 \noindent {\bf Return Type:}
10016 {\tt
10017 VBD record
10021 all fields from the object
10022 \vspace{0.3cm}
10023 \vspace{0.3cm}
10024 \vspace{0.3cm}
10026 \vspace{1cm}
10027 \newpage
10028 \section{Class: VBD\_metrics}
10029 \subsection{Fields for class: VBD\_metrics}
10030 \begin{longtable}{|lllp{0.38\textwidth}|}
10031 \hline
10032 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD\_metrics} \\
10033 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10034 The metrics associated with a virtual block device.}} \\
10035 \hline
10036 Quals & Field & Type & Description \\
10037 \hline
10038 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10039 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
10040 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
10041 \hline
10042 \end{longtable}
10043 \subsection{Additional RPCs associated with class: VBD\_metrics}
10044 \subsubsection{RPC name:~get\_uuid}
10046 {\bf Overview:}
10047 Get the uuid field of the given VBD\_metrics.
10049 \noindent {\bf Signature:}
10050 \begin{verbatim} string get_uuid (session_id s, VBD_metrics ref self)\end{verbatim}
10053 \noindent{\bf Arguments:}
10056 \vspace{0.3cm}
10057 \begin{tabular}{|c|c|p{7cm}|}
10058 \hline
10059 {\bf type} & {\bf name} & {\bf description} \\ \hline
10060 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10062 \end{tabular}
10064 \vspace{0.3cm}
10066 \noindent {\bf Return Type:}
10067 {\tt
10068 string
10072 value of the field
10073 \vspace{0.3cm}
10074 \vspace{0.3cm}
10075 \vspace{0.3cm}
10076 \subsubsection{RPC name:~get\_io\_read\_kbs}
10078 {\bf Overview:}
10079 Get the io/read\_kbs field of the given VBD\_metrics.
10081 \noindent {\bf Signature:}
10082 \begin{verbatim} float get_io_read_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
10085 \noindent{\bf Arguments:}
10088 \vspace{0.3cm}
10089 \begin{tabular}{|c|c|p{7cm}|}
10090 \hline
10091 {\bf type} & {\bf name} & {\bf description} \\ \hline
10092 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10094 \end{tabular}
10096 \vspace{0.3cm}
10098 \noindent {\bf Return Type:}
10099 {\tt
10100 float
10104 value of the field
10105 \vspace{0.3cm}
10106 \vspace{0.3cm}
10107 \vspace{0.3cm}
10108 \subsubsection{RPC name:~get\_io\_write\_kbs}
10110 {\bf Overview:}
10111 Get the io/write\_kbs field of the given VBD\_metrics.
10113 \noindent {\bf Signature:}
10114 \begin{verbatim} float get_io_write_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
10117 \noindent{\bf Arguments:}
10120 \vspace{0.3cm}
10121 \begin{tabular}{|c|c|p{7cm}|}
10122 \hline
10123 {\bf type} & {\bf name} & {\bf description} \\ \hline
10124 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10126 \end{tabular}
10128 \vspace{0.3cm}
10130 \noindent {\bf Return Type:}
10131 {\tt
10132 float
10136 value of the field
10137 \vspace{0.3cm}
10138 \vspace{0.3cm}
10139 \vspace{0.3cm}
10140 \subsubsection{RPC name:~get\_by\_uuid}
10142 {\bf Overview:}
10143 Get a reference to the VBD\_metrics instance with the specified UUID.
10145 \noindent {\bf Signature:}
10146 \begin{verbatim} (VBD_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10149 \noindent{\bf Arguments:}
10152 \vspace{0.3cm}
10153 \begin{tabular}{|c|c|p{7cm}|}
10154 \hline
10155 {\bf type} & {\bf name} & {\bf description} \\ \hline
10156 {\tt string } & uuid & UUID of object to return \\ \hline
10158 \end{tabular}
10160 \vspace{0.3cm}
10162 \noindent {\bf Return Type:}
10163 {\tt
10164 VBD\_metrics ref
10168 reference to the object
10169 \vspace{0.3cm}
10170 \vspace{0.3cm}
10171 \vspace{0.3cm}
10172 \subsubsection{RPC name:~get\_record}
10174 {\bf Overview:}
10175 Get a record containing the current state of the given VBD\_metrics.
10177 \noindent {\bf Signature:}
10178 \begin{verbatim} (VBD_metrics record) get_record (session_id s, VBD_metrics ref self)\end{verbatim}
10181 \noindent{\bf Arguments:}
10184 \vspace{0.3cm}
10185 \begin{tabular}{|c|c|p{7cm}|}
10186 \hline
10187 {\bf type} & {\bf name} & {\bf description} \\ \hline
10188 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10190 \end{tabular}
10192 \vspace{0.3cm}
10194 \noindent {\bf Return Type:}
10195 {\tt
10196 VBD\_metrics record
10200 all fields from the object
10201 \vspace{0.3cm}
10202 \vspace{0.3cm}
10203 \vspace{0.3cm}
10205 \vspace{1cm}
10206 \newpage
10207 \section{Class: PBD}
10208 \subsection{Fields for class: PBD}
10209 \begin{longtable}{|lllp{0.38\textwidth}|}
10210 \hline
10211 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PBD} \\
10212 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10213 The physical block devices through which hosts access SRs.}} \\
10214 \hline
10215 Quals & Field & Type & Description \\
10216 \hline
10217 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10218 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine on which the pbd is available \\
10219 $\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & the storage repository that the pbd realises \\
10220 $\mathit{RO}_\mathit{ins}$ & {\tt device\_config} & (string $\rightarrow$ string) Map & a config string that is provided to the host's SR-backend-driver \\
10221 $\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the SR currently attached on this host? \\
10222 \hline
10223 \end{longtable}
10224 \subsection{Additional RPCs associated with class: PBD}
10225 \subsubsection{RPC name:~get\_uuid}
10227 {\bf Overview:}
10228 Get the uuid field of the given PBD.
10230 \noindent {\bf Signature:}
10231 \begin{verbatim} string get_uuid (session_id s, PBD ref self)\end{verbatim}
10234 \noindent{\bf Arguments:}
10237 \vspace{0.3cm}
10238 \begin{tabular}{|c|c|p{7cm}|}
10239 \hline
10240 {\bf type} & {\bf name} & {\bf description} \\ \hline
10241 {\tt PBD ref } & self & reference to the object \\ \hline
10243 \end{tabular}
10245 \vspace{0.3cm}
10247 \noindent {\bf Return Type:}
10248 {\tt
10249 string
10253 value of the field
10254 \vspace{0.3cm}
10255 \vspace{0.3cm}
10256 \vspace{0.3cm}
10257 \subsubsection{RPC name:~get\_host}
10259 {\bf Overview:}
10260 Get the host field of the given PBD.
10262 \noindent {\bf Signature:}
10263 \begin{verbatim} (host ref) get_host (session_id s, PBD ref self)\end{verbatim}
10266 \noindent{\bf Arguments:}
10269 \vspace{0.3cm}
10270 \begin{tabular}{|c|c|p{7cm}|}
10271 \hline
10272 {\bf type} & {\bf name} & {\bf description} \\ \hline
10273 {\tt PBD ref } & self & reference to the object \\ \hline
10275 \end{tabular}
10277 \vspace{0.3cm}
10279 \noindent {\bf Return Type:}
10280 {\tt
10281 host ref
10285 value of the field
10286 \vspace{0.3cm}
10287 \vspace{0.3cm}
10288 \vspace{0.3cm}
10289 \subsubsection{RPC name:~get\_SR}
10291 {\bf Overview:}
10292 Get the SR field of the given PBD.
10294 \noindent {\bf Signature:}
10295 \begin{verbatim} (SR ref) get_SR (session_id s, PBD ref self)\end{verbatim}
10298 \noindent{\bf Arguments:}
10301 \vspace{0.3cm}
10302 \begin{tabular}{|c|c|p{7cm}|}
10303 \hline
10304 {\bf type} & {\bf name} & {\bf description} \\ \hline
10305 {\tt PBD ref } & self & reference to the object \\ \hline
10307 \end{tabular}
10309 \vspace{0.3cm}
10311 \noindent {\bf Return Type:}
10312 {\tt
10313 SR ref
10317 value of the field
10318 \vspace{0.3cm}
10319 \vspace{0.3cm}
10320 \vspace{0.3cm}
10321 \subsubsection{RPC name:~get\_device\_config}
10323 {\bf Overview:}
10324 Get the device\_config field of the given PBD.
10326 \noindent {\bf Signature:}
10327 \begin{verbatim} ((string -> string) Map) get_device_config (session_id s, PBD ref self)\end{verbatim}
10330 \noindent{\bf Arguments:}
10333 \vspace{0.3cm}
10334 \begin{tabular}{|c|c|p{7cm}|}
10335 \hline
10336 {\bf type} & {\bf name} & {\bf description} \\ \hline
10337 {\tt PBD ref } & self & reference to the object \\ \hline
10339 \end{tabular}
10341 \vspace{0.3cm}
10343 \noindent {\bf Return Type:}
10344 {\tt
10345 (string $\rightarrow$ string) Map
10349 value of the field
10350 \vspace{0.3cm}
10351 \vspace{0.3cm}
10352 \vspace{0.3cm}
10353 \subsubsection{RPC name:~get\_currently\_attached}
10355 {\bf Overview:}
10356 Get the currently\_attached field of the given PBD.
10358 \noindent {\bf Signature:}
10359 \begin{verbatim} bool get_currently_attached (session_id s, PBD ref self)\end{verbatim}
10362 \noindent{\bf Arguments:}
10365 \vspace{0.3cm}
10366 \begin{tabular}{|c|c|p{7cm}|}
10367 \hline
10368 {\bf type} & {\bf name} & {\bf description} \\ \hline
10369 {\tt PBD ref } & self & reference to the object \\ \hline
10371 \end{tabular}
10373 \vspace{0.3cm}
10375 \noindent {\bf Return Type:}
10376 {\tt
10377 bool
10381 value of the field
10382 \vspace{0.3cm}
10383 \vspace{0.3cm}
10384 \vspace{0.3cm}
10385 \subsubsection{RPC name:~create}
10387 {\bf Overview:}
10388 Create a new PBD instance, and return its handle.
10390 \noindent {\bf Signature:}
10391 \begin{verbatim} (PBD ref) create (session_id s, PBD record args)\end{verbatim}
10394 \noindent{\bf Arguments:}
10397 \vspace{0.3cm}
10398 \begin{tabular}{|c|c|p{7cm}|}
10399 \hline
10400 {\bf type} & {\bf name} & {\bf description} \\ \hline
10401 {\tt PBD record } & args & All constructor arguments \\ \hline
10403 \end{tabular}
10405 \vspace{0.3cm}
10407 \noindent {\bf Return Type:}
10408 {\tt
10409 PBD ref
10413 reference to the newly created object
10414 \vspace{0.3cm}
10415 \vspace{0.3cm}
10416 \vspace{0.3cm}
10417 \subsubsection{RPC name:~destroy}
10419 {\bf Overview:}
10420 Destroy the specified PBD instance.
10422 \noindent {\bf Signature:}
10423 \begin{verbatim} void destroy (session_id s, PBD ref self)\end{verbatim}
10426 \noindent{\bf Arguments:}
10429 \vspace{0.3cm}
10430 \begin{tabular}{|c|c|p{7cm}|}
10431 \hline
10432 {\bf type} & {\bf name} & {\bf description} \\ \hline
10433 {\tt PBD ref } & self & reference to the object \\ \hline
10435 \end{tabular}
10437 \vspace{0.3cm}
10439 \noindent {\bf Return Type:}
10440 {\tt
10441 void
10446 \vspace{0.3cm}
10447 \vspace{0.3cm}
10448 \vspace{0.3cm}
10449 \subsubsection{RPC name:~get\_by\_uuid}
10451 {\bf Overview:}
10452 Get a reference to the PBD instance with the specified UUID.
10454 \noindent {\bf Signature:}
10455 \begin{verbatim} (PBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10458 \noindent{\bf Arguments:}
10461 \vspace{0.3cm}
10462 \begin{tabular}{|c|c|p{7cm}|}
10463 \hline
10464 {\bf type} & {\bf name} & {\bf description} \\ \hline
10465 {\tt string } & uuid & UUID of object to return \\ \hline
10467 \end{tabular}
10469 \vspace{0.3cm}
10471 \noindent {\bf Return Type:}
10472 {\tt
10473 PBD ref
10477 reference to the object
10478 \vspace{0.3cm}
10479 \vspace{0.3cm}
10480 \vspace{0.3cm}
10481 \subsubsection{RPC name:~get\_record}
10483 {\bf Overview:}
10484 Get a record containing the current state of the given PBD.
10486 \noindent {\bf Signature:}
10487 \begin{verbatim} (PBD record) get_record (session_id s, PBD ref self)\end{verbatim}
10490 \noindent{\bf Arguments:}
10493 \vspace{0.3cm}
10494 \begin{tabular}{|c|c|p{7cm}|}
10495 \hline
10496 {\bf type} & {\bf name} & {\bf description} \\ \hline
10497 {\tt PBD ref } & self & reference to the object \\ \hline
10499 \end{tabular}
10501 \vspace{0.3cm}
10503 \noindent {\bf Return Type:}
10504 {\tt
10505 PBD record
10509 all fields from the object
10510 \vspace{0.3cm}
10511 \vspace{0.3cm}
10512 \vspace{0.3cm}
10514 \vspace{1cm}
10515 \newpage
10516 \section{Class: crashdump}
10517 \subsection{Fields for class: crashdump}
10518 \begin{longtable}{|lllp{0.38\textwidth}|}
10519 \hline
10520 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf crashdump} \\
10521 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10522 VM crashdump.}} \\
10523 \hline
10524 Quals & Field & Type & Description \\
10525 \hline
10526 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10527 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
10528 $\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
10529 \hline
10530 \end{longtable}
10531 \subsection{Additional RPCs associated with class: crashdump}
10532 \subsubsection{RPC name:~get\_all}
10534 {\bf Overview:}
10535 Return a list of all the crashdumps known to the system.
10537 \noindent {\bf Signature:}
10538 \begin{verbatim} ((crashdump ref) Set) get_all (session_id s)\end{verbatim}
10541 \vspace{0.3cm}
10543 \noindent {\bf Return Type:}
10544 {\tt
10545 (crashdump ref) Set
10549 references to all objects
10550 \vspace{0.3cm}
10551 \vspace{0.3cm}
10552 \vspace{0.3cm}
10553 \subsubsection{RPC name:~get\_uuid}
10555 {\bf Overview:}
10556 Get the uuid field of the given crashdump.
10558 \noindent {\bf Signature:}
10559 \begin{verbatim} string get_uuid (session_id s, crashdump ref self)\end{verbatim}
10562 \noindent{\bf Arguments:}
10565 \vspace{0.3cm}
10566 \begin{tabular}{|c|c|p{7cm}|}
10567 \hline
10568 {\bf type} & {\bf name} & {\bf description} \\ \hline
10569 {\tt crashdump ref } & self & reference to the object \\ \hline
10571 \end{tabular}
10573 \vspace{0.3cm}
10575 \noindent {\bf Return Type:}
10576 {\tt
10577 string
10581 value of the field
10582 \vspace{0.3cm}
10583 \vspace{0.3cm}
10584 \vspace{0.3cm}
10585 \subsubsection{RPC name:~get\_VM}
10587 {\bf Overview:}
10588 Get the VM field of the given crashdump.
10590 \noindent {\bf Signature:}
10591 \begin{verbatim} (VM ref) get_VM (session_id s, crashdump ref self)\end{verbatim}
10594 \noindent{\bf Arguments:}
10597 \vspace{0.3cm}
10598 \begin{tabular}{|c|c|p{7cm}|}
10599 \hline
10600 {\bf type} & {\bf name} & {\bf description} \\ \hline
10601 {\tt crashdump ref } & self & reference to the object \\ \hline
10603 \end{tabular}
10605 \vspace{0.3cm}
10607 \noindent {\bf Return Type:}
10608 {\tt
10609 VM ref
10613 value of the field
10614 \vspace{0.3cm}
10615 \vspace{0.3cm}
10616 \vspace{0.3cm}
10617 \subsubsection{RPC name:~get\_VDI}
10619 {\bf Overview:}
10620 Get the VDI field of the given crashdump.
10622 \noindent {\bf Signature:}
10623 \begin{verbatim} (VDI ref) get_VDI (session_id s, crashdump ref self)\end{verbatim}
10626 \noindent{\bf Arguments:}
10629 \vspace{0.3cm}
10630 \begin{tabular}{|c|c|p{7cm}|}
10631 \hline
10632 {\bf type} & {\bf name} & {\bf description} \\ \hline
10633 {\tt crashdump ref } & self & reference to the object \\ \hline
10635 \end{tabular}
10637 \vspace{0.3cm}
10639 \noindent {\bf Return Type:}
10640 {\tt
10641 VDI ref
10645 value of the field
10646 \vspace{0.3cm}
10647 \vspace{0.3cm}
10648 \vspace{0.3cm}
10649 \subsubsection{RPC name:~create}
10651 {\bf Overview:}
10652 Create a new crashdump instance, and return its handle.
10654 \noindent {\bf Signature:}
10655 \begin{verbatim} (crashdump ref) create (session_id s, crashdump record args)\end{verbatim}
10658 \noindent{\bf Arguments:}
10661 \vspace{0.3cm}
10662 \begin{tabular}{|c|c|p{7cm}|}
10663 \hline
10664 {\bf type} & {\bf name} & {\bf description} \\ \hline
10665 {\tt crashdump record } & args & All constructor arguments \\ \hline
10667 \end{tabular}
10669 \vspace{0.3cm}
10671 \noindent {\bf Return Type:}
10672 {\tt
10673 crashdump ref
10677 reference to the newly created object
10678 \vspace{0.3cm}
10679 \vspace{0.3cm}
10680 \vspace{0.3cm}
10681 \subsubsection{RPC name:~destroy}
10683 {\bf Overview:}
10684 Destroy the specified crashdump instance.
10686 \noindent {\bf Signature:}
10687 \begin{verbatim} void destroy (session_id s, crashdump ref self)\end{verbatim}
10690 \noindent{\bf Arguments:}
10693 \vspace{0.3cm}
10694 \begin{tabular}{|c|c|p{7cm}|}
10695 \hline
10696 {\bf type} & {\bf name} & {\bf description} \\ \hline
10697 {\tt crashdump ref } & self & reference to the object \\ \hline
10699 \end{tabular}
10701 \vspace{0.3cm}
10703 \noindent {\bf Return Type:}
10704 {\tt
10705 void
10710 \vspace{0.3cm}
10711 \vspace{0.3cm}
10712 \vspace{0.3cm}
10713 \subsubsection{RPC name:~get\_by\_uuid}
10715 {\bf Overview:}
10716 Get a reference to the crashdump instance with the specified UUID.
10718 \noindent {\bf Signature:}
10719 \begin{verbatim} (crashdump ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10722 \noindent{\bf Arguments:}
10725 \vspace{0.3cm}
10726 \begin{tabular}{|c|c|p{7cm}|}
10727 \hline
10728 {\bf type} & {\bf name} & {\bf description} \\ \hline
10729 {\tt string } & uuid & UUID of object to return \\ \hline
10731 \end{tabular}
10733 \vspace{0.3cm}
10735 \noindent {\bf Return Type:}
10736 {\tt
10737 crashdump ref
10741 reference to the object
10742 \vspace{0.3cm}
10743 \vspace{0.3cm}
10744 \vspace{0.3cm}
10745 \subsubsection{RPC name:~get\_record}
10747 {\bf Overview:}
10748 Get a record containing the current state of the given crashdump.
10750 \noindent {\bf Signature:}
10751 \begin{verbatim} (crashdump record) get_record (session_id s, crashdump ref self)\end{verbatim}
10754 \noindent{\bf Arguments:}
10757 \vspace{0.3cm}
10758 \begin{tabular}{|c|c|p{7cm}|}
10759 \hline
10760 {\bf type} & {\bf name} & {\bf description} \\ \hline
10761 {\tt crashdump ref } & self & reference to the object \\ \hline
10763 \end{tabular}
10765 \vspace{0.3cm}
10767 \noindent {\bf Return Type:}
10768 {\tt
10769 crashdump record
10773 all fields from the object
10774 \vspace{0.3cm}
10775 \vspace{0.3cm}
10776 \vspace{0.3cm}
10778 \vspace{1cm}
10779 \newpage
10780 \section{Class: VTPM}
10781 \subsection{Fields for class: VTPM}
10782 \begin{longtable}{|lllp{0.38\textwidth}|}
10783 \hline
10784 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
10785 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
10786 virtual TPM device.}} \\
10787 \hline
10788 Quals & Field & Type & Description \\
10789 \hline
10790 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10791 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
10792 $\mathit{RO}_\mathit{ins}$ & {\tt backend} & VM ref & the domain where the backend is located \\
10793 \hline
10794 \end{longtable}
10795 \subsection{Additional RPCs associated with class: VTPM}
10796 \subsubsection{RPC name:~get\_uuid}
10798 {\bf Overview:}
10799 Get the uuid field of the given VTPM.
10801 \noindent {\bf Signature:}
10802 \begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
10805 \noindent{\bf Arguments:}
10808 \vspace{0.3cm}
10809 \begin{tabular}{|c|c|p{7cm}|}
10810 \hline
10811 {\bf type} & {\bf name} & {\bf description} \\ \hline
10812 {\tt VTPM ref } & self & reference to the object \\ \hline
10814 \end{tabular}
10816 \vspace{0.3cm}
10818 \noindent {\bf Return Type:}
10819 {\tt
10820 string
10824 value of the field
10825 \vspace{0.3cm}
10826 \vspace{0.3cm}
10827 \vspace{0.3cm}
10828 \subsubsection{RPC name:~get\_VM}
10830 {\bf Overview:}
10831 Get the VM field of the given VTPM.
10833 \noindent {\bf Signature:}
10834 \begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
10837 \noindent{\bf Arguments:}
10840 \vspace{0.3cm}
10841 \begin{tabular}{|c|c|p{7cm}|}
10842 \hline
10843 {\bf type} & {\bf name} & {\bf description} \\ \hline
10844 {\tt VTPM ref } & self & reference to the object \\ \hline
10846 \end{tabular}
10848 \vspace{0.3cm}
10850 \noindent {\bf Return Type:}
10851 {\tt
10852 VM ref
10856 value of the field
10857 \vspace{0.3cm}
10858 \vspace{0.3cm}
10859 \vspace{0.3cm}
10860 \subsubsection{RPC name:~get\_backend}
10862 {\bf Overview:}
10863 Get the backend field of the given VTPM.
10865 \noindent {\bf Signature:}
10866 \begin{verbatim} (VM ref) get_backend (session_id s, VTPM ref self)\end{verbatim}
10869 \noindent{\bf Arguments:}
10872 \vspace{0.3cm}
10873 \begin{tabular}{|c|c|p{7cm}|}
10874 \hline
10875 {\bf type} & {\bf name} & {\bf description} \\ \hline
10876 {\tt VTPM ref } & self & reference to the object \\ \hline
10878 \end{tabular}
10880 \vspace{0.3cm}
10882 \noindent {\bf Return Type:}
10883 {\tt
10884 VM ref
10888 value of the field
10889 \vspace{0.3cm}
10890 \vspace{0.3cm}
10891 \vspace{0.3cm}
10892 \subsubsection{RPC name:~create}
10894 {\bf Overview:}
10895 Create a new VTPM instance, and return its handle.
10897 \noindent {\bf Signature:}
10898 \begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\end{verbatim}
10901 \noindent{\bf Arguments:}
10904 \vspace{0.3cm}
10905 \begin{tabular}{|c|c|p{7cm}|}
10906 \hline
10907 {\bf type} & {\bf name} & {\bf description} \\ \hline
10908 {\tt VTPM record } & args & All constructor arguments \\ \hline
10910 \end{tabular}
10912 \vspace{0.3cm}
10914 \noindent {\bf Return Type:}
10915 {\tt
10916 VTPM ref
10920 reference to the newly created object
10921 \vspace{0.3cm}
10922 \vspace{0.3cm}
10923 \vspace{0.3cm}
10924 \subsubsection{RPC name:~destroy}
10926 {\bf Overview:}
10927 Destroy the specified VTPM instance.
10929 \noindent {\bf Signature:}
10930 \begin{verbatim} void destroy (session_id s, VTPM 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 VTPM ref } & self & reference to the object \\ \hline
10942 \end{tabular}
10944 \vspace{0.3cm}
10946 \noindent {\bf Return Type:}
10947 {\tt
10948 void
10953 \vspace{0.3cm}
10954 \vspace{0.3cm}
10955 \vspace{0.3cm}
10956 \subsubsection{RPC name:~get\_by\_uuid}
10958 {\bf Overview:}
10959 Get a reference to the VTPM instance with the specified UUID.
10961 \noindent {\bf Signature:}
10962 \begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\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 string } & uuid & UUID of object to return \\ \hline
10974 \end{tabular}
10976 \vspace{0.3cm}
10978 \noindent {\bf Return Type:}
10979 {\tt
10980 VTPM ref
10984 reference to the object
10985 \vspace{0.3cm}
10986 \vspace{0.3cm}
10987 \vspace{0.3cm}
10988 \subsubsection{RPC name:~get\_record}
10990 {\bf Overview:}
10991 Get a record containing the current state of the given VTPM.
10993 \noindent {\bf Signature:}
10994 \begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
10997 \noindent{\bf Arguments:}
11000 \vspace{0.3cm}
11001 \begin{tabular}{|c|c|p{7cm}|}
11002 \hline
11003 {\bf type} & {\bf name} & {\bf description} \\ \hline
11004 {\tt VTPM ref } & self & reference to the object \\ \hline
11006 \end{tabular}
11008 \vspace{0.3cm}
11010 \noindent {\bf Return Type:}
11011 {\tt
11012 VTPM record
11016 all fields from the object
11017 \vspace{0.3cm}
11018 \vspace{0.3cm}
11019 \vspace{0.3cm}
11021 \vspace{1cm}
11022 \newpage
11023 \section{Class: console}
11024 \subsection{Fields for class: console}
11025 \begin{longtable}{|lllp{0.38\textwidth}|}
11026 \hline
11027 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf console} \\
11028 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
11029 console.}} \\
11030 \hline
11031 Quals & Field & Type & Description \\
11032 \hline
11033 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
11034 $\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\
11035 $\mathit{RO}_\mathit{run}$ & {\tt location} & string & URI for the console service \\
11036 $\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\
11037 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
11038 \hline
11039 \end{longtable}
11040 \subsection{Additional RPCs associated with class: console}
11041 \subsubsection{RPC name:~get\_uuid}
11043 {\bf Overview:}
11044 Get the uuid field of the given console.
11046 \noindent {\bf Signature:}
11047 \begin{verbatim} string get_uuid (session_id s, console ref self)\end{verbatim}
11050 \noindent{\bf Arguments:}