ia64/xen-unstable

view docs/xen-api/xenapi-datamodel.tex @ 14116:fd7f23e44b11

Added VBD. and VIF.qos_supported_algorithms fields, with C bindings, Xend
implementation to follow.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
author Ewan Mellor <ewan@xensource.com>
date Wed Feb 21 23:03:00 2007 +0000 (2007-02-21)
parents ee3ea729f5de
children f3aa6e34aeb1
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 VIF\_metrics} & The metrics associated with a virtual network device \\
35 {\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
36 {\tt PIF\_metrics} & The metrics associated with a physical network interface \\
37 {\tt SR} & A storage repository \\
38 {\tt VDI} & A virtual disk image \\
39 {\tt VBD} & A virtual block device \\
40 {\tt VBD\_metrics} & The metrics associated with a virtual block device \\
41 {\tt PBD} & The physical block devices through which hosts access SRs \\
42 {\tt crashdump} & A VM crashdump \\
43 {\tt VTPM} & A virtual TPM device \\
44 {\tt console} & A console \\
45 {\tt user} & A user of the system \\
46 {\tt debug} & A basic class for testing \\
47 \hline
48 \end{tabular}\end{center}
49 \section{Relationships Between Classes}
50 Fields that are bound together are shown in the following table:
51 \begin{center}\begin{tabular}{|ll|l|}
52 \hline
53 {\em object.field} & {\em object.field} & {\em relationship} \\
55 \hline
56 host.PBDs & PBD.host & many-to-one\\
57 SR.PBDs & PBD.SR & many-to-one\\
58 VDI.VBDs & VBD.VDI & many-to-one\\
59 VDI.crash\_dumps & crashdump.VDI & many-to-one\\
60 VBD.VM & VM.VBDs & one-to-many\\
61 crashdump.VM & VM.crash\_dumps & one-to-many\\
62 VIF.VM & VM.VIFs & one-to-many\\
63 VIF.network & network.VIFs & one-to-many\\
64 host.metrics & host\_metrics.host & one-to-one\\
65 PIF.metrics & PIF\_metrics.PIF & one-to-one\\
66 PIF.host & host.PIFs & one-to-many\\
67 PIF.network & network.PIFs & one-to-many\\
68 SR.VDIs & VDI.SR & many-to-one\\
69 VTPM.VM & VM.VTPMs & one-to-many\\
70 console.VM & VM.consoles & one-to-many\\
71 host.resident\_VMs & VM.resident\_on & many-to-one\\
72 host.host\_CPUs & host\_cpu.host & many-to-one\\
73 \hline
74 \end{tabular}\end{center}
76 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
77 relationships:
79 \begin{center}\resizebox{0.8\textwidth}{!}{
80 \includegraphics{xenapi-datamodel-graph}
81 }\end{center}
82 \
83 \subsection{List of bound fields}
84 \section{Types}
85 \subsection{Primitives}
86 The following primitive types are used to specify methods and fields in the API Reference:
88 \begin{center}\begin{tabular}{|ll|}
89 \hline
90 Type & Description \\
91 \hline
92 String & text strings \\
93 Int & 64-bit integers \\
94 Float & IEEE double-precision floating-point numbers \\
95 Bool & boolean \\
96 DateTime & date and timestamp \\
97 Ref (object name) & reference to an object of class name \\
98 \hline
99 \end{tabular}\end{center}
100 \subsection{Higher order types}
101 The following type constructors are used:
103 \begin{center}\begin{tabular}{|ll|}
104 \hline
105 Type & Description \\
106 \hline
107 List (t) & an arbitrary-length list of elements of type t \\
108 Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
109 \hline
110 \end{tabular}\end{center}
111 \subsection{Enumeration types}
112 The following enumeration types are used:
114 \begin{longtable}{|ll|}
115 \hline
116 {\tt enum console\_protocol} & \\
117 \hline
118 \hspace{0.5cm}{\tt vt100} & VT100 terminal \\
119 \hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
120 \hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
121 \hline
122 \end{longtable}
124 \vspace{1cm}
125 \begin{longtable}{|ll|}
126 \hline
127 {\tt enum vdi\_type} & \\
128 \hline
129 \hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
130 \hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
131 \hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
132 \hspace{0.5cm}{\tt suspend} & a disk that stores a suspend image \\
133 \hspace{0.5cm}{\tt crashdump} & a disk that stores VM crashdump information \\
134 \hline
135 \end{longtable}
137 \vspace{1cm}
138 \begin{longtable}{|ll|}
139 \hline
140 {\tt enum vm\_power\_state} & \\
141 \hline
142 \hspace{0.5cm}{\tt Halted} & Halted \\
143 \hspace{0.5cm}{\tt Paused} & Paused \\
144 \hspace{0.5cm}{\tt Running} & Running \\
145 \hspace{0.5cm}{\tt Suspended} & Suspended \\
146 \hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
147 \hline
148 \end{longtable}
150 \vspace{1cm}
151 \begin{longtable}{|ll|}
152 \hline
153 {\tt enum task\_allowed\_operations} & \\
154 \hline
155 \hspace{0.5cm}{\tt Cancel} & Cancel \\
156 \hline
157 \end{longtable}
159 \vspace{1cm}
160 \begin{longtable}{|ll|}
161 \hline
162 {\tt enum task\_status\_type} & \\
163 \hline
164 \hspace{0.5cm}{\tt pending} & task is in progress \\
165 \hspace{0.5cm}{\tt success} & task was completed successfully \\
166 \hspace{0.5cm}{\tt failure} & task has failed \\
167 \hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
168 \hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
169 \hline
170 \end{longtable}
172 \vspace{1cm}
173 \begin{longtable}{|ll|}
174 \hline
175 {\tt enum on\_normal\_exit} & \\
176 \hline
177 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
178 \hspace{0.5cm}{\tt restart} & restart the VM \\
179 \hline
180 \end{longtable}
182 \vspace{1cm}
183 \begin{longtable}{|ll|}
184 \hline
185 {\tt enum on\_crash\_behaviour} & \\
186 \hline
187 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
188 \hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
189 \hspace{0.5cm}{\tt restart} & restart the VM \\
190 \hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
191 \hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
192 \hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
193 \hline
194 \end{longtable}
196 \vspace{1cm}
197 \begin{longtable}{|ll|}
198 \hline
199 {\tt enum vbd\_mode} & \\
200 \hline
201 \hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
202 \hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
203 \hline
204 \end{longtable}
206 \vspace{1cm}
207 \begin{longtable}{|ll|}
208 \hline
209 {\tt enum vbd\_type} & \\
210 \hline
211 \hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
212 \hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
213 \hline
214 \end{longtable}
216 \vspace{1cm}
218 \newpage
219 \section{Class: session}
220 \subsection{Fields for class: session}
221 \begin{longtable}{|lllp{0.38\textwidth}|}
222 \hline
223 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
224 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
225 session.}} \\
226 \hline
227 Quals & Field & Type & Description \\
228 \hline
229 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
230 $\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
231 $\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
232 $\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
233 \hline
234 \end{longtable}
235 \subsection{Additional RPCs associated with class: session}
236 \subsubsection{RPC name:~login\_with\_password}
238 {\bf Overview:}
239 Attempt to authenticate the user, returning a session\_id if successful.
241 \noindent {\bf Signature:}
242 \begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
245 \noindent{\bf Arguments:}
248 \vspace{0.3cm}
249 \begin{tabular}{|c|c|p{7cm}|}
250 \hline
251 {\bf type} & {\bf name} & {\bf description} \\ \hline
252 {\tt string } & uname & Username for login. \\ \hline
254 {\tt string } & pwd & Password for login. \\ \hline
256 \end{tabular}
258 \vspace{0.3cm}
260 \noindent {\bf Return Type:}
261 {\tt
262 session ref
263 }
266 ID of newly created session
267 \vspace{0.3cm}
268 \vspace{0.3cm}
269 \vspace{0.3cm}
270 \subsubsection{RPC name:~logout}
272 {\bf Overview:}
273 Log out of a session.
275 \noindent {\bf Signature:}
276 \begin{verbatim} void logout (session_id s)\end{verbatim}
279 \vspace{0.3cm}
281 \noindent {\bf Return Type:}
282 {\tt
283 void
284 }
288 \vspace{0.3cm}
289 \vspace{0.3cm}
290 \vspace{0.3cm}
291 \subsubsection{RPC name:~get\_uuid}
293 {\bf Overview:}
294 Get the uuid field of the given session.
296 \noindent {\bf Signature:}
297 \begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
300 \noindent{\bf Arguments:}
303 \vspace{0.3cm}
304 \begin{tabular}{|c|c|p{7cm}|}
305 \hline
306 {\bf type} & {\bf name} & {\bf description} \\ \hline
307 {\tt session ref } & self & reference to the object \\ \hline
309 \end{tabular}
311 \vspace{0.3cm}
313 \noindent {\bf Return Type:}
314 {\tt
315 string
316 }
319 value of the field
320 \vspace{0.3cm}
321 \vspace{0.3cm}
322 \vspace{0.3cm}
323 \subsubsection{RPC name:~get\_this\_host}
325 {\bf Overview:}
326 Get the this\_host field of the given session.
328 \noindent {\bf Signature:}
329 \begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
332 \noindent{\bf Arguments:}
335 \vspace{0.3cm}
336 \begin{tabular}{|c|c|p{7cm}|}
337 \hline
338 {\bf type} & {\bf name} & {\bf description} \\ \hline
339 {\tt session ref } & self & reference to the object \\ \hline
341 \end{tabular}
343 \vspace{0.3cm}
345 \noindent {\bf Return Type:}
346 {\tt
347 host ref
348 }
351 value of the field
352 \vspace{0.3cm}
353 \vspace{0.3cm}
354 \vspace{0.3cm}
355 \subsubsection{RPC name:~get\_this\_user}
357 {\bf Overview:}
358 Get the this\_user field of the given session.
360 \noindent {\bf Signature:}
361 \begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
364 \noindent{\bf Arguments:}
367 \vspace{0.3cm}
368 \begin{tabular}{|c|c|p{7cm}|}
369 \hline
370 {\bf type} & {\bf name} & {\bf description} \\ \hline
371 {\tt session ref } & self & reference to the object \\ \hline
373 \end{tabular}
375 \vspace{0.3cm}
377 \noindent {\bf Return Type:}
378 {\tt
379 user ref
380 }
383 value of the field
384 \vspace{0.3cm}
385 \vspace{0.3cm}
386 \vspace{0.3cm}
387 \subsubsection{RPC name:~get\_last\_active}
389 {\bf Overview:}
390 Get the last\_active field of the given session.
392 \noindent {\bf Signature:}
393 \begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
396 \noindent{\bf Arguments:}
399 \vspace{0.3cm}
400 \begin{tabular}{|c|c|p{7cm}|}
401 \hline
402 {\bf type} & {\bf name} & {\bf description} \\ \hline
403 {\tt session ref } & self & reference to the object \\ \hline
405 \end{tabular}
407 \vspace{0.3cm}
409 \noindent {\bf Return Type:}
410 {\tt
411 int
412 }
415 value of the field
416 \vspace{0.3cm}
417 \vspace{0.3cm}
418 \vspace{0.3cm}
419 \subsubsection{RPC name:~get\_by\_uuid}
421 {\bf Overview:}
422 Get a reference to the session instance with the specified UUID.
424 \noindent {\bf Signature:}
425 \begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
428 \noindent{\bf Arguments:}
431 \vspace{0.3cm}
432 \begin{tabular}{|c|c|p{7cm}|}
433 \hline
434 {\bf type} & {\bf name} & {\bf description} \\ \hline
435 {\tt string } & uuid & UUID of object to return \\ \hline
437 \end{tabular}
439 \vspace{0.3cm}
441 \noindent {\bf Return Type:}
442 {\tt
443 session ref
444 }
447 reference to the object
448 \vspace{0.3cm}
449 \vspace{0.3cm}
450 \vspace{0.3cm}
451 \subsubsection{RPC name:~get\_record}
453 {\bf Overview:}
454 Get a record containing the current state of the given session.
456 \noindent {\bf Signature:}
457 \begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
460 \noindent{\bf Arguments:}
463 \vspace{0.3cm}
464 \begin{tabular}{|c|c|p{7cm}|}
465 \hline
466 {\bf type} & {\bf name} & {\bf description} \\ \hline
467 {\tt session ref } & self & reference to the object \\ \hline
469 \end{tabular}
471 \vspace{0.3cm}
473 \noindent {\bf Return Type:}
474 {\tt
475 session record
476 }
479 all fields from the object
480 \vspace{0.3cm}
481 \vspace{0.3cm}
482 \vspace{0.3cm}
484 \vspace{1cm}
485 \newpage
486 \section{Class: task}
487 \subsection{Fields for class: task}
488 \begin{longtable}{|lllp{0.38\textwidth}|}
489 \hline
490 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
491 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
492 long-running asynchronous task.}} \\
493 \hline
494 Quals & Field & Type & Description \\
495 \hline
496 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
497 $\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
498 $\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
499 $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
500 $\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
501 $\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. \\
502 $\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. \\
503 $\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. \\
504 $\mathit{RO}_\mathit{run}$ & {\tt error\_code} & int & if the task has failed, this field contains the error code. Undefined otherwise. \\
505 $\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. \\
506 $\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
507 \hline
508 \end{longtable}
509 \subsection{Additional RPCs associated with class: task}
510 \subsubsection{RPC name:~cancel}
512 {\bf Overview:}
513 Cancel this task. If task.allowed\_operations does not contain Cancel,
514 then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
515 status 'cancelling', and you should continue to check its status until it
516 shows 'cancelled'. There is no guarantee as to the time within which this
517 task will be cancelled.
519 \noindent {\bf Signature:}
520 \begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
523 \noindent{\bf Arguments:}
526 \vspace{0.3cm}
527 \begin{tabular}{|c|c|p{7cm}|}
528 \hline
529 {\bf type} & {\bf name} & {\bf description} \\ \hline
530 {\tt task ref } & task & The task \\ \hline
532 \end{tabular}
534 \vspace{0.3cm}
536 \noindent {\bf Return Type:}
537 {\tt
538 void
539 }
543 \vspace{0.3cm}
545 \noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
547 \vspace{0.6cm}
548 \subsubsection{RPC name:~get\_all}
550 {\bf Overview:}
551 Return a list of all the tasks known to the system.
553 \noindent {\bf Signature:}
554 \begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
557 \vspace{0.3cm}
559 \noindent {\bf Return Type:}
560 {\tt
561 (task ref) Set
562 }
565 references to all objects
566 \vspace{0.3cm}
567 \vspace{0.3cm}
568 \vspace{0.3cm}
569 \subsubsection{RPC name:~get\_uuid}
571 {\bf Overview:}
572 Get the uuid field of the given task.
574 \noindent {\bf Signature:}
575 \begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
578 \noindent{\bf Arguments:}
581 \vspace{0.3cm}
582 \begin{tabular}{|c|c|p{7cm}|}
583 \hline
584 {\bf type} & {\bf name} & {\bf description} \\ \hline
585 {\tt task ref } & self & reference to the object \\ \hline
587 \end{tabular}
589 \vspace{0.3cm}
591 \noindent {\bf Return Type:}
592 {\tt
593 string
594 }
597 value of the field
598 \vspace{0.3cm}
599 \vspace{0.3cm}
600 \vspace{0.3cm}
601 \subsubsection{RPC name:~get\_name\_label}
603 {\bf Overview:}
604 Get the name/label field of the given task.
606 \noindent {\bf Signature:}
607 \begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
610 \noindent{\bf Arguments:}
613 \vspace{0.3cm}
614 \begin{tabular}{|c|c|p{7cm}|}
615 \hline
616 {\bf type} & {\bf name} & {\bf description} \\ \hline
617 {\tt task ref } & self & reference to the object \\ \hline
619 \end{tabular}
621 \vspace{0.3cm}
623 \noindent {\bf Return Type:}
624 {\tt
625 string
626 }
629 value of the field
630 \vspace{0.3cm}
631 \vspace{0.3cm}
632 \vspace{0.3cm}
633 \subsubsection{RPC name:~get\_name\_description}
635 {\bf Overview:}
636 Get the name/description field of the given task.
638 \noindent {\bf Signature:}
639 \begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
642 \noindent{\bf Arguments:}
645 \vspace{0.3cm}
646 \begin{tabular}{|c|c|p{7cm}|}
647 \hline
648 {\bf type} & {\bf name} & {\bf description} \\ \hline
649 {\tt task ref } & self & reference to the object \\ \hline
651 \end{tabular}
653 \vspace{0.3cm}
655 \noindent {\bf Return Type:}
656 {\tt
657 string
658 }
661 value of the field
662 \vspace{0.3cm}
663 \vspace{0.3cm}
664 \vspace{0.3cm}
665 \subsubsection{RPC name:~get\_status}
667 {\bf Overview:}
668 Get the status field of the given task.
670 \noindent {\bf Signature:}
671 \begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
674 \noindent{\bf Arguments:}
677 \vspace{0.3cm}
678 \begin{tabular}{|c|c|p{7cm}|}
679 \hline
680 {\bf type} & {\bf name} & {\bf description} \\ \hline
681 {\tt task ref } & self & reference to the object \\ \hline
683 \end{tabular}
685 \vspace{0.3cm}
687 \noindent {\bf Return Type:}
688 {\tt
689 task\_status\_type
690 }
693 value of the field
694 \vspace{0.3cm}
695 \vspace{0.3cm}
696 \vspace{0.3cm}
697 \subsubsection{RPC name:~get\_session}
699 {\bf Overview:}
700 Get the session field of the given task.
702 \noindent {\bf Signature:}
703 \begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
706 \noindent{\bf Arguments:}
709 \vspace{0.3cm}
710 \begin{tabular}{|c|c|p{7cm}|}
711 \hline
712 {\bf type} & {\bf name} & {\bf description} \\ \hline
713 {\tt task ref } & self & reference to the object \\ \hline
715 \end{tabular}
717 \vspace{0.3cm}
719 \noindent {\bf Return Type:}
720 {\tt
721 session ref
722 }
725 value of the field
726 \vspace{0.3cm}
727 \vspace{0.3cm}
728 \vspace{0.3cm}
729 \subsubsection{RPC name:~get\_progress}
731 {\bf Overview:}
732 Get the progress field of the given task.
734 \noindent {\bf Signature:}
735 \begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
738 \noindent{\bf Arguments:}
741 \vspace{0.3cm}
742 \begin{tabular}{|c|c|p{7cm}|}
743 \hline
744 {\bf type} & {\bf name} & {\bf description} \\ \hline
745 {\tt task ref } & self & reference to the object \\ \hline
747 \end{tabular}
749 \vspace{0.3cm}
751 \noindent {\bf Return Type:}
752 {\tt
753 int
754 }
757 value of the field
758 \vspace{0.3cm}
759 \vspace{0.3cm}
760 \vspace{0.3cm}
761 \subsubsection{RPC name:~get\_type}
763 {\bf Overview:}
764 Get the type field of the given task.
766 \noindent {\bf Signature:}
767 \begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
770 \noindent{\bf Arguments:}
773 \vspace{0.3cm}
774 \begin{tabular}{|c|c|p{7cm}|}
775 \hline
776 {\bf type} & {\bf name} & {\bf description} \\ \hline
777 {\tt task ref } & self & reference to the object \\ \hline
779 \end{tabular}
781 \vspace{0.3cm}
783 \noindent {\bf Return Type:}
784 {\tt
785 string
786 }
789 value of the field
790 \vspace{0.3cm}
791 \vspace{0.3cm}
792 \vspace{0.3cm}
793 \subsubsection{RPC name:~get\_result}
795 {\bf Overview:}
796 Get the result field of the given task.
798 \noindent {\bf Signature:}
799 \begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
802 \noindent{\bf Arguments:}
805 \vspace{0.3cm}
806 \begin{tabular}{|c|c|p{7cm}|}
807 \hline
808 {\bf type} & {\bf name} & {\bf description} \\ \hline
809 {\tt task ref } & self & reference to the object \\ \hline
811 \end{tabular}
813 \vspace{0.3cm}
815 \noindent {\bf Return Type:}
816 {\tt
817 string
818 }
821 value of the field
822 \vspace{0.3cm}
823 \vspace{0.3cm}
824 \vspace{0.3cm}
825 \subsubsection{RPC name:~get\_error\_code}
827 {\bf Overview:}
828 Get the error\_code field of the given task.
830 \noindent {\bf Signature:}
831 \begin{verbatim} int get_error_code (session_id s, task ref self)\end{verbatim}
834 \noindent{\bf Arguments:}
837 \vspace{0.3cm}
838 \begin{tabular}{|c|c|p{7cm}|}
839 \hline
840 {\bf type} & {\bf name} & {\bf description} \\ \hline
841 {\tt task ref } & self & reference to the object \\ \hline
843 \end{tabular}
845 \vspace{0.3cm}
847 \noindent {\bf Return Type:}
848 {\tt
849 int
850 }
853 value of the field
854 \vspace{0.3cm}
855 \vspace{0.3cm}
856 \vspace{0.3cm}
857 \subsubsection{RPC name:~get\_error\_info}
859 {\bf Overview:}
860 Get the error\_info field of the given task.
862 \noindent {\bf Signature:}
863 \begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
866 \noindent{\bf Arguments:}
869 \vspace{0.3cm}
870 \begin{tabular}{|c|c|p{7cm}|}
871 \hline
872 {\bf type} & {\bf name} & {\bf description} \\ \hline
873 {\tt task ref } & self & reference to the object \\ \hline
875 \end{tabular}
877 \vspace{0.3cm}
879 \noindent {\bf Return Type:}
880 {\tt
881 string Set
882 }
885 value of the field
886 \vspace{0.3cm}
887 \vspace{0.3cm}
888 \vspace{0.3cm}
889 \subsubsection{RPC name:~get\_allowed\_operations}
891 {\bf Overview:}
892 Get the allowed\_operations field of the given task.
894 \noindent {\bf Signature:}
895 \begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
898 \noindent{\bf Arguments:}
901 \vspace{0.3cm}
902 \begin{tabular}{|c|c|p{7cm}|}
903 \hline
904 {\bf type} & {\bf name} & {\bf description} \\ \hline
905 {\tt task ref } & self & reference to the object \\ \hline
907 \end{tabular}
909 \vspace{0.3cm}
911 \noindent {\bf Return Type:}
912 {\tt
913 (task\_allowed\_operations) Set
914 }
917 value of the field
918 \vspace{0.3cm}
919 \vspace{0.3cm}
920 \vspace{0.3cm}
921 \subsubsection{RPC name:~get\_by\_uuid}
923 {\bf Overview:}
924 Get a reference to the task instance with the specified UUID.
926 \noindent {\bf Signature:}
927 \begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
930 \noindent{\bf Arguments:}
933 \vspace{0.3cm}
934 \begin{tabular}{|c|c|p{7cm}|}
935 \hline
936 {\bf type} & {\bf name} & {\bf description} \\ \hline
937 {\tt string } & uuid & UUID of object to return \\ \hline
939 \end{tabular}
941 \vspace{0.3cm}
943 \noindent {\bf Return Type:}
944 {\tt
945 task ref
946 }
949 reference to the object
950 \vspace{0.3cm}
951 \vspace{0.3cm}
952 \vspace{0.3cm}
953 \subsubsection{RPC name:~get\_record}
955 {\bf Overview:}
956 Get a record containing the current state of the given task.
958 \noindent {\bf Signature:}
959 \begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
962 \noindent{\bf Arguments:}
965 \vspace{0.3cm}
966 \begin{tabular}{|c|c|p{7cm}|}
967 \hline
968 {\bf type} & {\bf name} & {\bf description} \\ \hline
969 {\tt task ref } & self & reference to the object \\ \hline
971 \end{tabular}
973 \vspace{0.3cm}
975 \noindent {\bf Return Type:}
976 {\tt
977 task record
978 }
981 all fields from the object
982 \vspace{0.3cm}
983 \vspace{0.3cm}
984 \vspace{0.3cm}
985 \subsubsection{RPC name:~get\_by\_name\_label}
987 {\bf Overview:}
988 Get all the task instances with the given label.
990 \noindent {\bf Signature:}
991 \begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
994 \noindent{\bf Arguments:}
997 \vspace{0.3cm}
998 \begin{tabular}{|c|c|p{7cm}|}
999 \hline
1000 {\bf type} & {\bf name} & {\bf description} \\ \hline
1001 {\tt string } & label & label of object to return \\ \hline
1003 \end{tabular}
1005 \vspace{0.3cm}
1007 \noindent {\bf Return Type:}
1008 {\tt
1009 (task ref) Set
1013 references to objects with match names
1014 \vspace{0.3cm}
1015 \vspace{0.3cm}
1016 \vspace{0.3cm}
1018 \vspace{1cm}
1019 \newpage
1020 \section{Class: VM}
1021 \subsection{Fields for class: VM}
1022 \begin{longtable}{|lllp{0.38\textwidth}|}
1023 \hline
1024 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1025 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
1026 virtual machine (or 'guest').
1028 VM booting is controlled by setting one of the two mutually exclusive
1029 groups: "PV", and "HVM". If HVM.boot\_policy is the empty string, then
1030 paravirtual domain building and booting will be used; otherwise the VM will
1031 be loaded as an HVM domain, and booted using an emulated BIOS.
1033 When paravirtual booting is in use, the PV/bootloader field indicates the
1034 bootloader to use. It may be "pygrub", in which case the platform's
1035 default installation of pygrub will be used, or a full path within the
1036 control domain to some other bootloader. The other fields, PV/kernel,
1037 PV/ramdisk, PV/args and PV/bootloader\_args will be passed to the
1038 bootloader unmodified, and interpretation of those fields is then specific
1039 to the bootloader itself, including the possibility that the bootloader
1040 will ignore some or all of those given values. Finally the paths of all
1041 bootable disks are added to the bootloader commandline (a disk is bootable
1042 if its VBD has the bootable flag set). There may be zero, one or many
1043 bootable disks; the bootloader decides which disk (if any) to boot from.
1045 If the bootloader is pygrub, then the menu.lst is parsed if present in the
1046 guest's filesystem, otherwise the specified kernel and ramdisk are used, or
1047 an autodetected kernel is used if nothing is specified and autodetection is
1048 possible. PV/args is appended to the kernel command line, no matter which
1049 mechanism is used for finding the kernel.
1051 If PV/bootloader is empty but PV/kernel is specified, then the kernel and
1052 ramdisk values will be treated as paths within the control domain. If both
1053 PV/bootloader and PV/kernel are empty, then the behaviour is as if
1054 PV/bootloader was specified as "pygrub".
1056 When using HVM booting, HVM/boot\_policy and HVM/boot\_params specify the
1057 boot handling. Only one policy is currently defined: "BIOS order". In
1058 this case, HVM/boot\_params should contain one key-value pair "order" = "N"
1059 where N is the string that will be passed to QEMU.}} \\
1060 \hline
1061 Quals & Field & Type & Description \\
1062 \hline
1063 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1064 $\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1065 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1066 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1067 $\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1068 $\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 \\
1069 $\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1070 $\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) \\
1071 $\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1072 $\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1073 $\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1074 $\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1075 $\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) mininum (bytes) \\
1076 $\mathit{RW}$ & {\tt VCPUs/policy} & string & the name of the VCPU scheduling policy to be applied \\
1077 $\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
1078 $\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
1079 $\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
1080 $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1081 $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1082 $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1083 $\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1084 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1085 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1086 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
1087 $\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1088 $\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1089 $\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
1090 $\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
1091 $\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1092 $\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1093 $\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
1094 $\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
1095 $\mathit{RW}$ & {\tt platform/std\_VGA} & bool & emulate standard VGA instead of cirrus logic \\
1096 $\mathit{RW}$ & {\tt platform/serial} & string & redirect serial port to pty \\
1097 $\mathit{RW}$ & {\tt platform/localtime} & bool & set RTC to local time \\
1098 $\mathit{RW}$ & {\tt platform/clock\_offset} & bool & timeshift applied to guest's clock \\
1099 $\mathit{RW}$ & {\tt platform/enable\_audio} & bool & emulate audio \\
1100 $\mathit{RO}_\mathit{ins}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1101 $\mathit{RO}_\mathit{run}$ & {\tt tools\_version} & (string $\rightarrow$ string) Map & versions of installed paravirtualised drivers \\
1102 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
1103 $\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
1104 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM. \\
1105 \hline
1106 \end{longtable}
1107 \subsection{Additional RPCs associated with class: VM}
1108 \subsubsection{RPC name:~clone}
1110 {\bf Overview:}
1111 Clones the specified VM, making a new VM. Clone automatically exploits the
1112 capabilities of the underlying storage repository in which the VM's disk
1113 images are stored (e.g. Copy on Write). This function can only be called
1114 when the VM is in the Halted State.
1116 \noindent {\bf Signature:}
1117 \begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1120 \noindent{\bf Arguments:}
1123 \vspace{0.3cm}
1124 \begin{tabular}{|c|c|p{7cm}|}
1125 \hline
1126 {\bf type} & {\bf name} & {\bf description} \\ \hline
1127 {\tt VM ref } & vm & The VM to be cloned \\ \hline
1129 {\tt string } & new\_name & The name of the cloned VM \\ \hline
1131 \end{tabular}
1133 \vspace{0.3cm}
1135 \noindent {\bf Return Type:}
1136 {\tt
1137 VM ref
1141 The ID of the newly created VM.
1142 \vspace{0.3cm}
1144 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1146 \vspace{0.6cm}
1147 \subsubsection{RPC name:~start}
1149 {\bf Overview:}
1150 Start the specified VM. This function can only be called with the VM is in
1151 the Halted State.
1153 \noindent {\bf Signature:}
1154 \begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1157 \noindent{\bf Arguments:}
1160 \vspace{0.3cm}
1161 \begin{tabular}{|c|c|p{7cm}|}
1162 \hline
1163 {\bf type} & {\bf name} & {\bf description} \\ \hline
1164 {\tt VM ref } & vm & The VM to start \\ \hline
1166 {\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1168 \end{tabular}
1170 \vspace{0.3cm}
1172 \noindent {\bf Return Type:}
1173 {\tt
1174 void
1179 \vspace{0.3cm}
1181 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1183 \vspace{0.6cm}
1184 \subsubsection{RPC name:~pause}
1186 {\bf Overview:}
1187 Pause the specified VM. This can only be called when the specified VM is in
1188 the Running state.
1190 \noindent {\bf Signature:}
1191 \begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1194 \noindent{\bf Arguments:}
1197 \vspace{0.3cm}
1198 \begin{tabular}{|c|c|p{7cm}|}
1199 \hline
1200 {\bf type} & {\bf name} & {\bf description} \\ \hline
1201 {\tt VM ref } & vm & The VM to pause \\ \hline
1203 \end{tabular}
1205 \vspace{0.3cm}
1207 \noindent {\bf Return Type:}
1208 {\tt
1209 void
1214 \vspace{0.3cm}
1216 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1218 \vspace{0.6cm}
1219 \subsubsection{RPC name:~unpause}
1221 {\bf Overview:}
1222 Resume the specified VM. This can only be called when the specified VM is
1223 in the Paused state.
1225 \noindent {\bf Signature:}
1226 \begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1229 \noindent{\bf Arguments:}
1232 \vspace{0.3cm}
1233 \begin{tabular}{|c|c|p{7cm}|}
1234 \hline
1235 {\bf type} & {\bf name} & {\bf description} \\ \hline
1236 {\tt VM ref } & vm & The VM to unpause \\ \hline
1238 \end{tabular}
1240 \vspace{0.3cm}
1242 \noindent {\bf Return Type:}
1243 {\tt
1244 void
1249 \vspace{0.3cm}
1251 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1253 \vspace{0.6cm}
1254 \subsubsection{RPC name:~clean\_shutdown}
1256 {\bf Overview:}
1257 Attempt to cleanly shutdown the specified VM. (Note: this may not be
1258 supported---e.g. if a guest agent is not installed).
1260 Once shutdown has been completed perform poweroff action specified in guest
1261 configuration.
1263 This can only be called when the specified VM is in the Running state.
1265 \noindent {\bf Signature:}
1266 \begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1269 \noindent{\bf Arguments:}
1272 \vspace{0.3cm}
1273 \begin{tabular}{|c|c|p{7cm}|}
1274 \hline
1275 {\bf type} & {\bf name} & {\bf description} \\ \hline
1276 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1278 \end{tabular}
1280 \vspace{0.3cm}
1282 \noindent {\bf Return Type:}
1283 {\tt
1284 void
1289 \vspace{0.3cm}
1291 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1293 \vspace{0.6cm}
1294 \subsubsection{RPC name:~clean\_reboot}
1296 {\bf Overview:}
1297 Attempt to cleanly shutdown the specified VM (Note: this may not be
1298 supported---e.g. if a guest agent is not installed).
1300 Once shutdown has been completed perform reboot action specified in guest
1301 configuration.
1303 This can only be called when the specified VM is in the Running state.
1305 \noindent {\bf Signature:}
1306 \begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1309 \noindent{\bf Arguments:}
1312 \vspace{0.3cm}
1313 \begin{tabular}{|c|c|p{7cm}|}
1314 \hline
1315 {\bf type} & {\bf name} & {\bf description} \\ \hline
1316 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1318 \end{tabular}
1320 \vspace{0.3cm}
1322 \noindent {\bf Return Type:}
1323 {\tt
1324 void
1329 \vspace{0.3cm}
1331 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1333 \vspace{0.6cm}
1334 \subsubsection{RPC name:~hard\_shutdown}
1336 {\bf Overview:}
1337 Stop executing the specified VM without attempting a clean shutdown. Then
1338 perform poweroff action specified in VM configuration.
1340 \noindent {\bf Signature:}
1341 \begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1344 \noindent{\bf Arguments:}
1347 \vspace{0.3cm}
1348 \begin{tabular}{|c|c|p{7cm}|}
1349 \hline
1350 {\bf type} & {\bf name} & {\bf description} \\ \hline
1351 {\tt VM ref } & vm & The VM to destroy \\ \hline
1353 \end{tabular}
1355 \vspace{0.3cm}
1357 \noindent {\bf Return Type:}
1358 {\tt
1359 void
1364 \vspace{0.3cm}
1365 \vspace{0.3cm}
1366 \vspace{0.3cm}
1367 \subsubsection{RPC name:~hard\_reboot}
1369 {\bf Overview:}
1370 Stop executing the specified VM without attempting a clean shutdown. Then
1371 perform reboot action specified in VM configuration.
1373 \noindent {\bf Signature:}
1374 \begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1377 \noindent{\bf Arguments:}
1380 \vspace{0.3cm}
1381 \begin{tabular}{|c|c|p{7cm}|}
1382 \hline
1383 {\bf type} & {\bf name} & {\bf description} \\ \hline
1384 {\tt VM ref } & vm & The VM to reboot \\ \hline
1386 \end{tabular}
1388 \vspace{0.3cm}
1390 \noindent {\bf Return Type:}
1391 {\tt
1392 void
1397 \vspace{0.3cm}
1398 \vspace{0.3cm}
1399 \vspace{0.3cm}
1400 \subsubsection{RPC name:~suspend}
1402 {\bf Overview:}
1403 Suspend the specified VM to disk. This can only be called when the
1404 specified VM is in the Running state.
1406 \noindent {\bf Signature:}
1407 \begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1410 \noindent{\bf Arguments:}
1413 \vspace{0.3cm}
1414 \begin{tabular}{|c|c|p{7cm}|}
1415 \hline
1416 {\bf type} & {\bf name} & {\bf description} \\ \hline
1417 {\tt VM ref } & vm & The VM to hibernate \\ \hline
1419 \end{tabular}
1421 \vspace{0.3cm}
1423 \noindent {\bf Return Type:}
1424 {\tt
1425 void
1430 \vspace{0.3cm}
1432 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1434 \vspace{0.6cm}
1435 \subsubsection{RPC name:~resume}
1437 {\bf Overview:}
1438 Awaken the specified VM and resume it. This can only be called when the
1439 specified VM is in the Suspended state.
1441 \noindent {\bf Signature:}
1442 \begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1445 \noindent{\bf Arguments:}
1448 \vspace{0.3cm}
1449 \begin{tabular}{|c|c|p{7cm}|}
1450 \hline
1451 {\bf type} & {\bf name} & {\bf description} \\ \hline
1452 {\tt VM ref } & vm & The VM to unhibernate \\ \hline
1454 {\tt bool } & start\_paused & Unhibernate VM in paused state if set to true. \\ \hline
1456 \end{tabular}
1458 \vspace{0.3cm}
1460 \noindent {\bf Return Type:}
1461 {\tt
1462 void
1467 \vspace{0.3cm}
1469 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1471 \vspace{0.6cm}
1472 \subsubsection{RPC name:~get\_all}
1474 {\bf Overview:}
1475 Return a list of all the VMs known to the system.
1477 \noindent {\bf Signature:}
1478 \begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
1481 \vspace{0.3cm}
1483 \noindent {\bf Return Type:}
1484 {\tt
1485 (VM ref) Set
1489 A list of all the IDs of all the VMs
1490 \vspace{0.3cm}
1491 \vspace{0.3cm}
1492 \vspace{0.3cm}
1493 \subsubsection{RPC name:~get\_uuid}
1495 {\bf Overview:}
1496 Get the uuid field of the given VM.
1498 \noindent {\bf Signature:}
1499 \begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
1502 \noindent{\bf Arguments:}
1505 \vspace{0.3cm}
1506 \begin{tabular}{|c|c|p{7cm}|}
1507 \hline
1508 {\bf type} & {\bf name} & {\bf description} \\ \hline
1509 {\tt VM ref } & self & reference to the object \\ \hline
1511 \end{tabular}
1513 \vspace{0.3cm}
1515 \noindent {\bf Return Type:}
1516 {\tt
1517 string
1521 value of the field
1522 \vspace{0.3cm}
1523 \vspace{0.3cm}
1524 \vspace{0.3cm}
1525 \subsubsection{RPC name:~get\_power\_state}
1527 {\bf Overview:}
1528 Get the power\_state field of the given VM.
1530 \noindent {\bf Signature:}
1531 \begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
1534 \noindent{\bf Arguments:}
1537 \vspace{0.3cm}
1538 \begin{tabular}{|c|c|p{7cm}|}
1539 \hline
1540 {\bf type} & {\bf name} & {\bf description} \\ \hline
1541 {\tt VM ref } & self & reference to the object \\ \hline
1543 \end{tabular}
1545 \vspace{0.3cm}
1547 \noindent {\bf Return Type:}
1548 {\tt
1549 vm\_power\_state
1553 value of the field
1554 \vspace{0.3cm}
1555 \vspace{0.3cm}
1556 \vspace{0.3cm}
1557 \subsubsection{RPC name:~get\_name\_label}
1559 {\bf Overview:}
1560 Get the name/label field of the given VM.
1562 \noindent {\bf Signature:}
1563 \begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
1566 \noindent{\bf Arguments:}
1569 \vspace{0.3cm}
1570 \begin{tabular}{|c|c|p{7cm}|}
1571 \hline
1572 {\bf type} & {\bf name} & {\bf description} \\ \hline
1573 {\tt VM ref } & self & reference to the object \\ \hline
1575 \end{tabular}
1577 \vspace{0.3cm}
1579 \noindent {\bf Return Type:}
1580 {\tt
1581 string
1585 value of the field
1586 \vspace{0.3cm}
1587 \vspace{0.3cm}
1588 \vspace{0.3cm}
1589 \subsubsection{RPC name:~set\_name\_label}
1591 {\bf Overview:}
1592 Set the name/label field of the given VM.
1594 \noindent {\bf Signature:}
1595 \begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
1598 \noindent{\bf Arguments:}
1601 \vspace{0.3cm}
1602 \begin{tabular}{|c|c|p{7cm}|}
1603 \hline
1604 {\bf type} & {\bf name} & {\bf description} \\ \hline
1605 {\tt VM ref } & self & reference to the object \\ \hline
1607 {\tt string } & value & New value to set \\ \hline
1609 \end{tabular}
1611 \vspace{0.3cm}
1613 \noindent {\bf Return Type:}
1614 {\tt
1615 void
1620 \vspace{0.3cm}
1621 \vspace{0.3cm}
1622 \vspace{0.3cm}
1623 \subsubsection{RPC name:~get\_name\_description}
1625 {\bf Overview:}
1626 Get the name/description field of the given VM.
1628 \noindent {\bf Signature:}
1629 \begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
1632 \noindent{\bf Arguments:}
1635 \vspace{0.3cm}
1636 \begin{tabular}{|c|c|p{7cm}|}
1637 \hline
1638 {\bf type} & {\bf name} & {\bf description} \\ \hline
1639 {\tt VM ref } & self & reference to the object \\ \hline
1641 \end{tabular}
1643 \vspace{0.3cm}
1645 \noindent {\bf Return Type:}
1646 {\tt
1647 string
1651 value of the field
1652 \vspace{0.3cm}
1653 \vspace{0.3cm}
1654 \vspace{0.3cm}
1655 \subsubsection{RPC name:~set\_name\_description}
1657 {\bf Overview:}
1658 Set the name/description field of the given VM.
1660 \noindent {\bf Signature:}
1661 \begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
1664 \noindent{\bf Arguments:}
1667 \vspace{0.3cm}
1668 \begin{tabular}{|c|c|p{7cm}|}
1669 \hline
1670 {\bf type} & {\bf name} & {\bf description} \\ \hline
1671 {\tt VM ref } & self & reference to the object \\ \hline
1673 {\tt string } & value & New value to set \\ \hline
1675 \end{tabular}
1677 \vspace{0.3cm}
1679 \noindent {\bf Return Type:}
1680 {\tt
1681 void
1686 \vspace{0.3cm}
1687 \vspace{0.3cm}
1688 \vspace{0.3cm}
1689 \subsubsection{RPC name:~get\_user\_version}
1691 {\bf Overview:}
1692 Get the user\_version field of the given VM.
1694 \noindent {\bf Signature:}
1695 \begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
1698 \noindent{\bf Arguments:}
1701 \vspace{0.3cm}
1702 \begin{tabular}{|c|c|p{7cm}|}
1703 \hline
1704 {\bf type} & {\bf name} & {\bf description} \\ \hline
1705 {\tt VM ref } & self & reference to the object \\ \hline
1707 \end{tabular}
1709 \vspace{0.3cm}
1711 \noindent {\bf Return Type:}
1712 {\tt
1713 int
1717 value of the field
1718 \vspace{0.3cm}
1719 \vspace{0.3cm}
1720 \vspace{0.3cm}
1721 \subsubsection{RPC name:~set\_user\_version}
1723 {\bf Overview:}
1724 Set the user\_version field of the given VM.
1726 \noindent {\bf Signature:}
1727 \begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
1730 \noindent{\bf Arguments:}
1733 \vspace{0.3cm}
1734 \begin{tabular}{|c|c|p{7cm}|}
1735 \hline
1736 {\bf type} & {\bf name} & {\bf description} \\ \hline
1737 {\tt VM ref } & self & reference to the object \\ \hline
1739 {\tt int } & value & New value to set \\ \hline
1741 \end{tabular}
1743 \vspace{0.3cm}
1745 \noindent {\bf Return Type:}
1746 {\tt
1747 void
1752 \vspace{0.3cm}
1753 \vspace{0.3cm}
1754 \vspace{0.3cm}
1755 \subsubsection{RPC name:~get\_is\_a\_template}
1757 {\bf Overview:}
1758 Get the is\_a\_template field of the given VM.
1760 \noindent {\bf Signature:}
1761 \begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
1764 \noindent{\bf Arguments:}
1767 \vspace{0.3cm}
1768 \begin{tabular}{|c|c|p{7cm}|}
1769 \hline
1770 {\bf type} & {\bf name} & {\bf description} \\ \hline
1771 {\tt VM ref } & self & reference to the object \\ \hline
1773 \end{tabular}
1775 \vspace{0.3cm}
1777 \noindent {\bf Return Type:}
1778 {\tt
1779 bool
1783 value of the field
1784 \vspace{0.3cm}
1785 \vspace{0.3cm}
1786 \vspace{0.3cm}
1787 \subsubsection{RPC name:~set\_is\_a\_template}
1789 {\bf Overview:}
1790 Set the is\_a\_template field of the given VM.
1792 \noindent {\bf Signature:}
1793 \begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
1796 \noindent{\bf Arguments:}
1799 \vspace{0.3cm}
1800 \begin{tabular}{|c|c|p{7cm}|}
1801 \hline
1802 {\bf type} & {\bf name} & {\bf description} \\ \hline
1803 {\tt VM ref } & self & reference to the object \\ \hline
1805 {\tt bool } & value & New value to set \\ \hline
1807 \end{tabular}
1809 \vspace{0.3cm}
1811 \noindent {\bf Return Type:}
1812 {\tt
1813 void
1818 \vspace{0.3cm}
1819 \vspace{0.3cm}
1820 \vspace{0.3cm}
1821 \subsubsection{RPC name:~get\_auto\_power\_on}
1823 {\bf Overview:}
1824 Get the auto\_power\_on field of the given VM.
1826 \noindent {\bf Signature:}
1827 \begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
1830 \noindent{\bf Arguments:}
1833 \vspace{0.3cm}
1834 \begin{tabular}{|c|c|p{7cm}|}
1835 \hline
1836 {\bf type} & {\bf name} & {\bf description} \\ \hline
1837 {\tt VM ref } & self & reference to the object \\ \hline
1839 \end{tabular}
1841 \vspace{0.3cm}
1843 \noindent {\bf Return Type:}
1844 {\tt
1845 bool
1849 value of the field
1850 \vspace{0.3cm}
1851 \vspace{0.3cm}
1852 \vspace{0.3cm}
1853 \subsubsection{RPC name:~set\_auto\_power\_on}
1855 {\bf Overview:}
1856 Set the auto\_power\_on field of the given VM.
1858 \noindent {\bf Signature:}
1859 \begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
1862 \noindent{\bf Arguments:}
1865 \vspace{0.3cm}
1866 \begin{tabular}{|c|c|p{7cm}|}
1867 \hline
1868 {\bf type} & {\bf name} & {\bf description} \\ \hline
1869 {\tt VM ref } & self & reference to the object \\ \hline
1871 {\tt bool } & value & New value to set \\ \hline
1873 \end{tabular}
1875 \vspace{0.3cm}
1877 \noindent {\bf Return Type:}
1878 {\tt
1879 void
1884 \vspace{0.3cm}
1885 \vspace{0.3cm}
1886 \vspace{0.3cm}
1887 \subsubsection{RPC name:~get\_suspend\_VDI}
1889 {\bf Overview:}
1890 Get the suspend\_VDI field of the given VM.
1892 \noindent {\bf Signature:}
1893 \begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
1896 \noindent{\bf Arguments:}
1899 \vspace{0.3cm}
1900 \begin{tabular}{|c|c|p{7cm}|}
1901 \hline
1902 {\bf type} & {\bf name} & {\bf description} \\ \hline
1903 {\tt VM ref } & self & reference to the object \\ \hline
1905 \end{tabular}
1907 \vspace{0.3cm}
1909 \noindent {\bf Return Type:}
1910 {\tt
1911 VDI ref
1915 value of the field
1916 \vspace{0.3cm}
1917 \vspace{0.3cm}
1918 \vspace{0.3cm}
1919 \subsubsection{RPC name:~get\_resident\_on}
1921 {\bf Overview:}
1922 Get the resident\_on field of the given VM.
1924 \noindent {\bf Signature:}
1925 \begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
1928 \noindent{\bf Arguments:}
1931 \vspace{0.3cm}
1932 \begin{tabular}{|c|c|p{7cm}|}
1933 \hline
1934 {\bf type} & {\bf name} & {\bf description} \\ \hline
1935 {\tt VM ref } & self & reference to the object \\ \hline
1937 \end{tabular}
1939 \vspace{0.3cm}
1941 \noindent {\bf Return Type:}
1942 {\tt
1943 host ref
1947 value of the field
1948 \vspace{0.3cm}
1949 \vspace{0.3cm}
1950 \vspace{0.3cm}
1951 \subsubsection{RPC name:~get\_memory\_static\_max}
1953 {\bf Overview:}
1954 Get the memory/static\_max field of the given VM.
1956 \noindent {\bf Signature:}
1957 \begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
1960 \noindent{\bf Arguments:}
1963 \vspace{0.3cm}
1964 \begin{tabular}{|c|c|p{7cm}|}
1965 \hline
1966 {\bf type} & {\bf name} & {\bf description} \\ \hline
1967 {\tt VM ref } & self & reference to the object \\ \hline
1969 \end{tabular}
1971 \vspace{0.3cm}
1973 \noindent {\bf Return Type:}
1974 {\tt
1975 int
1979 value of the field
1980 \vspace{0.3cm}
1981 \vspace{0.3cm}
1982 \vspace{0.3cm}
1983 \subsubsection{RPC name:~set\_memory\_static\_max}
1985 {\bf Overview:}
1986 Set the memory/static\_max field of the given VM.
1988 \noindent {\bf Signature:}
1989 \begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
1992 \noindent{\bf Arguments:}
1995 \vspace{0.3cm}
1996 \begin{tabular}{|c|c|p{7cm}|}
1997 \hline
1998 {\bf type} & {\bf name} & {\bf description} \\ \hline
1999 {\tt VM ref } & self & reference to the object \\ \hline
2001 {\tt int } & value & New value to set \\ \hline
2003 \end{tabular}
2005 \vspace{0.3cm}
2007 \noindent {\bf Return Type:}
2008 {\tt
2009 void
2014 \vspace{0.3cm}
2015 \vspace{0.3cm}
2016 \vspace{0.3cm}
2017 \subsubsection{RPC name:~get\_memory\_dynamic\_max}
2019 {\bf Overview:}
2020 Get the memory/dynamic\_max field of the given VM.
2022 \noindent {\bf Signature:}
2023 \begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
2026 \noindent{\bf Arguments:}
2029 \vspace{0.3cm}
2030 \begin{tabular}{|c|c|p{7cm}|}
2031 \hline
2032 {\bf type} & {\bf name} & {\bf description} \\ \hline
2033 {\tt VM ref } & self & reference to the object \\ \hline
2035 \end{tabular}
2037 \vspace{0.3cm}
2039 \noindent {\bf Return Type:}
2040 {\tt
2041 int
2045 value of the field
2046 \vspace{0.3cm}
2047 \vspace{0.3cm}
2048 \vspace{0.3cm}
2049 \subsubsection{RPC name:~set\_memory\_dynamic\_max}
2051 {\bf Overview:}
2052 Set the memory/dynamic\_max field of the given VM.
2054 \noindent {\bf Signature:}
2055 \begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2058 \noindent{\bf Arguments:}
2061 \vspace{0.3cm}
2062 \begin{tabular}{|c|c|p{7cm}|}
2063 \hline
2064 {\bf type} & {\bf name} & {\bf description} \\ \hline
2065 {\tt VM ref } & self & reference to the object \\ \hline
2067 {\tt int } & value & New value to set \\ \hline
2069 \end{tabular}
2071 \vspace{0.3cm}
2073 \noindent {\bf Return Type:}
2074 {\tt
2075 void
2080 \vspace{0.3cm}
2081 \vspace{0.3cm}
2082 \vspace{0.3cm}
2083 \subsubsection{RPC name:~get\_memory\_dynamic\_min}
2085 {\bf Overview:}
2086 Get the memory/dynamic\_min field of the given VM.
2088 \noindent {\bf Signature:}
2089 \begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2092 \noindent{\bf Arguments:}
2095 \vspace{0.3cm}
2096 \begin{tabular}{|c|c|p{7cm}|}
2097 \hline
2098 {\bf type} & {\bf name} & {\bf description} \\ \hline
2099 {\tt VM ref } & self & reference to the object \\ \hline
2101 \end{tabular}
2103 \vspace{0.3cm}
2105 \noindent {\bf Return Type:}
2106 {\tt
2107 int
2111 value of the field
2112 \vspace{0.3cm}
2113 \vspace{0.3cm}
2114 \vspace{0.3cm}
2115 \subsubsection{RPC name:~set\_memory\_dynamic\_min}
2117 {\bf Overview:}
2118 Set the memory/dynamic\_min field of the given VM.
2120 \noindent {\bf Signature:}
2121 \begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2124 \noindent{\bf Arguments:}
2127 \vspace{0.3cm}
2128 \begin{tabular}{|c|c|p{7cm}|}
2129 \hline
2130 {\bf type} & {\bf name} & {\bf description} \\ \hline
2131 {\tt VM ref } & self & reference to the object \\ \hline
2133 {\tt int } & value & New value to set \\ \hline
2135 \end{tabular}
2137 \vspace{0.3cm}
2139 \noindent {\bf Return Type:}
2140 {\tt
2141 void
2146 \vspace{0.3cm}
2147 \vspace{0.3cm}
2148 \vspace{0.3cm}
2149 \subsubsection{RPC name:~get\_memory\_static\_min}
2151 {\bf Overview:}
2152 Get the memory/static\_min field of the given VM.
2154 \noindent {\bf Signature:}
2155 \begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2158 \noindent{\bf Arguments:}
2161 \vspace{0.3cm}
2162 \begin{tabular}{|c|c|p{7cm}|}
2163 \hline
2164 {\bf type} & {\bf name} & {\bf description} \\ \hline
2165 {\tt VM ref } & self & reference to the object \\ \hline
2167 \end{tabular}
2169 \vspace{0.3cm}
2171 \noindent {\bf Return Type:}
2172 {\tt
2173 int
2177 value of the field
2178 \vspace{0.3cm}
2179 \vspace{0.3cm}
2180 \vspace{0.3cm}
2181 \subsubsection{RPC name:~set\_memory\_static\_min}
2183 {\bf Overview:}
2184 Set the memory/static\_min field of the given VM.
2186 \noindent {\bf Signature:}
2187 \begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
2190 \noindent{\bf Arguments:}
2193 \vspace{0.3cm}
2194 \begin{tabular}{|c|c|p{7cm}|}
2195 \hline
2196 {\bf type} & {\bf name} & {\bf description} \\ \hline
2197 {\tt VM ref } & self & reference to the object \\ \hline
2199 {\tt int } & value & New value to set \\ \hline
2201 \end{tabular}
2203 \vspace{0.3cm}
2205 \noindent {\bf Return Type:}
2206 {\tt
2207 void
2212 \vspace{0.3cm}
2213 \vspace{0.3cm}
2214 \vspace{0.3cm}
2215 \subsubsection{RPC name:~get\_VCPUs\_policy}
2217 {\bf Overview:}
2218 Get the VCPUs/policy field of the given VM.
2220 \noindent {\bf Signature:}
2221 \begin{verbatim} string get_VCPUs_policy (session_id s, VM ref self)\end{verbatim}
2224 \noindent{\bf Arguments:}
2227 \vspace{0.3cm}
2228 \begin{tabular}{|c|c|p{7cm}|}
2229 \hline
2230 {\bf type} & {\bf name} & {\bf description} \\ \hline
2231 {\tt VM ref } & self & reference to the object \\ \hline
2233 \end{tabular}
2235 \vspace{0.3cm}
2237 \noindent {\bf Return Type:}
2238 {\tt
2239 string
2243 value of the field
2244 \vspace{0.3cm}
2245 \vspace{0.3cm}
2246 \vspace{0.3cm}
2247 \subsubsection{RPC name:~set\_VCPUs\_policy}
2249 {\bf Overview:}
2250 Set the VCPUs/policy field of the given VM.
2252 \noindent {\bf Signature:}
2253 \begin{verbatim} void set_VCPUs_policy (session_id s, VM ref self, string value)\end{verbatim}
2256 \noindent{\bf Arguments:}
2259 \vspace{0.3cm}
2260 \begin{tabular}{|c|c|p{7cm}|}
2261 \hline
2262 {\bf type} & {\bf name} & {\bf description} \\ \hline
2263 {\tt VM ref } & self & reference to the object \\ \hline
2265 {\tt string } & value & New value to set \\ \hline
2267 \end{tabular}
2269 \vspace{0.3cm}
2271 \noindent {\bf Return Type:}
2272 {\tt
2273 void
2278 \vspace{0.3cm}
2279 \vspace{0.3cm}
2280 \vspace{0.3cm}
2281 \subsubsection{RPC name:~get\_VCPUs\_params}
2283 {\bf Overview:}
2284 Get the VCPUs/params field of the given VM.
2286 \noindent {\bf Signature:}
2287 \begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2290 \noindent{\bf Arguments:}
2293 \vspace{0.3cm}
2294 \begin{tabular}{|c|c|p{7cm}|}
2295 \hline
2296 {\bf type} & {\bf name} & {\bf description} \\ \hline
2297 {\tt VM ref } & self & reference to the object \\ \hline
2299 \end{tabular}
2301 \vspace{0.3cm}
2303 \noindent {\bf Return Type:}
2304 {\tt
2305 (string $\rightarrow$ string) Map
2309 value of the field
2310 \vspace{0.3cm}
2311 \vspace{0.3cm}
2312 \vspace{0.3cm}
2313 \subsubsection{RPC name:~set\_VCPUs\_params}
2315 {\bf Overview:}
2316 Set the VCPUs/params field of the given VM.
2318 \noindent {\bf Signature:}
2319 \begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
2322 \noindent{\bf Arguments:}
2325 \vspace{0.3cm}
2326 \begin{tabular}{|c|c|p{7cm}|}
2327 \hline
2328 {\bf type} & {\bf name} & {\bf description} \\ \hline
2329 {\tt VM ref } & self & reference to the object \\ \hline
2331 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
2333 \end{tabular}
2335 \vspace{0.3cm}
2337 \noindent {\bf Return Type:}
2338 {\tt
2339 void
2344 \vspace{0.3cm}
2345 \vspace{0.3cm}
2346 \vspace{0.3cm}
2347 \subsubsection{RPC name:~add\_to\_VCPUs\_params}
2349 {\bf Overview:}
2350 Add the given key-value pair to the VCPUs/params field of the given VM.
2352 \noindent {\bf Signature:}
2353 \begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
2356 \noindent{\bf Arguments:}
2359 \vspace{0.3cm}
2360 \begin{tabular}{|c|c|p{7cm}|}
2361 \hline
2362 {\bf type} & {\bf name} & {\bf description} \\ \hline
2363 {\tt VM ref } & self & reference to the object \\ \hline
2365 {\tt string } & key & Key to add \\ \hline
2367 {\tt string } & value & Value to add \\ \hline
2369 \end{tabular}
2371 \vspace{0.3cm}
2373 \noindent {\bf Return Type:}
2374 {\tt
2375 void
2380 \vspace{0.3cm}
2381 \vspace{0.3cm}
2382 \vspace{0.3cm}
2383 \subsubsection{RPC name:~remove\_from\_VCPUs\_params}
2385 {\bf Overview:}
2386 Remove the given key and its corresponding value from the VCPUs/params
2387 field of the given VM. If the key is not in that Map, then do nothing.
2389 \noindent {\bf Signature:}
2390 \begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
2393 \noindent{\bf Arguments:}
2396 \vspace{0.3cm}
2397 \begin{tabular}{|c|c|p{7cm}|}
2398 \hline
2399 {\bf type} & {\bf name} & {\bf description} \\ \hline
2400 {\tt VM ref } & self & reference to the object \\ \hline
2402 {\tt string } & key & Key to remove \\ \hline
2404 \end{tabular}
2406 \vspace{0.3cm}
2408 \noindent {\bf Return Type:}
2409 {\tt
2410 void
2415 \vspace{0.3cm}
2416 \vspace{0.3cm}
2417 \vspace{0.3cm}
2418 \subsubsection{RPC name:~get\_VCPUs\_max}
2420 {\bf Overview:}
2421 Get the VCPUs/max field of the given VM.
2423 \noindent {\bf Signature:}
2424 \begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
2427 \noindent{\bf Arguments:}
2430 \vspace{0.3cm}
2431 \begin{tabular}{|c|c|p{7cm}|}
2432 \hline
2433 {\bf type} & {\bf name} & {\bf description} \\ \hline
2434 {\tt VM ref } & self & reference to the object \\ \hline
2436 \end{tabular}
2438 \vspace{0.3cm}
2440 \noindent {\bf Return Type:}
2441 {\tt
2442 int
2446 value of the field
2447 \vspace{0.3cm}
2448 \vspace{0.3cm}
2449 \vspace{0.3cm}
2450 \subsubsection{RPC name:~set\_VCPUs\_max}
2452 {\bf Overview:}
2453 Set the VCPUs/max field of the given VM.
2455 \noindent {\bf Signature:}
2456 \begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
2459 \noindent{\bf Arguments:}
2462 \vspace{0.3cm}
2463 \begin{tabular}{|c|c|p{7cm}|}
2464 \hline
2465 {\bf type} & {\bf name} & {\bf description} \\ \hline
2466 {\tt VM ref } & self & reference to the object \\ \hline
2468 {\tt int } & value & New value to set \\ \hline
2470 \end{tabular}
2472 \vspace{0.3cm}
2474 \noindent {\bf Return Type:}
2475 {\tt
2476 void
2481 \vspace{0.3cm}
2482 \vspace{0.3cm}
2483 \vspace{0.3cm}
2484 \subsubsection{RPC name:~get\_VCPUs\_at\_startup}
2486 {\bf Overview:}
2487 Get the VCPUs/at\_startup field of the given VM.
2489 \noindent {\bf Signature:}
2490 \begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
2493 \noindent{\bf Arguments:}
2496 \vspace{0.3cm}
2497 \begin{tabular}{|c|c|p{7cm}|}
2498 \hline
2499 {\bf type} & {\bf name} & {\bf description} \\ \hline
2500 {\tt VM ref } & self & reference to the object \\ \hline
2502 \end{tabular}
2504 \vspace{0.3cm}
2506 \noindent {\bf Return Type:}
2507 {\tt
2508 int
2512 value of the field
2513 \vspace{0.3cm}
2514 \vspace{0.3cm}
2515 \vspace{0.3cm}
2516 \subsubsection{RPC name:~set\_VCPUs\_at\_startup}
2518 {\bf Overview:}
2519 Set the VCPUs/at\_startup field of the given VM.
2521 \noindent {\bf Signature:}
2522 \begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
2525 \noindent{\bf Arguments:}
2528 \vspace{0.3cm}
2529 \begin{tabular}{|c|c|p{7cm}|}
2530 \hline
2531 {\bf type} & {\bf name} & {\bf description} \\ \hline
2532 {\tt VM ref } & self & reference to the object \\ \hline
2534 {\tt int } & value & New value to set \\ \hline
2536 \end{tabular}
2538 \vspace{0.3cm}
2540 \noindent {\bf Return Type:}
2541 {\tt
2542 void
2547 \vspace{0.3cm}
2548 \vspace{0.3cm}
2549 \vspace{0.3cm}
2550 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
2552 {\bf Overview:}
2553 Get the actions/after\_shutdown field of the given VM.
2555 \noindent {\bf Signature:}
2556 \begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
2559 \noindent{\bf Arguments:}
2562 \vspace{0.3cm}
2563 \begin{tabular}{|c|c|p{7cm}|}
2564 \hline
2565 {\bf type} & {\bf name} & {\bf description} \\ \hline
2566 {\tt VM ref } & self & reference to the object \\ \hline
2568 \end{tabular}
2570 \vspace{0.3cm}
2572 \noindent {\bf Return Type:}
2573 {\tt
2574 on\_normal\_exit
2578 value of the field
2579 \vspace{0.3cm}
2580 \vspace{0.3cm}
2581 \vspace{0.3cm}
2582 \subsubsection{RPC name:~set\_actions\_after\_shutdown}
2584 {\bf Overview:}
2585 Set the actions/after\_shutdown field of the given VM.
2587 \noindent {\bf Signature:}
2588 \begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2591 \noindent{\bf Arguments:}
2594 \vspace{0.3cm}
2595 \begin{tabular}{|c|c|p{7cm}|}
2596 \hline
2597 {\bf type} & {\bf name} & {\bf description} \\ \hline
2598 {\tt VM ref } & self & reference to the object \\ \hline
2600 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2602 \end{tabular}
2604 \vspace{0.3cm}
2606 \noindent {\bf Return Type:}
2607 {\tt
2608 void
2613 \vspace{0.3cm}
2614 \vspace{0.3cm}
2615 \vspace{0.3cm}
2616 \subsubsection{RPC name:~get\_actions\_after\_reboot}
2618 {\bf Overview:}
2619 Get the actions/after\_reboot field of the given VM.
2621 \noindent {\bf Signature:}
2622 \begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
2625 \noindent{\bf Arguments:}
2628 \vspace{0.3cm}
2629 \begin{tabular}{|c|c|p{7cm}|}
2630 \hline
2631 {\bf type} & {\bf name} & {\bf description} \\ \hline
2632 {\tt VM ref } & self & reference to the object \\ \hline
2634 \end{tabular}
2636 \vspace{0.3cm}
2638 \noindent {\bf Return Type:}
2639 {\tt
2640 on\_normal\_exit
2644 value of the field
2645 \vspace{0.3cm}
2646 \vspace{0.3cm}
2647 \vspace{0.3cm}
2648 \subsubsection{RPC name:~set\_actions\_after\_reboot}
2650 {\bf Overview:}
2651 Set the actions/after\_reboot field of the given VM.
2653 \noindent {\bf Signature:}
2654 \begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2657 \noindent{\bf Arguments:}
2660 \vspace{0.3cm}
2661 \begin{tabular}{|c|c|p{7cm}|}
2662 \hline
2663 {\bf type} & {\bf name} & {\bf description} \\ \hline
2664 {\tt VM ref } & self & reference to the object \\ \hline
2666 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2668 \end{tabular}
2670 \vspace{0.3cm}
2672 \noindent {\bf Return Type:}
2673 {\tt
2674 void
2679 \vspace{0.3cm}
2680 \vspace{0.3cm}
2681 \vspace{0.3cm}
2682 \subsubsection{RPC name:~get\_actions\_after\_crash}
2684 {\bf Overview:}
2685 Get the actions/after\_crash field of the given VM.
2687 \noindent {\bf Signature:}
2688 \begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
2691 \noindent{\bf Arguments:}
2694 \vspace{0.3cm}
2695 \begin{tabular}{|c|c|p{7cm}|}
2696 \hline
2697 {\bf type} & {\bf name} & {\bf description} \\ \hline
2698 {\tt VM ref } & self & reference to the object \\ \hline
2700 \end{tabular}
2702 \vspace{0.3cm}
2704 \noindent {\bf Return Type:}
2705 {\tt
2706 on\_crash\_behaviour
2710 value of the field
2711 \vspace{0.3cm}
2712 \vspace{0.3cm}
2713 \vspace{0.3cm}
2714 \subsubsection{RPC name:~set\_actions\_after\_crash}
2716 {\bf Overview:}
2717 Set the actions/after\_crash field of the given VM.
2719 \noindent {\bf Signature:}
2720 \begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
2723 \noindent{\bf Arguments:}
2726 \vspace{0.3cm}
2727 \begin{tabular}{|c|c|p{7cm}|}
2728 \hline
2729 {\bf type} & {\bf name} & {\bf description} \\ \hline
2730 {\tt VM ref } & self & reference to the object \\ \hline
2732 {\tt on\_crash\_behaviour } & value & New value to set \\ \hline
2734 \end{tabular}
2736 \vspace{0.3cm}
2738 \noindent {\bf Return Type:}
2739 {\tt
2740 void
2745 \vspace{0.3cm}
2746 \vspace{0.3cm}
2747 \vspace{0.3cm}
2748 \subsubsection{RPC name:~get\_consoles}
2750 {\bf Overview:}
2751 Get the consoles field of the given VM.
2753 \noindent {\bf Signature:}
2754 \begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
2757 \noindent{\bf Arguments:}
2760 \vspace{0.3cm}
2761 \begin{tabular}{|c|c|p{7cm}|}
2762 \hline
2763 {\bf type} & {\bf name} & {\bf description} \\ \hline
2764 {\tt VM ref } & self & reference to the object \\ \hline
2766 \end{tabular}
2768 \vspace{0.3cm}
2770 \noindent {\bf Return Type:}
2771 {\tt
2772 (console ref) Set
2776 value of the field
2777 \vspace{0.3cm}
2778 \vspace{0.3cm}
2779 \vspace{0.3cm}
2780 \subsubsection{RPC name:~get\_VIFs}
2782 {\bf Overview:}
2783 Get the VIFs field of the given VM.
2785 \noindent {\bf Signature:}
2786 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
2789 \noindent{\bf Arguments:}
2792 \vspace{0.3cm}
2793 \begin{tabular}{|c|c|p{7cm}|}
2794 \hline
2795 {\bf type} & {\bf name} & {\bf description} \\ \hline
2796 {\tt VM ref } & self & reference to the object \\ \hline
2798 \end{tabular}
2800 \vspace{0.3cm}
2802 \noindent {\bf Return Type:}
2803 {\tt
2804 (VIF ref) Set
2808 value of the field
2809 \vspace{0.3cm}
2810 \vspace{0.3cm}
2811 \vspace{0.3cm}
2812 \subsubsection{RPC name:~get\_VBDs}
2814 {\bf Overview:}
2815 Get the VBDs field of the given VM.
2817 \noindent {\bf Signature:}
2818 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
2821 \noindent{\bf Arguments:}
2824 \vspace{0.3cm}
2825 \begin{tabular}{|c|c|p{7cm}|}
2826 \hline
2827 {\bf type} & {\bf name} & {\bf description} \\ \hline
2828 {\tt VM ref } & self & reference to the object \\ \hline
2830 \end{tabular}
2832 \vspace{0.3cm}
2834 \noindent {\bf Return Type:}
2835 {\tt
2836 (VBD ref) Set
2840 value of the field
2841 \vspace{0.3cm}
2842 \vspace{0.3cm}
2843 \vspace{0.3cm}
2844 \subsubsection{RPC name:~get\_crash\_dumps}
2846 {\bf Overview:}
2847 Get the crash\_dumps field of the given VM.
2849 \noindent {\bf Signature:}
2850 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
2853 \noindent{\bf Arguments:}
2856 \vspace{0.3cm}
2857 \begin{tabular}{|c|c|p{7cm}|}
2858 \hline
2859 {\bf type} & {\bf name} & {\bf description} \\ \hline
2860 {\tt VM ref } & self & reference to the object \\ \hline
2862 \end{tabular}
2864 \vspace{0.3cm}
2866 \noindent {\bf Return Type:}
2867 {\tt
2868 (crashdump ref) Set
2872 value of the field
2873 \vspace{0.3cm}
2874 \vspace{0.3cm}
2875 \vspace{0.3cm}
2876 \subsubsection{RPC name:~get\_VTPMs}
2878 {\bf Overview:}
2879 Get the VTPMs field of the given VM.
2881 \noindent {\bf Signature:}
2882 \begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
2885 \noindent{\bf Arguments:}
2888 \vspace{0.3cm}
2889 \begin{tabular}{|c|c|p{7cm}|}
2890 \hline
2891 {\bf type} & {\bf name} & {\bf description} \\ \hline
2892 {\tt VM ref } & self & reference to the object \\ \hline
2894 \end{tabular}
2896 \vspace{0.3cm}
2898 \noindent {\bf Return Type:}
2899 {\tt
2900 (VTPM ref) Set
2904 value of the field
2905 \vspace{0.3cm}
2906 \vspace{0.3cm}
2907 \vspace{0.3cm}
2908 \subsubsection{RPC name:~get\_PV\_bootloader}
2910 {\bf Overview:}
2911 Get the PV/bootloader field of the given VM.
2913 \noindent {\bf Signature:}
2914 \begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
2917 \noindent{\bf Arguments:}
2920 \vspace{0.3cm}
2921 \begin{tabular}{|c|c|p{7cm}|}
2922 \hline
2923 {\bf type} & {\bf name} & {\bf description} \\ \hline
2924 {\tt VM ref } & self & reference to the object \\ \hline
2926 \end{tabular}
2928 \vspace{0.3cm}
2930 \noindent {\bf Return Type:}
2931 {\tt
2932 string
2936 value of the field
2937 \vspace{0.3cm}
2938 \vspace{0.3cm}
2939 \vspace{0.3cm}
2940 \subsubsection{RPC name:~set\_PV\_bootloader}
2942 {\bf Overview:}
2943 Set the PV/bootloader field of the given VM.
2945 \noindent {\bf Signature:}
2946 \begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
2949 \noindent{\bf Arguments:}
2952 \vspace{0.3cm}
2953 \begin{tabular}{|c|c|p{7cm}|}
2954 \hline
2955 {\bf type} & {\bf name} & {\bf description} \\ \hline
2956 {\tt VM ref } & self & reference to the object \\ \hline
2958 {\tt string } & value & New value to set \\ \hline
2960 \end{tabular}
2962 \vspace{0.3cm}
2964 \noindent {\bf Return Type:}
2965 {\tt
2966 void
2971 \vspace{0.3cm}
2972 \vspace{0.3cm}
2973 \vspace{0.3cm}
2974 \subsubsection{RPC name:~get\_PV\_kernel}
2976 {\bf Overview:}
2977 Get the PV/kernel field of the given VM.
2979 \noindent {\bf Signature:}
2980 \begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
2983 \noindent{\bf Arguments:}
2986 \vspace{0.3cm}
2987 \begin{tabular}{|c|c|p{7cm}|}
2988 \hline
2989 {\bf type} & {\bf name} & {\bf description} \\ \hline
2990 {\tt VM ref } & self & reference to the object \\ \hline
2992 \end{tabular}
2994 \vspace{0.3cm}
2996 \noindent {\bf Return Type:}
2997 {\tt
2998 string
3002 value of the field
3003 \vspace{0.3cm}
3004 \vspace{0.3cm}
3005 \vspace{0.3cm}
3006 \subsubsection{RPC name:~set\_PV\_kernel}
3008 {\bf Overview:}
3009 Set the PV/kernel field of the given VM.
3011 \noindent {\bf Signature:}
3012 \begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3015 \noindent{\bf Arguments:}
3018 \vspace{0.3cm}
3019 \begin{tabular}{|c|c|p{7cm}|}
3020 \hline
3021 {\bf type} & {\bf name} & {\bf description} \\ \hline
3022 {\tt VM ref } & self & reference to the object \\ \hline
3024 {\tt string } & value & New value to set \\ \hline
3026 \end{tabular}
3028 \vspace{0.3cm}
3030 \noindent {\bf Return Type:}
3031 {\tt
3032 void
3037 \vspace{0.3cm}
3038 \vspace{0.3cm}
3039 \vspace{0.3cm}
3040 \subsubsection{RPC name:~get\_PV\_ramdisk}
3042 {\bf Overview:}
3043 Get the PV/ramdisk field of the given VM.
3045 \noindent {\bf Signature:}
3046 \begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3049 \noindent{\bf Arguments:}
3052 \vspace{0.3cm}
3053 \begin{tabular}{|c|c|p{7cm}|}
3054 \hline
3055 {\bf type} & {\bf name} & {\bf description} \\ \hline
3056 {\tt VM ref } & self & reference to the object \\ \hline
3058 \end{tabular}
3060 \vspace{0.3cm}
3062 \noindent {\bf Return Type:}
3063 {\tt
3064 string
3068 value of the field
3069 \vspace{0.3cm}
3070 \vspace{0.3cm}
3071 \vspace{0.3cm}
3072 \subsubsection{RPC name:~set\_PV\_ramdisk}
3074 {\bf Overview:}
3075 Set the PV/ramdisk field of the given VM.
3077 \noindent {\bf Signature:}
3078 \begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3081 \noindent{\bf Arguments:}
3084 \vspace{0.3cm}
3085 \begin{tabular}{|c|c|p{7cm}|}
3086 \hline
3087 {\bf type} & {\bf name} & {\bf description} \\ \hline
3088 {\tt VM ref } & self & reference to the object \\ \hline
3090 {\tt string } & value & New value to set \\ \hline
3092 \end{tabular}
3094 \vspace{0.3cm}
3096 \noindent {\bf Return Type:}
3097 {\tt
3098 void
3103 \vspace{0.3cm}
3104 \vspace{0.3cm}
3105 \vspace{0.3cm}
3106 \subsubsection{RPC name:~get\_PV\_args}
3108 {\bf Overview:}
3109 Get the PV/args field of the given VM.
3111 \noindent {\bf Signature:}
3112 \begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3115 \noindent{\bf Arguments:}
3118 \vspace{0.3cm}
3119 \begin{tabular}{|c|c|p{7cm}|}
3120 \hline
3121 {\bf type} & {\bf name} & {\bf description} \\ \hline
3122 {\tt VM ref } & self & reference to the object \\ \hline
3124 \end{tabular}
3126 \vspace{0.3cm}
3128 \noindent {\bf Return Type:}
3129 {\tt
3130 string
3134 value of the field
3135 \vspace{0.3cm}
3136 \vspace{0.3cm}
3137 \vspace{0.3cm}
3138 \subsubsection{RPC name:~set\_PV\_args}
3140 {\bf Overview:}
3141 Set the PV/args field of the given VM.
3143 \noindent {\bf Signature:}
3144 \begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3147 \noindent{\bf Arguments:}
3150 \vspace{0.3cm}
3151 \begin{tabular}{|c|c|p{7cm}|}
3152 \hline
3153 {\bf type} & {\bf name} & {\bf description} \\ \hline
3154 {\tt VM ref } & self & reference to the object \\ \hline
3156 {\tt string } & value & New value to set \\ \hline
3158 \end{tabular}
3160 \vspace{0.3cm}
3162 \noindent {\bf Return Type:}
3163 {\tt
3164 void
3169 \vspace{0.3cm}
3170 \vspace{0.3cm}
3171 \vspace{0.3cm}
3172 \subsubsection{RPC name:~get\_PV\_bootloader\_args}
3174 {\bf Overview:}
3175 Get the PV/bootloader\_args field of the given VM.
3177 \noindent {\bf Signature:}
3178 \begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3181 \noindent{\bf Arguments:}
3184 \vspace{0.3cm}
3185 \begin{tabular}{|c|c|p{7cm}|}
3186 \hline
3187 {\bf type} & {\bf name} & {\bf description} \\ \hline
3188 {\tt VM ref } & self & reference to the object \\ \hline
3190 \end{tabular}
3192 \vspace{0.3cm}
3194 \noindent {\bf Return Type:}
3195 {\tt
3196 string
3200 value of the field
3201 \vspace{0.3cm}
3202 \vspace{0.3cm}
3203 \vspace{0.3cm}
3204 \subsubsection{RPC name:~set\_PV\_bootloader\_args}
3206 {\bf Overview:}
3207 Set the PV/bootloader\_args field of the given VM.
3209 \noindent {\bf Signature:}
3210 \begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3213 \noindent{\bf Arguments:}
3216 \vspace{0.3cm}
3217 \begin{tabular}{|c|c|p{7cm}|}
3218 \hline
3219 {\bf type} & {\bf name} & {\bf description} \\ \hline
3220 {\tt VM ref } & self & reference to the object \\ \hline
3222 {\tt string } & value & New value to set \\ \hline
3224 \end{tabular}
3226 \vspace{0.3cm}
3228 \noindent {\bf Return Type:}
3229 {\tt
3230 void
3235 \vspace{0.3cm}
3236 \vspace{0.3cm}
3237 \vspace{0.3cm}
3238 \subsubsection{RPC name:~get\_HVM\_boot\_policy}
3240 {\bf Overview:}
3241 Get the HVM/boot\_policy field of the given VM.
3243 \noindent {\bf Signature:}
3244 \begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
3247 \noindent{\bf Arguments:}
3250 \vspace{0.3cm}
3251 \begin{tabular}{|c|c|p{7cm}|}
3252 \hline
3253 {\bf type} & {\bf name} & {\bf description} \\ \hline
3254 {\tt VM ref } & self & reference to the object \\ \hline
3256 \end{tabular}
3258 \vspace{0.3cm}
3260 \noindent {\bf Return Type:}
3261 {\tt
3262 string
3266 value of the field
3267 \vspace{0.3cm}
3268 \vspace{0.3cm}
3269 \vspace{0.3cm}
3270 \subsubsection{RPC name:~set\_HVM\_boot\_policy}
3272 {\bf Overview:}
3273 Set the HVM/boot\_policy field of the given VM.
3275 \noindent {\bf Signature:}
3276 \begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
3279 \noindent{\bf Arguments:}
3282 \vspace{0.3cm}
3283 \begin{tabular}{|c|c|p{7cm}|}
3284 \hline
3285 {\bf type} & {\bf name} & {\bf description} \\ \hline
3286 {\tt VM ref } & self & reference to the object \\ \hline
3288 {\tt string } & value & New value to set \\ \hline
3290 \end{tabular}
3292 \vspace{0.3cm}
3294 \noindent {\bf Return Type:}
3295 {\tt
3296 void
3301 \vspace{0.3cm}
3302 \vspace{0.3cm}
3303 \vspace{0.3cm}
3304 \subsubsection{RPC name:~get\_HVM\_boot\_params}
3306 {\bf Overview:}
3307 Get the HVM/boot\_params field of the given VM.
3309 \noindent {\bf Signature:}
3310 \begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
3313 \noindent{\bf Arguments:}
3316 \vspace{0.3cm}
3317 \begin{tabular}{|c|c|p{7cm}|}
3318 \hline
3319 {\bf type} & {\bf name} & {\bf description} \\ \hline
3320 {\tt VM ref } & self & reference to the object \\ \hline
3322 \end{tabular}
3324 \vspace{0.3cm}
3326 \noindent {\bf Return Type:}
3327 {\tt
3328 (string $\rightarrow$ string) Map
3332 value of the field
3333 \vspace{0.3cm}
3334 \vspace{0.3cm}
3335 \vspace{0.3cm}
3336 \subsubsection{RPC name:~set\_HVM\_boot\_params}
3338 {\bf Overview:}
3339 Set the HVM/boot\_params field of the given VM.
3341 \noindent {\bf Signature:}
3342 \begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3345 \noindent{\bf Arguments:}
3348 \vspace{0.3cm}
3349 \begin{tabular}{|c|c|p{7cm}|}
3350 \hline
3351 {\bf type} & {\bf name} & {\bf description} \\ \hline
3352 {\tt VM ref } & self & reference to the object \\ \hline
3354 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3356 \end{tabular}
3358 \vspace{0.3cm}
3360 \noindent {\bf Return Type:}
3361 {\tt
3362 void
3367 \vspace{0.3cm}
3368 \vspace{0.3cm}
3369 \vspace{0.3cm}
3370 \subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
3372 {\bf Overview:}
3373 Add the given key-value pair to the HVM/boot\_params field of the given VM.
3375 \noindent {\bf Signature:}
3376 \begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
3379 \noindent{\bf Arguments:}
3382 \vspace{0.3cm}
3383 \begin{tabular}{|c|c|p{7cm}|}
3384 \hline
3385 {\bf type} & {\bf name} & {\bf description} \\ \hline
3386 {\tt VM ref } & self & reference to the object \\ \hline
3388 {\tt string } & key & Key to add \\ \hline
3390 {\tt string } & value & Value to add \\ \hline
3392 \end{tabular}
3394 \vspace{0.3cm}
3396 \noindent {\bf Return Type:}
3397 {\tt
3398 void
3403 \vspace{0.3cm}
3404 \vspace{0.3cm}
3405 \vspace{0.3cm}
3406 \subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
3408 {\bf Overview:}
3409 Remove the given key and its corresponding value from the HVM/boot\_params
3410 field of the given VM. If the key is not in that Map, then do nothing.
3412 \noindent {\bf Signature:}
3413 \begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
3416 \noindent{\bf Arguments:}
3419 \vspace{0.3cm}
3420 \begin{tabular}{|c|c|p{7cm}|}
3421 \hline
3422 {\bf type} & {\bf name} & {\bf description} \\ \hline
3423 {\tt VM ref } & self & reference to the object \\ \hline
3425 {\tt string } & key & Key to remove \\ \hline
3427 \end{tabular}
3429 \vspace{0.3cm}
3431 \noindent {\bf Return Type:}
3432 {\tt
3433 void
3438 \vspace{0.3cm}
3439 \vspace{0.3cm}
3440 \vspace{0.3cm}
3441 \subsubsection{RPC name:~get\_platform\_std\_VGA}
3443 {\bf Overview:}
3444 Get the platform/std\_VGA field of the given VM.
3446 \noindent {\bf Signature:}
3447 \begin{verbatim} bool get_platform_std_VGA (session_id s, VM ref self)\end{verbatim}
3450 \noindent{\bf Arguments:}
3453 \vspace{0.3cm}
3454 \begin{tabular}{|c|c|p{7cm}|}
3455 \hline
3456 {\bf type} & {\bf name} & {\bf description} \\ \hline
3457 {\tt VM ref } & self & reference to the object \\ \hline
3459 \end{tabular}
3461 \vspace{0.3cm}
3463 \noindent {\bf Return Type:}
3464 {\tt
3465 bool
3469 value of the field
3470 \vspace{0.3cm}
3471 \vspace{0.3cm}
3472 \vspace{0.3cm}
3473 \subsubsection{RPC name:~set\_platform\_std\_VGA}
3475 {\bf Overview:}
3476 Set the platform/std\_VGA field of the given VM.
3478 \noindent {\bf Signature:}
3479 \begin{verbatim} void set_platform_std_VGA (session_id s, VM ref self, bool value)\end{verbatim}
3482 \noindent{\bf Arguments:}
3485 \vspace{0.3cm}
3486 \begin{tabular}{|c|c|p{7cm}|}
3487 \hline
3488 {\bf type} & {\bf name} & {\bf description} \\ \hline
3489 {\tt VM ref } & self & reference to the object \\ \hline
3491 {\tt bool } & value & New value to set \\ \hline
3493 \end{tabular}
3495 \vspace{0.3cm}
3497 \noindent {\bf Return Type:}
3498 {\tt
3499 void
3504 \vspace{0.3cm}
3505 \vspace{0.3cm}
3506 \vspace{0.3cm}
3507 \subsubsection{RPC name:~get\_platform\_serial}
3509 {\bf Overview:}
3510 Get the platform/serial field of the given VM.
3512 \noindent {\bf Signature:}
3513 \begin{verbatim} string get_platform_serial (session_id s, VM ref self)\end{verbatim}
3516 \noindent{\bf Arguments:}
3519 \vspace{0.3cm}
3520 \begin{tabular}{|c|c|p{7cm}|}
3521 \hline
3522 {\bf type} & {\bf name} & {\bf description} \\ \hline
3523 {\tt VM ref } & self & reference to the object \\ \hline
3525 \end{tabular}
3527 \vspace{0.3cm}
3529 \noindent {\bf Return Type:}
3530 {\tt
3531 string
3535 value of the field
3536 \vspace{0.3cm}
3537 \vspace{0.3cm}
3538 \vspace{0.3cm}
3539 \subsubsection{RPC name:~set\_platform\_serial}
3541 {\bf Overview:}
3542 Set the platform/serial field of the given VM.
3544 \noindent {\bf Signature:}
3545 \begin{verbatim} void set_platform_serial (session_id s, VM ref self, string value)\end{verbatim}
3548 \noindent{\bf Arguments:}
3551 \vspace{0.3cm}
3552 \begin{tabular}{|c|c|p{7cm}|}
3553 \hline
3554 {\bf type} & {\bf name} & {\bf description} \\ \hline
3555 {\tt VM ref } & self & reference to the object \\ \hline
3557 {\tt string } & value & New value to set \\ \hline
3559 \end{tabular}
3561 \vspace{0.3cm}
3563 \noindent {\bf Return Type:}
3564 {\tt
3565 void
3570 \vspace{0.3cm}
3571 \vspace{0.3cm}
3572 \vspace{0.3cm}
3573 \subsubsection{RPC name:~get\_platform\_localtime}
3575 {\bf Overview:}
3576 Get the platform/localtime field of the given VM.
3578 \noindent {\bf Signature:}
3579 \begin{verbatim} bool get_platform_localtime (session_id s, VM ref self)\end{verbatim}
3582 \noindent{\bf Arguments:}
3585 \vspace{0.3cm}
3586 \begin{tabular}{|c|c|p{7cm}|}
3587 \hline
3588 {\bf type} & {\bf name} & {\bf description} \\ \hline
3589 {\tt VM ref } & self & reference to the object \\ \hline
3591 \end{tabular}
3593 \vspace{0.3cm}
3595 \noindent {\bf Return Type:}
3596 {\tt
3597 bool
3601 value of the field
3602 \vspace{0.3cm}
3603 \vspace{0.3cm}
3604 \vspace{0.3cm}
3605 \subsubsection{RPC name:~set\_platform\_localtime}
3607 {\bf Overview:}
3608 Set the platform/localtime field of the given VM.
3610 \noindent {\bf Signature:}
3611 \begin{verbatim} void set_platform_localtime (session_id s, VM ref self, bool value)\end{verbatim}
3614 \noindent{\bf Arguments:}
3617 \vspace{0.3cm}
3618 \begin{tabular}{|c|c|p{7cm}|}
3619 \hline
3620 {\bf type} & {\bf name} & {\bf description} \\ \hline
3621 {\tt VM ref } & self & reference to the object \\ \hline
3623 {\tt bool } & value & New value to set \\ \hline
3625 \end{tabular}
3627 \vspace{0.3cm}
3629 \noindent {\bf Return Type:}
3630 {\tt
3631 void
3636 \vspace{0.3cm}
3637 \vspace{0.3cm}
3638 \vspace{0.3cm}
3639 \subsubsection{RPC name:~get\_platform\_clock\_offset}
3641 {\bf Overview:}
3642 Get the platform/clock\_offset field of the given VM.
3644 \noindent {\bf Signature:}
3645 \begin{verbatim} bool get_platform_clock_offset (session_id s, VM ref self)\end{verbatim}
3648 \noindent{\bf Arguments:}
3651 \vspace{0.3cm}
3652 \begin{tabular}{|c|c|p{7cm}|}
3653 \hline
3654 {\bf type} & {\bf name} & {\bf description} \\ \hline
3655 {\tt VM ref } & self & reference to the object \\ \hline
3657 \end{tabular}
3659 \vspace{0.3cm}
3661 \noindent {\bf Return Type:}
3662 {\tt
3663 bool
3667 value of the field
3668 \vspace{0.3cm}
3669 \vspace{0.3cm}
3670 \vspace{0.3cm}
3671 \subsubsection{RPC name:~set\_platform\_clock\_offset}
3673 {\bf Overview:}
3674 Set the platform/clock\_offset field of the given VM.
3676 \noindent {\bf Signature:}
3677 \begin{verbatim} void set_platform_clock_offset (session_id s, VM ref self, bool value)\end{verbatim}
3680 \noindent{\bf Arguments:}
3683 \vspace{0.3cm}
3684 \begin{tabular}{|c|c|p{7cm}|}
3685 \hline
3686 {\bf type} & {\bf name} & {\bf description} \\ \hline
3687 {\tt VM ref } & self & reference to the object \\ \hline
3689 {\tt bool } & value & New value to set \\ \hline
3691 \end{tabular}
3693 \vspace{0.3cm}
3695 \noindent {\bf Return Type:}
3696 {\tt
3697 void
3702 \vspace{0.3cm}
3703 \vspace{0.3cm}
3704 \vspace{0.3cm}
3705 \subsubsection{RPC name:~get\_platform\_enable\_audio}
3707 {\bf Overview:}
3708 Get the platform/enable\_audio field of the given VM.
3710 \noindent {\bf Signature:}
3711 \begin{verbatim} bool get_platform_enable_audio (session_id s, VM ref self)\end{verbatim}
3714 \noindent{\bf Arguments:}
3717 \vspace{0.3cm}
3718 \begin{tabular}{|c|c|p{7cm}|}
3719 \hline
3720 {\bf type} & {\bf name} & {\bf description} \\ \hline
3721 {\tt VM ref } & self & reference to the object \\ \hline
3723 \end{tabular}
3725 \vspace{0.3cm}
3727 \noindent {\bf Return Type:}
3728 {\tt
3729 bool
3733 value of the field
3734 \vspace{0.3cm}
3735 \vspace{0.3cm}
3736 \vspace{0.3cm}
3737 \subsubsection{RPC name:~set\_platform\_enable\_audio}
3739 {\bf Overview:}
3740 Set the platform/enable\_audio field of the given VM.
3742 \noindent {\bf Signature:}
3743 \begin{verbatim} void set_platform_enable_audio (session_id s, VM ref self, bool value)\end{verbatim}
3746 \noindent{\bf Arguments:}
3749 \vspace{0.3cm}
3750 \begin{tabular}{|c|c|p{7cm}|}
3751 \hline
3752 {\bf type} & {\bf name} & {\bf description} \\ \hline
3753 {\tt VM ref } & self & reference to the object \\ \hline
3755 {\tt bool } & value & New value to set \\ \hline
3757 \end{tabular}
3759 \vspace{0.3cm}
3761 \noindent {\bf Return Type:}
3762 {\tt
3763 void
3768 \vspace{0.3cm}
3769 \vspace{0.3cm}
3770 \vspace{0.3cm}
3771 \subsubsection{RPC name:~get\_PCI\_bus}
3773 {\bf Overview:}
3774 Get the PCI\_bus field of the given VM.
3776 \noindent {\bf Signature:}
3777 \begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
3780 \noindent{\bf Arguments:}
3783 \vspace{0.3cm}
3784 \begin{tabular}{|c|c|p{7cm}|}
3785 \hline
3786 {\bf type} & {\bf name} & {\bf description} \\ \hline
3787 {\tt VM ref } & self & reference to the object \\ \hline
3789 \end{tabular}
3791 \vspace{0.3cm}
3793 \noindent {\bf Return Type:}
3794 {\tt
3795 string
3799 value of the field
3800 \vspace{0.3cm}
3801 \vspace{0.3cm}
3802 \vspace{0.3cm}
3803 \subsubsection{RPC name:~get\_tools\_version}
3805 {\bf Overview:}
3806 Get the tools\_version field of the given VM.
3808 \noindent {\bf Signature:}
3809 \begin{verbatim} ((string -> string) Map) get_tools_version (session_id s, VM ref self)\end{verbatim}
3812 \noindent{\bf Arguments:}
3815 \vspace{0.3cm}
3816 \begin{tabular}{|c|c|p{7cm}|}
3817 \hline
3818 {\bf type} & {\bf name} & {\bf description} \\ \hline
3819 {\tt VM ref } & self & reference to the object \\ \hline
3821 \end{tabular}
3823 \vspace{0.3cm}
3825 \noindent {\bf Return Type:}
3826 {\tt
3827 (string $\rightarrow$ string) Map
3831 value of the field
3832 \vspace{0.3cm}
3833 \vspace{0.3cm}
3834 \vspace{0.3cm}
3835 \subsubsection{RPC name:~get\_other\_config}
3837 {\bf Overview:}
3838 Get the other\_config field of the given VM.
3840 \noindent {\bf Signature:}
3841 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
3844 \noindent{\bf Arguments:}
3847 \vspace{0.3cm}
3848 \begin{tabular}{|c|c|p{7cm}|}
3849 \hline
3850 {\bf type} & {\bf name} & {\bf description} \\ \hline
3851 {\tt VM ref } & self & reference to the object \\ \hline
3853 \end{tabular}
3855 \vspace{0.3cm}
3857 \noindent {\bf Return Type:}
3858 {\tt
3859 (string $\rightarrow$ string) Map
3863 value of the field
3864 \vspace{0.3cm}
3865 \vspace{0.3cm}
3866 \vspace{0.3cm}
3867 \subsubsection{RPC name:~set\_other\_config}
3869 {\bf Overview:}
3870 Set the other\_config field of the given VM.
3872 \noindent {\bf Signature:}
3873 \begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3876 \noindent{\bf Arguments:}
3879 \vspace{0.3cm}
3880 \begin{tabular}{|c|c|p{7cm}|}
3881 \hline
3882 {\bf type} & {\bf name} & {\bf description} \\ \hline
3883 {\tt VM ref } & self & reference to the object \\ \hline
3885 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3887 \end{tabular}
3889 \vspace{0.3cm}
3891 \noindent {\bf Return Type:}
3892 {\tt
3893 void
3898 \vspace{0.3cm}
3899 \vspace{0.3cm}
3900 \vspace{0.3cm}
3901 \subsubsection{RPC name:~add\_to\_other\_config}
3903 {\bf Overview:}
3904 Add the given key-value pair to the other\_config field of the given VM.
3906 \noindent {\bf Signature:}
3907 \begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
3910 \noindent{\bf Arguments:}
3913 \vspace{0.3cm}
3914 \begin{tabular}{|c|c|p{7cm}|}
3915 \hline
3916 {\bf type} & {\bf name} & {\bf description} \\ \hline
3917 {\tt VM ref } & self & reference to the object \\ \hline
3919 {\tt string } & key & Key to add \\ \hline
3921 {\tt string } & value & Value to add \\ \hline
3923 \end{tabular}
3925 \vspace{0.3cm}
3927 \noindent {\bf Return Type:}
3928 {\tt
3929 void
3934 \vspace{0.3cm}
3935 \vspace{0.3cm}
3936 \vspace{0.3cm}
3937 \subsubsection{RPC name:~remove\_from\_other\_config}
3939 {\bf Overview:}
3940 Remove the given key and its corresponding value from the other\_config
3941 field of the given VM. If the key is not in that Map, then do nothing.
3943 \noindent {\bf Signature:}
3944 \begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
3947 \noindent{\bf Arguments:}
3950 \vspace{0.3cm}
3951 \begin{tabular}{|c|c|p{7cm}|}
3952 \hline
3953 {\bf type} & {\bf name} & {\bf description} \\ \hline
3954 {\tt VM ref } & self & reference to the object \\ \hline
3956 {\tt string } & key & Key to remove \\ \hline
3958 \end{tabular}
3960 \vspace{0.3cm}
3962 \noindent {\bf Return Type:}
3963 {\tt
3964 void
3969 \vspace{0.3cm}
3970 \vspace{0.3cm}
3971 \vspace{0.3cm}
3972 \subsubsection{RPC name:~get\_is\_control\_domain}
3974 {\bf Overview:}
3975 Get the is\_control\_domain field of the given VM.
3977 \noindent {\bf Signature:}
3978 \begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
3981 \noindent{\bf Arguments:}
3984 \vspace{0.3cm}
3985 \begin{tabular}{|c|c|p{7cm}|}
3986 \hline
3987 {\bf type} & {\bf name} & {\bf description} \\ \hline
3988 {\tt VM ref } & self & reference to the object \\ \hline
3990 \end{tabular}
3992 \vspace{0.3cm}
3994 \noindent {\bf Return Type:}
3995 {\tt
3996 bool
4000 value of the field
4001 \vspace{0.3cm}
4002 \vspace{0.3cm}
4003 \vspace{0.3cm}
4004 \subsubsection{RPC name:~get\_metrics}
4006 {\bf Overview:}
4007 Get the metrics field of the given VM.
4009 \noindent {\bf Signature:}
4010 \begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
4013 \noindent{\bf Arguments:}
4016 \vspace{0.3cm}
4017 \begin{tabular}{|c|c|p{7cm}|}
4018 \hline
4019 {\bf type} & {\bf name} & {\bf description} \\ \hline
4020 {\tt VM ref } & self & reference to the object \\ \hline
4022 \end{tabular}
4024 \vspace{0.3cm}
4026 \noindent {\bf Return Type:}
4027 {\tt
4028 VM\_metrics ref
4032 value of the field
4033 \vspace{0.3cm}
4034 \vspace{0.3cm}
4035 \vspace{0.3cm}
4036 \subsubsection{RPC name:~create}
4038 {\bf Overview:}
4039 Create a new VM instance, and return its handle.
4041 \noindent {\bf Signature:}
4042 \begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4045 \noindent{\bf Arguments:}
4048 \vspace{0.3cm}
4049 \begin{tabular}{|c|c|p{7cm}|}
4050 \hline
4051 {\bf type} & {\bf name} & {\bf description} \\ \hline
4052 {\tt VM record } & args & All constructor arguments \\ \hline
4054 \end{tabular}
4056 \vspace{0.3cm}
4058 \noindent {\bf Return Type:}
4059 {\tt
4060 VM ref
4064 reference to the newly created object
4065 \vspace{0.3cm}
4066 \vspace{0.3cm}
4067 \vspace{0.3cm}
4068 \subsubsection{RPC name:~destroy}
4070 {\bf Overview:}
4071 Destroy the specified VM. The VM is completely removed from the system.
4072 This function can only be called when the VM is in the Halted State.
4074 \noindent {\bf Signature:}
4075 \begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4078 \noindent{\bf Arguments:}
4081 \vspace{0.3cm}
4082 \begin{tabular}{|c|c|p{7cm}|}
4083 \hline
4084 {\bf type} & {\bf name} & {\bf description} \\ \hline
4085 {\tt VM ref } & self & reference to the object \\ \hline
4087 \end{tabular}
4089 \vspace{0.3cm}
4091 \noindent {\bf Return Type:}
4092 {\tt
4093 void
4098 \vspace{0.3cm}
4099 \vspace{0.3cm}
4100 \vspace{0.3cm}
4101 \subsubsection{RPC name:~get\_by\_uuid}
4103 {\bf Overview:}
4104 Get a reference to the VM instance with the specified UUID.
4106 \noindent {\bf Signature:}
4107 \begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4110 \noindent{\bf Arguments:}
4113 \vspace{0.3cm}
4114 \begin{tabular}{|c|c|p{7cm}|}
4115 \hline
4116 {\bf type} & {\bf name} & {\bf description} \\ \hline
4117 {\tt string } & uuid & UUID of object to return \\ \hline
4119 \end{tabular}
4121 \vspace{0.3cm}
4123 \noindent {\bf Return Type:}
4124 {\tt
4125 VM ref
4129 reference to the object
4130 \vspace{0.3cm}
4131 \vspace{0.3cm}
4132 \vspace{0.3cm}
4133 \subsubsection{RPC name:~get\_record}
4135 {\bf Overview:}
4136 Get a record containing the current state of the given VM.
4138 \noindent {\bf Signature:}
4139 \begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4142 \noindent{\bf Arguments:}
4145 \vspace{0.3cm}
4146 \begin{tabular}{|c|c|p{7cm}|}
4147 \hline
4148 {\bf type} & {\bf name} & {\bf description} \\ \hline
4149 {\tt VM ref } & self & reference to the object \\ \hline
4151 \end{tabular}
4153 \vspace{0.3cm}
4155 \noindent {\bf Return Type:}
4156 {\tt
4157 VM record
4161 all fields from the object
4162 \vspace{0.3cm}
4163 \vspace{0.3cm}
4164 \vspace{0.3cm}
4165 \subsubsection{RPC name:~get\_by\_name\_label}
4167 {\bf Overview:}
4168 Get all the VM instances with the given label.
4170 \noindent {\bf Signature:}
4171 \begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4174 \noindent{\bf Arguments:}
4177 \vspace{0.3cm}
4178 \begin{tabular}{|c|c|p{7cm}|}
4179 \hline
4180 {\bf type} & {\bf name} & {\bf description} \\ \hline
4181 {\tt string } & label & label of object to return \\ \hline
4183 \end{tabular}
4185 \vspace{0.3cm}
4187 \noindent {\bf Return Type:}
4188 {\tt
4189 (VM ref) Set
4193 references to objects with match names
4194 \vspace{0.3cm}
4195 \vspace{0.3cm}
4196 \vspace{0.3cm}
4198 \vspace{1cm}
4199 \newpage
4200 \section{Class: VM\_metrics}
4201 \subsection{Fields for class: VM\_metrics}
4202 \begin{longtable}{|lllp{0.38\textwidth}|}
4203 \hline
4204 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
4205 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
4206 The metrics associated with a VM.}} \\
4207 \hline
4208 Quals & Field & Type & Description \\
4209 \hline
4210 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4211 $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
4212 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
4213 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
4214 \hline
4215 \end{longtable}
4216 \subsection{Additional RPCs associated with class: VM\_metrics}
4217 \subsubsection{RPC name:~get\_uuid}
4219 {\bf Overview:}
4220 Get the uuid field of the given VM\_metrics.
4222 \noindent {\bf Signature:}
4223 \begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
4226 \noindent{\bf Arguments:}
4229 \vspace{0.3cm}
4230 \begin{tabular}{|c|c|p{7cm}|}
4231 \hline
4232 {\bf type} & {\bf name} & {\bf description} \\ \hline
4233 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4235 \end{tabular}
4237 \vspace{0.3cm}
4239 \noindent {\bf Return Type:}
4240 {\tt
4241 string
4245 value of the field
4246 \vspace{0.3cm}
4247 \vspace{0.3cm}
4248 \vspace{0.3cm}
4249 \subsubsection{RPC name:~get\_memory\_actual}
4251 {\bf Overview:}
4252 Get the memory/actual field of the given VM\_metrics.
4254 \noindent {\bf Signature:}
4255 \begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
4258 \noindent{\bf Arguments:}
4261 \vspace{0.3cm}
4262 \begin{tabular}{|c|c|p{7cm}|}
4263 \hline
4264 {\bf type} & {\bf name} & {\bf description} \\ \hline
4265 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4267 \end{tabular}
4269 \vspace{0.3cm}
4271 \noindent {\bf Return Type:}
4272 {\tt
4273 int
4277 value of the field
4278 \vspace{0.3cm}
4279 \vspace{0.3cm}
4280 \vspace{0.3cm}
4281 \subsubsection{RPC name:~get\_VCPUs\_number}
4283 {\bf Overview:}
4284 Get the VCPUs/number field of the given VM\_metrics.
4286 \noindent {\bf Signature:}
4287 \begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
4290 \noindent{\bf Arguments:}
4293 \vspace{0.3cm}
4294 \begin{tabular}{|c|c|p{7cm}|}
4295 \hline
4296 {\bf type} & {\bf name} & {\bf description} \\ \hline
4297 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4299 \end{tabular}
4301 \vspace{0.3cm}
4303 \noindent {\bf Return Type:}
4304 {\tt
4305 int
4309 value of the field
4310 \vspace{0.3cm}
4311 \vspace{0.3cm}
4312 \vspace{0.3cm}
4313 \subsubsection{RPC name:~get\_VCPUs\_utilisation}
4315 {\bf Overview:}
4316 Get the VCPUs/utilisation field of the given VM\_metrics.
4318 \noindent {\bf Signature:}
4319 \begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
4322 \noindent{\bf Arguments:}
4325 \vspace{0.3cm}
4326 \begin{tabular}{|c|c|p{7cm}|}
4327 \hline
4328 {\bf type} & {\bf name} & {\bf description} \\ \hline
4329 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4331 \end{tabular}
4333 \vspace{0.3cm}
4335 \noindent {\bf Return Type:}
4336 {\tt
4337 (int $\rightarrow$ float) Map
4341 value of the field
4342 \vspace{0.3cm}
4343 \vspace{0.3cm}
4344 \vspace{0.3cm}
4345 \subsubsection{RPC name:~get\_by\_uuid}
4347 {\bf Overview:}
4348 Get a reference to the VM\_metrics instance with the specified UUID.
4350 \noindent {\bf Signature:}
4351 \begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4354 \noindent{\bf Arguments:}
4357 \vspace{0.3cm}
4358 \begin{tabular}{|c|c|p{7cm}|}
4359 \hline
4360 {\bf type} & {\bf name} & {\bf description} \\ \hline
4361 {\tt string } & uuid & UUID of object to return \\ \hline
4363 \end{tabular}
4365 \vspace{0.3cm}
4367 \noindent {\bf Return Type:}
4368 {\tt
4369 VM\_metrics ref
4373 reference to the object
4374 \vspace{0.3cm}
4375 \vspace{0.3cm}
4376 \vspace{0.3cm}
4377 \subsubsection{RPC name:~get\_record}
4379 {\bf Overview:}
4380 Get a record containing the current state of the given VM\_metrics.
4382 \noindent {\bf Signature:}
4383 \begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
4386 \noindent{\bf Arguments:}
4389 \vspace{0.3cm}
4390 \begin{tabular}{|c|c|p{7cm}|}
4391 \hline
4392 {\bf type} & {\bf name} & {\bf description} \\ \hline
4393 {\tt VM\_metrics ref } & self & reference to the object \\ \hline
4395 \end{tabular}
4397 \vspace{0.3cm}
4399 \noindent {\bf Return Type:}
4400 {\tt
4401 VM\_metrics record
4405 all fields from the object
4406 \vspace{0.3cm}
4407 \vspace{0.3cm}
4408 \vspace{0.3cm}
4410 \vspace{1cm}
4411 \newpage
4412 \section{Class: host}
4413 \subsection{Fields for class: host}
4414 \begin{longtable}{|lllp{0.38\textwidth}|}
4415 \hline
4416 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
4417 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
4418 physical host.}} \\
4419 \hline
4420 Quals & Field & Type & Description \\
4421 \hline
4422 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4423 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
4424 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
4425 $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
4426 $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
4427 $\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\
4428 $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
4429 $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
4430 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
4431 $\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
4432 $\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
4433 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
4434 $\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
4435 $\mathit{RO}_\mathit{ins}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host. \\
4436 \hline
4437 \end{longtable}
4438 \subsection{Additional RPCs associated with class: host}
4439 \subsubsection{RPC name:~disable}
4441 {\bf Overview:}
4442 Puts the host into a state in which no new VMs can be started. Currently
4443 active VMs on the host continue to execute.
4445 \noindent {\bf Signature:}
4446 \begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
4449 \noindent{\bf Arguments:}
4452 \vspace{0.3cm}
4453 \begin{tabular}{|c|c|p{7cm}|}
4454 \hline
4455 {\bf type} & {\bf name} & {\bf description} \\ \hline
4456 {\tt host ref } & host & The Host to disable \\ \hline
4458 \end{tabular}
4460 \vspace{0.3cm}
4462 \noindent {\bf Return Type:}
4463 {\tt
4464 void
4469 \vspace{0.3cm}
4470 \vspace{0.3cm}
4471 \vspace{0.3cm}
4472 \subsubsection{RPC name:~enable}
4474 {\bf Overview:}
4475 Puts the host into a state in which new VMs can be started.
4477 \noindent {\bf Signature:}
4478 \begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
4481 \noindent{\bf Arguments:}
4484 \vspace{0.3cm}
4485 \begin{tabular}{|c|c|p{7cm}|}
4486 \hline
4487 {\bf type} & {\bf name} & {\bf description} \\ \hline
4488 {\tt host ref } & host & The Host to enable \\ \hline
4490 \end{tabular}
4492 \vspace{0.3cm}
4494 \noindent {\bf Return Type:}
4495 {\tt
4496 void
4501 \vspace{0.3cm}
4502 \vspace{0.3cm}
4503 \vspace{0.3cm}
4504 \subsubsection{RPC name:~shutdown}
4506 {\bf Overview:}
4507 Shutdown the host. (This function can only be called if there are no
4508 currently running VMs on the host and it is disabled.).
4510 \noindent {\bf Signature:}
4511 \begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
4514 \noindent{\bf Arguments:}
4517 \vspace{0.3cm}
4518 \begin{tabular}{|c|c|p{7cm}|}
4519 \hline
4520 {\bf type} & {\bf name} & {\bf description} \\ \hline
4521 {\tt host ref } & host & The Host to shutdown \\ \hline
4523 \end{tabular}
4525 \vspace{0.3cm}
4527 \noindent {\bf Return Type:}
4528 {\tt
4529 void
4534 \vspace{0.3cm}
4535 \vspace{0.3cm}
4536 \vspace{0.3cm}
4537 \subsubsection{RPC name:~reboot}
4539 {\bf Overview:}
4540 Reboot the host. (This function can only be called if there are no
4541 currently running VMs on the host and it is disabled.).
4543 \noindent {\bf Signature:}
4544 \begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
4547 \noindent{\bf Arguments:}
4550 \vspace{0.3cm}
4551 \begin{tabular}{|c|c|p{7cm}|}
4552 \hline
4553 {\bf type} & {\bf name} & {\bf description} \\ \hline
4554 {\tt host ref } & host & The Host to reboot \\ \hline
4556 \end{tabular}
4558 \vspace{0.3cm}
4560 \noindent {\bf Return Type:}
4561 {\tt
4562 void
4567 \vspace{0.3cm}
4568 \vspace{0.3cm}
4569 \vspace{0.3cm}
4570 \subsubsection{RPC name:~dmesg}
4572 {\bf Overview:}
4573 Get the host xen dmesg.
4575 \noindent {\bf Signature:}
4576 \begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
4579 \noindent{\bf Arguments:}
4582 \vspace{0.3cm}
4583 \begin{tabular}{|c|c|p{7cm}|}
4584 \hline
4585 {\bf type} & {\bf name} & {\bf description} \\ \hline
4586 {\tt host ref } & host & The Host to query \\ \hline
4588 \end{tabular}
4590 \vspace{0.3cm}
4592 \noindent {\bf Return Type:}
4593 {\tt
4594 string
4598 dmesg string
4599 \vspace{0.3cm}
4600 \vspace{0.3cm}
4601 \vspace{0.3cm}
4602 \subsubsection{RPC name:~get\_all}
4604 {\bf Overview:}
4605 Return a list of all the hosts known to the system.
4607 \noindent {\bf Signature:}
4608 \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
4611 \vspace{0.3cm}
4613 \noindent {\bf Return Type:}
4614 {\tt
4615 (host ref) Set
4619 A list of all the IDs of all the hosts
4620 \vspace{0.3cm}
4621 \vspace{0.3cm}
4622 \vspace{0.3cm}
4623 \subsubsection{RPC name:~get\_uuid}
4625 {\bf Overview:}
4626 Get the uuid field of the given host.
4628 \noindent {\bf Signature:}
4629 \begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
4632 \noindent{\bf Arguments:}
4635 \vspace{0.3cm}
4636 \begin{tabular}{|c|c|p{7cm}|}
4637 \hline
4638 {\bf type} & {\bf name} & {\bf description} \\ \hline
4639 {\tt host ref } & self & reference to the object \\ \hline
4641 \end{tabular}
4643 \vspace{0.3cm}
4645 \noindent {\bf Return Type:}
4646 {\tt
4647 string
4651 value of the field
4652 \vspace{0.3cm}
4653 \vspace{0.3cm}
4654 \vspace{0.3cm}
4655 \subsubsection{RPC name:~get\_name\_label}
4657 {\bf Overview:}
4658 Get the name/label field of the given host.
4660 \noindent {\bf Signature:}
4661 \begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
4664 \noindent{\bf Arguments:}
4667 \vspace{0.3cm}
4668 \begin{tabular}{|c|c|p{7cm}|}
4669 \hline
4670 {\bf type} & {\bf name} & {\bf description} \\ \hline
4671 {\tt host ref } & self & reference to the object \\ \hline
4673 \end{tabular}
4675 \vspace{0.3cm}
4677 \noindent {\bf Return Type:}
4678 {\tt
4679 string
4683 value of the field
4684 \vspace{0.3cm}
4685 \vspace{0.3cm}
4686 \vspace{0.3cm}
4687 \subsubsection{RPC name:~set\_name\_label}
4689 {\bf Overview:}
4690 Set the name/label field of the given host.
4692 \noindent {\bf Signature:}
4693 \begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
4696 \noindent{\bf Arguments:}
4699 \vspace{0.3cm}
4700 \begin{tabular}{|c|c|p{7cm}|}
4701 \hline
4702 {\bf type} & {\bf name} & {\bf description} \\ \hline
4703 {\tt host ref } & self & reference to the object \\ \hline
4705 {\tt string } & value & New value to set \\ \hline
4707 \end{tabular}
4709 \vspace{0.3cm}
4711 \noindent {\bf Return Type:}
4712 {\tt
4713 void
4718 \vspace{0.3cm}
4719 \vspace{0.3cm}
4720 \vspace{0.3cm}
4721 \subsubsection{RPC name:~get\_name\_description}
4723 {\bf Overview:}
4724 Get the name/description field of the given host.
4726 \noindent {\bf Signature:}
4727 \begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
4730 \noindent{\bf Arguments:}
4733 \vspace{0.3cm}
4734 \begin{tabular}{|c|c|p{7cm}|}
4735 \hline
4736 {\bf type} & {\bf name} & {\bf description} \\ \hline
4737 {\tt host ref } & self & reference to the object \\ \hline
4739 \end{tabular}
4741 \vspace{0.3cm}
4743 \noindent {\bf Return Type:}
4744 {\tt
4745 string
4749 value of the field
4750 \vspace{0.3cm}
4751 \vspace{0.3cm}
4752 \vspace{0.3cm}
4753 \subsubsection{RPC name:~set\_name\_description}
4755 {\bf Overview:}
4756 Set the name/description field of the given host.
4758 \noindent {\bf Signature:}
4759 \begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
4762 \noindent{\bf Arguments:}
4765 \vspace{0.3cm}
4766 \begin{tabular}{|c|c|p{7cm}|}
4767 \hline
4768 {\bf type} & {\bf name} & {\bf description} \\ \hline
4769 {\tt host ref } & self & reference to the object \\ \hline
4771 {\tt string } & value & New value to set \\ \hline
4773 \end{tabular}
4775 \vspace{0.3cm}
4777 \noindent {\bf Return Type:}
4778 {\tt
4779 void
4784 \vspace{0.3cm}
4785 \vspace{0.3cm}
4786 \vspace{0.3cm}
4787 \subsubsection{RPC name:~get\_software\_version}
4789 {\bf Overview:}
4790 Get the software\_version field of the given host.
4792 \noindent {\bf Signature:}
4793 \begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
4796 \noindent{\bf Arguments:}
4799 \vspace{0.3cm}
4800 \begin{tabular}{|c|c|p{7cm}|}
4801 \hline
4802 {\bf type} & {\bf name} & {\bf description} \\ \hline
4803 {\tt host ref } & self & reference to the object \\ \hline
4805 \end{tabular}
4807 \vspace{0.3cm}
4809 \noindent {\bf Return Type:}
4810 {\tt
4811 (string $\rightarrow$ string) Map
4815 value of the field
4816 \vspace{0.3cm}
4817 \vspace{0.3cm}
4818 \vspace{0.3cm}
4819 \subsubsection{RPC name:~get\_other\_config}
4821 {\bf Overview:}
4822 Get the other\_config field of the given host.
4824 \noindent {\bf Signature:}
4825 \begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
4828 \noindent{\bf Arguments:}
4831 \vspace{0.3cm}
4832 \begin{tabular}{|c|c|p{7cm}|}
4833 \hline
4834 {\bf type} & {\bf name} & {\bf description} \\ \hline
4835 {\tt host ref } & self & reference to the object \\ \hline
4837 \end{tabular}
4839 \vspace{0.3cm}
4841 \noindent {\bf Return Type:}
4842 {\tt
4843 (string $\rightarrow$ string) Map
4847 value of the field
4848 \vspace{0.3cm}
4849 \vspace{0.3cm}
4850 \vspace{0.3cm}
4851 \subsubsection{RPC name:~set\_other\_config}
4853 {\bf Overview:}
4854 Set the other\_config field of the given host.
4856 \noindent {\bf Signature:}
4857 \begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
4860 \noindent{\bf Arguments:}
4863 \vspace{0.3cm}
4864 \begin{tabular}{|c|c|p{7cm}|}
4865 \hline
4866 {\bf type} & {\bf name} & {\bf description} \\ \hline
4867 {\tt host ref } & self & reference to the object \\ \hline
4869 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
4871 \end{tabular}
4873 \vspace{0.3cm}
4875 \noindent {\bf Return Type:}
4876 {\tt
4877 void
4882 \vspace{0.3cm}
4883 \vspace{0.3cm}
4884 \vspace{0.3cm}
4885 \subsubsection{RPC name:~add\_to\_other\_config}
4887 {\bf Overview:}
4888 Add the given key-value pair to the other\_config field of the given host.
4890 \noindent {\bf Signature:}
4891 \begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
4894 \noindent{\bf Arguments:}
4897 \vspace{0.3cm}
4898 \begin{tabular}{|c|c|p{7cm}|}
4899 \hline
4900 {\bf type} & {\bf name} & {\bf description} \\ \hline
4901 {\tt host ref } & self & reference to the object \\ \hline
4903 {\tt string } & key & Key to add \\ \hline
4905 {\tt string } & value & Value to add \\ \hline
4907 \end{tabular}
4909 \vspace{0.3cm}
4911 \noindent {\bf Return Type:}
4912 {\tt
4913 void
4918 \vspace{0.3cm}
4919 \vspace{0.3cm}
4920 \vspace{0.3cm}
4921 \subsubsection{RPC name:~remove\_from\_other\_config}
4923 {\bf Overview:}
4924 Remove the given key and its corresponding value from the other\_config
4925 field of the given host. If the key is not in that Map, then do nothing.
4927 \noindent {\bf Signature:}
4928 \begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
4931 \noindent{\bf Arguments:}
4934 \vspace{0.3cm}
4935 \begin{tabular}{|c|c|p{7cm}|}
4936 \hline
4937 {\bf type} & {\bf name} & {\bf description} \\ \hline
4938 {\tt host ref } & self & reference to the object \\ \hline
4940 {\tt string } & key & Key to remove \\ \hline
4942 \end{tabular}
4944 \vspace{0.3cm}
4946 \noindent {\bf Return Type:}
4947 {\tt
4948 void
4953 \vspace{0.3cm}
4954 \vspace{0.3cm}
4955 \vspace{0.3cm}
4956 \subsubsection{RPC name:~get\_supported\_bootloaders}
4958 {\bf Overview:}
4959 Get the supported\_bootloaders field of the given host.
4961 \noindent {\bf Signature:}
4962 \begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim}
4965 \noindent{\bf Arguments:}
4968 \vspace{0.3cm}
4969 \begin{tabular}{|c|c|p{7cm}|}
4970 \hline
4971 {\bf type} & {\bf name} & {\bf description} \\ \hline
4972 {\tt host ref } & self & reference to the object \\ \hline
4974 \end{tabular}
4976 \vspace{0.3cm}
4978 \noindent {\bf Return Type:}
4979 {\tt
4980 string Set
4984 value of the field
4985 \vspace{0.3cm}
4986 \vspace{0.3cm}
4987 \vspace{0.3cm}
4988 \subsubsection{RPC name:~get\_resident\_VMs}
4990 {\bf Overview:}
4991 Get the resident\_VMs field of the given host.
4993 \noindent {\bf Signature:}
4994 \begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
4997 \noindent{\bf Arguments:}
5000 \vspace{0.3cm}
5001 \begin{tabular}{|c|c|p{7cm}|}
5002 \hline
5003 {\bf type} & {\bf name} & {\bf description} \\ \hline
5004 {\tt host ref } & self & reference to the object \\ \hline
5006 \end{tabular}
5008 \vspace{0.3cm}
5010 \noindent {\bf Return Type:}
5011 {\tt
5012 (VM ref) Set
5016 value of the field
5017 \vspace{0.3cm}
5018 \vspace{0.3cm}
5019 \vspace{0.3cm}
5020 \subsubsection{RPC name:~get\_logging}
5022 {\bf Overview:}
5023 Get the logging field of the given host.
5025 \noindent {\bf Signature:}
5026 \begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
5029 \noindent{\bf Arguments:}
5032 \vspace{0.3cm}
5033 \begin{tabular}{|c|c|p{7cm}|}
5034 \hline
5035 {\bf type} & {\bf name} & {\bf description} \\ \hline
5036 {\tt host ref } & self & reference to the object \\ \hline
5038 \end{tabular}
5040 \vspace{0.3cm}
5042 \noindent {\bf Return Type:}
5043 {\tt
5044 (string $\rightarrow$ string) Map
5048 value of the field
5049 \vspace{0.3cm}
5050 \vspace{0.3cm}
5051 \vspace{0.3cm}
5052 \subsubsection{RPC name:~set\_logging}
5054 {\bf Overview:}
5055 Set the logging field of the given host.
5057 \noindent {\bf Signature:}
5058 \begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map 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 $\rightarrow$ string) Map } & value & New value to set \\ \hline
5072 \end{tabular}
5074 \vspace{0.3cm}
5076 \noindent {\bf Return Type:}
5077 {\tt
5078 void
5083 \vspace{0.3cm}
5084 \vspace{0.3cm}
5085 \vspace{0.3cm}
5086 \subsubsection{RPC name:~add\_to\_logging}
5088 {\bf Overview:}
5089 Add the given key-value pair to the logging field of the given host.
5091 \noindent {\bf Signature:}
5092 \begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\end{verbatim}
5095 \noindent{\bf Arguments:}
5098 \vspace{0.3cm}
5099 \begin{tabular}{|c|c|p{7cm}|}
5100 \hline
5101 {\bf type} & {\bf name} & {\bf description} \\ \hline
5102 {\tt host ref } & self & reference to the object \\ \hline
5104 {\tt string } & key & Key to add \\ \hline
5106 {\tt string } & value & Value to add \\ \hline
5108 \end{tabular}
5110 \vspace{0.3cm}
5112 \noindent {\bf Return Type:}
5113 {\tt
5114 void
5119 \vspace{0.3cm}
5120 \vspace{0.3cm}
5121 \vspace{0.3cm}
5122 \subsubsection{RPC name:~remove\_from\_logging}
5124 {\bf Overview:}
5125 Remove the given key and its corresponding value from the logging field of
5126 the given host. If the key is not in that Map, then do nothing.
5128 \noindent {\bf Signature:}
5129 \begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\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 {\tt string } & key & Key to remove \\ \hline
5143 \end{tabular}
5145 \vspace{0.3cm}
5147 \noindent {\bf Return Type:}
5148 {\tt
5149 void
5154 \vspace{0.3cm}
5155 \vspace{0.3cm}
5156 \vspace{0.3cm}
5157 \subsubsection{RPC name:~get\_PIFs}
5159 {\bf Overview:}
5160 Get the PIFs field of the given host.
5162 \noindent {\bf Signature:}
5163 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
5166 \noindent{\bf Arguments:}
5169 \vspace{0.3cm}
5170 \begin{tabular}{|c|c|p{7cm}|}
5171 \hline
5172 {\bf type} & {\bf name} & {\bf description} \\ \hline
5173 {\tt host ref } & self & reference to the object \\ \hline
5175 \end{tabular}
5177 \vspace{0.3cm}
5179 \noindent {\bf Return Type:}
5180 {\tt
5181 (PIF ref) Set
5185 value of the field
5186 \vspace{0.3cm}
5187 \vspace{0.3cm}
5188 \vspace{0.3cm}
5189 \subsubsection{RPC name:~get\_suspend\_image\_sr}
5191 {\bf Overview:}
5192 Get the suspend\_image\_sr field of the given host.
5194 \noindent {\bf Signature:}
5195 \begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
5198 \noindent{\bf Arguments:}
5201 \vspace{0.3cm}
5202 \begin{tabular}{|c|c|p{7cm}|}
5203 \hline
5204 {\bf type} & {\bf name} & {\bf description} \\ \hline
5205 {\tt host ref } & self & reference to the object \\ \hline
5207 \end{tabular}
5209 \vspace{0.3cm}
5211 \noindent {\bf Return Type:}
5212 {\tt
5213 SR ref
5217 value of the field
5218 \vspace{0.3cm}
5219 \vspace{0.3cm}
5220 \vspace{0.3cm}
5221 \subsubsection{RPC name:~set\_suspend\_image\_sr}
5223 {\bf Overview:}
5224 Set the suspend\_image\_sr field of the given host.
5226 \noindent {\bf Signature:}
5227 \begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\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 {\tt SR ref } & value & New value to set \\ \hline
5241 \end{tabular}
5243 \vspace{0.3cm}
5245 \noindent {\bf Return Type:}
5246 {\tt
5247 void
5252 \vspace{0.3cm}
5253 \vspace{0.3cm}
5254 \vspace{0.3cm}
5255 \subsubsection{RPC name:~get\_crash\_dump\_sr}
5257 {\bf Overview:}
5258 Get the crash\_dump\_sr field of the given host.
5260 \noindent {\bf Signature:}
5261 \begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
5264 \noindent{\bf Arguments:}
5267 \vspace{0.3cm}
5268 \begin{tabular}{|c|c|p{7cm}|}
5269 \hline
5270 {\bf type} & {\bf name} & {\bf description} \\ \hline
5271 {\tt host ref } & self & reference to the object \\ \hline
5273 \end{tabular}
5275 \vspace{0.3cm}
5277 \noindent {\bf Return Type:}
5278 {\tt
5279 SR ref
5283 value of the field
5284 \vspace{0.3cm}
5285 \vspace{0.3cm}
5286 \vspace{0.3cm}
5287 \subsubsection{RPC name:~set\_crash\_dump\_sr}
5289 {\bf Overview:}
5290 Set the crash\_dump\_sr field of the given host.
5292 \noindent {\bf Signature:}
5293 \begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\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 {\tt SR ref } & value & New value to set \\ \hline
5307 \end{tabular}
5309 \vspace{0.3cm}
5311 \noindent {\bf Return Type:}
5312 {\tt
5313 void
5318 \vspace{0.3cm}
5319 \vspace{0.3cm}
5320 \vspace{0.3cm}
5321 \subsubsection{RPC name:~get\_PBDs}
5323 {\bf Overview:}
5324 Get the PBDs field of the given host.
5326 \noindent {\bf Signature:}
5327 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
5330 \noindent{\bf Arguments:}
5333 \vspace{0.3cm}
5334 \begin{tabular}{|c|c|p{7cm}|}
5335 \hline
5336 {\bf type} & {\bf name} & {\bf description} \\ \hline
5337 {\tt host ref } & self & reference to the object \\ \hline
5339 \end{tabular}
5341 \vspace{0.3cm}
5343 \noindent {\bf Return Type:}
5344 {\tt
5345 (PBD ref) Set
5349 value of the field
5350 \vspace{0.3cm}
5351 \vspace{0.3cm}
5352 \vspace{0.3cm}
5353 \subsubsection{RPC name:~get\_host\_CPUs}
5355 {\bf Overview:}
5356 Get the host\_CPUs field of the given host.
5358 \noindent {\bf Signature:}
5359 \begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
5362 \noindent{\bf Arguments:}
5365 \vspace{0.3cm}
5366 \begin{tabular}{|c|c|p{7cm}|}
5367 \hline
5368 {\bf type} & {\bf name} & {\bf description} \\ \hline
5369 {\tt host ref } & self & reference to the object \\ \hline
5371 \end{tabular}
5373 \vspace{0.3cm}
5375 \noindent {\bf Return Type:}
5376 {\tt
5377 (host\_cpu ref) Set
5381 value of the field
5382 \vspace{0.3cm}
5383 \vspace{0.3cm}
5384 \vspace{0.3cm}
5385 \subsubsection{RPC name:~get\_metrics}
5387 {\bf Overview:}
5388 Get the metrics field of the given host.
5390 \noindent {\bf Signature:}
5391 \begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
5394 \noindent{\bf Arguments:}
5397 \vspace{0.3cm}
5398 \begin{tabular}{|c|c|p{7cm}|}
5399 \hline
5400 {\bf type} & {\bf name} & {\bf description} \\ \hline
5401 {\tt host ref } & self & reference to the object \\ \hline
5403 \end{tabular}
5405 \vspace{0.3cm}
5407 \noindent {\bf Return Type:}
5408 {\tt
5409 host\_metrics ref
5413 value of the field
5414 \vspace{0.3cm}
5415 \vspace{0.3cm}
5416 \vspace{0.3cm}
5417 \subsubsection{RPC name:~get\_by\_uuid}
5419 {\bf Overview:}
5420 Get a reference to the host instance with the specified UUID.
5422 \noindent {\bf Signature:}
5423 \begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5426 \noindent{\bf Arguments:}
5429 \vspace{0.3cm}
5430 \begin{tabular}{|c|c|p{7cm}|}
5431 \hline
5432 {\bf type} & {\bf name} & {\bf description} \\ \hline
5433 {\tt string } & uuid & UUID of object to return \\ \hline
5435 \end{tabular}
5437 \vspace{0.3cm}
5439 \noindent {\bf Return Type:}
5440 {\tt
5441 host ref
5445 reference to the object
5446 \vspace{0.3cm}
5447 \vspace{0.3cm}
5448 \vspace{0.3cm}
5449 \subsubsection{RPC name:~get\_record}
5451 {\bf Overview:}
5452 Get a record containing the current state of the given host.
5454 \noindent {\bf Signature:}
5455 \begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
5458 \noindent{\bf Arguments:}
5461 \vspace{0.3cm}
5462 \begin{tabular}{|c|c|p{7cm}|}
5463 \hline
5464 {\bf type} & {\bf name} & {\bf description} \\ \hline
5465 {\tt host ref } & self & reference to the object \\ \hline
5467 \end{tabular}
5469 \vspace{0.3cm}
5471 \noindent {\bf Return Type:}
5472 {\tt
5473 host record
5477 all fields from the object
5478 \vspace{0.3cm}
5479 \vspace{0.3cm}
5480 \vspace{0.3cm}
5481 \subsubsection{RPC name:~get\_by\_name\_label}
5483 {\bf Overview:}
5484 Get all the host instances with the given label.
5486 \noindent {\bf Signature:}
5487 \begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
5490 \noindent{\bf Arguments:}
5493 \vspace{0.3cm}
5494 \begin{tabular}{|c|c|p{7cm}|}
5495 \hline
5496 {\bf type} & {\bf name} & {\bf description} \\ \hline
5497 {\tt string } & label & label of object to return \\ \hline
5499 \end{tabular}
5501 \vspace{0.3cm}
5503 \noindent {\bf Return Type:}
5504 {\tt
5505 (host ref) Set
5509 references to objects with match names
5510 \vspace{0.3cm}
5511 \vspace{0.3cm}
5512 \vspace{0.3cm}
5514 \vspace{1cm}
5515 \newpage
5516 \section{Class: host\_metrics}
5517 \subsection{Fields for class: host\_metrics}
5518 \begin{longtable}{|lllp{0.38\textwidth}|}
5519 \hline
5520 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
5521 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
5522 The metrics associated with a host.}} \\
5523 \hline
5524 Quals & Field & Type & Description \\
5525 \hline
5526 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5527 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & Host to which these metrics apply \\
5528 $\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
5529 $\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
5530 \hline
5531 \end{longtable}
5532 \subsection{Additional RPCs associated with class: host\_metrics}
5533 \subsubsection{RPC name:~get\_uuid}
5535 {\bf Overview:}
5536 Get the uuid field of the given host\_metrics.
5538 \noindent {\bf Signature:}
5539 \begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
5542 \noindent{\bf Arguments:}
5545 \vspace{0.3cm}
5546 \begin{tabular}{|c|c|p{7cm}|}
5547 \hline
5548 {\bf type} & {\bf name} & {\bf description} \\ \hline
5549 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5551 \end{tabular}
5553 \vspace{0.3cm}
5555 \noindent {\bf Return Type:}
5556 {\tt
5557 string
5561 value of the field
5562 \vspace{0.3cm}
5563 \vspace{0.3cm}
5564 \vspace{0.3cm}
5565 \subsubsection{RPC name:~get\_host}
5567 {\bf Overview:}
5568 Get the host field of the given host\_metrics.
5570 \noindent {\bf Signature:}
5571 \begin{verbatim} (host ref) get_host (session_id s, host_metrics ref self)\end{verbatim}
5574 \noindent{\bf Arguments:}
5577 \vspace{0.3cm}
5578 \begin{tabular}{|c|c|p{7cm}|}
5579 \hline
5580 {\bf type} & {\bf name} & {\bf description} \\ \hline
5581 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5583 \end{tabular}
5585 \vspace{0.3cm}
5587 \noindent {\bf Return Type:}
5588 {\tt
5589 host ref
5593 value of the field
5594 \vspace{0.3cm}
5595 \vspace{0.3cm}
5596 \vspace{0.3cm}
5597 \subsubsection{RPC name:~get\_memory\_total}
5599 {\bf Overview:}
5600 Get the memory/total field of the given host\_metrics.
5602 \noindent {\bf Signature:}
5603 \begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
5606 \noindent{\bf Arguments:}
5609 \vspace{0.3cm}
5610 \begin{tabular}{|c|c|p{7cm}|}
5611 \hline
5612 {\bf type} & {\bf name} & {\bf description} \\ \hline
5613 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5615 \end{tabular}
5617 \vspace{0.3cm}
5619 \noindent {\bf Return Type:}
5620 {\tt
5621 int
5625 value of the field
5626 \vspace{0.3cm}
5627 \vspace{0.3cm}
5628 \vspace{0.3cm}
5629 \subsubsection{RPC name:~get\_memory\_free}
5631 {\bf Overview:}
5632 Get the memory/free field of the given host\_metrics.
5634 \noindent {\bf Signature:}
5635 \begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
5638 \noindent{\bf Arguments:}
5641 \vspace{0.3cm}
5642 \begin{tabular}{|c|c|p{7cm}|}
5643 \hline
5644 {\bf type} & {\bf name} & {\bf description} \\ \hline
5645 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5647 \end{tabular}
5649 \vspace{0.3cm}
5651 \noindent {\bf Return Type:}
5652 {\tt
5653 int
5657 value of the field
5658 \vspace{0.3cm}
5659 \vspace{0.3cm}
5660 \vspace{0.3cm}
5661 \subsubsection{RPC name:~get\_by\_uuid}
5663 {\bf Overview:}
5664 Get a reference to the host\_metrics instance with the specified UUID.
5666 \noindent {\bf Signature:}
5667 \begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5670 \noindent{\bf Arguments:}
5673 \vspace{0.3cm}
5674 \begin{tabular}{|c|c|p{7cm}|}
5675 \hline
5676 {\bf type} & {\bf name} & {\bf description} \\ \hline
5677 {\tt string } & uuid & UUID of object to return \\ \hline
5679 \end{tabular}
5681 \vspace{0.3cm}
5683 \noindent {\bf Return Type:}
5684 {\tt
5685 host\_metrics ref
5689 reference to the object
5690 \vspace{0.3cm}
5691 \vspace{0.3cm}
5692 \vspace{0.3cm}
5693 \subsubsection{RPC name:~get\_record}
5695 {\bf Overview:}
5696 Get a record containing the current state of the given host\_metrics.
5698 \noindent {\bf Signature:}
5699 \begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
5702 \noindent{\bf Arguments:}
5705 \vspace{0.3cm}
5706 \begin{tabular}{|c|c|p{7cm}|}
5707 \hline
5708 {\bf type} & {\bf name} & {\bf description} \\ \hline
5709 {\tt host\_metrics ref } & self & reference to the object \\ \hline
5711 \end{tabular}
5713 \vspace{0.3cm}
5715 \noindent {\bf Return Type:}
5716 {\tt
5717 host\_metrics record
5721 all fields from the object
5722 \vspace{0.3cm}
5723 \vspace{0.3cm}
5724 \vspace{0.3cm}
5726 \vspace{1cm}
5727 \newpage
5728 \section{Class: host\_cpu}
5729 \subsection{Fields for class: host\_cpu}
5730 \begin{longtable}{|lllp{0.38\textwidth}|}
5731 \hline
5732 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
5733 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
5734 \hline
5735 Quals & Field & Type & Description \\
5736 \hline
5737 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5738 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & the host the CPU is in \\
5739 $\mathit{RO}_\mathit{ins}$ & {\tt number} & int & the number of the physical CPU within the host \\
5740 $\mathit{RO}_\mathit{ins}$ & {\tt vendor} & string & the vendor of the physical CPU \\
5741 $\mathit{RO}_\mathit{ins}$ & {\tt speed} & int & the speed of the physical CPU \\
5742 $\mathit{RO}_\mathit{ins}$ & {\tt modelname} & string & the model name of the physical CPU \\
5743 $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
5744 \hline
5745 \end{longtable}
5746 \subsection{Additional RPCs associated with class: host\_cpu}
5747 \subsubsection{RPC name:~get\_uuid}
5749 {\bf Overview:}
5750 Get the uuid field of the given host\_cpu.
5752 \noindent {\bf Signature:}
5753 \begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
5756 \noindent{\bf Arguments:}
5759 \vspace{0.3cm}
5760 \begin{tabular}{|c|c|p{7cm}|}
5761 \hline
5762 {\bf type} & {\bf name} & {\bf description} \\ \hline
5763 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5765 \end{tabular}
5767 \vspace{0.3cm}
5769 \noindent {\bf Return Type:}
5770 {\tt
5771 string
5775 value of the field
5776 \vspace{0.3cm}
5777 \vspace{0.3cm}
5778 \vspace{0.3cm}
5779 \subsubsection{RPC name:~get\_host}
5781 {\bf Overview:}
5782 Get the host field of the given host\_cpu.
5784 \noindent {\bf Signature:}
5785 \begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
5788 \noindent{\bf Arguments:}
5791 \vspace{0.3cm}
5792 \begin{tabular}{|c|c|p{7cm}|}
5793 \hline
5794 {\bf type} & {\bf name} & {\bf description} \\ \hline
5795 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5797 \end{tabular}
5799 \vspace{0.3cm}
5801 \noindent {\bf Return Type:}
5802 {\tt
5803 host ref
5807 value of the field
5808 \vspace{0.3cm}
5809 \vspace{0.3cm}
5810 \vspace{0.3cm}
5811 \subsubsection{RPC name:~get\_number}
5813 {\bf Overview:}
5814 Get the number field of the given host\_cpu.
5816 \noindent {\bf Signature:}
5817 \begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
5820 \noindent{\bf Arguments:}
5823 \vspace{0.3cm}
5824 \begin{tabular}{|c|c|p{7cm}|}
5825 \hline
5826 {\bf type} & {\bf name} & {\bf description} \\ \hline
5827 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5829 \end{tabular}
5831 \vspace{0.3cm}
5833 \noindent {\bf Return Type:}
5834 {\tt
5835 int
5839 value of the field
5840 \vspace{0.3cm}
5841 \vspace{0.3cm}
5842 \vspace{0.3cm}
5843 \subsubsection{RPC name:~get\_vendor}
5845 {\bf Overview:}
5846 Get the vendor field of the given host\_cpu.
5848 \noindent {\bf Signature:}
5849 \begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
5852 \noindent{\bf Arguments:}
5855 \vspace{0.3cm}
5856 \begin{tabular}{|c|c|p{7cm}|}
5857 \hline
5858 {\bf type} & {\bf name} & {\bf description} \\ \hline
5859 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5861 \end{tabular}
5863 \vspace{0.3cm}
5865 \noindent {\bf Return Type:}
5866 {\tt
5867 string
5871 value of the field
5872 \vspace{0.3cm}
5873 \vspace{0.3cm}
5874 \vspace{0.3cm}
5875 \subsubsection{RPC name:~get\_speed}
5877 {\bf Overview:}
5878 Get the speed field of the given host\_cpu.
5880 \noindent {\bf Signature:}
5881 \begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
5884 \noindent{\bf Arguments:}
5887 \vspace{0.3cm}
5888 \begin{tabular}{|c|c|p{7cm}|}
5889 \hline
5890 {\bf type} & {\bf name} & {\bf description} \\ \hline
5891 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5893 \end{tabular}
5895 \vspace{0.3cm}
5897 \noindent {\bf Return Type:}
5898 {\tt
5899 int
5903 value of the field
5904 \vspace{0.3cm}
5905 \vspace{0.3cm}
5906 \vspace{0.3cm}
5907 \subsubsection{RPC name:~get\_modelname}
5909 {\bf Overview:}
5910 Get the modelname field of the given host\_cpu.
5912 \noindent {\bf Signature:}
5913 \begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
5916 \noindent{\bf Arguments:}
5919 \vspace{0.3cm}
5920 \begin{tabular}{|c|c|p{7cm}|}
5921 \hline
5922 {\bf type} & {\bf name} & {\bf description} \\ \hline
5923 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5925 \end{tabular}
5927 \vspace{0.3cm}
5929 \noindent {\bf Return Type:}
5930 {\tt
5931 string
5935 value of the field
5936 \vspace{0.3cm}
5937 \vspace{0.3cm}
5938 \vspace{0.3cm}
5939 \subsubsection{RPC name:~get\_utilisation}
5941 {\bf Overview:}
5942 Get the utilisation field of the given host\_cpu.
5944 \noindent {\bf Signature:}
5945 \begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
5948 \noindent{\bf Arguments:}
5951 \vspace{0.3cm}
5952 \begin{tabular}{|c|c|p{7cm}|}
5953 \hline
5954 {\bf type} & {\bf name} & {\bf description} \\ \hline
5955 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5957 \end{tabular}
5959 \vspace{0.3cm}
5961 \noindent {\bf Return Type:}
5962 {\tt
5963 float
5967 value of the field
5968 \vspace{0.3cm}
5969 \vspace{0.3cm}
5970 \vspace{0.3cm}
5971 \subsubsection{RPC name:~create}
5973 {\bf Overview:}
5974 Create a new host\_cpu instance, and return its handle.
5976 \noindent {\bf Signature:}
5977 \begin{verbatim} (host_cpu ref) create (session_id s, host_cpu record args)\end{verbatim}
5980 \noindent{\bf Arguments:}
5983 \vspace{0.3cm}
5984 \begin{tabular}{|c|c|p{7cm}|}
5985 \hline
5986 {\bf type} & {\bf name} & {\bf description} \\ \hline
5987 {\tt host\_cpu record } & args & All constructor arguments \\ \hline
5989 \end{tabular}
5991 \vspace{0.3cm}
5993 \noindent {\bf Return Type:}
5994 {\tt
5995 host\_cpu ref
5999 reference to the newly created object
6000 \vspace{0.3cm}
6001 \vspace{0.3cm}
6002 \vspace{0.3cm}
6003 \subsubsection{RPC name:~destroy}
6005 {\bf Overview:}
6006 Destroy the specified host\_cpu instance.
6008 \noindent {\bf Signature:}
6009 \begin{verbatim} void destroy (session_id s, host_cpu ref self)\end{verbatim}
6012 \noindent{\bf Arguments:}
6015 \vspace{0.3cm}
6016 \begin{tabular}{|c|c|p{7cm}|}
6017 \hline
6018 {\bf type} & {\bf name} & {\bf description} \\ \hline
6019 {\tt host\_cpu ref } & self & reference to the object \\ \hline
6021 \end{tabular}
6023 \vspace{0.3cm}
6025 \noindent {\bf Return Type:}
6026 {\tt
6027 void
6032 \vspace{0.3cm}
6033 \vspace{0.3cm}
6034 \vspace{0.3cm}
6035 \subsubsection{RPC name:~get\_by\_uuid}
6037 {\bf Overview:}
6038 Get a reference to the host\_cpu instance with the specified UUID.
6040 \noindent {\bf Signature:}
6041 \begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6044 \noindent{\bf Arguments:}
6047 \vspace{0.3cm}
6048 \begin{tabular}{|c|c|p{7cm}|}
6049 \hline
6050 {\bf type} & {\bf name} & {\bf description} \\ \hline
6051 {\tt string } & uuid & UUID of object to return \\ \hline
6053 \end{tabular}
6055 \vspace{0.3cm}
6057 \noindent {\bf Return Type:}
6058 {\tt
6059 host\_cpu ref
6063 reference to the object
6064 \vspace{0.3cm}
6065 \vspace{0.3cm}
6066 \vspace{0.3cm}
6067 \subsubsection{RPC name:~get\_record}
6069 {\bf Overview:}
6070 Get a record containing the current state of the given host\_cpu.
6072 \noindent {\bf Signature:}
6073 \begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
6076 \noindent{\bf Arguments:}
6079 \vspace{0.3cm}
6080 \begin{tabular}{|c|c|p{7cm}|}
6081 \hline
6082 {\bf type} & {\bf name} & {\bf description} \\ \hline
6083 {\tt host\_cpu ref } & self & reference to the object \\ \hline
6085 \end{tabular}
6087 \vspace{0.3cm}
6089 \noindent {\bf Return Type:}
6090 {\tt
6091 host\_cpu record
6095 all fields from the object
6096 \vspace{0.3cm}
6097 \vspace{0.3cm}
6098 \vspace{0.3cm}
6100 \vspace{1cm}
6101 \newpage
6102 \section{Class: network}
6103 \subsection{Fields for class: network}
6104 \begin{longtable}{|lllp{0.38\textwidth}|}
6105 \hline
6106 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
6107 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
6108 virtual network.}} \\
6109 \hline
6110 Quals & Field & Type & Description \\
6111 \hline
6112 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6113 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
6114 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
6115 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
6116 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
6117 $\mathit{RW}$ & {\tt default\_gateway} & string & default gateway IP address. Used for auto-configuring guests with fixed IP setting \\
6118 $\mathit{RW}$ & {\tt default\_netmask} & string & default netmask. Used for auto-configuring guests with fixed IP setting \\
6119 \hline
6120 \end{longtable}
6121 \subsection{Additional RPCs associated with class: network}
6122 \subsubsection{RPC name:~get\_all}
6124 {\bf Overview:}
6125 Return a list of all the networks known to the system
6127 \noindent {\bf Signature:}
6128 \begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
6131 \vspace{0.3cm}
6133 \noindent {\bf Return Type:}
6134 {\tt
6135 (network ref) Set
6139 A list of all the IDs of all the networks
6140 \vspace{0.3cm}
6141 \vspace{0.3cm}
6142 \vspace{0.3cm}
6143 \subsubsection{RPC name:~get\_uuid}
6145 {\bf Overview:}
6146 Get the uuid field of the given network.
6148 \noindent {\bf Signature:}
6149 \begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
6152 \noindent{\bf Arguments:}
6155 \vspace{0.3cm}
6156 \begin{tabular}{|c|c|p{7cm}|}
6157 \hline
6158 {\bf type} & {\bf name} & {\bf description} \\ \hline
6159 {\tt network ref } & self & reference to the object \\ \hline
6161 \end{tabular}
6163 \vspace{0.3cm}
6165 \noindent {\bf Return Type:}
6166 {\tt
6167 string
6171 value of the field
6172 \vspace{0.3cm}
6173 \vspace{0.3cm}
6174 \vspace{0.3cm}
6175 \subsubsection{RPC name:~get\_name\_label}
6177 {\bf Overview:}
6178 Get the name/label field of the given network.
6180 \noindent {\bf Signature:}
6181 \begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
6184 \noindent{\bf Arguments:}
6187 \vspace{0.3cm}
6188 \begin{tabular}{|c|c|p{7cm}|}
6189 \hline
6190 {\bf type} & {\bf name} & {\bf description} \\ \hline
6191 {\tt network ref } & self & reference to the object \\ \hline
6193 \end{tabular}
6195 \vspace{0.3cm}
6197 \noindent {\bf Return Type:}
6198 {\tt
6199 string
6203 value of the field
6204 \vspace{0.3cm}
6205 \vspace{0.3cm}
6206 \vspace{0.3cm}
6207 \subsubsection{RPC name:~set\_name\_label}
6209 {\bf Overview:}
6210 Set the name/label field of the given network.
6212 \noindent {\bf Signature:}
6213 \begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
6216 \noindent{\bf Arguments:}
6219 \vspace{0.3cm}
6220 \begin{tabular}{|c|c|p{7cm}|}
6221 \hline
6222 {\bf type} & {\bf name} & {\bf description} \\ \hline
6223 {\tt network ref } & self & reference to the object \\ \hline
6225 {\tt string } & value & New value to set \\ \hline
6227 \end{tabular}
6229 \vspace{0.3cm}
6231 \noindent {\bf Return Type:}
6232 {\tt
6233 void
6238 \vspace{0.3cm}
6239 \vspace{0.3cm}
6240 \vspace{0.3cm}
6241 \subsubsection{RPC name:~get\_name\_description}
6243 {\bf Overview:}
6244 Get the name/description field of the given network.
6246 \noindent {\bf Signature:}
6247 \begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
6250 \noindent{\bf Arguments:}
6253 \vspace{0.3cm}
6254 \begin{tabular}{|c|c|p{7cm}|}
6255 \hline
6256 {\bf type} & {\bf name} & {\bf description} \\ \hline
6257 {\tt network ref } & self & reference to the object \\ \hline
6259 \end{tabular}
6261 \vspace{0.3cm}
6263 \noindent {\bf Return Type:}
6264 {\tt
6265 string
6269 value of the field
6270 \vspace{0.3cm}
6271 \vspace{0.3cm}
6272 \vspace{0.3cm}
6273 \subsubsection{RPC name:~set\_name\_description}
6275 {\bf Overview:}
6276 Set the name/description field of the given network.
6278 \noindent {\bf Signature:}
6279 \begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
6282 \noindent{\bf Arguments:}
6285 \vspace{0.3cm}
6286 \begin{tabular}{|c|c|p{7cm}|}
6287 \hline
6288 {\bf type} & {\bf name} & {\bf description} \\ \hline
6289 {\tt network ref } & self & reference to the object \\ \hline
6291 {\tt string } & value & New value to set \\ \hline
6293 \end{tabular}
6295 \vspace{0.3cm}
6297 \noindent {\bf Return Type:}
6298 {\tt
6299 void
6304 \vspace{0.3cm}
6305 \vspace{0.3cm}
6306 \vspace{0.3cm}
6307 \subsubsection{RPC name:~get\_VIFs}
6309 {\bf Overview:}
6310 Get the VIFs field of the given network.
6312 \noindent {\bf Signature:}
6313 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
6316 \noindent{\bf Arguments:}
6319 \vspace{0.3cm}
6320 \begin{tabular}{|c|c|p{7cm}|}
6321 \hline
6322 {\bf type} & {\bf name} & {\bf description} \\ \hline
6323 {\tt network ref } & self & reference to the object \\ \hline
6325 \end{tabular}
6327 \vspace{0.3cm}
6329 \noindent {\bf Return Type:}
6330 {\tt
6331 (VIF ref) Set
6335 value of the field
6336 \vspace{0.3cm}
6337 \vspace{0.3cm}
6338 \vspace{0.3cm}
6339 \subsubsection{RPC name:~get\_PIFs}
6341 {\bf Overview:}
6342 Get the PIFs field of the given network.
6344 \noindent {\bf Signature:}
6345 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
6348 \noindent{\bf Arguments:}
6351 \vspace{0.3cm}
6352 \begin{tabular}{|c|c|p{7cm}|}
6353 \hline
6354 {\bf type} & {\bf name} & {\bf description} \\ \hline
6355 {\tt network ref } & self & reference to the object \\ \hline
6357 \end{tabular}
6359 \vspace{0.3cm}
6361 \noindent {\bf Return Type:}
6362 {\tt
6363 (PIF ref) Set
6367 value of the field
6368 \vspace{0.3cm}
6369 \vspace{0.3cm}
6370 \vspace{0.3cm}
6371 \subsubsection{RPC name:~get\_default\_gateway}
6373 {\bf Overview:}
6374 Get the default\_gateway field of the given network.
6376 \noindent {\bf Signature:}
6377 \begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
6380 \noindent{\bf Arguments:}
6383 \vspace{0.3cm}
6384 \begin{tabular}{|c|c|p{7cm}|}
6385 \hline
6386 {\bf type} & {\bf name} & {\bf description} \\ \hline
6387 {\tt network ref } & self & reference to the object \\ \hline
6389 \end{tabular}
6391 \vspace{0.3cm}
6393 \noindent {\bf Return Type:}
6394 {\tt
6395 string
6399 value of the field
6400 \vspace{0.3cm}
6401 \vspace{0.3cm}
6402 \vspace{0.3cm}
6403 \subsubsection{RPC name:~set\_default\_gateway}
6405 {\bf Overview:}
6406 Set the default\_gateway field of the given network.
6408 \noindent {\bf Signature:}
6409 \begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
6412 \noindent{\bf Arguments:}
6415 \vspace{0.3cm}
6416 \begin{tabular}{|c|c|p{7cm}|}
6417 \hline
6418 {\bf type} & {\bf name} & {\bf description} \\ \hline
6419 {\tt network ref } & self & reference to the object \\ \hline
6421 {\tt string } & value & New value to set \\ \hline
6423 \end{tabular}
6425 \vspace{0.3cm}
6427 \noindent {\bf Return Type:}
6428 {\tt
6429 void
6434 \vspace{0.3cm}
6435 \vspace{0.3cm}
6436 \vspace{0.3cm}
6437 \subsubsection{RPC name:~get\_default\_netmask}
6439 {\bf Overview:}
6440 Get the default\_netmask field of the given network.
6442 \noindent {\bf Signature:}
6443 \begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
6446 \noindent{\bf Arguments:}
6449 \vspace{0.3cm}
6450 \begin{tabular}{|c|c|p{7cm}|}
6451 \hline
6452 {\bf type} & {\bf name} & {\bf description} \\ \hline
6453 {\tt network ref } & self & reference to the object \\ \hline
6455 \end{tabular}
6457 \vspace{0.3cm}
6459 \noindent {\bf Return Type:}
6460 {\tt
6461 string
6465 value of the field
6466 \vspace{0.3cm}
6467 \vspace{0.3cm}
6468 \vspace{0.3cm}
6469 \subsubsection{RPC name:~set\_default\_netmask}
6471 {\bf Overview:}
6472 Set the default\_netmask field of the given network.
6474 \noindent {\bf Signature:}
6475 \begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
6478 \noindent{\bf Arguments:}
6481 \vspace{0.3cm}
6482 \begin{tabular}{|c|c|p{7cm}|}
6483 \hline
6484 {\bf type} & {\bf name} & {\bf description} \\ \hline
6485 {\tt network ref } & self & reference to the object \\ \hline
6487 {\tt string } & value & New value to set \\ \hline
6489 \end{tabular}
6491 \vspace{0.3cm}
6493 \noindent {\bf Return Type:}
6494 {\tt
6495 void
6500 \vspace{0.3cm}
6501 \vspace{0.3cm}
6502 \vspace{0.3cm}
6503 \subsubsection{RPC name:~create}
6505 {\bf Overview:}
6506 Create a new network instance, and return its handle.
6508 \noindent {\bf Signature:}
6509 \begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
6512 \noindent{\bf Arguments:}
6515 \vspace{0.3cm}
6516 \begin{tabular}{|c|c|p{7cm}|}
6517 \hline
6518 {\bf type} & {\bf name} & {\bf description} \\ \hline
6519 {\tt network record } & args & All constructor arguments \\ \hline
6521 \end{tabular}
6523 \vspace{0.3cm}
6525 \noindent {\bf Return Type:}
6526 {\tt
6527 network ref
6531 reference to the newly created object
6532 \vspace{0.3cm}
6533 \vspace{0.3cm}
6534 \vspace{0.3cm}
6535 \subsubsection{RPC name:~destroy}
6537 {\bf Overview:}
6538 Destroy the specified network instance.
6540 \noindent {\bf Signature:}
6541 \begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
6544 \noindent{\bf Arguments:}
6547 \vspace{0.3cm}
6548 \begin{tabular}{|c|c|p{7cm}|}
6549 \hline
6550 {\bf type} & {\bf name} & {\bf description} \\ \hline
6551 {\tt network ref } & self & reference to the object \\ \hline
6553 \end{tabular}
6555 \vspace{0.3cm}
6557 \noindent {\bf Return Type:}
6558 {\tt
6559 void
6564 \vspace{0.3cm}
6565 \vspace{0.3cm}
6566 \vspace{0.3cm}
6567 \subsubsection{RPC name:~get\_by\_uuid}
6569 {\bf Overview:}
6570 Get a reference to the network instance with the specified UUID.
6572 \noindent {\bf Signature:}
6573 \begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6576 \noindent{\bf Arguments:}
6579 \vspace{0.3cm}
6580 \begin{tabular}{|c|c|p{7cm}|}
6581 \hline
6582 {\bf type} & {\bf name} & {\bf description} \\ \hline
6583 {\tt string } & uuid & UUID of object to return \\ \hline
6585 \end{tabular}
6587 \vspace{0.3cm}
6589 \noindent {\bf Return Type:}
6590 {\tt
6591 network ref
6595 reference to the object
6596 \vspace{0.3cm}
6597 \vspace{0.3cm}
6598 \vspace{0.3cm}
6599 \subsubsection{RPC name:~get\_record}
6601 {\bf Overview:}
6602 Get a record containing the current state of the given network.
6604 \noindent {\bf Signature:}
6605 \begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
6608 \noindent{\bf Arguments:}
6611 \vspace{0.3cm}
6612 \begin{tabular}{|c|c|p{7cm}|}
6613 \hline
6614 {\bf type} & {\bf name} & {\bf description} \\ \hline
6615 {\tt network ref } & self & reference to the object \\ \hline
6617 \end{tabular}
6619 \vspace{0.3cm}
6621 \noindent {\bf Return Type:}
6622 {\tt
6623 network record
6627 all fields from the object
6628 \vspace{0.3cm}
6629 \vspace{0.3cm}
6630 \vspace{0.3cm}
6631 \subsubsection{RPC name:~get\_by\_name\_label}
6633 {\bf Overview:}
6634 Get all the network instances with the given label.
6636 \noindent {\bf Signature:}
6637 \begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
6640 \noindent{\bf Arguments:}
6643 \vspace{0.3cm}
6644 \begin{tabular}{|c|c|p{7cm}|}
6645 \hline
6646 {\bf type} & {\bf name} & {\bf description} \\ \hline
6647 {\tt string } & label & label of object to return \\ \hline
6649 \end{tabular}
6651 \vspace{0.3cm}
6653 \noindent {\bf Return Type:}
6654 {\tt
6655 (network ref) Set
6659 references to objects with match names
6660 \vspace{0.3cm}
6661 \vspace{0.3cm}
6662 \vspace{0.3cm}
6664 \vspace{1cm}
6665 \newpage
6666 \section{Class: VIF}
6667 \subsection{Fields for class: VIF}
6668 \begin{longtable}{|lllp{0.38\textwidth}|}
6669 \hline
6670 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
6671 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
6672 virtual network interface.}} \\
6673 \hline
6674 Quals & Field & Type & Description \\
6675 \hline
6676 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6677 $\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
6678 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
6679 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
6680 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
6681 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
6682 $\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
6683 $\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
6684 $\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\
6685 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF. \\
6686 \hline
6687 \end{longtable}
6688 \subsection{Additional RPCs associated with class: VIF}
6689 \subsubsection{RPC name:~get\_uuid}
6691 {\bf Overview:}
6692 Get the uuid field of the given VIF.
6694 \noindent {\bf Signature:}
6695 \begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
6698 \noindent{\bf Arguments:}
6701 \vspace{0.3cm}
6702 \begin{tabular}{|c|c|p{7cm}|}
6703 \hline
6704 {\bf type} & {\bf name} & {\bf description} \\ \hline
6705 {\tt VIF ref } & self & reference to the object \\ \hline
6707 \end{tabular}
6709 \vspace{0.3cm}
6711 \noindent {\bf Return Type:}
6712 {\tt
6713 string
6717 value of the field
6718 \vspace{0.3cm}
6719 \vspace{0.3cm}
6720 \vspace{0.3cm}
6721 \subsubsection{RPC name:~get\_device}
6723 {\bf Overview:}
6724 Get the device field of the given VIF.
6726 \noindent {\bf Signature:}
6727 \begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
6730 \noindent{\bf Arguments:}
6733 \vspace{0.3cm}
6734 \begin{tabular}{|c|c|p{7cm}|}
6735 \hline
6736 {\bf type} & {\bf name} & {\bf description} \\ \hline
6737 {\tt VIF ref } & self & reference to the object \\ \hline
6739 \end{tabular}
6741 \vspace{0.3cm}
6743 \noindent {\bf Return Type:}
6744 {\tt
6745 string
6749 value of the field
6750 \vspace{0.3cm}
6751 \vspace{0.3cm}
6752 \vspace{0.3cm}
6753 \subsubsection{RPC name:~set\_device}
6755 {\bf Overview:}
6756 Set the device field of the given VIF.
6758 \noindent {\bf Signature:}
6759 \begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
6762 \noindent{\bf Arguments:}
6765 \vspace{0.3cm}
6766 \begin{tabular}{|c|c|p{7cm}|}
6767 \hline
6768 {\bf type} & {\bf name} & {\bf description} \\ \hline
6769 {\tt VIF ref } & self & reference to the object \\ \hline
6771 {\tt string } & value & New value to set \\ \hline
6773 \end{tabular}
6775 \vspace{0.3cm}
6777 \noindent {\bf Return Type:}
6778 {\tt
6779 void
6784 \vspace{0.3cm}
6785 \vspace{0.3cm}
6786 \vspace{0.3cm}
6787 \subsubsection{RPC name:~get\_network}
6789 {\bf Overview:}
6790 Get the network field of the given VIF.
6792 \noindent {\bf Signature:}
6793 \begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
6796 \noindent{\bf Arguments:}
6799 \vspace{0.3cm}
6800 \begin{tabular}{|c|c|p{7cm}|}
6801 \hline
6802 {\bf type} & {\bf name} & {\bf description} \\ \hline
6803 {\tt VIF ref } & self & reference to the object \\ \hline
6805 \end{tabular}
6807 \vspace{0.3cm}
6809 \noindent {\bf Return Type:}
6810 {\tt
6811 network ref
6815 value of the field
6816 \vspace{0.3cm}
6817 \vspace{0.3cm}
6818 \vspace{0.3cm}
6819 \subsubsection{RPC name:~get\_VM}
6821 {\bf Overview:}
6822 Get the VM field of the given VIF.
6824 \noindent {\bf Signature:}
6825 \begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
6828 \noindent{\bf Arguments:}
6831 \vspace{0.3cm}
6832 \begin{tabular}{|c|c|p{7cm}|}
6833 \hline
6834 {\bf type} & {\bf name} & {\bf description} \\ \hline
6835 {\tt VIF ref } & self & reference to the object \\ \hline
6837 \end{tabular}
6839 \vspace{0.3cm}
6841 \noindent {\bf Return Type:}
6842 {\tt
6843 VM ref
6847 value of the field
6848 \vspace{0.3cm}
6849 \vspace{0.3cm}
6850 \vspace{0.3cm}
6851 \subsubsection{RPC name:~get\_MAC}
6853 {\bf Overview:}
6854 Get the MAC field of the given VIF.
6856 \noindent {\bf Signature:}
6857 \begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
6860 \noindent{\bf Arguments:}
6863 \vspace{0.3cm}
6864 \begin{tabular}{|c|c|p{7cm}|}
6865 \hline
6866 {\bf type} & {\bf name} & {\bf description} \\ \hline
6867 {\tt VIF ref } & self & reference to the object \\ \hline
6869 \end{tabular}
6871 \vspace{0.3cm}
6873 \noindent {\bf Return Type:}
6874 {\tt
6875 string
6879 value of the field
6880 \vspace{0.3cm}
6881 \vspace{0.3cm}
6882 \vspace{0.3cm}
6883 \subsubsection{RPC name:~set\_MAC}
6885 {\bf Overview:}
6886 Set the MAC field of the given VIF.
6888 \noindent {\bf Signature:}
6889 \begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
6892 \noindent{\bf Arguments:}
6895 \vspace{0.3cm}
6896 \begin{tabular}{|c|c|p{7cm}|}
6897 \hline
6898 {\bf type} & {\bf name} & {\bf description} \\ \hline
6899 {\tt VIF ref } & self & reference to the object \\ \hline
6901 {\tt string } & value & New value to set \\ \hline
6903 \end{tabular}
6905 \vspace{0.3cm}
6907 \noindent {\bf Return Type:}
6908 {\tt
6909 void
6914 \vspace{0.3cm}
6915 \vspace{0.3cm}
6916 \vspace{0.3cm}
6917 \subsubsection{RPC name:~get\_MTU}
6919 {\bf Overview:}
6920 Get the MTU field of the given VIF.
6922 \noindent {\bf Signature:}
6923 \begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
6926 \noindent{\bf Arguments:}
6929 \vspace{0.3cm}
6930 \begin{tabular}{|c|c|p{7cm}|}
6931 \hline
6932 {\bf type} & {\bf name} & {\bf description} \\ \hline
6933 {\tt VIF ref } & self & reference to the object \\ \hline
6935 \end{tabular}
6937 \vspace{0.3cm}
6939 \noindent {\bf Return Type:}
6940 {\tt
6941 int
6945 value of the field
6946 \vspace{0.3cm}
6947 \vspace{0.3cm}
6948 \vspace{0.3cm}
6949 \subsubsection{RPC name:~set\_MTU}
6951 {\bf Overview:}
6952 Set the MTU field of the given VIF.
6954 \noindent {\bf Signature:}
6955 \begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
6958 \noindent{\bf Arguments:}
6961 \vspace{0.3cm}
6962 \begin{tabular}{|c|c|p{7cm}|}
6963 \hline
6964 {\bf type} & {\bf name} & {\bf description} \\ \hline
6965 {\tt VIF ref } & self & reference to the object \\ \hline
6967 {\tt int } & value & New value to set \\ \hline
6969 \end{tabular}
6971 \vspace{0.3cm}
6973 \noindent {\bf Return Type:}
6974 {\tt
6975 void
6980 \vspace{0.3cm}
6981 \vspace{0.3cm}
6982 \vspace{0.3cm}
6983 \subsubsection{RPC name:~get\_qos\_algorithm\_type}
6985 {\bf Overview:}
6986 Get the qos/algorithm\_type field of the given VIF.
6988 \noindent {\bf Signature:}
6989 \begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim}
6992 \noindent{\bf Arguments:}
6995 \vspace{0.3cm}
6996 \begin{tabular}{|c|c|p{7cm}|}
6997 \hline
6998 {\bf type} & {\bf name} & {\bf description} \\ \hline
6999 {\tt VIF ref } & self & reference to the object \\ \hline
7001 \end{tabular}
7003 \vspace{0.3cm}
7005 \noindent {\bf Return Type:}
7006 {\tt
7007 string
7011 value of the field
7012 \vspace{0.3cm}
7013 \vspace{0.3cm}
7014 \vspace{0.3cm}
7015 \subsubsection{RPC name:~set\_qos\_algorithm\_type}
7017 {\bf Overview:}
7018 Set the qos/algorithm\_type field of the given VIF.
7020 \noindent {\bf Signature:}
7021 \begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim}
7024 \noindent{\bf Arguments:}
7027 \vspace{0.3cm}
7028 \begin{tabular}{|c|c|p{7cm}|}
7029 \hline
7030 {\bf type} & {\bf name} & {\bf description} \\ \hline
7031 {\tt VIF ref } & self & reference to the object \\ \hline
7033 {\tt string } & value & New value to set \\ \hline
7035 \end{tabular}
7037 \vspace{0.3cm}
7039 \noindent {\bf Return Type:}
7040 {\tt
7041 void
7046 \vspace{0.3cm}
7047 \vspace{0.3cm}
7048 \vspace{0.3cm}
7049 \subsubsection{RPC name:~get\_qos\_algorithm\_params}
7051 {\bf Overview:}
7052 Get the qos/algorithm\_params field of the given VIF.
7054 \noindent {\bf Signature:}
7055 \begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim}
7058 \noindent{\bf Arguments:}
7061 \vspace{0.3cm}
7062 \begin{tabular}{|c|c|p{7cm}|}
7063 \hline
7064 {\bf type} & {\bf name} & {\bf description} \\ \hline
7065 {\tt VIF ref } & self & reference to the object \\ \hline
7067 \end{tabular}
7069 \vspace{0.3cm}
7071 \noindent {\bf Return Type:}
7072 {\tt
7073 (string $\rightarrow$ string) Map
7077 value of the field
7078 \vspace{0.3cm}
7079 \vspace{0.3cm}
7080 \vspace{0.3cm}
7081 \subsubsection{RPC name:~set\_qos\_algorithm\_params}
7083 {\bf Overview:}
7084 Set the qos/algorithm\_params field of the given VIF.
7086 \noindent {\bf Signature:}
7087 \begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim}
7090 \noindent{\bf Arguments:}
7093 \vspace{0.3cm}
7094 \begin{tabular}{|c|c|p{7cm}|}
7095 \hline
7096 {\bf type} & {\bf name} & {\bf description} \\ \hline
7097 {\tt VIF ref } & self & reference to the object \\ \hline
7099 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
7101 \end{tabular}
7103 \vspace{0.3cm}
7105 \noindent {\bf Return Type:}
7106 {\tt
7107 void
7112 \vspace{0.3cm}
7113 \vspace{0.3cm}
7114 \vspace{0.3cm}
7115 \subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
7117 {\bf Overview:}
7118 Add the given key-value pair to the qos/algorithm\_params field of the
7119 given VIF.
7121 \noindent {\bf Signature:}
7122 \begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim}
7125 \noindent{\bf Arguments:}
7128 \vspace{0.3cm}
7129 \begin{tabular}{|c|c|p{7cm}|}
7130 \hline
7131 {\bf type} & {\bf name} & {\bf description} \\ \hline
7132 {\tt VIF ref } & self & reference to the object \\ \hline
7134 {\tt string } & key & Key to add \\ \hline
7136 {\tt string } & value & Value to add \\ \hline
7138 \end{tabular}
7140 \vspace{0.3cm}
7142 \noindent {\bf Return Type:}
7143 {\tt
7144 void
7149 \vspace{0.3cm}
7150 \vspace{0.3cm}
7151 \vspace{0.3cm}
7152 \subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
7154 {\bf Overview:}
7155 Remove the given key and its corresponding value from the
7156 qos/algorithm\_params field of the given VIF. If the key is not in that
7157 Map, then do nothing.
7159 \noindent {\bf Signature:}
7160 \begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim}
7163 \noindent{\bf Arguments:}
7166 \vspace{0.3cm}
7167 \begin{tabular}{|c|c|p{7cm}|}
7168 \hline
7169 {\bf type} & {\bf name} & {\bf description} \\ \hline
7170 {\tt VIF ref } & self & reference to the object \\ \hline
7172 {\tt string } & key & Key to remove \\ \hline
7174 \end{tabular}
7176 \vspace{0.3cm}
7178 \noindent {\bf Return Type:}
7179 {\tt
7180 void
7185 \vspace{0.3cm}
7186 \vspace{0.3cm}
7187 \vspace{0.3cm}
7188 \subsubsection{RPC name:~get\_qos\_supported\_algorithms}
7190 {\bf Overview:}
7191 Get the qos/supported\_algorithms field of the given VIF.
7193 \noindent {\bf Signature:}
7194 \begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim}
7197 \noindent{\bf Arguments:}
7200 \vspace{0.3cm}
7201 \begin{tabular}{|c|c|p{7cm}|}
7202 \hline
7203 {\bf type} & {\bf name} & {\bf description} \\ \hline
7204 {\tt VIF ref } & self & reference to the object \\ \hline
7206 \end{tabular}
7208 \vspace{0.3cm}
7210 \noindent {\bf Return Type:}
7211 {\tt
7212 string Set
7216 value of the field
7217 \vspace{0.3cm}
7218 \vspace{0.3cm}
7219 \vspace{0.3cm}
7220 \subsubsection{RPC name:~get\_metrics}
7222 {\bf Overview:}
7223 Get the metrics field of the given VIF.
7225 \noindent {\bf Signature:}
7226 \begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim}
7229 \noindent{\bf Arguments:}
7232 \vspace{0.3cm}
7233 \begin{tabular}{|c|c|p{7cm}|}
7234 \hline
7235 {\bf type} & {\bf name} & {\bf description} \\ \hline
7236 {\tt VIF ref } & self & reference to the object \\ \hline
7238 \end{tabular}
7240 \vspace{0.3cm}
7242 \noindent {\bf Return Type:}
7243 {\tt
7244 VIF\_metrics ref
7248 value of the field
7249 \vspace{0.3cm}
7250 \vspace{0.3cm}
7251 \vspace{0.3cm}
7252 \subsubsection{RPC name:~create}
7254 {\bf Overview:}
7255 Create a new VIF instance, and return its handle.
7257 \noindent {\bf Signature:}
7258 \begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
7261 \noindent{\bf Arguments:}
7264 \vspace{0.3cm}
7265 \begin{tabular}{|c|c|p{7cm}|}
7266 \hline
7267 {\bf type} & {\bf name} & {\bf description} \\ \hline
7268 {\tt VIF record } & args & All constructor arguments \\ \hline
7270 \end{tabular}
7272 \vspace{0.3cm}
7274 \noindent {\bf Return Type:}
7275 {\tt
7276 VIF ref
7280 reference to the newly created object
7281 \vspace{0.3cm}
7282 \vspace{0.3cm}
7283 \vspace{0.3cm}
7284 \subsubsection{RPC name:~destroy}
7286 {\bf Overview:}
7287 Destroy the specified VIF instance.
7289 \noindent {\bf Signature:}
7290 \begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
7293 \noindent{\bf Arguments:}
7296 \vspace{0.3cm}
7297 \begin{tabular}{|c|c|p{7cm}|}
7298 \hline
7299 {\bf type} & {\bf name} & {\bf description} \\ \hline
7300 {\tt VIF ref } & self & reference to the object \\ \hline
7302 \end{tabular}
7304 \vspace{0.3cm}
7306 \noindent {\bf Return Type:}
7307 {\tt
7308 void
7313 \vspace{0.3cm}
7314 \vspace{0.3cm}
7315 \vspace{0.3cm}
7316 \subsubsection{RPC name:~get\_by\_uuid}
7318 {\bf Overview:}
7319 Get a reference to the VIF instance with the specified UUID.
7321 \noindent {\bf Signature:}
7322 \begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7325 \noindent{\bf Arguments:}
7328 \vspace{0.3cm}
7329 \begin{tabular}{|c|c|p{7cm}|}
7330 \hline
7331 {\bf type} & {\bf name} & {\bf description} \\ \hline
7332 {\tt string } & uuid & UUID of object to return \\ \hline
7334 \end{tabular}
7336 \vspace{0.3cm}
7338 \noindent {\bf Return Type:}
7339 {\tt
7340 VIF ref
7344 reference to the object
7345 \vspace{0.3cm}
7346 \vspace{0.3cm}
7347 \vspace{0.3cm}
7348 \subsubsection{RPC name:~get\_record}
7350 {\bf Overview:}
7351 Get a record containing the current state of the given VIF.
7353 \noindent {\bf Signature:}
7354 \begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
7357 \noindent{\bf Arguments:}
7360 \vspace{0.3cm}
7361 \begin{tabular}{|c|c|p{7cm}|}
7362 \hline
7363 {\bf type} & {\bf name} & {\bf description} \\ \hline
7364 {\tt VIF ref } & self & reference to the object \\ \hline
7366 \end{tabular}
7368 \vspace{0.3cm}
7370 \noindent {\bf Return Type:}
7371 {\tt
7372 VIF record
7376 all fields from the object
7377 \vspace{0.3cm}
7378 \vspace{0.3cm}
7379 \vspace{0.3cm}
7381 \vspace{1cm}
7382 \newpage
7383 \section{Class: VIF\_metrics}
7384 \subsection{Fields for class: VIF\_metrics}
7385 \begin{longtable}{|lllp{0.38\textwidth}|}
7386 \hline
7387 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\
7388 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
7389 The metrics associated with a virtual network device.}} \\
7390 \hline
7391 Quals & Field & Type & Description \\
7392 \hline
7393 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7394 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
7395 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
7396 \hline
7397 \end{longtable}
7398 \subsection{Additional RPCs associated with class: VIF\_metrics}
7399 \subsubsection{RPC name:~get\_uuid}
7401 {\bf Overview:}
7402 Get the uuid field of the given VIF\_metrics.
7404 \noindent {\bf Signature:}
7405 \begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim}
7408 \noindent{\bf Arguments:}
7411 \vspace{0.3cm}
7412 \begin{tabular}{|c|c|p{7cm}|}
7413 \hline
7414 {\bf type} & {\bf name} & {\bf description} \\ \hline
7415 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
7417 \end{tabular}
7419 \vspace{0.3cm}
7421 \noindent {\bf Return Type:}
7422 {\tt
7423 string
7427 value of the field
7428 \vspace{0.3cm}
7429 \vspace{0.3cm}
7430 \vspace{0.3cm}
7431 \subsubsection{RPC name:~get\_io\_read\_kbs}
7433 {\bf Overview:}
7434 Get the io/read\_kbs field of the given VIF\_metrics.
7436 \noindent {\bf Signature:}
7437 \begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
7440 \noindent{\bf Arguments:}
7443 \vspace{0.3cm}
7444 \begin{tabular}{|c|c|p{7cm}|}
7445 \hline
7446 {\bf type} & {\bf name} & {\bf description} \\ \hline
7447 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
7449 \end{tabular}
7451 \vspace{0.3cm}
7453 \noindent {\bf Return Type:}
7454 {\tt
7455 float
7459 value of the field
7460 \vspace{0.3cm}
7461 \vspace{0.3cm}
7462 \vspace{0.3cm}
7463 \subsubsection{RPC name:~get\_io\_write\_kbs}
7465 {\bf Overview:}
7466 Get the io/write\_kbs field of the given VIF\_metrics.
7468 \noindent {\bf Signature:}
7469 \begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
7472 \noindent{\bf Arguments:}
7475 \vspace{0.3cm}
7476 \begin{tabular}{|c|c|p{7cm}|}
7477 \hline
7478 {\bf type} & {\bf name} & {\bf description} \\ \hline
7479 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
7481 \end{tabular}
7483 \vspace{0.3cm}
7485 \noindent {\bf Return Type:}
7486 {\tt
7487 float
7491 value of the field
7492 \vspace{0.3cm}
7493 \vspace{0.3cm}
7494 \vspace{0.3cm}
7495 \subsubsection{RPC name:~get\_by\_uuid}
7497 {\bf Overview:}
7498 Get a reference to the VIF\_metrics instance with the specified UUID.
7500 \noindent {\bf Signature:}
7501 \begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7504 \noindent{\bf Arguments:}
7507 \vspace{0.3cm}
7508 \begin{tabular}{|c|c|p{7cm}|}
7509 \hline
7510 {\bf type} & {\bf name} & {\bf description} \\ \hline
7511 {\tt string } & uuid & UUID of object to return \\ \hline
7513 \end{tabular}
7515 \vspace{0.3cm}
7517 \noindent {\bf Return Type:}
7518 {\tt
7519 VIF\_metrics ref
7523 reference to the object
7524 \vspace{0.3cm}
7525 \vspace{0.3cm}
7526 \vspace{0.3cm}
7527 \subsubsection{RPC name:~get\_record}
7529 {\bf Overview:}
7530 Get a record containing the current state of the given VIF\_metrics.
7532 \noindent {\bf Signature:}
7533 \begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim}
7536 \noindent{\bf Arguments:}
7539 \vspace{0.3cm}
7540 \begin{tabular}{|c|c|p{7cm}|}
7541 \hline
7542 {\bf type} & {\bf name} & {\bf description} \\ \hline
7543 {\tt VIF\_metrics ref } & self & reference to the object \\ \hline
7545 \end{tabular}
7547 \vspace{0.3cm}
7549 \noindent {\bf Return Type:}
7550 {\tt
7551 VIF\_metrics record
7555 all fields from the object
7556 \vspace{0.3cm}
7557 \vspace{0.3cm}
7558 \vspace{0.3cm}
7560 \vspace{1cm}
7561 \newpage
7562 \section{Class: PIF}
7563 \subsection{Fields for class: PIF}
7564 \begin{longtable}{|lllp{0.38\textwidth}|}
7565 \hline
7566 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
7567 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
7568 physical network interface (note separate VLANs are represented as several
7569 PIFs).}} \\
7570 \hline
7571 Quals & Field & Type & Description \\
7572 \hline
7573 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7574 $\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
7575 $\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
7576 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
7577 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
7578 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
7579 $\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
7580 $\mathit{RO}_\mathit{ins}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF. \\
7581 \hline
7582 \end{longtable}
7583 \subsection{Additional RPCs associated with class: PIF}
7584 \subsubsection{RPC name:~create\_VLAN}
7586 {\bf Overview:}
7587 Create a VLAN interface from an existing physical interface.
7589 \noindent {\bf Signature:}
7590 \begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
7593 \noindent{\bf Arguments:}
7596 \vspace{0.3cm}
7597 \begin{tabular}{|c|c|p{7cm}|}
7598 \hline
7599 {\bf type} & {\bf name} & {\bf description} \\ \hline
7600 {\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
7602 {\tt network ref } & network & network to which this interface should be connected \\ \hline
7604 {\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
7606 {\tt int } & VLAN & VLAN tag for the new interface \\ \hline
7608 \end{tabular}
7610 \vspace{0.3cm}
7612 \noindent {\bf Return Type:}
7613 {\tt
7614 PIF ref
7618 The reference of the created PIF object
7619 \vspace{0.3cm}
7621 \noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
7623 \vspace{0.6cm}
7624 \subsubsection{RPC name:~destroy}
7626 {\bf Overview:}
7627 Destroy the interface (provided it is a synthetic interface like a VLAN;
7628 fail if it is a physical interface).
7630 \noindent {\bf Signature:}
7631 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
7634 \noindent{\bf Arguments:}
7637 \vspace{0.3cm}
7638 \begin{tabular}{|c|c|p{7cm}|}
7639 \hline
7640 {\bf type} & {\bf name} & {\bf description} \\ \hline
7641 {\tt PIF ref } & self & the PIF object to destroy \\ \hline
7643 \end{tabular}
7645 \vspace{0.3cm}
7647 \noindent {\bf Return Type:}
7648 {\tt
7649 void
7654 \vspace{0.3cm}
7656 \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
7658 \vspace{0.6cm}
7659 \subsubsection{RPC name:~get\_uuid}
7661 {\bf Overview:}
7662 Get the uuid field of the given PIF.
7664 \noindent {\bf Signature:}
7665 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
7668 \noindent{\bf Arguments:}
7671 \vspace{0.3cm}
7672 \begin{tabular}{|c|c|p{7cm}|}
7673 \hline
7674 {\bf type} & {\bf name} & {\bf description} \\ \hline
7675 {\tt PIF ref } & self & reference to the object \\ \hline
7677 \end{tabular}
7679 \vspace{0.3cm}
7681 \noindent {\bf Return Type:}
7682 {\tt
7683 string
7687 value of the field
7688 \vspace{0.3cm}
7689 \vspace{0.3cm}
7690 \vspace{0.3cm}
7691 \subsubsection{RPC name:~get\_device}
7693 {\bf Overview:}
7694 Get the device field of the given PIF.
7696 \noindent {\bf Signature:}
7697 \begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
7700 \noindent{\bf Arguments:}
7703 \vspace{0.3cm}
7704 \begin{tabular}{|c|c|p{7cm}|}
7705 \hline
7706 {\bf type} & {\bf name} & {\bf description} \\ \hline
7707 {\tt PIF ref } & self & reference to the object \\ \hline
7709 \end{tabular}
7711 \vspace{0.3cm}
7713 \noindent {\bf Return Type:}
7714 {\tt
7715 string
7719 value of the field
7720 \vspace{0.3cm}
7721 \vspace{0.3cm}
7722 \vspace{0.3cm}
7723 \subsubsection{RPC name:~set\_device}
7725 {\bf Overview:}
7726 Set the device field of the given PIF.
7728 \noindent {\bf Signature:}
7729 \begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
7732 \noindent{\bf Arguments:}
7735 \vspace{0.3cm}
7736 \begin{tabular}{|c|c|p{7cm}|}
7737 \hline
7738 {\bf type} & {\bf name} & {\bf description} \\ \hline
7739 {\tt PIF ref } & self & reference to the object \\ \hline
7741 {\tt string } & value & New value to set \\ \hline
7743 \end{tabular}
7745 \vspace{0.3cm}
7747 \noindent {\bf Return Type:}
7748 {\tt
7749 void
7754 \vspace{0.3cm}
7755 \vspace{0.3cm}
7756 \vspace{0.3cm}
7757 \subsubsection{RPC name:~get\_network}
7759 {\bf Overview:}
7760 Get the network field of the given PIF.
7762 \noindent {\bf Signature:}
7763 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
7766 \noindent{\bf Arguments:}
7769 \vspace{0.3cm}
7770 \begin{tabular}{|c|c|p{7cm}|}
7771 \hline
7772 {\bf type} & {\bf name} & {\bf description} \\ \hline
7773 {\tt PIF ref } & self & reference to the object \\ \hline
7775 \end{tabular}
7777 \vspace{0.3cm}
7779 \noindent {\bf Return Type:}
7780 {\tt
7781 network ref
7785 value of the field
7786 \vspace{0.3cm}
7787 \vspace{0.3cm}
7788 \vspace{0.3cm}
7789 \subsubsection{RPC name:~get\_host}
7791 {\bf Overview:}
7792 Get the host field of the given PIF.
7794 \noindent {\bf Signature:}
7795 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
7798 \noindent{\bf Arguments:}
7801 \vspace{0.3cm}
7802 \begin{tabular}{|c|c|p{7cm}|}
7803 \hline
7804 {\bf type} & {\bf name} & {\bf description} \\ \hline
7805 {\tt PIF ref } & self & reference to the object \\ \hline
7807 \end{tabular}
7809 \vspace{0.3cm}
7811 \noindent {\bf Return Type:}
7812 {\tt
7813 host ref
7817 value of the field
7818 \vspace{0.3cm}
7819 \vspace{0.3cm}
7820 \vspace{0.3cm}
7821 \subsubsection{RPC name:~get\_MAC}
7823 {\bf Overview:}
7824 Get the MAC field of the given PIF.
7826 \noindent {\bf Signature:}
7827 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
7830 \noindent{\bf Arguments:}
7833 \vspace{0.3cm}
7834 \begin{tabular}{|c|c|p{7cm}|}
7835 \hline
7836 {\bf type} & {\bf name} & {\bf description} \\ \hline
7837 {\tt PIF ref } & self & reference to the object \\ \hline
7839 \end{tabular}
7841 \vspace{0.3cm}
7843 \noindent {\bf Return Type:}
7844 {\tt
7845 string
7849 value of the field
7850 \vspace{0.3cm}
7851 \vspace{0.3cm}
7852 \vspace{0.3cm}
7853 \subsubsection{RPC name:~set\_MAC}
7855 {\bf Overview:}
7856 Set the MAC field of the given PIF.
7858 \noindent {\bf Signature:}
7859 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
7862 \noindent{\bf Arguments:}
7865 \vspace{0.3cm}
7866 \begin{tabular}{|c|c|p{7cm}|}
7867 \hline
7868 {\bf type} & {\bf name} & {\bf description} \\ \hline
7869 {\tt PIF ref } & self & reference to the object \\ \hline
7871 {\tt string } & value & New value to set \\ \hline
7873 \end{tabular}
7875 \vspace{0.3cm}
7877 \noindent {\bf Return Type:}
7878 {\tt
7879 void
7884 \vspace{0.3cm}
7885 \vspace{0.3cm}
7886 \vspace{0.3cm}
7887 \subsubsection{RPC name:~get\_MTU}
7889 {\bf Overview:}
7890 Get the MTU field of the given PIF.
7892 \noindent {\bf Signature:}
7893 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
7896 \noindent{\bf Arguments:}
7899 \vspace{0.3cm}
7900 \begin{tabular}{|c|c|p{7cm}|}
7901 \hline
7902 {\bf type} & {\bf name} & {\bf description} \\ \hline
7903 {\tt PIF ref } & self & reference to the object \\ \hline
7905 \end{tabular}
7907 \vspace{0.3cm}
7909 \noindent {\bf Return Type:}
7910 {\tt
7911 int
7915 value of the field
7916 \vspace{0.3cm}
7917 \vspace{0.3cm}
7918 \vspace{0.3cm}
7919 \subsubsection{RPC name:~set\_MTU}
7921 {\bf Overview:}
7922 Set the MTU field of the given PIF.
7924 \noindent {\bf Signature:}
7925 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
7928 \noindent{\bf Arguments:}
7931 \vspace{0.3cm}
7932 \begin{tabular}{|c|c|p{7cm}|}
7933 \hline
7934 {\bf type} & {\bf name} & {\bf description} \\ \hline
7935 {\tt PIF ref } & self & reference to the object \\ \hline
7937 {\tt int } & value & New value to set \\ \hline
7939 \end{tabular}
7941 \vspace{0.3cm}
7943 \noindent {\bf Return Type:}
7944 {\tt
7945 void
7950 \vspace{0.3cm}
7951 \vspace{0.3cm}
7952 \vspace{0.3cm}
7953 \subsubsection{RPC name:~get\_VLAN}
7955 {\bf Overview:}
7956 Get the VLAN field of the given PIF.
7958 \noindent {\bf Signature:}
7959 \begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
7962 \noindent{\bf Arguments:}
7965 \vspace{0.3cm}
7966 \begin{tabular}{|c|c|p{7cm}|}
7967 \hline
7968 {\bf type} & {\bf name} & {\bf description} \\ \hline
7969 {\tt PIF ref } & self & reference to the object \\ \hline
7971 \end{tabular}
7973 \vspace{0.3cm}
7975 \noindent {\bf Return Type:}
7976 {\tt
7977 int
7981 value of the field
7982 \vspace{0.3cm}
7983 \vspace{0.3cm}
7984 \vspace{0.3cm}
7985 \subsubsection{RPC name:~set\_VLAN}
7987 {\bf Overview:}
7988 Set the VLAN field of the given PIF.
7990 \noindent {\bf Signature:}
7991 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
7994 \noindent{\bf Arguments:}
7997 \vspace{0.3cm}
7998 \begin{tabular}{|c|c|p{7cm}|}
7999 \hline
8000 {\bf type} & {\bf name} & {\bf description} \\ \hline
8001 {\tt PIF ref } & self & reference to the object \\ \hline
8003 {\tt int } & value & New value to set \\ \hline
8005 \end{tabular}
8007 \vspace{0.3cm}
8009 \noindent {\bf Return Type:}
8010 {\tt
8011 void
8016 \vspace{0.3cm}
8017 \vspace{0.3cm}
8018 \vspace{0.3cm}
8019 \subsubsection{RPC name:~get\_metrics}
8021 {\bf Overview:}
8022 Get the metrics field of the given PIF.
8024 \noindent {\bf Signature:}
8025 \begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
8028 \noindent{\bf Arguments:}
8031 \vspace{0.3cm}
8032 \begin{tabular}{|c|c|p{7cm}|}
8033 \hline
8034 {\bf type} & {\bf name} & {\bf description} \\ \hline
8035 {\tt PIF ref } & self & reference to the object \\ \hline
8037 \end{tabular}
8039 \vspace{0.3cm}
8041 \noindent {\bf Return Type:}
8042 {\tt
8043 PIF\_metrics ref
8047 value of the field
8048 \vspace{0.3cm}
8049 \vspace{0.3cm}
8050 \vspace{0.3cm}
8051 \subsubsection{RPC name:~get\_by\_uuid}
8053 {\bf Overview:}
8054 Get a reference to the PIF instance with the specified UUID.
8056 \noindent {\bf Signature:}
8057 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8060 \noindent{\bf Arguments:}
8063 \vspace{0.3cm}
8064 \begin{tabular}{|c|c|p{7cm}|}
8065 \hline
8066 {\bf type} & {\bf name} & {\bf description} \\ \hline
8067 {\tt string } & uuid & UUID of object to return \\ \hline
8069 \end{tabular}
8071 \vspace{0.3cm}
8073 \noindent {\bf Return Type:}
8074 {\tt
8075 PIF ref
8079 reference to the object
8080 \vspace{0.3cm}
8081 \vspace{0.3cm}
8082 \vspace{0.3cm}
8083 \subsubsection{RPC name:~get\_record}
8085 {\bf Overview:}
8086 Get a record containing the current state of the given PIF.
8088 \noindent {\bf Signature:}
8089 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
8092 \noindent{\bf Arguments:}
8095 \vspace{0.3cm}
8096 \begin{tabular}{|c|c|p{7cm}|}
8097 \hline
8098 {\bf type} & {\bf name} & {\bf description} \\ \hline
8099 {\tt PIF ref } & self & reference to the object \\ \hline
8101 \end{tabular}
8103 \vspace{0.3cm}
8105 \noindent {\bf Return Type:}
8106 {\tt
8107 PIF record
8111 all fields from the object
8112 \vspace{0.3cm}
8113 \vspace{0.3cm}
8114 \vspace{0.3cm}
8116 \vspace{1cm}
8117 \newpage
8118 \section{Class: PIF\_metrics}
8119 \subsection{Fields for class: PIF\_metrics}
8120 \begin{longtable}{|lllp{0.38\textwidth}|}
8121 \hline
8122 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
8123 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
8124 The metrics associated with a physical network interface.}} \\
8125 \hline
8126 Quals & Field & Type & Description \\
8127 \hline
8128 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8129 $\mathit{RO}_\mathit{ins}$ & {\tt PIF} & PIF ref & PIF to which these metrics apply \\
8130 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
8131 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
8132 \hline
8133 \end{longtable}
8134 \subsection{Additional RPCs associated with class: PIF\_metrics}
8135 \subsubsection{RPC name:~get\_uuid}
8137 {\bf Overview:}
8138 Get the uuid field of the given PIF\_metrics.
8140 \noindent {\bf Signature:}
8141 \begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
8144 \noindent{\bf Arguments:}
8147 \vspace{0.3cm}
8148 \begin{tabular}{|c|c|p{7cm}|}
8149 \hline
8150 {\bf type} & {\bf name} & {\bf description} \\ \hline
8151 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
8153 \end{tabular}
8155 \vspace{0.3cm}
8157 \noindent {\bf Return Type:}
8158 {\tt
8159 string
8163 value of the field
8164 \vspace{0.3cm}
8165 \vspace{0.3cm}
8166 \vspace{0.3cm}
8167 \subsubsection{RPC name:~get\_PIF}
8169 {\bf Overview:}
8170 Get the PIF field of the given PIF\_metrics.
8172 \noindent {\bf Signature:}
8173 \begin{verbatim} (PIF ref) get_PIF (session_id s, PIF_metrics ref self)\end{verbatim}
8176 \noindent{\bf Arguments:}
8179 \vspace{0.3cm}
8180 \begin{tabular}{|c|c|p{7cm}|}
8181 \hline
8182 {\bf type} & {\bf name} & {\bf description} \\ \hline
8183 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
8185 \end{tabular}
8187 \vspace{0.3cm}
8189 \noindent {\bf Return Type:}
8190 {\tt
8191 PIF ref
8195 value of the field
8196 \vspace{0.3cm}
8197 \vspace{0.3cm}
8198 \vspace{0.3cm}
8199 \subsubsection{RPC name:~get\_io\_read\_kbs}
8201 {\bf Overview:}
8202 Get the io/read\_kbs field of the given PIF\_metrics.
8204 \noindent {\bf Signature:}
8205 \begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
8208 \noindent{\bf Arguments:}
8211 \vspace{0.3cm}
8212 \begin{tabular}{|c|c|p{7cm}|}
8213 \hline
8214 {\bf type} & {\bf name} & {\bf description} \\ \hline
8215 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
8217 \end{tabular}
8219 \vspace{0.3cm}
8221 \noindent {\bf Return Type:}
8222 {\tt
8223 float
8227 value of the field
8228 \vspace{0.3cm}
8229 \vspace{0.3cm}
8230 \vspace{0.3cm}
8231 \subsubsection{RPC name:~get\_io\_write\_kbs}
8233 {\bf Overview:}
8234 Get the io/write\_kbs field of the given PIF\_metrics.
8236 \noindent {\bf Signature:}
8237 \begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
8240 \noindent{\bf Arguments:}
8243 \vspace{0.3cm}
8244 \begin{tabular}{|c|c|p{7cm}|}
8245 \hline
8246 {\bf type} & {\bf name} & {\bf description} \\ \hline
8247 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
8249 \end{tabular}
8251 \vspace{0.3cm}
8253 \noindent {\bf Return Type:}
8254 {\tt
8255 float
8259 value of the field
8260 \vspace{0.3cm}
8261 \vspace{0.3cm}
8262 \vspace{0.3cm}
8263 \subsubsection{RPC name:~get\_by\_uuid}
8265 {\bf Overview:}
8266 Get a reference to the PIF\_metrics instance with the specified UUID.
8268 \noindent {\bf Signature:}
8269 \begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8272 \noindent{\bf Arguments:}
8275 \vspace{0.3cm}
8276 \begin{tabular}{|c|c|p{7cm}|}
8277 \hline
8278 {\bf type} & {\bf name} & {\bf description} \\ \hline
8279 {\tt string } & uuid & UUID of object to return \\ \hline
8281 \end{tabular}
8283 \vspace{0.3cm}
8285 \noindent {\bf Return Type:}
8286 {\tt
8287 PIF\_metrics ref
8291 reference to the object
8292 \vspace{0.3cm}
8293 \vspace{0.3cm}
8294 \vspace{0.3cm}
8295 \subsubsection{RPC name:~get\_record}
8297 {\bf Overview:}
8298 Get a record containing the current state of the given PIF\_metrics.
8300 \noindent {\bf Signature:}
8301 \begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
8304 \noindent{\bf Arguments:}
8307 \vspace{0.3cm}
8308 \begin{tabular}{|c|c|p{7cm}|}
8309 \hline
8310 {\bf type} & {\bf name} & {\bf description} \\ \hline
8311 {\tt PIF\_metrics ref } & self & reference to the object \\ \hline
8313 \end{tabular}
8315 \vspace{0.3cm}
8317 \noindent {\bf Return Type:}
8318 {\tt
8319 PIF\_metrics record
8323 all fields from the object
8324 \vspace{0.3cm}
8325 \vspace{0.3cm}
8326 \vspace{0.3cm}
8328 \vspace{1cm}
8329 \newpage
8330 \section{Class: SR}
8331 \subsection{Fields for class: SR}
8332 \begin{longtable}{|lllp{0.38\textwidth}|}
8333 \hline
8334 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
8335 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8336 storage repository.}} \\
8337 \hline
8338 Quals & Field & Type & Description \\
8339 \hline
8340 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8341 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
8342 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
8343 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
8344 $\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
8345 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
8346 $\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 \\
8347 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
8348 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
8349 $\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 \\
8350 \hline
8351 \end{longtable}
8352 \subsection{Additional RPCs associated with class: SR}
8353 \subsubsection{RPC name:~clone}
8355 {\bf Overview:}
8356 Take an exact copy of the Storage Repository;
8357 the cloned storage repository has the same type as its parent
8359 \noindent {\bf Signature:}
8360 \begin{verbatim} (SR ref) clone (session_id s, SR ref sr, string loc, string name)\end{verbatim}
8363 \noindent{\bf Arguments:}
8366 \vspace{0.3cm}
8367 \begin{tabular}{|c|c|p{7cm}|}
8368 \hline
8369 {\bf type} & {\bf name} & {\bf description} \\ \hline
8370 {\tt SR ref } & sr & The Storage Repository to clone \\ \hline
8372 {\tt string } & loc & The location string that defines where the new storage repository will be located \\ \hline
8374 {\tt string } & name & The name of the new storage repository \\ \hline
8376 \end{tabular}
8378 \vspace{0.3cm}
8380 \noindent {\bf Return Type:}
8381 {\tt
8382 SR ref
8386 The ID of the newly created Storage Repository.
8387 \vspace{0.3cm}
8388 \vspace{0.3cm}
8389 \vspace{0.3cm}
8390 \subsubsection{RPC name:~get\_all}
8392 {\bf Overview:}
8393 Return a list of all the Storage Repositories known to the system
8395 \noindent {\bf Signature:}
8396 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
8399 \vspace{0.3cm}
8401 \noindent {\bf Return Type:}
8402 {\tt
8403 (SR ref) Set
8407 A list of all the IDs of all the Storage Repositories
8408 \vspace{0.3cm}
8409 \vspace{0.3cm}
8410 \vspace{0.3cm}
8411 \subsubsection{RPC name:~get\_uuid}
8413 {\bf Overview:}
8414 Get the uuid field of the given SR.
8416 \noindent {\bf Signature:}
8417 \begin{verbatim} string get_uuid (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:~get\_name\_label}
8445 {\bf Overview:}
8446 Get the name/label field of the given SR.
8448 \noindent {\bf Signature:}
8449 \begin{verbatim} string get_name_label (session_id s, SR ref self)\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 ref } & self & reference to the object \\ \hline
8461 \end{tabular}
8463 \vspace{0.3cm}
8465 \noindent {\bf Return Type:}
8466 {\tt
8467 string
8471 value of the field
8472 \vspace{0.3cm}
8473 \vspace{0.3cm}
8474 \vspace{0.3cm}
8475 \subsubsection{RPC name:~set\_name\_label}
8477 {\bf Overview:}
8478 Set the name/label field of the given SR.
8480 \noindent {\bf Signature:}
8481 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\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 {\tt string } & value & New value to set \\ \hline
8495 \end{tabular}
8497 \vspace{0.3cm}
8499 \noindent {\bf Return Type:}
8500 {\tt
8501 void
8506 \vspace{0.3cm}
8507 \vspace{0.3cm}
8508 \vspace{0.3cm}
8509 \subsubsection{RPC name:~get\_name\_description}
8511 {\bf Overview:}
8512 Get the name/description field of the given SR.
8514 \noindent {\bf Signature:}
8515 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
8518 \noindent{\bf Arguments:}
8521 \vspace{0.3cm}
8522 \begin{tabular}{|c|c|p{7cm}|}
8523 \hline
8524 {\bf type} & {\bf name} & {\bf description} \\ \hline
8525 {\tt SR ref } & self & reference to the object \\ \hline
8527 \end{tabular}
8529 \vspace{0.3cm}
8531 \noindent {\bf Return Type:}
8532 {\tt
8533 string
8537 value of the field
8538 \vspace{0.3cm}
8539 \vspace{0.3cm}
8540 \vspace{0.3cm}
8541 \subsubsection{RPC name:~set\_name\_description}
8543 {\bf Overview:}
8544 Set the name/description field of the given SR.
8546 \noindent {\bf Signature:}
8547 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
8550 \noindent{\bf Arguments:}
8553 \vspace{0.3cm}
8554 \begin{tabular}{|c|c|p{7cm}|}
8555 \hline
8556 {\bf type} & {\bf name} & {\bf description} \\ \hline
8557 {\tt SR ref } & self & reference to the object \\ \hline
8559 {\tt string } & value & New value to set \\ \hline
8561 \end{tabular}
8563 \vspace{0.3cm}
8565 \noindent {\bf Return Type:}
8566 {\tt
8567 void
8572 \vspace{0.3cm}
8573 \vspace{0.3cm}
8574 \vspace{0.3cm}
8575 \subsubsection{RPC name:~get\_VDIs}
8577 {\bf Overview:}
8578 Get the VDIs field of the given SR.
8580 \noindent {\bf Signature:}
8581 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
8584 \noindent{\bf Arguments:}
8587 \vspace{0.3cm}
8588 \begin{tabular}{|c|c|p{7cm}|}
8589 \hline
8590 {\bf type} & {\bf name} & {\bf description} \\ \hline
8591 {\tt SR ref } & self & reference to the object \\ \hline
8593 \end{tabular}
8595 \vspace{0.3cm}
8597 \noindent {\bf Return Type:}
8598 {\tt
8599 (VDI ref) Set
8603 value of the field
8604 \vspace{0.3cm}
8605 \vspace{0.3cm}
8606 \vspace{0.3cm}
8607 \subsubsection{RPC name:~get\_PBDs}
8609 {\bf Overview:}
8610 Get the PBDs field of the given SR.
8612 \noindent {\bf Signature:}
8613 \begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
8616 \noindent{\bf Arguments:}
8619 \vspace{0.3cm}
8620 \begin{tabular}{|c|c|p{7cm}|}
8621 \hline
8622 {\bf type} & {\bf name} & {\bf description} \\ \hline
8623 {\tt SR ref } & self & reference to the object \\ \hline
8625 \end{tabular}
8627 \vspace{0.3cm}
8629 \noindent {\bf Return Type:}
8630 {\tt
8631 (PBD ref) Set
8635 value of the field
8636 \vspace{0.3cm}
8637 \vspace{0.3cm}
8638 \vspace{0.3cm}
8639 \subsubsection{RPC name:~get\_virtual\_allocation}
8641 {\bf Overview:}
8642 Get the virtual\_allocation field of the given SR.
8644 \noindent {\bf Signature:}
8645 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
8648 \noindent{\bf Arguments:}
8651 \vspace{0.3cm}
8652 \begin{tabular}{|c|c|p{7cm}|}
8653 \hline
8654 {\bf type} & {\bf name} & {\bf description} \\ \hline
8655 {\tt SR ref } & self & reference to the object \\ \hline
8657 \end{tabular}
8659 \vspace{0.3cm}
8661 \noindent {\bf Return Type:}
8662 {\tt
8663 int
8667 value of the field
8668 \vspace{0.3cm}
8669 \vspace{0.3cm}
8670 \vspace{0.3cm}
8671 \subsubsection{RPC name:~get\_physical\_utilisation}
8673 {\bf Overview:}
8674 Get the physical\_utilisation field of the given SR.
8676 \noindent {\bf Signature:}
8677 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
8680 \noindent{\bf Arguments:}
8683 \vspace{0.3cm}
8684 \begin{tabular}{|c|c|p{7cm}|}
8685 \hline
8686 {\bf type} & {\bf name} & {\bf description} \\ \hline
8687 {\tt SR ref } & self & reference to the object \\ \hline
8689 \end{tabular}
8691 \vspace{0.3cm}
8693 \noindent {\bf Return Type:}
8694 {\tt
8695 int
8699 value of the field
8700 \vspace{0.3cm}
8701 \vspace{0.3cm}
8702 \vspace{0.3cm}
8703 \subsubsection{RPC name:~get\_physical\_size}
8705 {\bf Overview:}
8706 Get the physical\_size field of the given SR.
8708 \noindent {\bf Signature:}
8709 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
8712 \noindent{\bf Arguments:}
8715 \vspace{0.3cm}
8716 \begin{tabular}{|c|c|p{7cm}|}
8717 \hline
8718 {\bf type} & {\bf name} & {\bf description} \\ \hline
8719 {\tt SR ref } & self & reference to the object \\ \hline
8721 \end{tabular}
8723 \vspace{0.3cm}
8725 \noindent {\bf Return Type:}
8726 {\tt
8727 int
8731 value of the field
8732 \vspace{0.3cm}
8733 \vspace{0.3cm}
8734 \vspace{0.3cm}
8735 \subsubsection{RPC name:~get\_type}
8737 {\bf Overview:}
8738 Get the type field of the given SR.
8740 \noindent {\bf Signature:}
8741 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
8744 \noindent{\bf Arguments:}
8747 \vspace{0.3cm}
8748 \begin{tabular}{|c|c|p{7cm}|}
8749 \hline
8750 {\bf type} & {\bf name} & {\bf description} \\ \hline
8751 {\tt SR ref } & self & reference to the object \\ \hline
8753 \end{tabular}
8755 \vspace{0.3cm}
8757 \noindent {\bf Return Type:}
8758 {\tt
8759 string
8763 value of the field
8764 \vspace{0.3cm}
8765 \vspace{0.3cm}
8766 \vspace{0.3cm}
8767 \subsubsection{RPC name:~get\_location}
8769 {\bf Overview:}
8770 Get the location field of the given SR.
8772 \noindent {\bf Signature:}
8773 \begin{verbatim} string get_location (session_id s, SR ref self)\end{verbatim}
8776 \noindent{\bf Arguments:}
8779 \vspace{0.3cm}
8780 \begin{tabular}{|c|c|p{7cm}|}
8781 \hline
8782 {\bf type} & {\bf name} & {\bf description} \\ \hline
8783 {\tt SR ref } & self & reference to the object \\ \hline
8785 \end{tabular}
8787 \vspace{0.3cm}
8789 \noindent {\bf Return Type:}
8790 {\tt
8791 string
8795 value of the field
8796 \vspace{0.3cm}
8797 \vspace{0.3cm}
8798 \vspace{0.3cm}
8799 \subsubsection{RPC name:~create}
8801 {\bf Overview:}
8802 Create a new SR instance, and return its handle.
8804 \noindent {\bf Signature:}
8805 \begin{verbatim} (SR ref) create (session_id s, SR record args)\end{verbatim}
8808 \noindent{\bf Arguments:}
8811 \vspace{0.3cm}
8812 \begin{tabular}{|c|c|p{7cm}|}
8813 \hline
8814 {\bf type} & {\bf name} & {\bf description} \\ \hline
8815 {\tt SR record } & args & All constructor arguments \\ \hline
8817 \end{tabular}
8819 \vspace{0.3cm}
8821 \noindent {\bf Return Type:}
8822 {\tt
8823 SR ref
8827 reference to the newly created object
8828 \vspace{0.3cm}
8829 \vspace{0.3cm}
8830 \vspace{0.3cm}
8831 \subsubsection{RPC name:~destroy}
8833 {\bf Overview:}
8834 Destroy the specified SR instance.
8836 \noindent {\bf Signature:}
8837 \begin{verbatim} void destroy (session_id s, SR ref self)\end{verbatim}
8840 \noindent{\bf Arguments:}
8843 \vspace{0.3cm}
8844 \begin{tabular}{|c|c|p{7cm}|}
8845 \hline
8846 {\bf type} & {\bf name} & {\bf description} \\ \hline
8847 {\tt SR ref } & self & reference to the object \\ \hline
8849 \end{tabular}
8851 \vspace{0.3cm}
8853 \noindent {\bf Return Type:}
8854 {\tt
8855 void
8860 \vspace{0.3cm}
8861 \vspace{0.3cm}
8862 \vspace{0.3cm}
8863 \subsubsection{RPC name:~get\_by\_uuid}
8865 {\bf Overview:}
8866 Get a reference to the SR instance with the specified UUID.
8868 \noindent {\bf Signature:}
8869 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8872 \noindent{\bf Arguments:}
8875 \vspace{0.3cm}
8876 \begin{tabular}{|c|c|p{7cm}|}
8877 \hline
8878 {\bf type} & {\bf name} & {\bf description} \\ \hline
8879 {\tt string } & uuid & UUID of object to return \\ \hline
8881 \end{tabular}
8883 \vspace{0.3cm}
8885 \noindent {\bf Return Type:}
8886 {\tt
8887 SR ref
8891 reference to the object
8892 \vspace{0.3cm}
8893 \vspace{0.3cm}
8894 \vspace{0.3cm}
8895 \subsubsection{RPC name:~get\_record}
8897 {\bf Overview:}
8898 Get a record containing the current state of the given SR.
8900 \noindent {\bf Signature:}
8901 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
8904 \noindent{\bf Arguments:}
8907 \vspace{0.3cm}
8908 \begin{tabular}{|c|c|p{7cm}|}
8909 \hline
8910 {\bf type} & {\bf name} & {\bf description} \\ \hline
8911 {\tt SR ref } & self & reference to the object \\ \hline
8913 \end{tabular}
8915 \vspace{0.3cm}
8917 \noindent {\bf Return Type:}
8918 {\tt
8919 SR record
8923 all fields from the object
8924 \vspace{0.3cm}
8925 \vspace{0.3cm}
8926 \vspace{0.3cm}
8927 \subsubsection{RPC name:~get\_by\_name\_label}
8929 {\bf Overview:}
8930 Get all the SR instances with the given label.
8932 \noindent {\bf Signature:}
8933 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8936 \noindent{\bf Arguments:}
8939 \vspace{0.3cm}
8940 \begin{tabular}{|c|c|p{7cm}|}
8941 \hline
8942 {\bf type} & {\bf name} & {\bf description} \\ \hline
8943 {\tt string } & label & label of object to return \\ \hline
8945 \end{tabular}
8947 \vspace{0.3cm}
8949 \noindent {\bf Return Type:}
8950 {\tt
8951 (SR ref) Set
8955 references to objects with match names
8956 \vspace{0.3cm}
8957 \vspace{0.3cm}
8958 \vspace{0.3cm}
8960 \vspace{1cm}
8961 \newpage
8962 \section{Class: VDI}
8963 \subsection{Fields for class: VDI}
8964 \begin{longtable}{|lllp{0.38\textwidth}|}
8965 \hline
8966 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
8967 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
8968 virtual disk image.}} \\
8969 \hline
8970 Quals & Field & Type & Description \\
8971 \hline
8972 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8973 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
8974 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
8975 $\mathit{RW}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
8976 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
8977 $\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
8978 $\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in multiples of sector\_size field) \\
8979 $\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) \\
8980 $\mathit{RO}_\mathit{ins}$ & {\tt sector\_size} & int & sector size of VDI (in bytes) \\
8981 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
8982 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
8983 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
8984 \hline
8985 \end{longtable}
8986 \subsection{Additional RPCs associated with class: VDI}
8987 \subsubsection{RPC name:~snapshot}
8989 {\bf Overview:}
8990 Take an exact copy of the VDI; the snapshot lives in the same Storage
8991 Repository as its parent.
8993 \noindent {\bf Signature:}
8994 \begin{verbatim} (VDI ref) snapshot (session_id s, VDI ref vdi)\end{verbatim}
8997 \noindent{\bf Arguments:}
9000 \vspace{0.3cm}
9001 \begin{tabular}{|c|c|p{7cm}|}
9002 \hline
9003 {\bf type} & {\bf name} & {\bf description} \\ \hline
9004 {\tt VDI ref } & vdi & The VDI to snapshot \\ \hline
9006 \end{tabular}
9008 \vspace{0.3cm}
9010 \noindent {\bf Return Type:}
9011 {\tt
9012 VDI ref
9016 The ID of the newly created VDI.
9017 \vspace{0.3cm}
9018 \vspace{0.3cm}
9019 \vspace{0.3cm}
9020 \subsubsection{RPC name:~resize}
9022 {\bf Overview:}
9023 Resize the vdi to the size.
9025 \noindent {\bf Signature:}
9026 \begin{verbatim} void resize (session_id s, VDI ref vdi, int size)\end{verbatim}
9029 \noindent{\bf Arguments:}
9032 \vspace{0.3cm}
9033 \begin{tabular}{|c|c|p{7cm}|}
9034 \hline
9035 {\bf type} & {\bf name} & {\bf description} \\ \hline
9036 {\tt VDI ref } & vdi & The VDI to resize \\ \hline
9038 {\tt int } & size & The new size of the VDI \\ \hline
9040 \end{tabular}
9042 \vspace{0.3cm}
9044 \noindent {\bf Return Type:}
9045 {\tt
9046 void
9051 \vspace{0.3cm}
9052 \vspace{0.3cm}
9053 \vspace{0.3cm}
9054 \subsubsection{RPC name:~get\_uuid}
9056 {\bf Overview:}
9057 Get the uuid field of the given VDI.
9059 \noindent {\bf Signature:}
9060 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
9063 \noindent{\bf Arguments:}
9066 \vspace{0.3cm}
9067 \begin{tabular}{|c|c|p{7cm}|}
9068 \hline
9069 {\bf type} & {\bf name} & {\bf description} \\ \hline
9070 {\tt VDI ref } & self & reference to the object \\ \hline
9072 \end{tabular}
9074 \vspace{0.3cm}
9076 \noindent {\bf Return Type:}
9077 {\tt
9078 string
9082 value of the field
9083 \vspace{0.3cm}
9084 \vspace{0.3cm}
9085 \vspace{0.3cm}
9086 \subsubsection{RPC name:~get\_name\_label}
9088 {\bf Overview:}
9089 Get the name/label field of the given VDI.
9091 \noindent {\bf Signature:}
9092 \begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
9095 \noindent{\bf Arguments:}
9098 \vspace{0.3cm}
9099 \begin{tabular}{|c|c|p{7cm}|}
9100 \hline
9101 {\bf type} & {\bf name} & {\bf description} \\ \hline
9102 {\tt VDI ref } & self & reference to the object \\ \hline
9104 \end{tabular}
9106 \vspace{0.3cm}
9108 \noindent {\bf Return Type:}
9109 {\tt
9110 string
9114 value of the field
9115 \vspace{0.3cm}
9116 \vspace{0.3cm}
9117 \vspace{0.3cm}
9118 \subsubsection{RPC name:~set\_name\_label}
9120 {\bf Overview:}
9121 Set the name/label field of the given VDI.
9123 \noindent {\bf Signature:}
9124 \begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
9127 \noindent{\bf Arguments:}
9130 \vspace{0.3cm}
9131 \begin{tabular}{|c|c|p{7cm}|}
9132 \hline
9133 {\bf type} & {\bf name} & {\bf description} \\ \hline
9134 {\tt VDI ref } & self & reference to the object \\ \hline
9136 {\tt string } & value & New value to set \\ \hline
9138 \end{tabular}
9140 \vspace{0.3cm}
9142 \noindent {\bf Return Type:}
9143 {\tt
9144 void
9149 \vspace{0.3cm}
9150 \vspace{0.3cm}
9151 \vspace{0.3cm}
9152 \subsubsection{RPC name:~get\_name\_description}
9154 {\bf Overview:}
9155 Get the name/description field of the given VDI.
9157 \noindent {\bf Signature:}
9158 \begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
9161 \noindent{\bf Arguments:}
9164 \vspace{0.3cm}
9165 \begin{tabular}{|c|c|p{7cm}|}
9166 \hline
9167 {\bf type} & {\bf name} & {\bf description} \\ \hline
9168 {\tt VDI ref } & self & reference to the object \\ \hline
9170 \end{tabular}
9172 \vspace{0.3cm}
9174 \noindent {\bf Return Type:}
9175 {\tt
9176 string
9180 value of the field
9181 \vspace{0.3cm}
9182 \vspace{0.3cm}
9183 \vspace{0.3cm}
9184 \subsubsection{RPC name:~set\_name\_description}
9186 {\bf Overview:}
9187 Set the name/description field of the given VDI.
9189 \noindent {\bf Signature:}
9190 \begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
9193 \noindent{\bf Arguments:}
9196 \vspace{0.3cm}
9197 \begin{tabular}{|c|c|p{7cm}|}
9198 \hline
9199 {\bf type} & {\bf name} & {\bf description} \\ \hline
9200 {\tt VDI ref } & self & reference to the object \\ \hline
9202 {\tt string } & value & New value to set \\ \hline
9204 \end{tabular}
9206 \vspace{0.3cm}
9208 \noindent {\bf Return Type:}
9209 {\tt
9210 void
9215 \vspace{0.3cm}
9216 \vspace{0.3cm}
9217 \vspace{0.3cm}
9218 \subsubsection{RPC name:~get\_SR}
9220 {\bf Overview:}
9221 Get the SR field of the given VDI.
9223 \noindent {\bf Signature:}
9224 \begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
9227 \noindent{\bf Arguments:}
9230 \vspace{0.3cm}
9231 \begin{tabular}{|c|c|p{7cm}|}
9232 \hline
9233 {\bf type} & {\bf name} & {\bf description} \\ \hline
9234 {\tt VDI ref } & self & reference to the object \\ \hline
9236 \end{tabular}
9238 \vspace{0.3cm}
9240 \noindent {\bf Return Type:}
9241 {\tt
9242 SR ref
9246 value of the field
9247 \vspace{0.3cm}
9248 \vspace{0.3cm}
9249 \vspace{0.3cm}
9250 \subsubsection{RPC name:~set\_SR}
9252 {\bf Overview:}
9253 Set the SR field of the given VDI.
9255 \noindent {\bf Signature:}
9256 \begin{verbatim} void set_SR (session_id s, VDI ref self, SR ref value)\end{verbatim}
9259 \noindent{\bf Arguments:}
9262 \vspace{0.3cm}
9263 \begin{tabular}{|c|c|p{7cm}|}
9264 \hline
9265 {\bf type} & {\bf name} & {\bf description} \\ \hline
9266 {\tt VDI ref } & self & reference to the object \\ \hline
9268 {\tt SR ref } & value & New value to set \\ \hline
9270 \end{tabular}
9272 \vspace{0.3cm}
9274 \noindent {\bf Return Type:}
9275 {\tt
9276 void
9281 \vspace{0.3cm}
9282 \vspace{0.3cm}
9283 \vspace{0.3cm}
9284 \subsubsection{RPC name:~get\_VBDs}
9286 {\bf Overview:}
9287 Get the VBDs field of the given VDI.
9289 \noindent {\bf Signature:}
9290 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
9293 \noindent{\bf Arguments:}
9296 \vspace{0.3cm}
9297 \begin{tabular}{|c|c|p{7cm}|}
9298 \hline
9299 {\bf type} & {\bf name} & {\bf description} \\ \hline
9300 {\tt VDI ref } & self & reference to the object \\ \hline
9302 \end{tabular}
9304 \vspace{0.3cm}
9306 \noindent {\bf Return Type:}
9307 {\tt
9308 (VBD ref) Set
9312 value of the field
9313 \vspace{0.3cm}
9314 \vspace{0.3cm}
9315 \vspace{0.3cm}
9316 \subsubsection{RPC name:~get\_crash\_dumps}
9318 {\bf Overview:}
9319 Get the crash\_dumps field of the given VDI.
9321 \noindent {\bf Signature:}
9322 \begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VDI ref self)\end{verbatim}
9325 \noindent{\bf Arguments:}
9328 \vspace{0.3cm}
9329 \begin{tabular}{|c|c|p{7cm}|}
9330 \hline
9331 {\bf type} & {\bf name} & {\bf description} \\ \hline
9332 {\tt VDI ref } & self & reference to the object \\ \hline
9334 \end{tabular}
9336 \vspace{0.3cm}
9338 \noindent {\bf Return Type:}
9339 {\tt
9340 (crashdump ref) Set
9344 value of the field
9345 \vspace{0.3cm}
9346 \vspace{0.3cm}
9347 \vspace{0.3cm}
9348 \subsubsection{RPC name:~get\_virtual\_size}
9350 {\bf Overview:}
9351 Get the virtual\_size field of the given VDI.
9353 \noindent {\bf Signature:}
9354 \begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
9357 \noindent{\bf Arguments:}
9360 \vspace{0.3cm}
9361 \begin{tabular}{|c|c|p{7cm}|}
9362 \hline
9363 {\bf type} & {\bf name} & {\bf description} \\ \hline
9364 {\tt VDI ref } & self & reference to the object \\ \hline
9366 \end{tabular}
9368 \vspace{0.3cm}
9370 \noindent {\bf Return Type:}
9371 {\tt
9372 int
9376 value of the field
9377 \vspace{0.3cm}
9378 \vspace{0.3cm}
9379 \vspace{0.3cm}
9380 \subsubsection{RPC name:~set\_virtual\_size}
9382 {\bf Overview:}
9383 Set the virtual\_size field of the given VDI.
9385 \noindent {\bf Signature:}
9386 \begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
9389 \noindent{\bf Arguments:}
9392 \vspace{0.3cm}
9393 \begin{tabular}{|c|c|p{7cm}|}
9394 \hline
9395 {\bf type} & {\bf name} & {\bf description} \\ \hline
9396 {\tt VDI ref } & self & reference to the object \\ \hline
9398 {\tt int } & value & New value to set \\ \hline
9400 \end{tabular}
9402 \vspace{0.3cm}
9404 \noindent {\bf Return Type:}
9405 {\tt
9406 void
9411 \vspace{0.3cm}
9412 \vspace{0.3cm}
9413 \vspace{0.3cm}
9414 \subsubsection{RPC name:~get\_physical\_utilisation}
9416 {\bf Overview:}
9417 Get the physical\_utilisation field of the given VDI.
9419 \noindent {\bf Signature:}
9420 \begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\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 VDI ref } & self & reference to the object \\ \hline
9432 \end{tabular}
9434 \vspace{0.3cm}
9436 \noindent {\bf Return Type:}
9437 {\tt
9438 int
9442 value of the field
9443 \vspace{0.3cm}
9444 \vspace{0.3cm}
9445 \vspace{0.3cm}
9446 \subsubsection{RPC name:~get\_sector\_size}
9448 {\bf Overview:}
9449 Get the sector\_size field of the given VDI.
9451 \noindent {\bf Signature:}
9452 \begin{verbatim} int get_sector_size (session_id s, VDI ref self)\end{verbatim}
9455 \noindent{\bf Arguments:}
9458 \vspace{0.3cm}
9459 \begin{tabular}{|c|c|p{7cm}|}
9460 \hline
9461 {\bf type} & {\bf name} & {\bf description} \\ \hline
9462 {\tt VDI ref } & self & reference to the object \\ \hline
9464 \end{tabular}
9466 \vspace{0.3cm}
9468 \noindent {\bf Return Type:}
9469 {\tt
9470 int
9474 value of the field
9475 \vspace{0.3cm}
9476 \vspace{0.3cm}
9477 \vspace{0.3cm}
9478 \subsubsection{RPC name:~get\_type}
9480 {\bf Overview:}
9481 Get the type field of the given VDI.
9483 \noindent {\bf Signature:}
9484 \begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
9487 \noindent{\bf Arguments:}
9490 \vspace{0.3cm}
9491 \begin{tabular}{|c|c|p{7cm}|}
9492 \hline
9493 {\bf type} & {\bf name} & {\bf description} \\ \hline
9494 {\tt VDI ref } & self & reference to the object \\ \hline
9496 \end{tabular}
9498 \vspace{0.3cm}
9500 \noindent {\bf Return Type:}
9501 {\tt
9502 vdi\_type
9506 value of the field
9507 \vspace{0.3cm}
9508 \vspace{0.3cm}
9509 \vspace{0.3cm}
9510 \subsubsection{RPC name:~get\_sharable}
9512 {\bf Overview:}
9513 Get the sharable field of the given VDI.
9515 \noindent {\bf Signature:}
9516 \begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
9519 \noindent{\bf Arguments:}
9522 \vspace{0.3cm}
9523 \begin{tabular}{|c|c|p{7cm}|}
9524 \hline
9525 {\bf type} & {\bf name} & {\bf description} \\ \hline
9526 {\tt VDI ref } & self & reference to the object \\ \hline
9528 \end{tabular}
9530 \vspace{0.3cm}
9532 \noindent {\bf Return Type:}
9533 {\tt
9534 bool
9538 value of the field
9539 \vspace{0.3cm}
9540 \vspace{0.3cm}
9541 \vspace{0.3cm}
9542 \subsubsection{RPC name:~set\_sharable}
9544 {\bf Overview:}
9545 Set the sharable field of the given VDI.
9547 \noindent {\bf Signature:}
9548 \begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
9551 \noindent{\bf Arguments:}
9554 \vspace{0.3cm}
9555 \begin{tabular}{|c|c|p{7cm}|}
9556 \hline
9557 {\bf type} & {\bf name} & {\bf description} \\ \hline
9558 {\tt VDI ref } & self & reference to the object \\ \hline
9560 {\tt bool } & value & New value to set \\ \hline
9562 \end{tabular}
9564 \vspace{0.3cm}
9566 \noindent {\bf Return Type:}
9567 {\tt
9568 void
9573 \vspace{0.3cm}
9574 \vspace{0.3cm}
9575 \vspace{0.3cm}
9576 \subsubsection{RPC name:~get\_read\_only}
9578 {\bf Overview:}
9579 Get the read\_only field of the given VDI.
9581 \noindent {\bf Signature:}
9582 \begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
9585 \noindent{\bf Arguments:}
9588 \vspace{0.3cm}
9589 \begin{tabular}{|c|c|p{7cm}|}
9590 \hline
9591 {\bf type} & {\bf name} & {\bf description} \\ \hline
9592 {\tt VDI ref } & self & reference to the object \\ \hline
9594 \end{tabular}
9596 \vspace{0.3cm}
9598 \noindent {\bf Return Type:}
9599 {\tt
9600 bool
9604 value of the field
9605 \vspace{0.3cm}
9606 \vspace{0.3cm}
9607 \vspace{0.3cm}
9608 \subsubsection{RPC name:~set\_read\_only}
9610 {\bf Overview:}
9611 Set the read\_only field of the given VDI.
9613 \noindent {\bf Signature:}
9614 \begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
9617 \noindent{\bf Arguments:}
9620 \vspace{0.3cm}
9621 \begin{tabular}{|c|c|p{7cm}|}
9622 \hline
9623 {\bf type} & {\bf name} & {\bf description} \\ \hline
9624 {\tt VDI ref } & self & reference to the object \\ \hline
9626 {\tt bool } & value & New value to set \\ \hline
9628 \end{tabular}
9630 \vspace{0.3cm}
9632 \noindent {\bf Return Type:}
9633 {\tt
9634 void
9639 \vspace{0.3cm}
9640 \vspace{0.3cm}
9641 \vspace{0.3cm}
9642 \subsubsection{RPC name:~create}
9644 {\bf Overview:}
9645 Create a new VDI instance, and return its handle.
9647 \noindent {\bf Signature:}
9648 \begin{verbatim} (VDI ref) create (session_id s, VDI record args)\end{verbatim}
9651 \noindent{\bf Arguments:}
9654 \vspace{0.3cm}
9655 \begin{tabular}{|c|c|p{7cm}|}
9656 \hline
9657 {\bf type} & {\bf name} & {\bf description} \\ \hline
9658 {\tt VDI record } & args & All constructor arguments \\ \hline
9660 \end{tabular}
9662 \vspace{0.3cm}
9664 \noindent {\bf Return Type:}
9665 {\tt
9666 VDI ref
9670 reference to the newly created object
9671 \vspace{0.3cm}
9672 \vspace{0.3cm}
9673 \vspace{0.3cm}
9674 \subsubsection{RPC name:~destroy}
9676 {\bf Overview:}
9677 Destroy the specified VDI instance.
9679 \noindent {\bf Signature:}
9680 \begin{verbatim} void destroy (session_id s, VDI ref self)\end{verbatim}
9683 \noindent{\bf Arguments:}
9686 \vspace{0.3cm}
9687 \begin{tabular}{|c|c|p{7cm}|}
9688 \hline
9689 {\bf type} & {\bf name} & {\bf description} \\ \hline
9690 {\tt VDI ref } & self & reference to the object \\ \hline
9692 \end{tabular}
9694 \vspace{0.3cm}
9696 \noindent {\bf Return Type:}
9697 {\tt
9698 void
9703 \vspace{0.3cm}
9704 \vspace{0.3cm}
9705 \vspace{0.3cm}
9706 \subsubsection{RPC name:~get\_by\_uuid}
9708 {\bf Overview:}
9709 Get a reference to the VDI instance with the specified UUID.
9711 \noindent {\bf Signature:}
9712 \begin{verbatim} (VDI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9715 \noindent{\bf Arguments:}
9718 \vspace{0.3cm}
9719 \begin{tabular}{|c|c|p{7cm}|}
9720 \hline
9721 {\bf type} & {\bf name} & {\bf description} \\ \hline
9722 {\tt string } & uuid & UUID of object to return \\ \hline
9724 \end{tabular}
9726 \vspace{0.3cm}
9728 \noindent {\bf Return Type:}
9729 {\tt
9730 VDI ref
9734 reference to the object
9735 \vspace{0.3cm}
9736 \vspace{0.3cm}
9737 \vspace{0.3cm}
9738 \subsubsection{RPC name:~get\_record}
9740 {\bf Overview:}
9741 Get a record containing the current state of the given VDI.
9743 \noindent {\bf Signature:}
9744 \begin{verbatim} (VDI record) get_record (session_id s, VDI ref self)\end{verbatim}
9747 \noindent{\bf Arguments:}
9750 \vspace{0.3cm}
9751 \begin{tabular}{|c|c|p{7cm}|}
9752 \hline
9753 {\bf type} & {\bf name} & {\bf description} \\ \hline
9754 {\tt VDI ref } & self & reference to the object \\ \hline
9756 \end{tabular}
9758 \vspace{0.3cm}
9760 \noindent {\bf Return Type:}
9761 {\tt
9762 VDI record
9766 all fields from the object
9767 \vspace{0.3cm}
9768 \vspace{0.3cm}
9769 \vspace{0.3cm}
9770 \subsubsection{RPC name:~get\_by\_name\_label}
9772 {\bf Overview:}
9773 Get all the VDI instances with the given label.
9775 \noindent {\bf Signature:}
9776 \begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
9779 \noindent{\bf Arguments:}
9782 \vspace{0.3cm}
9783 \begin{tabular}{|c|c|p{7cm}|}
9784 \hline
9785 {\bf type} & {\bf name} & {\bf description} \\ \hline
9786 {\tt string } & label & label of object to return \\ \hline
9788 \end{tabular}
9790 \vspace{0.3cm}
9792 \noindent {\bf Return Type:}
9793 {\tt
9794 (VDI ref) Set
9798 references to objects with match names
9799 \vspace{0.3cm}
9800 \vspace{0.3cm}
9801 \vspace{0.3cm}
9803 \vspace{1cm}
9804 \newpage
9805 \section{Class: VBD}
9806 \subsection{Fields for class: VBD}
9807 \begin{longtable}{|lllp{0.38\textwidth}|}
9808 \hline
9809 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
9810 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
9811 virtual block device.}} \\
9812 \hline
9813 Quals & Field & Type & Description \\
9814 \hline
9815 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9816 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
9817 $\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
9818 $\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
9819 $\mathit{RW}$ & {\tt bootable} & bool & true if this VBD is bootable \\
9820 $\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the VBD should be mounted with \\
9821 $\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
9822 $\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
9823 $\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
9824 $\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VBD \\
9825 $\mathit{RO}_\mathit{run}$ & {\tt metrics} & VBD\_metrics ref & metrics associated with this VBD \\
9826 \hline
9827 \end{longtable}
9828 \subsection{Additional RPCs associated with class: VBD}
9829 \subsubsection{RPC name:~media\_change}
9831 {\bf Overview:}
9832 Change the media in the device for CDROM-like devices only. For other
9833 devices, detach the VBD and attach a new one.
9835 \noindent {\bf Signature:}
9836 \begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
9839 \noindent{\bf Arguments:}
9842 \vspace{0.3cm}
9843 \begin{tabular}{|c|c|p{7cm}|}
9844 \hline
9845 {\bf type} & {\bf name} & {\bf description} \\ \hline
9846 {\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
9848 {\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
9850 \end{tabular}
9852 \vspace{0.3cm}
9854 \noindent {\bf Return Type:}
9855 {\tt
9856 void
9861 \vspace{0.3cm}
9862 \vspace{0.3cm}
9863 \vspace{0.3cm}
9864 \subsubsection{RPC name:~get\_uuid}
9866 {\bf Overview:}
9867 Get the uuid field of the given VBD.
9869 \noindent {\bf Signature:}
9870 \begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
9873 \noindent{\bf Arguments:}
9876 \vspace{0.3cm}
9877 \begin{tabular}{|c|c|p{7cm}|}
9878 \hline
9879 {\bf type} & {\bf name} & {\bf description} \\ \hline
9880 {\tt VBD ref } & self & reference to the object \\ \hline
9882 \end{tabular}
9884 \vspace{0.3cm}
9886 \noindent {\bf Return Type:}
9887 {\tt
9888 string
9892 value of the field
9893 \vspace{0.3cm}
9894 \vspace{0.3cm}
9895 \vspace{0.3cm}
9896 \subsubsection{RPC name:~get\_VM}
9898 {\bf Overview:}
9899 Get the VM field of the given VBD.
9901 \noindent {\bf Signature:}
9902 \begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
9905 \noindent{\bf Arguments:}
9908 \vspace{0.3cm}
9909 \begin{tabular}{|c|c|p{7cm}|}
9910 \hline
9911 {\bf type} & {\bf name} & {\bf description} \\ \hline
9912 {\tt VBD ref } & self & reference to the object \\ \hline
9914 \end{tabular}
9916 \vspace{0.3cm}
9918 \noindent {\bf Return Type:}
9919 {\tt
9920 VM ref
9924 value of the field
9925 \vspace{0.3cm}
9926 \vspace{0.3cm}
9927 \vspace{0.3cm}
9928 \subsubsection{RPC name:~get\_VDI}
9930 {\bf Overview:}
9931 Get the VDI field of the given VBD.
9933 \noindent {\bf Signature:}
9934 \begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
9937 \noindent{\bf Arguments:}
9940 \vspace{0.3cm}
9941 \begin{tabular}{|c|c|p{7cm}|}
9942 \hline
9943 {\bf type} & {\bf name} & {\bf description} \\ \hline
9944 {\tt VBD ref } & self & reference to the object \\ \hline
9946 \end{tabular}
9948 \vspace{0.3cm}
9950 \noindent {\bf Return Type:}
9951 {\tt
9952 VDI ref
9956 value of the field
9957 \vspace{0.3cm}
9958 \vspace{0.3cm}
9959 \vspace{0.3cm}
9960 \subsubsection{RPC name:~get\_device}
9962 {\bf Overview:}
9963 Get the device field of the given VBD.
9965 \noindent {\bf Signature:}
9966 \begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
9969 \noindent{\bf Arguments:}
9972 \vspace{0.3cm}
9973 \begin{tabular}{|c|c|p{7cm}|}
9974 \hline
9975 {\bf type} & {\bf name} & {\bf description} \\ \hline
9976 {\tt VBD ref } & self & reference to the object \\ \hline
9978 \end{tabular}
9980 \vspace{0.3cm}
9982 \noindent {\bf Return Type:}
9983 {\tt
9984 string
9988 value of the field
9989 \vspace{0.3cm}
9990 \vspace{0.3cm}
9991 \vspace{0.3cm}
9992 \subsubsection{RPC name:~set\_device}
9994 {\bf Overview:}
9995 Set the device field of the given VBD.
9997 \noindent {\bf Signature:}
9998 \begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim}
10001 \noindent{\bf Arguments:}
10004 \vspace{0.3cm}
10005 \begin{tabular}{|c|c|p{7cm}|}
10006 \hline
10007 {\bf type} & {\bf name} & {\bf description} \\ \hline
10008 {\tt VBD ref } & self & reference to the object \\ \hline
10010 {\tt string } & value & New value to set \\ \hline
10012 \end{tabular}
10014 \vspace{0.3cm}
10016 \noindent {\bf Return Type:}
10017 {\tt
10018 void
10023 \vspace{0.3cm}
10024 \vspace{0.3cm}
10025 \vspace{0.3cm}
10026 \subsubsection{RPC name:~get\_bootable}
10028 {\bf Overview:}
10029 Get the bootable field of the given VBD.
10031 \noindent {\bf Signature:}
10032 \begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim}
10035 \noindent{\bf Arguments:}
10038 \vspace{0.3cm}
10039 \begin{tabular}{|c|c|p{7cm}|}
10040 \hline
10041 {\bf type} & {\bf name} & {\bf description} \\ \hline
10042 {\tt VBD ref } & self & reference to the object \\ \hline
10044 \end{tabular}
10046 \vspace{0.3cm}
10048 \noindent {\bf Return Type:}
10049 {\tt
10050 bool
10054 value of the field
10055 \vspace{0.3cm}
10056 \vspace{0.3cm}
10057 \vspace{0.3cm}
10058 \subsubsection{RPC name:~set\_bootable}
10060 {\bf Overview:}
10061 Set the bootable field of the given VBD.
10063 \noindent {\bf Signature:}
10064 \begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim}
10067 \noindent{\bf Arguments:}
10070 \vspace{0.3cm}
10071 \begin{tabular}{|c|c|p{7cm}|}
10072 \hline
10073 {\bf type} & {\bf name} & {\bf description} \\ \hline
10074 {\tt VBD ref } & self & reference to the object \\ \hline
10076 {\tt bool } & value & New value to set \\ \hline
10078 \end{tabular}
10080 \vspace{0.3cm}
10082 \noindent {\bf Return Type:}
10083 {\tt
10084 void
10089 \vspace{0.3cm}
10090 \vspace{0.3cm}
10091 \vspace{0.3cm}
10092 \subsubsection{RPC name:~get\_mode}
10094 {\bf Overview:}
10095 Get the mode field of the given VBD.
10097 \noindent {\bf Signature:}
10098 \begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
10101 \noindent{\bf Arguments:}
10104 \vspace{0.3cm}
10105 \begin{tabular}{|c|c|p{7cm}|}
10106 \hline
10107 {\bf type} & {\bf name} & {\bf description} \\ \hline
10108 {\tt VBD ref } & self & reference to the object \\ \hline
10110 \end{tabular}
10112 \vspace{0.3cm}
10114 \noindent {\bf Return Type:}
10115 {\tt
10116 vbd\_mode
10120 value of the field
10121 \vspace{0.3cm}
10122 \vspace{0.3cm}
10123 \vspace{0.3cm}
10124 \subsubsection{RPC name:~set\_mode}
10126 {\bf Overview:}
10127 Set the mode field of the given VBD.
10129 \noindent {\bf Signature:}
10130 \begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
10133 \noindent{\bf Arguments:}
10136 \vspace{0.3cm}
10137 \begin{tabular}{|c|c|p{7cm}|}
10138 \hline
10139 {\bf type} & {\bf name} & {\bf description} \\ \hline
10140 {\tt VBD ref } & self & reference to the object \\ \hline
10142 {\tt vbd\_mode } & value & New value to set \\ \hline
10144 \end{tabular}
10146 \vspace{0.3cm}
10148 \noindent {\bf Return Type:}
10149 {\tt
10150 void
10155 \vspace{0.3cm}
10156 \vspace{0.3cm}
10157 \vspace{0.3cm}
10158 \subsubsection{RPC name:~get\_type}
10160 {\bf Overview:}
10161 Get the type field of the given VBD.
10163 \noindent {\bf Signature:}
10164 \begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
10167 \noindent{\bf Arguments:}
10170 \vspace{0.3cm}
10171 \begin{tabular}{|c|c|p{7cm}|}
10172 \hline
10173 {\bf type} & {\bf name} & {\bf description} \\ \hline
10174 {\tt VBD ref } & self & reference to the object \\ \hline
10176 \end{tabular}
10178 \vspace{0.3cm}
10180 \noindent {\bf Return Type:}
10181 {\tt
10182 vbd\_type
10186 value of the field
10187 \vspace{0.3cm}
10188 \vspace{0.3cm}
10189 \vspace{0.3cm}
10190 \subsubsection{RPC name:~set\_type}
10192 {\bf Overview:}
10193 Set the type field of the given VBD.
10195 \noindent {\bf Signature:}
10196 \begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
10199 \noindent{\bf Arguments:}
10202 \vspace{0.3cm}
10203 \begin{tabular}{|c|c|p{7cm}|}
10204 \hline
10205 {\bf type} & {\bf name} & {\bf description} \\ \hline
10206 {\tt VBD ref } & self & reference to the object \\ \hline
10208 {\tt vbd\_type } & value & New value to set \\ \hline
10210 \end{tabular}
10212 \vspace{0.3cm}
10214 \noindent {\bf Return Type:}
10215 {\tt
10216 void
10221 \vspace{0.3cm}
10222 \vspace{0.3cm}
10223 \vspace{0.3cm}
10224 \subsubsection{RPC name:~get\_qos\_algorithm\_type}
10226 {\bf Overview:}
10227 Get the qos/algorithm\_type field of the given VBD.
10229 \noindent {\bf Signature:}
10230 \begin{verbatim} string get_qos_algorithm_type (session_id s, VBD ref self)\end{verbatim}
10233 \noindent{\bf Arguments:}
10236 \vspace{0.3cm}
10237 \begin{tabular}{|c|c|p{7cm}|}
10238 \hline
10239 {\bf type} & {\bf name} & {\bf description} \\ \hline
10240 {\tt VBD ref } & self & reference to the object \\ \hline
10242 \end{tabular}
10244 \vspace{0.3cm}
10246 \noindent {\bf Return Type:}
10247 {\tt
10248 string
10252 value of the field
10253 \vspace{0.3cm}
10254 \vspace{0.3cm}
10255 \vspace{0.3cm}
10256 \subsubsection{RPC name:~set\_qos\_algorithm\_type}
10258 {\bf Overview:}
10259 Set the qos/algorithm\_type field of the given VBD.
10261 \noindent {\bf Signature:}
10262 \begin{verbatim} void set_qos_algorithm_type (session_id s, VBD ref self, string value)\end{verbatim}
10265 \noindent{\bf Arguments:}
10268 \vspace{0.3cm}
10269 \begin{tabular}{|c|c|p{7cm}|}
10270 \hline
10271 {\bf type} & {\bf name} & {\bf description} \\ \hline
10272 {\tt VBD ref } & self & reference to the object \\ \hline
10274 {\tt string } & value & New value to set \\ \hline
10276 \end{tabular}
10278 \vspace{0.3cm}
10280 \noindent {\bf Return Type:}
10281 {\tt
10282 void
10287 \vspace{0.3cm}
10288 \vspace{0.3cm}
10289 \vspace{0.3cm}
10290 \subsubsection{RPC name:~get\_qos\_algorithm\_params}
10292 {\bf Overview:}
10293 Get the qos/algorithm\_params field of the given VBD.
10295 \noindent {\bf Signature:}
10296 \begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VBD ref self)\end{verbatim}
10299 \noindent{\bf Arguments:}
10302 \vspace{0.3cm}
10303 \begin{tabular}{|c|c|p{7cm}|}
10304 \hline
10305 {\bf type} & {\bf name} & {\bf description} \\ \hline
10306 {\tt VBD ref } & self & reference to the object \\ \hline
10308 \end{tabular}
10310 \vspace{0.3cm}
10312 \noindent {\bf Return Type:}
10313 {\tt
10314 (string $\rightarrow$ string) Map
10318 value of the field
10319 \vspace{0.3cm}
10320 \vspace{0.3cm}
10321 \vspace{0.3cm}
10322 \subsubsection{RPC name:~set\_qos\_algorithm\_params}
10324 {\bf Overview:}
10325 Set the qos/algorithm\_params field of the given VBD.
10327 \noindent {\bf Signature:}
10328 \begin{verbatim} void set_qos_algorithm_params (session_id s, VBD ref self, (string -> string) Map value)\end{verbatim}
10331 \noindent{\bf Arguments:}
10334 \vspace{0.3cm}
10335 \begin{tabular}{|c|c|p{7cm}|}
10336 \hline
10337 {\bf type} & {\bf name} & {\bf description} \\ \hline
10338 {\tt VBD ref } & self & reference to the object \\ \hline
10340 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
10342 \end{tabular}
10344 \vspace{0.3cm}
10346 \noindent {\bf Return Type:}
10347 {\tt
10348 void
10353 \vspace{0.3cm}
10354 \vspace{0.3cm}
10355 \vspace{0.3cm}
10356 \subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
10358 {\bf Overview:}
10359 Add the given key-value pair to the qos/algorithm\_params field of the
10360 given VBD.
10362 \noindent {\bf Signature:}
10363 \begin{verbatim} void add_to_qos_algorithm_params (session_id s, VBD ref self, string key, string value)\end{verbatim}
10366 \noindent{\bf Arguments:}
10369 \vspace{0.3cm}
10370 \begin{tabular}{|c|c|p{7cm}|}
10371 \hline
10372 {\bf type} & {\bf name} & {\bf description} \\ \hline
10373 {\tt VBD ref } & self & reference to the object \\ \hline
10375 {\tt string } & key & Key to add \\ \hline
10377 {\tt string } & value & Value to add \\ \hline
10379 \end{tabular}
10381 \vspace{0.3cm}
10383 \noindent {\bf Return Type:}
10384 {\tt
10385 void
10390 \vspace{0.3cm}
10391 \vspace{0.3cm}
10392 \vspace{0.3cm}
10393 \subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
10395 {\bf Overview:}
10396 Remove the given key and its corresponding value from the
10397 qos/algorithm\_params field of the given VBD. If the key is not in that
10398 Map, then do nothing.
10400 \noindent {\bf Signature:}
10401 \begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VBD ref self, string key)\end{verbatim}
10404 \noindent{\bf Arguments:}
10407 \vspace{0.3cm}
10408 \begin{tabular}{|c|c|p{7cm}|}
10409 \hline
10410 {\bf type} & {\bf name} & {\bf description} \\ \hline
10411 {\tt VBD ref } & self & reference to the object \\ \hline
10413 {\tt string } & key & Key to remove \\ \hline
10415 \end{tabular}
10417 \vspace{0.3cm}
10419 \noindent {\bf Return Type:}
10420 {\tt
10421 void
10426 \vspace{0.3cm}
10427 \vspace{0.3cm}
10428 \vspace{0.3cm}
10429 \subsubsection{RPC name:~get\_qos\_supported\_algorithms}
10431 {\bf Overview:}
10432 Get the qos/supported\_algorithms field of the given VBD.
10434 \noindent {\bf Signature:}
10435 \begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VBD ref self)\end{verbatim}
10438 \noindent{\bf Arguments:}
10441 \vspace{0.3cm}
10442 \begin{tabular}{|c|c|p{7cm}|}
10443 \hline
10444 {\bf type} & {\bf name} & {\bf description} \\ \hline
10445 {\tt VBD ref } & self & reference to the object \\ \hline
10447 \end{tabular}
10449 \vspace{0.3cm}
10451 \noindent {\bf Return Type:}
10452 {\tt
10453 string Set
10457 value of the field
10458 \vspace{0.3cm}
10459 \vspace{0.3cm}
10460 \vspace{0.3cm}
10461 \subsubsection{RPC name:~get\_metrics}
10463 {\bf Overview:}
10464 Get the metrics field of the given VBD.
10466 \noindent {\bf Signature:}
10467 \begin{verbatim} (VBD_metrics ref) get_metrics (session_id s, VBD ref self)\end{verbatim}
10470 \noindent{\bf Arguments:}
10473 \vspace{0.3cm}
10474 \begin{tabular}{|c|c|p{7cm}|}
10475 \hline
10476 {\bf type} & {\bf name} & {\bf description} \\ \hline
10477 {\tt VBD ref } & self & reference to the object \\ \hline
10479 \end{tabular}
10481 \vspace{0.3cm}
10483 \noindent {\bf Return Type:}
10484 {\tt
10485 VBD\_metrics ref
10489 value of the field
10490 \vspace{0.3cm}
10491 \vspace{0.3cm}
10492 \vspace{0.3cm}
10493 \subsubsection{RPC name:~create}
10495 {\bf Overview:}
10496 Create a new VBD instance, and return its handle.
10498 \noindent {\bf Signature:}
10499 \begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
10502 \noindent{\bf Arguments:}
10505 \vspace{0.3cm}
10506 \begin{tabular}{|c|c|p{7cm}|}
10507 \hline
10508 {\bf type} & {\bf name} & {\bf description} \\ \hline
10509 {\tt VBD record } & args & All constructor arguments \\ \hline
10511 \end{tabular}
10513 \vspace{0.3cm}
10515 \noindent {\bf Return Type:}
10516 {\tt
10517 VBD ref
10521 reference to the newly created object
10522 \vspace{0.3cm}
10523 \vspace{0.3cm}
10524 \vspace{0.3cm}
10525 \subsubsection{RPC name:~destroy}
10527 {\bf Overview:}
10528 Destroy the specified VBD instance.
10530 \noindent {\bf Signature:}
10531 \begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
10534 \noindent{\bf Arguments:}
10537 \vspace{0.3cm}
10538 \begin{tabular}{|c|c|p{7cm}|}
10539 \hline
10540 {\bf type} & {\bf name} & {\bf description} \\ \hline
10541 {\tt VBD ref } & self & reference to the object \\ \hline
10543 \end{tabular}
10545 \vspace{0.3cm}
10547 \noindent {\bf Return Type:}
10548 {\tt
10549 void
10554 \vspace{0.3cm}
10555 \vspace{0.3cm}
10556 \vspace{0.3cm}
10557 \subsubsection{RPC name:~get\_by\_uuid}
10559 {\bf Overview:}
10560 Get a reference to the VBD instance with the specified UUID.
10562 \noindent {\bf Signature:}
10563 \begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10566 \noindent{\bf Arguments:}
10569 \vspace{0.3cm}
10570 \begin{tabular}{|c|c|p{7cm}|}
10571 \hline
10572 {\bf type} & {\bf name} & {\bf description} \\ \hline
10573 {\tt string } & uuid & UUID of object to return \\ \hline
10575 \end{tabular}
10577 \vspace{0.3cm}
10579 \noindent {\bf Return Type:}
10580 {\tt
10581 VBD ref
10585 reference to the object
10586 \vspace{0.3cm}
10587 \vspace{0.3cm}
10588 \vspace{0.3cm}
10589 \subsubsection{RPC name:~get\_record}
10591 {\bf Overview:}
10592 Get a record containing the current state of the given VBD.
10594 \noindent {\bf Signature:}
10595 \begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
10598 \noindent{\bf Arguments:}
10601 \vspace{0.3cm}
10602 \begin{tabular}{|c|c|p{7cm}|}
10603 \hline
10604 {\bf type} & {\bf name} & {\bf description} \\ \hline
10605 {\tt VBD ref } & self & reference to the object \\ \hline
10607 \end{tabular}
10609 \vspace{0.3cm}
10611 \noindent {\bf Return Type:}
10612 {\tt
10613 VBD record
10617 all fields from the object
10618 \vspace{0.3cm}
10619 \vspace{0.3cm}
10620 \vspace{0.3cm}
10622 \vspace{1cm}
10623 \newpage
10624 \section{Class: VBD\_metrics}
10625 \subsection{Fields for class: VBD\_metrics}
10626 \begin{longtable}{|lllp{0.38\textwidth}|}
10627 \hline
10628 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD\_metrics} \\
10629 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10630 The metrics associated with a virtual block device.}} \\
10631 \hline
10632 Quals & Field & Type & Description \\
10633 \hline
10634 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10635 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
10636 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
10637 \hline
10638 \end{longtable}
10639 \subsection{Additional RPCs associated with class: VBD\_metrics}
10640 \subsubsection{RPC name:~get\_uuid}
10642 {\bf Overview:}
10643 Get the uuid field of the given VBD\_metrics.
10645 \noindent {\bf Signature:}
10646 \begin{verbatim} string get_uuid (session_id s, VBD_metrics ref self)\end{verbatim}
10649 \noindent{\bf Arguments:}
10652 \vspace{0.3cm}
10653 \begin{tabular}{|c|c|p{7cm}|}
10654 \hline
10655 {\bf type} & {\bf name} & {\bf description} \\ \hline
10656 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10658 \end{tabular}
10660 \vspace{0.3cm}
10662 \noindent {\bf Return Type:}
10663 {\tt
10664 string
10668 value of the field
10669 \vspace{0.3cm}
10670 \vspace{0.3cm}
10671 \vspace{0.3cm}
10672 \subsubsection{RPC name:~get\_io\_read\_kbs}
10674 {\bf Overview:}
10675 Get the io/read\_kbs field of the given VBD\_metrics.
10677 \noindent {\bf Signature:}
10678 \begin{verbatim} float get_io_read_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
10681 \noindent{\bf Arguments:}
10684 \vspace{0.3cm}
10685 \begin{tabular}{|c|c|p{7cm}|}
10686 \hline
10687 {\bf type} & {\bf name} & {\bf description} \\ \hline
10688 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10690 \end{tabular}
10692 \vspace{0.3cm}
10694 \noindent {\bf Return Type:}
10695 {\tt
10696 float
10700 value of the field
10701 \vspace{0.3cm}
10702 \vspace{0.3cm}
10703 \vspace{0.3cm}
10704 \subsubsection{RPC name:~get\_io\_write\_kbs}
10706 {\bf Overview:}
10707 Get the io/write\_kbs field of the given VBD\_metrics.
10709 \noindent {\bf Signature:}
10710 \begin{verbatim} float get_io_write_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
10713 \noindent{\bf Arguments:}
10716 \vspace{0.3cm}
10717 \begin{tabular}{|c|c|p{7cm}|}
10718 \hline
10719 {\bf type} & {\bf name} & {\bf description} \\ \hline
10720 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10722 \end{tabular}
10724 \vspace{0.3cm}
10726 \noindent {\bf Return Type:}
10727 {\tt
10728 float
10732 value of the field
10733 \vspace{0.3cm}
10734 \vspace{0.3cm}
10735 \vspace{0.3cm}
10736 \subsubsection{RPC name:~get\_by\_uuid}
10738 {\bf Overview:}
10739 Get a reference to the VBD\_metrics instance with the specified UUID.
10741 \noindent {\bf Signature:}
10742 \begin{verbatim} (VBD_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10745 \noindent{\bf Arguments:}
10748 \vspace{0.3cm}
10749 \begin{tabular}{|c|c|p{7cm}|}
10750 \hline
10751 {\bf type} & {\bf name} & {\bf description} \\ \hline
10752 {\tt string } & uuid & UUID of object to return \\ \hline
10754 \end{tabular}
10756 \vspace{0.3cm}
10758 \noindent {\bf Return Type:}
10759 {\tt
10760 VBD\_metrics ref
10764 reference to the object
10765 \vspace{0.3cm}
10766 \vspace{0.3cm}
10767 \vspace{0.3cm}
10768 \subsubsection{RPC name:~get\_record}
10770 {\bf Overview:}
10771 Get a record containing the current state of the given VBD\_metrics.
10773 \noindent {\bf Signature:}
10774 \begin{verbatim} (VBD_metrics record) get_record (session_id s, VBD_metrics ref self)\end{verbatim}
10777 \noindent{\bf Arguments:}
10780 \vspace{0.3cm}
10781 \begin{tabular}{|c|c|p{7cm}|}
10782 \hline
10783 {\bf type} & {\bf name} & {\bf description} \\ \hline
10784 {\tt VBD\_metrics ref } & self & reference to the object \\ \hline
10786 \end{tabular}
10788 \vspace{0.3cm}
10790 \noindent {\bf Return Type:}
10791 {\tt
10792 VBD\_metrics record
10796 all fields from the object
10797 \vspace{0.3cm}
10798 \vspace{0.3cm}
10799 \vspace{0.3cm}
10801 \vspace{1cm}
10802 \newpage
10803 \section{Class: PBD}
10804 \subsection{Fields for class: PBD}
10805 \begin{longtable}{|lllp{0.38\textwidth}|}
10806 \hline
10807 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PBD} \\
10808 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
10809 The physical block devices through which hosts access SRs.}} \\
10810 \hline
10811 Quals & Field & Type & Description \\
10812 \hline
10813 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
10814 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine on which the pbd is available \\
10815 $\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & the storage repository that the pbd realises \\
10816 $\mathit{RO}_\mathit{ins}$ & {\tt device\_config} & (string $\rightarrow$ string) Map & a config string that is provided to the host's SR-backend-driver \\
10817 $\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the SR currently attached on this host? \\
10818 \hline
10819 \end{longtable}
10820 \subsection{Additional RPCs associated with class: PBD}
10821 \subsubsection{RPC name:~get\_uuid}
10823 {\bf Overview:}
10824 Get the uuid field of the given PBD.
10826 \noindent {\bf Signature:}
10827 \begin{verbatim} string get_uuid (session_id s, PBD ref self)\end{verbatim}
10830 \noindent{\bf Arguments:}
10833 \vspace{0.3cm}
10834 \begin{tabular}{|c|c|p{7cm}|}
10835 \hline
10836 {\bf type} & {\bf name} & {\bf description} \\ \hline
10837 {\tt PBD ref } & self & reference to the object \\ \hline
10839 \end{tabular}
10841 \vspace{0.3cm}
10843 \noindent {\bf Return Type:}
10844 {\tt
10845 string
10849 value of the field
10850 \vspace{0.3cm}
10851 \vspace{0.3cm}
10852 \vspace{0.3cm}
10853 \subsubsection{RPC name:~get\_host}
10855 {\bf Overview:}
10856 Get the host field of the given PBD.
10858 \noindent {\bf Signature:}
10859 \begin{verbatim} (host ref) get_host (session_id s, PBD ref self)\end{verbatim}
10862 \noindent{\bf Arguments:}
10865 \vspace{0.3cm}
10866 \begin{tabular}{|c|c|p{7cm}|}
10867 \hline
10868 {\bf type} & {\bf name} & {\bf description} \\ \hline
10869 {\tt PBD ref } & self & reference to the object \\ \hline
10871 \end{tabular}
10873 \vspace{0.3cm}
10875 \noindent {\bf Return Type:}
10876 {\tt
10877 host ref
10881 value of the field
10882 \vspace{0.3cm}
10883 \vspace{0.3cm}
10884 \vspace{0.3cm}
10885 \subsubsection{RPC name:~get\_SR}
10887 {\bf Overview:}
10888 Get the SR field of the given PBD.
10890 \noindent {\bf Signature:}
10891 \begin{verbatim} (SR ref) get_SR (session_id s, PBD ref self)\end{verbatim}
10894 \noindent{\bf Arguments:}
10897 \vspace{0.3cm}
10898 \begin{tabular}{|c|c|p{7cm}|}
10899 \hline
10900 {\bf type} & {\bf name} & {\bf description} \\ \hline
10901 {\tt PBD ref } & self & reference to the object \\ \hline
10903 \end{tabular}
10905 \vspace{0.3cm}
10907 \noindent {\bf Return Type:}
10908 {\tt
10909 SR ref
10913 value of the field
10914 \vspace{0.3cm}
10915 \vspace{0.3cm}
10916 \vspace{0.3cm}
10917 \subsubsection{RPC name:~get\_device\_config}
10919 {\bf Overview:}
10920 Get the device\_config field of the given PBD.
10922 \noindent {\bf Signature:}
10923 \begin{verbatim} ((string -> string) Map) get_device_config (session_id s, PBD ref self)\end{verbatim}
10926 \noindent{\bf Arguments:}
10929 \vspace{0.3cm}
10930 \begin{tabular}{|c|c|p{7cm}|}
10931 \hline
10932 {\bf type} & {\bf name} & {\bf description} \\ \hline
10933 {\tt PBD ref } & self & reference to the object \\ \hline
10935 \end{tabular}
10937 \vspace{0.3cm}
10939 \noindent {\bf Return Type:}
10940 {\tt
10941 (string $\rightarrow$ string) Map
10945 value of the field
10946 \vspace{0.3cm}
10947 \vspace{0.3cm}
10948 \vspace{0.3cm}
10949 \subsubsection{RPC name:~get\_currently\_attached}
10951 {\bf Overview:}
10952 Get the currently\_attached field of the given PBD.
10954 \noindent {\bf Signature:}
10955 \begin{verbatim} bool get_currently_attached (session_id s, PBD ref self)\end{verbatim}
10958 \noindent{\bf Arguments:}
10961 \vspace{0.3cm}
10962 \begin{tabular}{|c|c|p{7cm}|}
10963 \hline
10964 {\bf type} & {\bf name} & {\bf description} \\ \hline
10965 {\tt PBD ref } & self & reference to the object \\ \hline
10967 \end{tabular}
10969 \vspace{0.3cm}
10971 \noindent {\bf Return Type:}
10972 {\tt
10973 bool
10977 value of the field
10978 \vspace{0.3cm}
10979 \vspace{0.3cm}
10980 \vspace{0.3cm}
10981 \subsubsection{RPC name:~create}
10983 {\bf Overview:}
10984 Create a new PBD instance, and return its handle.
10986 \noindent {\bf Signature:}
10987 \begin{verbatim} (PBD ref) create (session_id s, PBD record args)\end{verbatim}
10990 \noindent{\bf Arguments:}
10993 \vspace{0.3cm}
10994 \begin{tabular}{|c|c|p{7cm}|}
10995 \hline
10996 {\bf type} & {\bf name} & {\bf description} \\ \hline
10997 {\tt PBD record } & args & All constructor arguments \\ \hline
10999 \end{tabular}
11001 \vspace{0.3cm}
11003 \noindent {\bf Return Type:}
11004 {\tt
11005 PBD ref
11009 reference to the newly created object
11010 \vspace{0.3cm}
11011 \vspace{0.3cm}
11012 \vspace{0.3cm}
11013 \subsubsection{RPC name:~destroy}
11015 {\bf Overview:}
11016 Destroy the specified PBD instance.
11018 \noindent {\bf Signature:}
11019 \begin{verbatim} void destroy (session_id s, PBD ref self)\end{verbatim}
11022 \noindent{\bf Arguments:}
11025 \vspace{0.3cm}
11026 \begin{tabular}{|c|c|p{7cm}|}
11027 \hline
11028 {\bf type} & {\bf name} & {\bf description} \\ \hline
11029 {\tt PBD ref } & self & reference to the object \\ \hline
11031 \end{tabular}
11033 \vspace{0.3cm}
11035 \noindent {\bf Return Type:}
11036 {\tt
11037 void
11042 \vspace{0.3cm}
11043 \vspace{0.3cm}