debuggers.hg

view docs/xen-api/xenapi-datamodel.tex @ 13715:f40528773629

Document new error codes VLAN_TAG_INVALID and PIF_IS_PHYSICAL.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
author Ewan Mellor <ewan@xensource.com>
date Sun Jan 28 13:50:56 2007 +0000 (2007-01-28)
parents 5e1c7022d4ad
children 1e88f0b736b5
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 host} & A physical host \\
29 {\tt host\_cpu} & A physical CPU \\
30 {\tt network} & A virtual network \\
31 {\tt VIF} & A virtual network interface \\
32 {\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
33 {\tt SR} & A storage repository \\
34 {\tt VDI} & A virtual disk image \\
35 {\tt VBD} & A virtual block device \\
36 {\tt VTPM} & A virtual TPM device \\
37 {\tt console} & A console \\
38 {\tt user} & A user of the system \\
39 {\tt debug} & A basic class for testing \\
40 \hline
41 \end{tabular}\end{center}
42 \section{Relationships Between Classes}
43 Fields that are bound together are shown in the following table:
44 \begin{center}\begin{tabular}{|ll|l|}
45 \hline
46 {\em object.field} & {\em object.field} & {\em relationship} \\
48 \hline
49 VDI.VBDs & VBD.VDI & many-to-one\\
50 VDI.parent & VDI.children & one-to-many\\
51 VBD.VM & VM.VBDs & one-to-many\\
52 VIF.VM & VM.VIFs & one-to-many\\
53 VIF.network & network.VIFs & one-to-many\\
54 PIF.host & host.PIFs & one-to-many\\
55 PIF.network & network.PIFs & one-to-many\\
56 SR.VDIs & VDI.SR & many-to-one\\
57 VTPM.VM & VM.VTPMs & one-to-many\\
58 console.VM & VM.consoles & one-to-many\\
59 host.resident\_VMs & VM.resident\_on & many-to-one\\
60 host.host\_CPUs & host\_cpu.host & many-to-one\\
61 \hline
62 \end{tabular}\end{center}
64 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
65 relationships:
67 \begin{center}\resizebox{0.8\textwidth}{!}{
68 \includegraphics{xenapi-datamodel-graph}
69 }\end{center}
70 \
71 \subsection{List of bound fields}
72 \section{Types}
73 \subsection{Primitives}
74 The following primitive types are used to specify methods and fields in the API Reference:
76 \begin{center}\begin{tabular}{|ll|}
77 \hline
78 Type & Description \\
79 \hline
80 String & text strings \\
81 Int & 64-bit integers \\
82 Float & IEEE double-precision floating-point numbers \\
83 Bool & boolean \\
84 DateTime & date and timestamp \\
85 Ref (object name) & reference to an object of class name \\
86 \hline
87 \end{tabular}\end{center}
88 \subsection{Higher order types}
89 The following type constructors are used:
91 \begin{center}\begin{tabular}{|ll|}
92 \hline
93 Type & Description \\
94 \hline
95 List (t) & an arbitrary-length list of elements of type t \\
96 Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
97 \hline
98 \end{tabular}\end{center}
99 \subsection{Enumeration types}
100 The following enumeration types are used:
102 \begin{longtable}{|ll|}
103 \hline
104 {\tt enum console\_protocol} & \\
105 \hline
106 \hspace{0.5cm}{\tt vt100} & VT100 terminal \\
107 \hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
108 \hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
109 \hline
110 \end{longtable}
112 \vspace{1cm}
113 \begin{longtable}{|ll|}
114 \hline
115 {\tt enum vdi\_type} & \\
116 \hline
117 \hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
118 \hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
119 \hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
120 \hline
121 \end{longtable}
123 \vspace{1cm}
124 \begin{longtable}{|ll|}
125 \hline
126 {\tt enum vm\_power\_state} & \\
127 \hline
128 \hspace{0.5cm}{\tt Halted} & Halted \\
129 \hspace{0.5cm}{\tt Paused} & Paused \\
130 \hspace{0.5cm}{\tt Running} & Running \\
131 \hspace{0.5cm}{\tt Suspended} & Suspended \\
132 \hspace{0.5cm}{\tt ShuttingDown} & Shutting Down \\
133 \hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
134 \hline
135 \end{longtable}
137 \vspace{1cm}
138 \begin{longtable}{|ll|}
139 \hline
140 {\tt enum task\_status\_type} & \\
141 \hline
142 \hspace{0.5cm}{\tt pending} & task is in progress \\
143 \hspace{0.5cm}{\tt success} & task was completed successfully \\
144 \hspace{0.5cm}{\tt failure} & task has failed \\
145 \hline
146 \end{longtable}
148 \vspace{1cm}
149 \begin{longtable}{|ll|}
150 \hline
151 {\tt enum cpu\_feature} & \\
152 \hline
153 \hspace{0.5cm}{\tt FPU} & Onboard FPU \\
154 \hspace{0.5cm}{\tt VME} & Virtual Mode Extensions \\
155 \hspace{0.5cm}{\tt DE} & Debugging Extensions \\
156 \hspace{0.5cm}{\tt PSE} & Page Size Extensions \\
157 \hspace{0.5cm}{\tt TSC} & Time Stamp Counter \\
158 \hspace{0.5cm}{\tt MSR} & Model-Specific Registers, RDMSR, WRMSR \\
159 \hspace{0.5cm}{\tt PAE} & Physical Address Extensions \\
160 \hspace{0.5cm}{\tt MCE} & Machine Check Architecture \\
161 \hspace{0.5cm}{\tt CX8} & CMPXCHG8 instruction \\
162 \hspace{0.5cm}{\tt APIC} & Onboard APIC \\
163 \hspace{0.5cm}{\tt SEP} & SYSENTER/SYSEXIT \\
164 \hspace{0.5cm}{\tt MTRR} & Memory Type Range Registers \\
165 \hspace{0.5cm}{\tt PGE} & Page Global Enable \\
166 \hspace{0.5cm}{\tt MCA} & Machine Check Architecture \\
167 \hspace{0.5cm}{\tt CMOV} & CMOV instruction (FCMOVCC and FCOMI too if FPU present) \\
168 \hspace{0.5cm}{\tt PAT} & Page Attribute Table \\
169 \hspace{0.5cm}{\tt PSE36} & 36-bit PSEs \\
170 \hspace{0.5cm}{\tt PN} & Processor serial number \\
171 \hspace{0.5cm}{\tt CLFLSH} & Supports the CLFLUSH instruction \\
172 \hspace{0.5cm}{\tt DTES} & Debug Trace Store \\
173 \hspace{0.5cm}{\tt ACPI} & ACPI via MSR \\
174 \hspace{0.5cm}{\tt MMX} & Multimedia Extensions \\
175 \hspace{0.5cm}{\tt FXSR} & FXSAVE and FXRSTOR instructions (fast save and restore \\
176 \hspace{0.5cm}{\tt XMM} & Streaming SIMD Extensions \\
177 \hspace{0.5cm}{\tt XMM2} & Streaming SIMD Extensions-2 \\
178 \hspace{0.5cm}{\tt SELFSNOOP} & CPU self snoop \\
179 \hspace{0.5cm}{\tt HT} & Hyper-Threading \\
180 \hspace{0.5cm}{\tt ACC} & Automatic clock control \\
181 \hspace{0.5cm}{\tt IA64} & IA-64 processor \\
182 \hspace{0.5cm}{\tt SYSCALL} & SYSCALL/SYSRET \\
183 \hspace{0.5cm}{\tt MP} & MP Capable. \\
184 \hspace{0.5cm}{\tt NX} & Execute Disable \\
185 \hspace{0.5cm}{\tt MMXEXT} & AMD MMX extensions \\
186 \hspace{0.5cm}{\tt LM} & Long Mode (x86-64) \\
187 \hspace{0.5cm}{\tt THREEDNOWEXT} & AMD 3DNow! extensions \\
188 \hspace{0.5cm}{\tt THREEDNOW} & 3DNow! \\
189 \hspace{0.5cm}{\tt RECOVERY} & CPU in recovery mode \\
190 \hspace{0.5cm}{\tt LONGRUN} & Longrun power control \\
191 \hspace{0.5cm}{\tt LRTI} & LongRun table interface \\
192 \hspace{0.5cm}{\tt CXMMX} & Cyrix MMX extensions \\
193 \hspace{0.5cm}{\tt K6\_MTRR} & AMD K6 nonstandard MTRRs \\
194 \hspace{0.5cm}{\tt CYRIX\_ARR} & Cyrix ARRs (= MTRRs) \\
195 \hspace{0.5cm}{\tt CENTAUR\_MCR} & Centaur MCRs (= MTRRs) \\
196 \hspace{0.5cm}{\tt K8} & Opteron, Athlon64 \\
197 \hspace{0.5cm}{\tt K7} & Athlon \\
198 \hspace{0.5cm}{\tt P3} & P3 \\
199 \hspace{0.5cm}{\tt P4} & P4 \\
200 \hspace{0.5cm}{\tt CONSTANT\_TSC} & TSC ticks at a constant rate \\
201 \hspace{0.5cm}{\tt FXSAVE\_LEAK} & FXSAVE leaks FOP/FIP/FOP \\
202 \hspace{0.5cm}{\tt XMM3} & Streaming SIMD Extensions-3 \\
203 \hspace{0.5cm}{\tt MWAIT} & Monitor/Mwait support \\
204 \hspace{0.5cm}{\tt DSCPL} & CPL Qualified Debug Store \\
205 \hspace{0.5cm}{\tt EST} & Enhanced SpeedStep \\
206 \hspace{0.5cm}{\tt TM2} & Thermal Monitor 2 \\
207 \hspace{0.5cm}{\tt CID} & Context ID \\
208 \hspace{0.5cm}{\tt CX16} & CMPXCHG16B \\
209 \hspace{0.5cm}{\tt XTPR} & Send Task Priority Messages \\
210 \hspace{0.5cm}{\tt XSTORE} & on-CPU RNG present (xstore insn) \\
211 \hspace{0.5cm}{\tt XSTORE\_EN} & on-CPU RNG enabled \\
212 \hspace{0.5cm}{\tt XCRYPT} & on-CPU crypto (xcrypt insn) \\
213 \hspace{0.5cm}{\tt XCRYPT\_EN} & on-CPU crypto enabled \\
214 \hspace{0.5cm}{\tt LAHF\_LM} & LAHF/SAHF in long mode \\
215 \hspace{0.5cm}{\tt CMP\_LEGACY} & If yes HyperThreading not valid \\
216 \hspace{0.5cm}{\tt VMX} & VMX instruction set \\
217 \hline
218 \end{longtable}
220 \vspace{1cm}
221 \begin{longtable}{|ll|}
222 \hline
223 {\tt enum on\_normal\_exit} & \\
224 \hline
225 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
226 \hspace{0.5cm}{\tt restart} & restart the VM \\
227 \hline
228 \end{longtable}
230 \vspace{1cm}
231 \begin{longtable}{|ll|}
232 \hline
233 {\tt enum on\_crash\_behaviour} & \\
234 \hline
235 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
236 \hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
237 \hspace{0.5cm}{\tt restart} & restart the VM \\
238 \hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
239 \hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
240 \hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
241 \hline
242 \end{longtable}
244 \vspace{1cm}
245 \begin{longtable}{|ll|}
246 \hline
247 {\tt enum vbd\_mode} & \\
248 \hline
249 \hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
250 \hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
251 \hline
252 \end{longtable}
254 \vspace{1cm}
255 \begin{longtable}{|ll|}
256 \hline
257 {\tt enum vbd\_type} & \\
258 \hline
259 \hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
260 \hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
261 \hline
262 \end{longtable}
264 \vspace{1cm}
265 \begin{longtable}{|ll|}
266 \hline
267 {\tt enum driver\_type} & \\
268 \hline
269 \hspace{0.5cm}{\tt ioemu} & use hardware emulation \\
270 \hspace{0.5cm}{\tt paravirtualised} & use paravirtualised driver \\
271 \hline
272 \end{longtable}
274 \vspace{1cm}
276 \newpage
277 \section{Class: session}
278 \subsection{Fields for class: session}
279 \begin{longtable}{|lllp{0.38\textwidth}|}
280 \hline
281 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
282 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A session}} \\
283 \hline
284 Quals & Field & Type & Description \\
285 \hline
286 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
287 $\mathit{RO}_\mathit{ins}$ & {\tt this\_host} & host ref & Currently connected host \\
288 $\mathit{RO}_\mathit{ins}$ & {\tt this\_user} & user ref & Currently connected user \\
289 $\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
290 \hline
291 \end{longtable}
292 \subsection{Additional RPCs associated with class: session}
293 \subsubsection{RPC name:~login\_with\_password}
295 {\bf Overview:}
296 Attempt to authenticate the user, returning a session\_id if successful
298 \noindent {\bf Signature:}
299 \begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
302 \noindent{\bf Arguments:}
305 \vspace{0.3cm}
306 \begin{tabular}{|c|c|p{7cm}|}
307 \hline
308 {\bf type} & {\bf name} & {\bf description} \\ \hline
309 {\tt string } & uname & Username for login. \\ \hline
311 {\tt string } & pwd & Password for login. \\ \hline
313 \end{tabular}
315 \vspace{0.3cm}
317 \noindent {\bf Return Type:}
318 {\tt
319 session ref
320 }
323 ID of newly created session
324 \vspace{0.3cm}
325 \vspace{0.3cm}
326 \vspace{0.3cm}
327 \subsubsection{RPC name:~logout}
329 {\bf Overview:}
330 Log out of a session
332 \noindent {\bf Signature:}
333 \begin{verbatim} void logout (session_id s)\end{verbatim}
336 \vspace{0.3cm}
338 \noindent {\bf Return Type:}
339 {\tt
340 void
341 }
345 \vspace{0.3cm}
346 \vspace{0.3cm}
347 \vspace{0.3cm}
348 \subsubsection{RPC name:~get\_uuid}
350 {\bf Overview:}
351 Get the uuid field of the given session.
353 \noindent {\bf Signature:}
354 \begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
357 \noindent{\bf Arguments:}
360 \vspace{0.3cm}
361 \begin{tabular}{|c|c|p{7cm}|}
362 \hline
363 {\bf type} & {\bf name} & {\bf description} \\ \hline
364 {\tt session ref } & self & reference to the object \\ \hline
366 \end{tabular}
368 \vspace{0.3cm}
370 \noindent {\bf Return Type:}
371 {\tt
372 string
373 }
376 value of the field
377 \vspace{0.3cm}
378 \vspace{0.3cm}
379 \vspace{0.3cm}
380 \subsubsection{RPC name:~get\_this\_host}
382 {\bf Overview:}
383 Get the this\_host field of the given session.
385 \noindent {\bf Signature:}
386 \begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
389 \noindent{\bf Arguments:}
392 \vspace{0.3cm}
393 \begin{tabular}{|c|c|p{7cm}|}
394 \hline
395 {\bf type} & {\bf name} & {\bf description} \\ \hline
396 {\tt session ref } & self & reference to the object \\ \hline
398 \end{tabular}
400 \vspace{0.3cm}
402 \noindent {\bf Return Type:}
403 {\tt
404 host ref
405 }
408 value of the field
409 \vspace{0.3cm}
410 \vspace{0.3cm}
411 \vspace{0.3cm}
412 \subsubsection{RPC name:~get\_this\_user}
414 {\bf Overview:}
415 Get the this\_user field of the given session.
417 \noindent {\bf Signature:}
418 \begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
421 \noindent{\bf Arguments:}
424 \vspace{0.3cm}
425 \begin{tabular}{|c|c|p{7cm}|}
426 \hline
427 {\bf type} & {\bf name} & {\bf description} \\ \hline
428 {\tt session ref } & self & reference to the object \\ \hline
430 \end{tabular}
432 \vspace{0.3cm}
434 \noindent {\bf Return Type:}
435 {\tt
436 user ref
437 }
440 value of the field
441 \vspace{0.3cm}
442 \vspace{0.3cm}
443 \vspace{0.3cm}
444 \subsubsection{RPC name:~get\_last\_active}
446 {\bf Overview:}
447 Get the last\_active field of the given session.
449 \noindent {\bf Signature:}
450 \begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
453 \noindent{\bf Arguments:}
456 \vspace{0.3cm}
457 \begin{tabular}{|c|c|p{7cm}|}
458 \hline
459 {\bf type} & {\bf name} & {\bf description} \\ \hline
460 {\tt session ref } & self & reference to the object \\ \hline
462 \end{tabular}
464 \vspace{0.3cm}
466 \noindent {\bf Return Type:}
467 {\tt
468 int
469 }
472 value of the field
473 \vspace{0.3cm}
474 \vspace{0.3cm}
475 \vspace{0.3cm}
476 \subsubsection{RPC name:~get\_by\_uuid}
478 {\bf Overview:}
479 Get a reference to the session instance with the specified UUID.
481 \noindent {\bf Signature:}
482 \begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
485 \noindent{\bf Arguments:}
488 \vspace{0.3cm}
489 \begin{tabular}{|c|c|p{7cm}|}
490 \hline
491 {\bf type} & {\bf name} & {\bf description} \\ \hline
492 {\tt string } & uuid & UUID of object to return \\ \hline
494 \end{tabular}
496 \vspace{0.3cm}
498 \noindent {\bf Return Type:}
499 {\tt
500 session ref
501 }
504 reference to the object
505 \vspace{0.3cm}
506 \vspace{0.3cm}
507 \vspace{0.3cm}
508 \subsubsection{RPC name:~get\_record}
510 {\bf Overview:}
511 Get a record containing the current state of the given session.
513 \noindent {\bf Signature:}
514 \begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
517 \noindent{\bf Arguments:}
520 \vspace{0.3cm}
521 \begin{tabular}{|c|c|p{7cm}|}
522 \hline
523 {\bf type} & {\bf name} & {\bf description} \\ \hline
524 {\tt session ref } & self & reference to the object \\ \hline
526 \end{tabular}
528 \vspace{0.3cm}
530 \noindent {\bf Return Type:}
531 {\tt
532 session record
533 }
536 all fields from the object
537 \vspace{0.3cm}
538 \vspace{0.3cm}
539 \vspace{0.3cm}
541 \vspace{1cm}
542 \newpage
543 \section{Class: task}
544 \subsection{Fields for class: task}
545 \begin{longtable}{|lllp{0.38\textwidth}|}
546 \hline
547 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
548 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A long-running asynchronous task}} \\
549 \hline
550 Quals & Field & Type & Description \\
551 \hline
552 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
553 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
554 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
555 $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
556 $\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. \\
557 $\mathit{RO}_\mathit{run}$ & {\tt eta} & datetime & if the task is still pending, this field contains the estimated completion time. If the task has finished (successfully or not) it contains the time the task finished. \\
558 $\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. \\
559 $\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. \\
560 $\mathit{RO}_\mathit{run}$ & {\tt error\_code} & int & if the task has failed, this field contains the error code. Undefined otherwise. \\
561 $\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. \\
562 \hline
563 \end{longtable}
564 \subsection{Additional RPCs associated with class: task}
565 \subsubsection{RPC name:~get\_all}
567 {\bf Overview:}
568 Return a list of all the tasks known to the system.
570 \noindent {\bf Signature:}
571 \begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
574 \vspace{0.3cm}
576 \noindent {\bf Return Type:}
577 {\tt
578 (task ref) Set
579 }
582 references to all objects
583 \vspace{0.3cm}
584 \vspace{0.3cm}
585 \vspace{0.3cm}
586 \subsubsection{RPC name:~get\_uuid}
588 {\bf Overview:}
589 Get the uuid field of the given task.
591 \noindent {\bf Signature:}
592 \begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
595 \noindent{\bf Arguments:}
598 \vspace{0.3cm}
599 \begin{tabular}{|c|c|p{7cm}|}
600 \hline
601 {\bf type} & {\bf name} & {\bf description} \\ \hline
602 {\tt task ref } & self & reference to the object \\ \hline
604 \end{tabular}
606 \vspace{0.3cm}
608 \noindent {\bf Return Type:}
609 {\tt
610 string
611 }
614 value of the field
615 \vspace{0.3cm}
616 \vspace{0.3cm}
617 \vspace{0.3cm}
618 \subsubsection{RPC name:~get\_name\_label}
620 {\bf Overview:}
621 Get the name/label field of the given task.
623 \noindent {\bf Signature:}
624 \begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
627 \noindent{\bf Arguments:}
630 \vspace{0.3cm}
631 \begin{tabular}{|c|c|p{7cm}|}
632 \hline
633 {\bf type} & {\bf name} & {\bf description} \\ \hline
634 {\tt task ref } & self & reference to the object \\ \hline
636 \end{tabular}
638 \vspace{0.3cm}
640 \noindent {\bf Return Type:}
641 {\tt
642 string
643 }
646 value of the field
647 \vspace{0.3cm}
648 \vspace{0.3cm}
649 \vspace{0.3cm}
650 \subsubsection{RPC name:~set\_name\_label}
652 {\bf Overview:}
653 Set the name/label field of the given task.
655 \noindent {\bf Signature:}
656 \begin{verbatim} void set_name_label (session_id s, task ref self, string value)\end{verbatim}
659 \noindent{\bf Arguments:}
662 \vspace{0.3cm}
663 \begin{tabular}{|c|c|p{7cm}|}
664 \hline
665 {\bf type} & {\bf name} & {\bf description} \\ \hline
666 {\tt task ref } & self & reference to the object \\ \hline
668 {\tt string } & value & New value to set \\ \hline
670 \end{tabular}
672 \vspace{0.3cm}
674 \noindent {\bf Return Type:}
675 {\tt
676 void
677 }
681 \vspace{0.3cm}
682 \vspace{0.3cm}
683 \vspace{0.3cm}
684 \subsubsection{RPC name:~get\_name\_description}
686 {\bf Overview:}
687 Get the name/description field of the given task.
689 \noindent {\bf Signature:}
690 \begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
693 \noindent{\bf Arguments:}
696 \vspace{0.3cm}
697 \begin{tabular}{|c|c|p{7cm}|}
698 \hline
699 {\bf type} & {\bf name} & {\bf description} \\ \hline
700 {\tt task ref } & self & reference to the object \\ \hline
702 \end{tabular}
704 \vspace{0.3cm}
706 \noindent {\bf Return Type:}
707 {\tt
708 string
709 }
712 value of the field
713 \vspace{0.3cm}
714 \vspace{0.3cm}
715 \vspace{0.3cm}
716 \subsubsection{RPC name:~set\_name\_description}
718 {\bf Overview:}
719 Set the name/description field of the given task.
721 \noindent {\bf Signature:}
722 \begin{verbatim} void set_name_description (session_id s, task ref self, string value)\end{verbatim}
725 \noindent{\bf Arguments:}
728 \vspace{0.3cm}
729 \begin{tabular}{|c|c|p{7cm}|}
730 \hline
731 {\bf type} & {\bf name} & {\bf description} \\ \hline
732 {\tt task ref } & self & reference to the object \\ \hline
734 {\tt string } & value & New value to set \\ \hline
736 \end{tabular}
738 \vspace{0.3cm}
740 \noindent {\bf Return Type:}
741 {\tt
742 void
743 }
747 \vspace{0.3cm}
748 \vspace{0.3cm}
749 \vspace{0.3cm}
750 \subsubsection{RPC name:~get\_status}
752 {\bf Overview:}
753 Get the status field of the given task.
755 \noindent {\bf Signature:}
756 \begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
759 \noindent{\bf Arguments:}
762 \vspace{0.3cm}
763 \begin{tabular}{|c|c|p{7cm}|}
764 \hline
765 {\bf type} & {\bf name} & {\bf description} \\ \hline
766 {\tt task ref } & self & reference to the object \\ \hline
768 \end{tabular}
770 \vspace{0.3cm}
772 \noindent {\bf Return Type:}
773 {\tt
774 task\_status\_type
775 }
778 value of the field
779 \vspace{0.3cm}
780 \vspace{0.3cm}
781 \vspace{0.3cm}
782 \subsubsection{RPC name:~get\_progress}
784 {\bf Overview:}
785 Get the progress field of the given task.
787 \noindent {\bf Signature:}
788 \begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
791 \noindent{\bf Arguments:}
794 \vspace{0.3cm}
795 \begin{tabular}{|c|c|p{7cm}|}
796 \hline
797 {\bf type} & {\bf name} & {\bf description} \\ \hline
798 {\tt task ref } & self & reference to the object \\ \hline
800 \end{tabular}
802 \vspace{0.3cm}
804 \noindent {\bf Return Type:}
805 {\tt
806 int
807 }
810 value of the field
811 \vspace{0.3cm}
812 \vspace{0.3cm}
813 \vspace{0.3cm}
814 \subsubsection{RPC name:~get\_eta}
816 {\bf Overview:}
817 Get the eta field of the given task.
819 \noindent {\bf Signature:}
820 \begin{verbatim} datetime get_eta (session_id s, task ref self)\end{verbatim}
823 \noindent{\bf Arguments:}
826 \vspace{0.3cm}
827 \begin{tabular}{|c|c|p{7cm}|}
828 \hline
829 {\bf type} & {\bf name} & {\bf description} \\ \hline
830 {\tt task ref } & self & reference to the object \\ \hline
832 \end{tabular}
834 \vspace{0.3cm}
836 \noindent {\bf Return Type:}
837 {\tt
838 datetime
839 }
842 value of the field
843 \vspace{0.3cm}
844 \vspace{0.3cm}
845 \vspace{0.3cm}
846 \subsubsection{RPC name:~get\_type}
848 {\bf Overview:}
849 Get the type field of the given task.
851 \noindent {\bf Signature:}
852 \begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
855 \noindent{\bf Arguments:}
858 \vspace{0.3cm}
859 \begin{tabular}{|c|c|p{7cm}|}
860 \hline
861 {\bf type} & {\bf name} & {\bf description} \\ \hline
862 {\tt task ref } & self & reference to the object \\ \hline
864 \end{tabular}
866 \vspace{0.3cm}
868 \noindent {\bf Return Type:}
869 {\tt
870 string
871 }
874 value of the field
875 \vspace{0.3cm}
876 \vspace{0.3cm}
877 \vspace{0.3cm}
878 \subsubsection{RPC name:~get\_result}
880 {\bf Overview:}
881 Get the result field of the given task.
883 \noindent {\bf Signature:}
884 \begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
887 \noindent{\bf Arguments:}
890 \vspace{0.3cm}
891 \begin{tabular}{|c|c|p{7cm}|}
892 \hline
893 {\bf type} & {\bf name} & {\bf description} \\ \hline
894 {\tt task ref } & self & reference to the object \\ \hline
896 \end{tabular}
898 \vspace{0.3cm}
900 \noindent {\bf Return Type:}
901 {\tt
902 string
903 }
906 value of the field
907 \vspace{0.3cm}
908 \vspace{0.3cm}
909 \vspace{0.3cm}
910 \subsubsection{RPC name:~get\_error\_code}
912 {\bf Overview:}
913 Get the error\_code field of the given task.
915 \noindent {\bf Signature:}
916 \begin{verbatim} int get_error_code (session_id s, task ref self)\end{verbatim}
919 \noindent{\bf Arguments:}
922 \vspace{0.3cm}
923 \begin{tabular}{|c|c|p{7cm}|}
924 \hline
925 {\bf type} & {\bf name} & {\bf description} \\ \hline
926 {\tt task ref } & self & reference to the object \\ \hline
928 \end{tabular}
930 \vspace{0.3cm}
932 \noindent {\bf Return Type:}
933 {\tt
934 int
935 }
938 value of the field
939 \vspace{0.3cm}
940 \vspace{0.3cm}
941 \vspace{0.3cm}
942 \subsubsection{RPC name:~get\_error\_info}
944 {\bf Overview:}
945 Get the error\_info field of the given task.
947 \noindent {\bf Signature:}
948 \begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
951 \noindent{\bf Arguments:}
954 \vspace{0.3cm}
955 \begin{tabular}{|c|c|p{7cm}|}
956 \hline
957 {\bf type} & {\bf name} & {\bf description} \\ \hline
958 {\tt task ref } & self & reference to the object \\ \hline
960 \end{tabular}
962 \vspace{0.3cm}
964 \noindent {\bf Return Type:}
965 {\tt
966 string Set
967 }
970 value of the field
971 \vspace{0.3cm}
972 \vspace{0.3cm}
973 \vspace{0.3cm}
974 \subsubsection{RPC name:~get\_by\_uuid}
976 {\bf Overview:}
977 Get a reference to the task instance with the specified UUID.
979 \noindent {\bf Signature:}
980 \begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
983 \noindent{\bf Arguments:}
986 \vspace{0.3cm}
987 \begin{tabular}{|c|c|p{7cm}|}
988 \hline
989 {\bf type} & {\bf name} & {\bf description} \\ \hline
990 {\tt string } & uuid & UUID of object to return \\ \hline
992 \end{tabular}
994 \vspace{0.3cm}
996 \noindent {\bf Return Type:}
997 {\tt
998 task ref
999 }
1002 reference to the object
1003 \vspace{0.3cm}
1004 \vspace{0.3cm}
1005 \vspace{0.3cm}
1006 \subsubsection{RPC name:~get\_record}
1008 {\bf Overview:}
1009 Get a record containing the current state of the given task.
1011 \noindent {\bf Signature:}
1012 \begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
1015 \noindent{\bf Arguments:}
1018 \vspace{0.3cm}
1019 \begin{tabular}{|c|c|p{7cm}|}
1020 \hline
1021 {\bf type} & {\bf name} & {\bf description} \\ \hline
1022 {\tt task ref } & self & reference to the object \\ \hline
1024 \end{tabular}
1026 \vspace{0.3cm}
1028 \noindent {\bf Return Type:}
1029 {\tt
1030 task record
1034 all fields from the object
1035 \vspace{0.3cm}
1036 \vspace{0.3cm}
1037 \vspace{0.3cm}
1038 \subsubsection{RPC name:~get\_by\_name\_label}
1040 {\bf Overview:}
1041 Get all the task instances with the given label.
1043 \noindent {\bf Signature:}
1044 \begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
1047 \noindent{\bf Arguments:}
1050 \vspace{0.3cm}
1051 \begin{tabular}{|c|c|p{7cm}|}
1052 \hline
1053 {\bf type} & {\bf name} & {\bf description} \\ \hline
1054 {\tt string } & label & label of object to return \\ \hline
1056 \end{tabular}
1058 \vspace{0.3cm}
1060 \noindent {\bf Return Type:}
1061 {\tt
1062 (task ref) Set
1066 references to objects with match names
1067 \vspace{0.3cm}
1068 \vspace{0.3cm}
1069 \vspace{0.3cm}
1071 \vspace{1cm}
1072 \newpage
1073 \section{Class: VM}
1074 \subsection{Fields for class: VM}
1075 \begin{longtable}{|lllp{0.38\textwidth}|}
1076 \hline
1077 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
1078 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual machine (or 'guest').
1080 VM booting is controlled by setting one of the two mutually exclusive
1081 groups: "PV", and "HVM". If HVM.boot is the empty string, then paravirtual
1082 domain building and booting will be used; otherwise the VM will be loaded
1083 as an HVM domain, and booted using an emulated BIOS.
1085 When paravirtual booting is in use, the PV/bootloader field indicates the
1086 bootloader to use. It may be "pygrub", in which case the platform's
1087 default installation of pygrub will be used, or a full path within the
1088 control domain to some other bootloader. The other fields, PV/kernel,
1089 PV/ramdisk, PV/args and PV/bootloader\_args will be passed to the
1090 bootloader unmodified, and interpretation of those fields is then specific
1091 to the bootloader itself, including the possibility that the bootloader
1092 will ignore some or all of those given values.
1094 If the bootloader is pygrub, then the menu.lst is parsed if present in the
1095 guest's filesystem, otherwise the specified kernel and ramdisk are used, or
1096 an autodetected kernel is used if nothing is specified and autodetection is
1097 possible. PV/args is appended to the kernel command line, no matter which
1098 mechanism is used for finding the kernel.
1100 If PV/bootloader is empty but PV/kernel is specified, then the kernel and
1101 ramdisk values will be treated as paths within the control domain. If both
1102 PV/bootloader and PV/kernel are empty, then the behaviour is as if
1103 PV/bootloader was specified as "pygrub".
1105 When using HVM booting, HVM/boot specifies the order of the boot devices}} \\
1106 \hline
1107 Quals & Field & Type & Description \\
1108 \hline
1109 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
1110 $\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
1111 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
1112 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
1113 $\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
1114 $\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 \\
1115 $\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
1116 $\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
1117 $\mathit{RO}_\mathit{ins}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
1118 $\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
1119 $\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual usage (bytes) \\
1120 $\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
1121 $\mathit{RO}_\mathit{ins}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) mininum (bytes) \\
1122 $\mathit{RW}$ & {\tt VCPUs/policy} & string & the name of the VCPU scheduling policy to be applied \\
1123 $\mathit{RW}$ & {\tt VCPUs/params} & string & string-encoded parameters passed to selected VCPU policy \\
1124 $\mathit{RW}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
1125 $\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
1126 $\mathit{RO}_\mathit{ins}$ & {\tt VCPUs/features/required} & (cpu\_feature) Set & CPU features the guest demands the host supports \\
1127 $\mathit{RO}_\mathit{ins}$ & {\tt VCPUs/features/can\_use} & (cpu\_feature) Set & CPU features the guest can use if available \\
1128 $\mathit{RW}$ & {\tt VCPUs/features/force\_on} & (cpu\_feature) Set & CPU features to expose to the guest above the bare minimum \\
1129 $\mathit{RW}$ & {\tt VCPUs/features/force\_off} & (cpu\_feature) Set & CPU features to hide to the guest \\
1130 $\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
1131 $\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
1132 $\mathit{RW}$ & {\tt actions/after\_suspend} & on\_normal\_exit & action to take after the guest has suspended itself \\
1133 $\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
1134 $\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
1135 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
1136 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
1137 $\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
1138 $\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
1139 $\mathit{RW}$ & {\tt PV/kernel} & string & path to the kernel \\
1140 $\mathit{RW}$ & {\tt PV/ramdisk} & string & path to the initrd \\
1141 $\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
1142 $\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
1143 $\mathit{RW}$ & {\tt HVM/boot} & string & device boot order \\
1144 $\mathit{RW}$ & {\tt platform/std\_VGA} & bool & emulate standard VGA instead of cirrus logic \\
1145 $\mathit{RW}$ & {\tt platform/serial} & string & redirect serial port to pty \\
1146 $\mathit{RW}$ & {\tt platform/localtime} & bool & set RTC to local time \\
1147 $\mathit{RW}$ & {\tt platform/clock\_offset} & bool & timeshift applied to guest's clock \\
1148 $\mathit{RW}$ & {\tt platform/enable\_audio} & bool & emulate audio \\
1149 $\mathit{RO}_\mathit{ins}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
1150 $\mathit{RO}_\mathit{run}$ & {\tt tools\_version} & (string $\rightarrow$ string) Map & versions of installed paravirtualised drivers \\
1151 $\mathit{RW}$ & {\tt otherConfig} & (string $\rightarrow$ string) Map & additional configuration \\
1152 \hline
1153 \end{longtable}
1154 \subsection{Additional RPCs associated with class: VM}
1155 \subsubsection{RPC name:~clone}
1157 {\bf Overview:}
1158 Clones the specified VM, making a new VM. Clone automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write). This function can only be called when the VM is in the Halted State.
1160 \noindent {\bf Signature:}
1161 \begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
1164 \noindent{\bf Arguments:}
1167 \vspace{0.3cm}
1168 \begin{tabular}{|c|c|p{7cm}|}
1169 \hline
1170 {\bf type} & {\bf name} & {\bf description} \\ \hline
1171 {\tt VM ref } & vm & The VM to be cloned \\ \hline
1173 {\tt string } & new\_name & The name of the cloned VM \\ \hline
1175 \end{tabular}
1177 \vspace{0.3cm}
1179 \noindent {\bf Return Type:}
1180 {\tt
1181 VM ref
1185 The ID of the newly created VM.
1186 \vspace{0.3cm}
1188 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1190 \vspace{0.6cm}
1191 \subsubsection{RPC name:~start}
1193 {\bf Overview:}
1194 Start the specified VM. This function can only be called with the VM is in the Halted State.
1196 \noindent {\bf Signature:}
1197 \begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1200 \noindent{\bf Arguments:}
1203 \vspace{0.3cm}
1204 \begin{tabular}{|c|c|p{7cm}|}
1205 \hline
1206 {\bf type} & {\bf name} & {\bf description} \\ \hline
1207 {\tt VM ref } & vm & The VM to start \\ \hline
1209 {\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
1211 \end{tabular}
1213 \vspace{0.3cm}
1215 \noindent {\bf Return Type:}
1216 {\tt
1217 void
1222 \vspace{0.3cm}
1224 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1226 \vspace{0.6cm}
1227 \subsubsection{RPC name:~pause}
1229 {\bf Overview:}
1230 Pause the specified VM. This can only be called when the specified VM is in the Running state.
1232 \noindent {\bf Signature:}
1233 \begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
1236 \noindent{\bf Arguments:}
1239 \vspace{0.3cm}
1240 \begin{tabular}{|c|c|p{7cm}|}
1241 \hline
1242 {\bf type} & {\bf name} & {\bf description} \\ \hline
1243 {\tt VM ref } & vm & The VM to pause \\ \hline
1245 \end{tabular}
1247 \vspace{0.3cm}
1249 \noindent {\bf Return Type:}
1250 {\tt
1251 void
1256 \vspace{0.3cm}
1258 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1260 \vspace{0.6cm}
1261 \subsubsection{RPC name:~unpause}
1263 {\bf Overview:}
1264 Resume the specified VM. This can only be called when the specified VM is in the Paused state.
1266 \noindent {\bf Signature:}
1267 \begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
1270 \noindent{\bf Arguments:}
1273 \vspace{0.3cm}
1274 \begin{tabular}{|c|c|p{7cm}|}
1275 \hline
1276 {\bf type} & {\bf name} & {\bf description} \\ \hline
1277 {\tt VM ref } & vm & The VM to unpause \\ \hline
1279 \end{tabular}
1281 \vspace{0.3cm}
1283 \noindent {\bf Return Type:}
1284 {\tt
1285 void
1290 \vspace{0.3cm}
1292 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1294 \vspace{0.6cm}
1295 \subsubsection{RPC name:~clean\_shutdown}
1297 {\bf Overview:}
1298 Attempt to cleanly shutdown the specified VM. (Note: this may not be supported---e.g. if a guest agent is not installed).
1300 Once shutdown has been completed perform poweroff action specified in guest configuration.
1302 This can only be called when the specified VM is in the Running state.
1304 \noindent {\bf Signature:}
1305 \begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
1308 \noindent{\bf Arguments:}
1311 \vspace{0.3cm}
1312 \begin{tabular}{|c|c|p{7cm}|}
1313 \hline
1314 {\bf type} & {\bf name} & {\bf description} \\ \hline
1315 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1317 \end{tabular}
1319 \vspace{0.3cm}
1321 \noindent {\bf Return Type:}
1322 {\tt
1323 void
1328 \vspace{0.3cm}
1330 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1332 \vspace{0.6cm}
1333 \subsubsection{RPC name:~clean\_reboot}
1335 {\bf Overview:}
1336 Attempt to cleanly shutdown the specified VM (Note: this may not be supported---e.g. if a guest agent is not installed).
1338 Once shutdown has been completed perform reboot action specified in guest configuration.
1340 This can only be called when the specified VM is in the Running state.
1342 \noindent {\bf Signature:}
1343 \begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
1346 \noindent{\bf Arguments:}
1349 \vspace{0.3cm}
1350 \begin{tabular}{|c|c|p{7cm}|}
1351 \hline
1352 {\bf type} & {\bf name} & {\bf description} \\ \hline
1353 {\tt VM ref } & vm & The VM to shutdown \\ \hline
1355 \end{tabular}
1357 \vspace{0.3cm}
1359 \noindent {\bf Return Type:}
1360 {\tt
1361 void
1366 \vspace{0.3cm}
1368 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1370 \vspace{0.6cm}
1371 \subsubsection{RPC name:~hard\_shutdown}
1373 {\bf Overview:}
1374 Stop executing the specified VM without attempting a clean shutdown. Then perform poweroff action specified in VM configuration.
1376 \noindent {\bf Signature:}
1377 \begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
1380 \noindent{\bf Arguments:}
1383 \vspace{0.3cm}
1384 \begin{tabular}{|c|c|p{7cm}|}
1385 \hline
1386 {\bf type} & {\bf name} & {\bf description} \\ \hline
1387 {\tt VM ref } & vm & The VM to destroy \\ \hline
1389 \end{tabular}
1391 \vspace{0.3cm}
1393 \noindent {\bf Return Type:}
1394 {\tt
1395 void
1400 \vspace{0.3cm}
1401 \vspace{0.3cm}
1402 \vspace{0.3cm}
1403 \subsubsection{RPC name:~hard\_reboot}
1405 {\bf Overview:}
1406 Stop executing the specified VM without attempting a clean shutdown. Then perform reboot action specified in VM configuration
1408 \noindent {\bf Signature:}
1409 \begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
1412 \noindent{\bf Arguments:}
1415 \vspace{0.3cm}
1416 \begin{tabular}{|c|c|p{7cm}|}
1417 \hline
1418 {\bf type} & {\bf name} & {\bf description} \\ \hline
1419 {\tt VM ref } & vm & The VM to reboot \\ \hline
1421 \end{tabular}
1423 \vspace{0.3cm}
1425 \noindent {\bf Return Type:}
1426 {\tt
1427 void
1432 \vspace{0.3cm}
1433 \vspace{0.3cm}
1434 \vspace{0.3cm}
1435 \subsubsection{RPC name:~suspend}
1437 {\bf Overview:}
1438 Suspend the specified VM to disk. This can only be called when the specified VM is in the Running state.
1440 \noindent {\bf Signature:}
1441 \begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
1444 \noindent{\bf Arguments:}
1447 \vspace{0.3cm}
1448 \begin{tabular}{|c|c|p{7cm}|}
1449 \hline
1450 {\bf type} & {\bf name} & {\bf description} \\ \hline
1451 {\tt VM ref } & vm & The VM to hibernate \\ \hline
1453 \end{tabular}
1455 \vspace{0.3cm}
1457 \noindent {\bf Return Type:}
1458 {\tt
1459 void
1464 \vspace{0.3cm}
1466 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1468 \vspace{0.6cm}
1469 \subsubsection{RPC name:~resume}
1471 {\bf Overview:}
1472 Awaken the specified VM and resume it. This can only be called when the specified VM is in the Suspended state.
1474 \noindent {\bf Signature:}
1475 \begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
1478 \noindent{\bf Arguments:}
1481 \vspace{0.3cm}
1482 \begin{tabular}{|c|c|p{7cm}|}
1483 \hline
1484 {\bf type} & {\bf name} & {\bf description} \\ \hline
1485 {\tt VM ref } & vm & The VM to unhibernate \\ \hline
1487 {\tt bool } & start\_paused & Unhibernate VM in paused state if set to true. \\ \hline
1489 \end{tabular}
1491 \vspace{0.3cm}
1493 \noindent {\bf Return Type:}
1494 {\tt
1495 void
1500 \vspace{0.3cm}
1502 \noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
1504 \vspace{0.6cm}
1505 \subsubsection{RPC name:~get\_all}
1507 {\bf Overview:}
1508 Return a list of all the VMs known to the system.
1510 \noindent {\bf Signature:}
1511 \begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
1514 \vspace{0.3cm}
1516 \noindent {\bf Return Type:}
1517 {\tt
1518 (VM ref) Set
1522 A list of all the IDs of all the VMs
1523 \vspace{0.3cm}
1524 \vspace{0.3cm}
1525 \vspace{0.3cm}
1526 \subsubsection{RPC name:~get\_uuid}
1528 {\bf Overview:}
1529 Get the uuid field of the given VM.
1531 \noindent {\bf Signature:}
1532 \begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
1535 \noindent{\bf Arguments:}
1538 \vspace{0.3cm}
1539 \begin{tabular}{|c|c|p{7cm}|}
1540 \hline
1541 {\bf type} & {\bf name} & {\bf description} \\ \hline
1542 {\tt VM ref } & self & reference to the object \\ \hline
1544 \end{tabular}
1546 \vspace{0.3cm}
1548 \noindent {\bf Return Type:}
1549 {\tt
1550 string
1554 value of the field
1555 \vspace{0.3cm}
1556 \vspace{0.3cm}
1557 \vspace{0.3cm}
1558 \subsubsection{RPC name:~get\_power\_state}
1560 {\bf Overview:}
1561 Get the power\_state field of the given VM.
1563 \noindent {\bf Signature:}
1564 \begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
1567 \noindent{\bf Arguments:}
1570 \vspace{0.3cm}
1571 \begin{tabular}{|c|c|p{7cm}|}
1572 \hline
1573 {\bf type} & {\bf name} & {\bf description} \\ \hline
1574 {\tt VM ref } & self & reference to the object \\ \hline
1576 \end{tabular}
1578 \vspace{0.3cm}
1580 \noindent {\bf Return Type:}
1581 {\tt
1582 vm\_power\_state
1586 value of the field
1587 \vspace{0.3cm}
1588 \vspace{0.3cm}
1589 \vspace{0.3cm}
1590 \subsubsection{RPC name:~get\_name\_label}
1592 {\bf Overview:}
1593 Get the name/label field of the given VM.
1595 \noindent {\bf Signature:}
1596 \begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
1599 \noindent{\bf Arguments:}
1602 \vspace{0.3cm}
1603 \begin{tabular}{|c|c|p{7cm}|}
1604 \hline
1605 {\bf type} & {\bf name} & {\bf description} \\ \hline
1606 {\tt VM ref } & self & reference to the object \\ \hline
1608 \end{tabular}
1610 \vspace{0.3cm}
1612 \noindent {\bf Return Type:}
1613 {\tt
1614 string
1618 value of the field
1619 \vspace{0.3cm}
1620 \vspace{0.3cm}
1621 \vspace{0.3cm}
1622 \subsubsection{RPC name:~set\_name\_label}
1624 {\bf Overview:}
1625 Set the name/label field of the given VM.
1627 \noindent {\bf Signature:}
1628 \begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
1631 \noindent{\bf Arguments:}
1634 \vspace{0.3cm}
1635 \begin{tabular}{|c|c|p{7cm}|}
1636 \hline
1637 {\bf type} & {\bf name} & {\bf description} \\ \hline
1638 {\tt VM ref } & self & reference to the object \\ \hline
1640 {\tt string } & value & New value to set \\ \hline
1642 \end{tabular}
1644 \vspace{0.3cm}
1646 \noindent {\bf Return Type:}
1647 {\tt
1648 void
1653 \vspace{0.3cm}
1654 \vspace{0.3cm}
1655 \vspace{0.3cm}
1656 \subsubsection{RPC name:~get\_name\_description}
1658 {\bf Overview:}
1659 Get the name/description field of the given VM.
1661 \noindent {\bf Signature:}
1662 \begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
1665 \noindent{\bf Arguments:}
1668 \vspace{0.3cm}
1669 \begin{tabular}{|c|c|p{7cm}|}
1670 \hline
1671 {\bf type} & {\bf name} & {\bf description} \\ \hline
1672 {\tt VM ref } & self & reference to the object \\ \hline
1674 \end{tabular}
1676 \vspace{0.3cm}
1678 \noindent {\bf Return Type:}
1679 {\tt
1680 string
1684 value of the field
1685 \vspace{0.3cm}
1686 \vspace{0.3cm}
1687 \vspace{0.3cm}
1688 \subsubsection{RPC name:~set\_name\_description}
1690 {\bf Overview:}
1691 Set the name/description field of the given VM.
1693 \noindent {\bf Signature:}
1694 \begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
1697 \noindent{\bf Arguments:}
1700 \vspace{0.3cm}
1701 \begin{tabular}{|c|c|p{7cm}|}
1702 \hline
1703 {\bf type} & {\bf name} & {\bf description} \\ \hline
1704 {\tt VM ref } & self & reference to the object \\ \hline
1706 {\tt string } & value & New value to set \\ \hline
1708 \end{tabular}
1710 \vspace{0.3cm}
1712 \noindent {\bf Return Type:}
1713 {\tt
1714 void
1719 \vspace{0.3cm}
1720 \vspace{0.3cm}
1721 \vspace{0.3cm}
1722 \subsubsection{RPC name:~get\_user\_version}
1724 {\bf Overview:}
1725 Get the user\_version field of the given VM.
1727 \noindent {\bf Signature:}
1728 \begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
1731 \noindent{\bf Arguments:}
1734 \vspace{0.3cm}
1735 \begin{tabular}{|c|c|p{7cm}|}
1736 \hline
1737 {\bf type} & {\bf name} & {\bf description} \\ \hline
1738 {\tt VM ref } & self & reference to the object \\ \hline
1740 \end{tabular}
1742 \vspace{0.3cm}
1744 \noindent {\bf Return Type:}
1745 {\tt
1746 int
1750 value of the field
1751 \vspace{0.3cm}
1752 \vspace{0.3cm}
1753 \vspace{0.3cm}
1754 \subsubsection{RPC name:~set\_user\_version}
1756 {\bf Overview:}
1757 Set the user\_version field of the given VM.
1759 \noindent {\bf Signature:}
1760 \begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
1763 \noindent{\bf Arguments:}
1766 \vspace{0.3cm}
1767 \begin{tabular}{|c|c|p{7cm}|}
1768 \hline
1769 {\bf type} & {\bf name} & {\bf description} \\ \hline
1770 {\tt VM ref } & self & reference to the object \\ \hline
1772 {\tt int } & value & New value to set \\ \hline
1774 \end{tabular}
1776 \vspace{0.3cm}
1778 \noindent {\bf Return Type:}
1779 {\tt
1780 void
1785 \vspace{0.3cm}
1786 \vspace{0.3cm}
1787 \vspace{0.3cm}
1788 \subsubsection{RPC name:~get\_is\_a\_template}
1790 {\bf Overview:}
1791 Get the is\_a\_template field of the given VM.
1793 \noindent {\bf Signature:}
1794 \begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
1797 \noindent{\bf Arguments:}
1800 \vspace{0.3cm}
1801 \begin{tabular}{|c|c|p{7cm}|}
1802 \hline
1803 {\bf type} & {\bf name} & {\bf description} \\ \hline
1804 {\tt VM ref } & self & reference to the object \\ \hline
1806 \end{tabular}
1808 \vspace{0.3cm}
1810 \noindent {\bf Return Type:}
1811 {\tt
1812 bool
1816 value of the field
1817 \vspace{0.3cm}
1818 \vspace{0.3cm}
1819 \vspace{0.3cm}
1820 \subsubsection{RPC name:~set\_is\_a\_template}
1822 {\bf Overview:}
1823 Set the is\_a\_template field of the given VM.
1825 \noindent {\bf Signature:}
1826 \begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
1829 \noindent{\bf Arguments:}
1832 \vspace{0.3cm}
1833 \begin{tabular}{|c|c|p{7cm}|}
1834 \hline
1835 {\bf type} & {\bf name} & {\bf description} \\ \hline
1836 {\tt VM ref } & self & reference to the object \\ \hline
1838 {\tt bool } & value & New value to set \\ \hline
1840 \end{tabular}
1842 \vspace{0.3cm}
1844 \noindent {\bf Return Type:}
1845 {\tt
1846 void
1851 \vspace{0.3cm}
1852 \vspace{0.3cm}
1853 \vspace{0.3cm}
1854 \subsubsection{RPC name:~get\_auto\_power\_on}
1856 {\bf Overview:}
1857 Get the auto\_power\_on field of the given VM.
1859 \noindent {\bf Signature:}
1860 \begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
1863 \noindent{\bf Arguments:}
1866 \vspace{0.3cm}
1867 \begin{tabular}{|c|c|p{7cm}|}
1868 \hline
1869 {\bf type} & {\bf name} & {\bf description} \\ \hline
1870 {\tt VM ref } & self & reference to the object \\ \hline
1872 \end{tabular}
1874 \vspace{0.3cm}
1876 \noindent {\bf Return Type:}
1877 {\tt
1878 bool
1882 value of the field
1883 \vspace{0.3cm}
1884 \vspace{0.3cm}
1885 \vspace{0.3cm}
1886 \subsubsection{RPC name:~set\_auto\_power\_on}
1888 {\bf Overview:}
1889 Set the auto\_power\_on field of the given VM.
1891 \noindent {\bf Signature:}
1892 \begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
1895 \noindent{\bf Arguments:}
1898 \vspace{0.3cm}
1899 \begin{tabular}{|c|c|p{7cm}|}
1900 \hline
1901 {\bf type} & {\bf name} & {\bf description} \\ \hline
1902 {\tt VM ref } & self & reference to the object \\ \hline
1904 {\tt bool } & value & New value to set \\ \hline
1906 \end{tabular}
1908 \vspace{0.3cm}
1910 \noindent {\bf Return Type:}
1911 {\tt
1912 void
1917 \vspace{0.3cm}
1918 \vspace{0.3cm}
1919 \vspace{0.3cm}
1920 \subsubsection{RPC name:~get\_resident\_on}
1922 {\bf Overview:}
1923 Get the resident\_on field of the given VM.
1925 \noindent {\bf Signature:}
1926 \begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
1929 \noindent{\bf Arguments:}
1932 \vspace{0.3cm}
1933 \begin{tabular}{|c|c|p{7cm}|}
1934 \hline
1935 {\bf type} & {\bf name} & {\bf description} \\ \hline
1936 {\tt VM ref } & self & reference to the object \\ \hline
1938 \end{tabular}
1940 \vspace{0.3cm}
1942 \noindent {\bf Return Type:}
1943 {\tt
1944 host ref
1948 value of the field
1949 \vspace{0.3cm}
1950 \vspace{0.3cm}
1951 \vspace{0.3cm}
1952 \subsubsection{RPC name:~get\_memory\_static\_max}
1954 {\bf Overview:}
1955 Get the memory/static\_max field of the given VM.
1957 \noindent {\bf Signature:}
1958 \begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
1961 \noindent{\bf Arguments:}
1964 \vspace{0.3cm}
1965 \begin{tabular}{|c|c|p{7cm}|}
1966 \hline
1967 {\bf type} & {\bf name} & {\bf description} \\ \hline
1968 {\tt VM ref } & self & reference to the object \\ \hline
1970 \end{tabular}
1972 \vspace{0.3cm}
1974 \noindent {\bf Return Type:}
1975 {\tt
1976 int
1980 value of the field
1981 \vspace{0.3cm}
1982 \vspace{0.3cm}
1983 \vspace{0.3cm}
1984 \subsubsection{RPC name:~get\_memory\_dynamic\_max}
1986 {\bf Overview:}
1987 Get the memory/dynamic\_max field of the given VM.
1989 \noindent {\bf Signature:}
1990 \begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
1993 \noindent{\bf Arguments:}
1996 \vspace{0.3cm}
1997 \begin{tabular}{|c|c|p{7cm}|}
1998 \hline
1999 {\bf type} & {\bf name} & {\bf description} \\ \hline
2000 {\tt VM ref } & self & reference to the object \\ \hline
2002 \end{tabular}
2004 \vspace{0.3cm}
2006 \noindent {\bf Return Type:}
2007 {\tt
2008 int
2012 value of the field
2013 \vspace{0.3cm}
2014 \vspace{0.3cm}
2015 \vspace{0.3cm}
2016 \subsubsection{RPC name:~set\_memory\_dynamic\_max}
2018 {\bf Overview:}
2019 Set the memory/dynamic\_max field of the given VM.
2021 \noindent {\bf Signature:}
2022 \begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
2025 \noindent{\bf Arguments:}
2028 \vspace{0.3cm}
2029 \begin{tabular}{|c|c|p{7cm}|}
2030 \hline
2031 {\bf type} & {\bf name} & {\bf description} \\ \hline
2032 {\tt VM ref } & self & reference to the object \\ \hline
2034 {\tt int } & value & New value to set \\ \hline
2036 \end{tabular}
2038 \vspace{0.3cm}
2040 \noindent {\bf Return Type:}
2041 {\tt
2042 void
2047 \vspace{0.3cm}
2048 \vspace{0.3cm}
2049 \vspace{0.3cm}
2050 \subsubsection{RPC name:~get\_memory\_actual}
2052 {\bf Overview:}
2053 Get the memory/actual field of the given VM.
2055 \noindent {\bf Signature:}
2056 \begin{verbatim} int get_memory_actual (session_id s, VM ref self)\end{verbatim}
2059 \noindent{\bf Arguments:}
2062 \vspace{0.3cm}
2063 \begin{tabular}{|c|c|p{7cm}|}
2064 \hline
2065 {\bf type} & {\bf name} & {\bf description} \\ \hline
2066 {\tt VM ref } & self & reference to the object \\ \hline
2068 \end{tabular}
2070 \vspace{0.3cm}
2072 \noindent {\bf Return Type:}
2073 {\tt
2074 int
2078 value of the field
2079 \vspace{0.3cm}
2080 \vspace{0.3cm}
2081 \vspace{0.3cm}
2082 \subsubsection{RPC name:~get\_memory\_dynamic\_min}
2084 {\bf Overview:}
2085 Get the memory/dynamic\_min field of the given VM.
2087 \noindent {\bf Signature:}
2088 \begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
2091 \noindent{\bf Arguments:}
2094 \vspace{0.3cm}
2095 \begin{tabular}{|c|c|p{7cm}|}
2096 \hline
2097 {\bf type} & {\bf name} & {\bf description} \\ \hline
2098 {\tt VM ref } & self & reference to the object \\ \hline
2100 \end{tabular}
2102 \vspace{0.3cm}
2104 \noindent {\bf Return Type:}
2105 {\tt
2106 int
2110 value of the field
2111 \vspace{0.3cm}
2112 \vspace{0.3cm}
2113 \vspace{0.3cm}
2114 \subsubsection{RPC name:~set\_memory\_dynamic\_min}
2116 {\bf Overview:}
2117 Set the memory/dynamic\_min field of the given VM.
2119 \noindent {\bf Signature:}
2120 \begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
2123 \noindent{\bf Arguments:}
2126 \vspace{0.3cm}
2127 \begin{tabular}{|c|c|p{7cm}|}
2128 \hline
2129 {\bf type} & {\bf name} & {\bf description} \\ \hline
2130 {\tt VM ref } & self & reference to the object \\ \hline
2132 {\tt int } & value & New value to set \\ \hline
2134 \end{tabular}
2136 \vspace{0.3cm}
2138 \noindent {\bf Return Type:}
2139 {\tt
2140 void
2145 \vspace{0.3cm}
2146 \vspace{0.3cm}
2147 \vspace{0.3cm}
2148 \subsubsection{RPC name:~get\_memory\_static\_min}
2150 {\bf Overview:}
2151 Get the memory/static\_min field of the given VM.
2153 \noindent {\bf Signature:}
2154 \begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
2157 \noindent{\bf Arguments:}
2160 \vspace{0.3cm}
2161 \begin{tabular}{|c|c|p{7cm}|}
2162 \hline
2163 {\bf type} & {\bf name} & {\bf description} \\ \hline
2164 {\tt VM ref } & self & reference to the object \\ \hline
2166 \end{tabular}
2168 \vspace{0.3cm}
2170 \noindent {\bf Return Type:}
2171 {\tt
2172 int
2176 value of the field
2177 \vspace{0.3cm}
2178 \vspace{0.3cm}
2179 \vspace{0.3cm}
2180 \subsubsection{RPC name:~get\_VCPUs\_policy}
2182 {\bf Overview:}
2183 Get the VCPUs/policy field of the given VM.
2185 \noindent {\bf Signature:}
2186 \begin{verbatim} string get_VCPUs_policy (session_id s, VM ref self)\end{verbatim}
2189 \noindent{\bf Arguments:}
2192 \vspace{0.3cm}
2193 \begin{tabular}{|c|c|p{7cm}|}
2194 \hline
2195 {\bf type} & {\bf name} & {\bf description} \\ \hline
2196 {\tt VM ref } & self & reference to the object \\ \hline
2198 \end{tabular}
2200 \vspace{0.3cm}
2202 \noindent {\bf Return Type:}
2203 {\tt
2204 string
2208 value of the field
2209 \vspace{0.3cm}
2210 \vspace{0.3cm}
2211 \vspace{0.3cm}
2212 \subsubsection{RPC name:~set\_VCPUs\_policy}
2214 {\bf Overview:}
2215 Set the VCPUs/policy field of the given VM.
2217 \noindent {\bf Signature:}
2218 \begin{verbatim} void set_VCPUs_policy (session_id s, VM ref self, string value)\end{verbatim}
2221 \noindent{\bf Arguments:}
2224 \vspace{0.3cm}
2225 \begin{tabular}{|c|c|p{7cm}|}
2226 \hline
2227 {\bf type} & {\bf name} & {\bf description} \\ \hline
2228 {\tt VM ref } & self & reference to the object \\ \hline
2230 {\tt string } & value & New value to set \\ \hline
2232 \end{tabular}
2234 \vspace{0.3cm}
2236 \noindent {\bf Return Type:}
2237 {\tt
2238 void
2243 \vspace{0.3cm}
2244 \vspace{0.3cm}
2245 \vspace{0.3cm}
2246 \subsubsection{RPC name:~get\_VCPUs\_params}
2248 {\bf Overview:}
2249 Get the VCPUs/params field of the given VM.
2251 \noindent {\bf Signature:}
2252 \begin{verbatim} string get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
2255 \noindent{\bf Arguments:}
2258 \vspace{0.3cm}
2259 \begin{tabular}{|c|c|p{7cm}|}
2260 \hline
2261 {\bf type} & {\bf name} & {\bf description} \\ \hline
2262 {\tt VM ref } & self & reference to the object \\ \hline
2264 \end{tabular}
2266 \vspace{0.3cm}
2268 \noindent {\bf Return Type:}
2269 {\tt
2270 string
2274 value of the field
2275 \vspace{0.3cm}
2276 \vspace{0.3cm}
2277 \vspace{0.3cm}
2278 \subsubsection{RPC name:~set\_VCPUs\_params}
2280 {\bf Overview:}
2281 Set the VCPUs/params field of the given VM.
2283 \noindent {\bf Signature:}
2284 \begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, string value)\end{verbatim}
2287 \noindent{\bf Arguments:}
2290 \vspace{0.3cm}
2291 \begin{tabular}{|c|c|p{7cm}|}
2292 \hline
2293 {\bf type} & {\bf name} & {\bf description} \\ \hline
2294 {\tt VM ref } & self & reference to the object \\ \hline
2296 {\tt string } & value & New value to set \\ \hline
2298 \end{tabular}
2300 \vspace{0.3cm}
2302 \noindent {\bf Return Type:}
2303 {\tt
2304 void
2309 \vspace{0.3cm}
2310 \vspace{0.3cm}
2311 \vspace{0.3cm}
2312 \subsubsection{RPC name:~get\_VCPUs\_number}
2314 {\bf Overview:}
2315 Get the VCPUs/number field of the given VM.
2317 \noindent {\bf Signature:}
2318 \begin{verbatim} int get_VCPUs_number (session_id s, VM ref self)\end{verbatim}
2321 \noindent{\bf Arguments:}
2324 \vspace{0.3cm}
2325 \begin{tabular}{|c|c|p{7cm}|}
2326 \hline
2327 {\bf type} & {\bf name} & {\bf description} \\ \hline
2328 {\tt VM ref } & self & reference to the object \\ \hline
2330 \end{tabular}
2332 \vspace{0.3cm}
2334 \noindent {\bf Return Type:}
2335 {\tt
2336 int
2340 value of the field
2341 \vspace{0.3cm}
2342 \vspace{0.3cm}
2343 \vspace{0.3cm}
2344 \subsubsection{RPC name:~set\_VCPUs\_number}
2346 {\bf Overview:}
2347 Set the VCPUs/number field of the given VM.
2349 \noindent {\bf Signature:}
2350 \begin{verbatim} void set_VCPUs_number (session_id s, VM ref self, int value)\end{verbatim}
2353 \noindent{\bf Arguments:}
2356 \vspace{0.3cm}
2357 \begin{tabular}{|c|c|p{7cm}|}
2358 \hline
2359 {\bf type} & {\bf name} & {\bf description} \\ \hline
2360 {\tt VM ref } & self & reference to the object \\ \hline
2362 {\tt int } & value & New value to set \\ \hline
2364 \end{tabular}
2366 \vspace{0.3cm}
2368 \noindent {\bf Return Type:}
2369 {\tt
2370 void
2375 \vspace{0.3cm}
2376 \vspace{0.3cm}
2377 \vspace{0.3cm}
2378 \subsubsection{RPC name:~get\_VCPUs\_utilisation}
2380 {\bf Overview:}
2381 Get the VCPUs/utilisation field of the given VM.
2383 \noindent {\bf Signature:}
2384 \begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM ref self)\end{verbatim}
2387 \noindent{\bf Arguments:}
2390 \vspace{0.3cm}
2391 \begin{tabular}{|c|c|p{7cm}|}
2392 \hline
2393 {\bf type} & {\bf name} & {\bf description} \\ \hline
2394 {\tt VM ref } & self & reference to the object \\ \hline
2396 \end{tabular}
2398 \vspace{0.3cm}
2400 \noindent {\bf Return Type:}
2401 {\tt
2402 (int $\rightarrow$ float) Map
2406 value of the field
2407 \vspace{0.3cm}
2408 \vspace{0.3cm}
2409 \vspace{0.3cm}
2410 \subsubsection{RPC name:~get\_VCPUs\_features\_required}
2412 {\bf Overview:}
2413 Get the VCPUs/features/required field of the given VM.
2415 \noindent {\bf Signature:}
2416 \begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_required (session_id s, VM ref self)\end{verbatim}
2419 \noindent{\bf Arguments:}
2422 \vspace{0.3cm}
2423 \begin{tabular}{|c|c|p{7cm}|}
2424 \hline
2425 {\bf type} & {\bf name} & {\bf description} \\ \hline
2426 {\tt VM ref } & self & reference to the object \\ \hline
2428 \end{tabular}
2430 \vspace{0.3cm}
2432 \noindent {\bf Return Type:}
2433 {\tt
2434 (cpu\_feature) Set
2438 value of the field
2439 \vspace{0.3cm}
2440 \vspace{0.3cm}
2441 \vspace{0.3cm}
2442 \subsubsection{RPC name:~get\_VCPUs\_features\_can\_use}
2444 {\bf Overview:}
2445 Get the VCPUs/features/can\_use field of the given VM.
2447 \noindent {\bf Signature:}
2448 \begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_can_use (session_id s, VM ref self)\end{verbatim}
2451 \noindent{\bf Arguments:}
2454 \vspace{0.3cm}
2455 \begin{tabular}{|c|c|p{7cm}|}
2456 \hline
2457 {\bf type} & {\bf name} & {\bf description} \\ \hline
2458 {\tt VM ref } & self & reference to the object \\ \hline
2460 \end{tabular}
2462 \vspace{0.3cm}
2464 \noindent {\bf Return Type:}
2465 {\tt
2466 (cpu\_feature) Set
2470 value of the field
2471 \vspace{0.3cm}
2472 \vspace{0.3cm}
2473 \vspace{0.3cm}
2474 \subsubsection{RPC name:~get\_VCPUs\_features\_force\_on}
2476 {\bf Overview:}
2477 Get the VCPUs/features/force\_on field of the given VM.
2479 \noindent {\bf Signature:}
2480 \begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_force_on (session_id s, VM ref self)\end{verbatim}
2483 \noindent{\bf Arguments:}
2486 \vspace{0.3cm}
2487 \begin{tabular}{|c|c|p{7cm}|}
2488 \hline
2489 {\bf type} & {\bf name} & {\bf description} \\ \hline
2490 {\tt VM ref } & self & reference to the object \\ \hline
2492 \end{tabular}
2494 \vspace{0.3cm}
2496 \noindent {\bf Return Type:}
2497 {\tt
2498 (cpu\_feature) Set
2502 value of the field
2503 \vspace{0.3cm}
2504 \vspace{0.3cm}
2505 \vspace{0.3cm}
2506 \subsubsection{RPC name:~set\_VCPUs\_features\_force\_on}
2508 {\bf Overview:}
2509 Set the VCPUs/features/force\_on field of the given VM.
2511 \noindent {\bf Signature:}
2512 \begin{verbatim} void set_VCPUs_features_force_on (session_id s, VM ref self, (cpu_feature) Set value)\end{verbatim}
2515 \noindent{\bf Arguments:}
2518 \vspace{0.3cm}
2519 \begin{tabular}{|c|c|p{7cm}|}
2520 \hline
2521 {\bf type} & {\bf name} & {\bf description} \\ \hline
2522 {\tt VM ref } & self & reference to the object \\ \hline
2524 {\tt (cpu\_feature) Set } & value & New value to set \\ \hline
2526 \end{tabular}
2528 \vspace{0.3cm}
2530 \noindent {\bf Return Type:}
2531 {\tt
2532 void
2537 \vspace{0.3cm}
2538 \vspace{0.3cm}
2539 \vspace{0.3cm}
2540 \subsubsection{RPC name:~add\_VCPUs\_features\_force\_on}
2542 {\bf Overview:}
2543 Add the given value to the VCPUs/features/force\_on field of the given VM. If the value is already in that Set, then do nothing.
2545 \noindent {\bf Signature:}
2546 \begin{verbatim} void add_VCPUs_features_force_on (session_id s, VM ref self, cpu_feature value)\end{verbatim}
2549 \noindent{\bf Arguments:}
2552 \vspace{0.3cm}
2553 \begin{tabular}{|c|c|p{7cm}|}
2554 \hline
2555 {\bf type} & {\bf name} & {\bf description} \\ \hline
2556 {\tt VM ref } & self & reference to the object \\ \hline
2558 {\tt cpu\_feature } & value & New value to add \\ \hline
2560 \end{tabular}
2562 \vspace{0.3cm}
2564 \noindent {\bf Return Type:}
2565 {\tt
2566 void
2571 \vspace{0.3cm}
2572 \vspace{0.3cm}
2573 \vspace{0.3cm}
2574 \subsubsection{RPC name:~remove\_VCPUs\_features\_force\_on}
2576 {\bf Overview:}
2577 Remove the given value from the VCPUs/features/force\_on field of the given VM. If the value is not in that Set, then do nothing.
2579 \noindent {\bf Signature:}
2580 \begin{verbatim} void remove_VCPUs_features_force_on (session_id s, VM ref self, cpu_feature value)\end{verbatim}
2583 \noindent{\bf Arguments:}
2586 \vspace{0.3cm}
2587 \begin{tabular}{|c|c|p{7cm}|}
2588 \hline
2589 {\bf type} & {\bf name} & {\bf description} \\ \hline
2590 {\tt VM ref } & self & reference to the object \\ \hline
2592 {\tt cpu\_feature } & value & Value to remove \\ \hline
2594 \end{tabular}
2596 \vspace{0.3cm}
2598 \noindent {\bf Return Type:}
2599 {\tt
2600 void
2605 \vspace{0.3cm}
2606 \vspace{0.3cm}
2607 \vspace{0.3cm}
2608 \subsubsection{RPC name:~get\_VCPUs\_features\_force\_off}
2610 {\bf Overview:}
2611 Get the VCPUs/features/force\_off field of the given VM.
2613 \noindent {\bf Signature:}
2614 \begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_force_off (session_id s, VM ref self)\end{verbatim}
2617 \noindent{\bf Arguments:}
2620 \vspace{0.3cm}
2621 \begin{tabular}{|c|c|p{7cm}|}
2622 \hline
2623 {\bf type} & {\bf name} & {\bf description} \\ \hline
2624 {\tt VM ref } & self & reference to the object \\ \hline
2626 \end{tabular}
2628 \vspace{0.3cm}
2630 \noindent {\bf Return Type:}
2631 {\tt
2632 (cpu\_feature) Set
2636 value of the field
2637 \vspace{0.3cm}
2638 \vspace{0.3cm}
2639 \vspace{0.3cm}
2640 \subsubsection{RPC name:~set\_VCPUs\_features\_force\_off}
2642 {\bf Overview:}
2643 Set the VCPUs/features/force\_off field of the given VM.
2645 \noindent {\bf Signature:}
2646 \begin{verbatim} void set_VCPUs_features_force_off (session_id s, VM ref self, (cpu_feature) Set value)\end{verbatim}
2649 \noindent{\bf Arguments:}
2652 \vspace{0.3cm}
2653 \begin{tabular}{|c|c|p{7cm}|}
2654 \hline
2655 {\bf type} & {\bf name} & {\bf description} \\ \hline
2656 {\tt VM ref } & self & reference to the object \\ \hline
2658 {\tt (cpu\_feature) Set } & value & New value to set \\ \hline
2660 \end{tabular}
2662 \vspace{0.3cm}
2664 \noindent {\bf Return Type:}
2665 {\tt
2666 void
2671 \vspace{0.3cm}
2672 \vspace{0.3cm}
2673 \vspace{0.3cm}
2674 \subsubsection{RPC name:~add\_VCPUs\_features\_force\_off}
2676 {\bf Overview:}
2677 Add the given value to the VCPUs/features/force\_off field of the given VM. If the value is already in that Set, then do nothing.
2679 \noindent {\bf Signature:}
2680 \begin{verbatim} void add_VCPUs_features_force_off (session_id s, VM ref self, cpu_feature value)\end{verbatim}
2683 \noindent{\bf Arguments:}
2686 \vspace{0.3cm}
2687 \begin{tabular}{|c|c|p{7cm}|}
2688 \hline
2689 {\bf type} & {\bf name} & {\bf description} \\ \hline
2690 {\tt VM ref } & self & reference to the object \\ \hline
2692 {\tt cpu\_feature } & value & New value to add \\ \hline
2694 \end{tabular}
2696 \vspace{0.3cm}
2698 \noindent {\bf Return Type:}
2699 {\tt
2700 void
2705 \vspace{0.3cm}
2706 \vspace{0.3cm}
2707 \vspace{0.3cm}
2708 \subsubsection{RPC name:~remove\_VCPUs\_features\_force\_off}
2710 {\bf Overview:}
2711 Remove the given value from the VCPUs/features/force\_off field of the given VM. If the value is not in that Set, then do nothing.
2713 \noindent {\bf Signature:}
2714 \begin{verbatim} void remove_VCPUs_features_force_off (session_id s, VM ref self, cpu_feature value)\end{verbatim}
2717 \noindent{\bf Arguments:}
2720 \vspace{0.3cm}
2721 \begin{tabular}{|c|c|p{7cm}|}
2722 \hline
2723 {\bf type} & {\bf name} & {\bf description} \\ \hline
2724 {\tt VM ref } & self & reference to the object \\ \hline
2726 {\tt cpu\_feature } & value & Value to remove \\ \hline
2728 \end{tabular}
2730 \vspace{0.3cm}
2732 \noindent {\bf Return Type:}
2733 {\tt
2734 void
2739 \vspace{0.3cm}
2740 \vspace{0.3cm}
2741 \vspace{0.3cm}
2742 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
2744 {\bf Overview:}
2745 Get the actions/after\_shutdown field of the given VM.
2747 \noindent {\bf Signature:}
2748 \begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
2751 \noindent{\bf Arguments:}
2754 \vspace{0.3cm}
2755 \begin{tabular}{|c|c|p{7cm}|}
2756 \hline
2757 {\bf type} & {\bf name} & {\bf description} \\ \hline
2758 {\tt VM ref } & self & reference to the object \\ \hline
2760 \end{tabular}
2762 \vspace{0.3cm}
2764 \noindent {\bf Return Type:}
2765 {\tt
2766 on\_normal\_exit
2770 value of the field
2771 \vspace{0.3cm}
2772 \vspace{0.3cm}
2773 \vspace{0.3cm}
2774 \subsubsection{RPC name:~set\_actions\_after\_shutdown}
2776 {\bf Overview:}
2777 Set the actions/after\_shutdown field of the given VM.
2779 \noindent {\bf Signature:}
2780 \begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2783 \noindent{\bf Arguments:}
2786 \vspace{0.3cm}
2787 \begin{tabular}{|c|c|p{7cm}|}
2788 \hline
2789 {\bf type} & {\bf name} & {\bf description} \\ \hline
2790 {\tt VM ref } & self & reference to the object \\ \hline
2792 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2794 \end{tabular}
2796 \vspace{0.3cm}
2798 \noindent {\bf Return Type:}
2799 {\tt
2800 void
2805 \vspace{0.3cm}
2806 \vspace{0.3cm}
2807 \vspace{0.3cm}
2808 \subsubsection{RPC name:~get\_actions\_after\_reboot}
2810 {\bf Overview:}
2811 Get the actions/after\_reboot field of the given VM.
2813 \noindent {\bf Signature:}
2814 \begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
2817 \noindent{\bf Arguments:}
2820 \vspace{0.3cm}
2821 \begin{tabular}{|c|c|p{7cm}|}
2822 \hline
2823 {\bf type} & {\bf name} & {\bf description} \\ \hline
2824 {\tt VM ref } & self & reference to the object \\ \hline
2826 \end{tabular}
2828 \vspace{0.3cm}
2830 \noindent {\bf Return Type:}
2831 {\tt
2832 on\_normal\_exit
2836 value of the field
2837 \vspace{0.3cm}
2838 \vspace{0.3cm}
2839 \vspace{0.3cm}
2840 \subsubsection{RPC name:~set\_actions\_after\_reboot}
2842 {\bf Overview:}
2843 Set the actions/after\_reboot field of the given VM.
2845 \noindent {\bf Signature:}
2846 \begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2849 \noindent{\bf Arguments:}
2852 \vspace{0.3cm}
2853 \begin{tabular}{|c|c|p{7cm}|}
2854 \hline
2855 {\bf type} & {\bf name} & {\bf description} \\ \hline
2856 {\tt VM ref } & self & reference to the object \\ \hline
2858 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2860 \end{tabular}
2862 \vspace{0.3cm}
2864 \noindent {\bf Return Type:}
2865 {\tt
2866 void
2871 \vspace{0.3cm}
2872 \vspace{0.3cm}
2873 \vspace{0.3cm}
2874 \subsubsection{RPC name:~get\_actions\_after\_suspend}
2876 {\bf Overview:}
2877 Get the actions/after\_suspend field of the given VM.
2879 \noindent {\bf Signature:}
2880 \begin{verbatim} (on_normal_exit) get_actions_after_suspend (session_id s, VM ref self)\end{verbatim}
2883 \noindent{\bf Arguments:}
2886 \vspace{0.3cm}
2887 \begin{tabular}{|c|c|p{7cm}|}
2888 \hline
2889 {\bf type} & {\bf name} & {\bf description} \\ \hline
2890 {\tt VM ref } & self & reference to the object \\ \hline
2892 \end{tabular}
2894 \vspace{0.3cm}
2896 \noindent {\bf Return Type:}
2897 {\tt
2898 on\_normal\_exit
2902 value of the field
2903 \vspace{0.3cm}
2904 \vspace{0.3cm}
2905 \vspace{0.3cm}
2906 \subsubsection{RPC name:~set\_actions\_after\_suspend}
2908 {\bf Overview:}
2909 Set the actions/after\_suspend field of the given VM.
2911 \noindent {\bf Signature:}
2912 \begin{verbatim} void set_actions_after_suspend (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
2915 \noindent{\bf Arguments:}
2918 \vspace{0.3cm}
2919 \begin{tabular}{|c|c|p{7cm}|}
2920 \hline
2921 {\bf type} & {\bf name} & {\bf description} \\ \hline
2922 {\tt VM ref } & self & reference to the object \\ \hline
2924 {\tt on\_normal\_exit } & value & New value to set \\ \hline
2926 \end{tabular}
2928 \vspace{0.3cm}
2930 \noindent {\bf Return Type:}
2931 {\tt
2932 void
2937 \vspace{0.3cm}
2938 \vspace{0.3cm}
2939 \vspace{0.3cm}
2940 \subsubsection{RPC name:~get\_actions\_after\_crash}
2942 {\bf Overview:}
2943 Get the actions/after\_crash field of the given VM.
2945 \noindent {\bf Signature:}
2946 \begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\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 \end{tabular}
2960 \vspace{0.3cm}
2962 \noindent {\bf Return Type:}
2963 {\tt
2964 on\_crash\_behaviour
2968 value of the field
2969 \vspace{0.3cm}
2970 \vspace{0.3cm}
2971 \vspace{0.3cm}
2972 \subsubsection{RPC name:~set\_actions\_after\_crash}
2974 {\bf Overview:}
2975 Set the actions/after\_crash field of the given VM.
2977 \noindent {\bf Signature:}
2978 \begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
2981 \noindent{\bf Arguments:}
2984 \vspace{0.3cm}
2985 \begin{tabular}{|c|c|p{7cm}|}
2986 \hline
2987 {\bf type} & {\bf name} & {\bf description} \\ \hline
2988 {\tt VM ref } & self & reference to the object \\ \hline
2990 {\tt on\_crash\_behaviour } & value & New value to set \\ \hline
2992 \end{tabular}
2994 \vspace{0.3cm}
2996 \noindent {\bf Return Type:}
2997 {\tt
2998 void
3003 \vspace{0.3cm}
3004 \vspace{0.3cm}
3005 \vspace{0.3cm}
3006 \subsubsection{RPC name:~get\_consoles}
3008 {\bf Overview:}
3009 Get the consoles field of the given VM.
3011 \noindent {\bf Signature:}
3012 \begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\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 \end{tabular}
3026 \vspace{0.3cm}
3028 \noindent {\bf Return Type:}
3029 {\tt
3030 (console ref) Set
3034 value of the field
3035 \vspace{0.3cm}
3036 \vspace{0.3cm}
3037 \vspace{0.3cm}
3038 \subsubsection{RPC name:~get\_VIFs}
3040 {\bf Overview:}
3041 Get the VIFs field of the given VM.
3043 \noindent {\bf Signature:}
3044 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
3047 \noindent{\bf Arguments:}
3050 \vspace{0.3cm}
3051 \begin{tabular}{|c|c|p{7cm}|}
3052 \hline
3053 {\bf type} & {\bf name} & {\bf description} \\ \hline
3054 {\tt VM ref } & self & reference to the object \\ \hline
3056 \end{tabular}
3058 \vspace{0.3cm}
3060 \noindent {\bf Return Type:}
3061 {\tt
3062 (VIF ref) Set
3066 value of the field
3067 \vspace{0.3cm}
3068 \vspace{0.3cm}
3069 \vspace{0.3cm}
3070 \subsubsection{RPC name:~get\_VBDs}
3072 {\bf Overview:}
3073 Get the VBDs field of the given VM.
3075 \noindent {\bf Signature:}
3076 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
3079 \noindent{\bf Arguments:}
3082 \vspace{0.3cm}
3083 \begin{tabular}{|c|c|p{7cm}|}
3084 \hline
3085 {\bf type} & {\bf name} & {\bf description} \\ \hline
3086 {\tt VM ref } & self & reference to the object \\ \hline
3088 \end{tabular}
3090 \vspace{0.3cm}
3092 \noindent {\bf Return Type:}
3093 {\tt
3094 (VBD ref) Set
3098 value of the field
3099 \vspace{0.3cm}
3100 \vspace{0.3cm}
3101 \vspace{0.3cm}
3102 \subsubsection{RPC name:~get\_VTPMs}
3104 {\bf Overview:}
3105 Get the VTPMs field of the given VM.
3107 \noindent {\bf Signature:}
3108 \begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
3111 \noindent{\bf Arguments:}
3114 \vspace{0.3cm}
3115 \begin{tabular}{|c|c|p{7cm}|}
3116 \hline
3117 {\bf type} & {\bf name} & {\bf description} \\ \hline
3118 {\tt VM ref } & self & reference to the object \\ \hline
3120 \end{tabular}
3122 \vspace{0.3cm}
3124 \noindent {\bf Return Type:}
3125 {\tt
3126 (VTPM ref) Set
3130 value of the field
3131 \vspace{0.3cm}
3132 \vspace{0.3cm}
3133 \vspace{0.3cm}
3134 \subsubsection{RPC name:~get\_PV\_bootloader}
3136 {\bf Overview:}
3137 Get the PV/bootloader field of the given VM.
3139 \noindent {\bf Signature:}
3140 \begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
3143 \noindent{\bf Arguments:}
3146 \vspace{0.3cm}
3147 \begin{tabular}{|c|c|p{7cm}|}
3148 \hline
3149 {\bf type} & {\bf name} & {\bf description} \\ \hline
3150 {\tt VM ref } & self & reference to the object \\ \hline
3152 \end{tabular}
3154 \vspace{0.3cm}
3156 \noindent {\bf Return Type:}
3157 {\tt
3158 string
3162 value of the field
3163 \vspace{0.3cm}
3164 \vspace{0.3cm}
3165 \vspace{0.3cm}
3166 \subsubsection{RPC name:~set\_PV\_bootloader}
3168 {\bf Overview:}
3169 Set the PV/bootloader field of the given VM.
3171 \noindent {\bf Signature:}
3172 \begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
3175 \noindent{\bf Arguments:}
3178 \vspace{0.3cm}
3179 \begin{tabular}{|c|c|p{7cm}|}
3180 \hline
3181 {\bf type} & {\bf name} & {\bf description} \\ \hline
3182 {\tt VM ref } & self & reference to the object \\ \hline
3184 {\tt string } & value & New value to set \\ \hline
3186 \end{tabular}
3188 \vspace{0.3cm}
3190 \noindent {\bf Return Type:}
3191 {\tt
3192 void
3197 \vspace{0.3cm}
3198 \vspace{0.3cm}
3199 \vspace{0.3cm}
3200 \subsubsection{RPC name:~get\_PV\_kernel}
3202 {\bf Overview:}
3203 Get the PV/kernel field of the given VM.
3205 \noindent {\bf Signature:}
3206 \begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
3209 \noindent{\bf Arguments:}
3212 \vspace{0.3cm}
3213 \begin{tabular}{|c|c|p{7cm}|}
3214 \hline
3215 {\bf type} & {\bf name} & {\bf description} \\ \hline
3216 {\tt VM ref } & self & reference to the object \\ \hline
3218 \end{tabular}
3220 \vspace{0.3cm}
3222 \noindent {\bf Return Type:}
3223 {\tt
3224 string
3228 value of the field
3229 \vspace{0.3cm}
3230 \vspace{0.3cm}
3231 \vspace{0.3cm}
3232 \subsubsection{RPC name:~set\_PV\_kernel}
3234 {\bf Overview:}
3235 Set the PV/kernel field of the given VM.
3237 \noindent {\bf Signature:}
3238 \begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
3241 \noindent{\bf Arguments:}
3244 \vspace{0.3cm}
3245 \begin{tabular}{|c|c|p{7cm}|}
3246 \hline
3247 {\bf type} & {\bf name} & {\bf description} \\ \hline
3248 {\tt VM ref } & self & reference to the object \\ \hline
3250 {\tt string } & value & New value to set \\ \hline
3252 \end{tabular}
3254 \vspace{0.3cm}
3256 \noindent {\bf Return Type:}
3257 {\tt
3258 void
3263 \vspace{0.3cm}
3264 \vspace{0.3cm}
3265 \vspace{0.3cm}
3266 \subsubsection{RPC name:~get\_PV\_ramdisk}
3268 {\bf Overview:}
3269 Get the PV/ramdisk field of the given VM.
3271 \noindent {\bf Signature:}
3272 \begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
3275 \noindent{\bf Arguments:}
3278 \vspace{0.3cm}
3279 \begin{tabular}{|c|c|p{7cm}|}
3280 \hline
3281 {\bf type} & {\bf name} & {\bf description} \\ \hline
3282 {\tt VM ref } & self & reference to the object \\ \hline
3284 \end{tabular}
3286 \vspace{0.3cm}
3288 \noindent {\bf Return Type:}
3289 {\tt
3290 string
3294 value of the field
3295 \vspace{0.3cm}
3296 \vspace{0.3cm}
3297 \vspace{0.3cm}
3298 \subsubsection{RPC name:~set\_PV\_ramdisk}
3300 {\bf Overview:}
3301 Set the PV/ramdisk field of the given VM.
3303 \noindent {\bf Signature:}
3304 \begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
3307 \noindent{\bf Arguments:}
3310 \vspace{0.3cm}
3311 \begin{tabular}{|c|c|p{7cm}|}
3312 \hline
3313 {\bf type} & {\bf name} & {\bf description} \\ \hline
3314 {\tt VM ref } & self & reference to the object \\ \hline
3316 {\tt string } & value & New value to set \\ \hline
3318 \end{tabular}
3320 \vspace{0.3cm}
3322 \noindent {\bf Return Type:}
3323 {\tt
3324 void
3329 \vspace{0.3cm}
3330 \vspace{0.3cm}
3331 \vspace{0.3cm}
3332 \subsubsection{RPC name:~get\_PV\_args}
3334 {\bf Overview:}
3335 Get the PV/args field of the given VM.
3337 \noindent {\bf Signature:}
3338 \begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
3341 \noindent{\bf Arguments:}
3344 \vspace{0.3cm}
3345 \begin{tabular}{|c|c|p{7cm}|}
3346 \hline
3347 {\bf type} & {\bf name} & {\bf description} \\ \hline
3348 {\tt VM ref } & self & reference to the object \\ \hline
3350 \end{tabular}
3352 \vspace{0.3cm}
3354 \noindent {\bf Return Type:}
3355 {\tt
3356 string
3360 value of the field
3361 \vspace{0.3cm}
3362 \vspace{0.3cm}
3363 \vspace{0.3cm}
3364 \subsubsection{RPC name:~set\_PV\_args}
3366 {\bf Overview:}
3367 Set the PV/args field of the given VM.
3369 \noindent {\bf Signature:}
3370 \begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
3373 \noindent{\bf Arguments:}
3376 \vspace{0.3cm}
3377 \begin{tabular}{|c|c|p{7cm}|}
3378 \hline
3379 {\bf type} & {\bf name} & {\bf description} \\ \hline
3380 {\tt VM ref } & self & reference to the object \\ \hline
3382 {\tt string } & value & New value to set \\ \hline
3384 \end{tabular}
3386 \vspace{0.3cm}
3388 \noindent {\bf Return Type:}
3389 {\tt
3390 void
3395 \vspace{0.3cm}
3396 \vspace{0.3cm}
3397 \vspace{0.3cm}
3398 \subsubsection{RPC name:~get\_PV\_bootloader\_args}
3400 {\bf Overview:}
3401 Get the PV/bootloader\_args field of the given VM.
3403 \noindent {\bf Signature:}
3404 \begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
3407 \noindent{\bf Arguments:}
3410 \vspace{0.3cm}
3411 \begin{tabular}{|c|c|p{7cm}|}
3412 \hline
3413 {\bf type} & {\bf name} & {\bf description} \\ \hline
3414 {\tt VM ref } & self & reference to the object \\ \hline
3416 \end{tabular}
3418 \vspace{0.3cm}
3420 \noindent {\bf Return Type:}
3421 {\tt
3422 string
3426 value of the field
3427 \vspace{0.3cm}
3428 \vspace{0.3cm}
3429 \vspace{0.3cm}
3430 \subsubsection{RPC name:~set\_PV\_bootloader\_args}
3432 {\bf Overview:}
3433 Set the PV/bootloader\_args field of the given VM.
3435 \noindent {\bf Signature:}
3436 \begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
3439 \noindent{\bf Arguments:}
3442 \vspace{0.3cm}
3443 \begin{tabular}{|c|c|p{7cm}|}
3444 \hline
3445 {\bf type} & {\bf name} & {\bf description} \\ \hline
3446 {\tt VM ref } & self & reference to the object \\ \hline
3448 {\tt string } & value & New value to set \\ \hline
3450 \end{tabular}
3452 \vspace{0.3cm}
3454 \noindent {\bf Return Type:}
3455 {\tt
3456 void
3461 \vspace{0.3cm}
3462 \vspace{0.3cm}
3463 \vspace{0.3cm}
3464 \subsubsection{RPC name:~get\_HVM\_boot}
3466 {\bf Overview:}
3467 Get the HVM/boot field of the given VM.
3469 \noindent {\bf Signature:}
3470 \begin{verbatim} string get_HVM_boot (session_id s, VM ref self)\end{verbatim}
3473 \noindent{\bf Arguments:}
3476 \vspace{0.3cm}
3477 \begin{tabular}{|c|c|p{7cm}|}
3478 \hline
3479 {\bf type} & {\bf name} & {\bf description} \\ \hline
3480 {\tt VM ref } & self & reference to the object \\ \hline
3482 \end{tabular}
3484 \vspace{0.3cm}
3486 \noindent {\bf Return Type:}
3487 {\tt
3488 string
3492 value of the field
3493 \vspace{0.3cm}
3494 \vspace{0.3cm}
3495 \vspace{0.3cm}
3496 \subsubsection{RPC name:~set\_HVM\_boot}
3498 {\bf Overview:}
3499 Set the HVM/boot field of the given VM.
3501 \noindent {\bf Signature:}
3502 \begin{verbatim} void set_HVM_boot (session_id s, VM ref self, string value)\end{verbatim}
3505 \noindent{\bf Arguments:}
3508 \vspace{0.3cm}
3509 \begin{tabular}{|c|c|p{7cm}|}
3510 \hline
3511 {\bf type} & {\bf name} & {\bf description} \\ \hline
3512 {\tt VM ref } & self & reference to the object \\ \hline
3514 {\tt string } & value & New value to set \\ \hline
3516 \end{tabular}
3518 \vspace{0.3cm}
3520 \noindent {\bf Return Type:}
3521 {\tt
3522 void
3527 \vspace{0.3cm}
3528 \vspace{0.3cm}
3529 \vspace{0.3cm}
3530 \subsubsection{RPC name:~get\_platform\_std\_VGA}
3532 {\bf Overview:}
3533 Get the platform/std\_VGA field of the given VM.
3535 \noindent {\bf Signature:}
3536 \begin{verbatim} bool get_platform_std_VGA (session_id s, VM ref self)\end{verbatim}
3539 \noindent{\bf Arguments:}
3542 \vspace{0.3cm}
3543 \begin{tabular}{|c|c|p{7cm}|}
3544 \hline
3545 {\bf type} & {\bf name} & {\bf description} \\ \hline
3546 {\tt VM ref } & self & reference to the object \\ \hline
3548 \end{tabular}
3550 \vspace{0.3cm}
3552 \noindent {\bf Return Type:}
3553 {\tt
3554 bool
3558 value of the field
3559 \vspace{0.3cm}
3560 \vspace{0.3cm}
3561 \vspace{0.3cm}
3562 \subsubsection{RPC name:~set\_platform\_std\_VGA}
3564 {\bf Overview:}
3565 Set the platform/std\_VGA field of the given VM.
3567 \noindent {\bf Signature:}
3568 \begin{verbatim} void set_platform_std_VGA (session_id s, VM ref self, bool value)\end{verbatim}
3571 \noindent{\bf Arguments:}
3574 \vspace{0.3cm}
3575 \begin{tabular}{|c|c|p{7cm}|}
3576 \hline
3577 {\bf type} & {\bf name} & {\bf description} \\ \hline
3578 {\tt VM ref } & self & reference to the object \\ \hline
3580 {\tt bool } & value & New value to set \\ \hline
3582 \end{tabular}
3584 \vspace{0.3cm}
3586 \noindent {\bf Return Type:}
3587 {\tt
3588 void
3593 \vspace{0.3cm}
3594 \vspace{0.3cm}
3595 \vspace{0.3cm}
3596 \subsubsection{RPC name:~get\_platform\_serial}
3598 {\bf Overview:}
3599 Get the platform/serial field of the given VM.
3601 \noindent {\bf Signature:}
3602 \begin{verbatim} string get_platform_serial (session_id s, VM ref self)\end{verbatim}
3605 \noindent{\bf Arguments:}
3608 \vspace{0.3cm}
3609 \begin{tabular}{|c|c|p{7cm}|}
3610 \hline
3611 {\bf type} & {\bf name} & {\bf description} \\ \hline
3612 {\tt VM ref } & self & reference to the object \\ \hline
3614 \end{tabular}
3616 \vspace{0.3cm}
3618 \noindent {\bf Return Type:}
3619 {\tt
3620 string
3624 value of the field
3625 \vspace{0.3cm}
3626 \vspace{0.3cm}
3627 \vspace{0.3cm}
3628 \subsubsection{RPC name:~set\_platform\_serial}
3630 {\bf Overview:}
3631 Set the platform/serial field of the given VM.
3633 \noindent {\bf Signature:}
3634 \begin{verbatim} void set_platform_serial (session_id s, VM ref self, string value)\end{verbatim}
3637 \noindent{\bf Arguments:}
3640 \vspace{0.3cm}
3641 \begin{tabular}{|c|c|p{7cm}|}
3642 \hline
3643 {\bf type} & {\bf name} & {\bf description} \\ \hline
3644 {\tt VM ref } & self & reference to the object \\ \hline
3646 {\tt string } & value & New value to set \\ \hline
3648 \end{tabular}
3650 \vspace{0.3cm}
3652 \noindent {\bf Return Type:}
3653 {\tt
3654 void
3659 \vspace{0.3cm}
3660 \vspace{0.3cm}
3661 \vspace{0.3cm}
3662 \subsubsection{RPC name:~get\_platform\_localtime}
3664 {\bf Overview:}
3665 Get the platform/localtime field of the given VM.
3667 \noindent {\bf Signature:}
3668 \begin{verbatim} bool get_platform_localtime (session_id s, VM ref self)\end{verbatim}
3671 \noindent{\bf Arguments:}
3674 \vspace{0.3cm}
3675 \begin{tabular}{|c|c|p{7cm}|}
3676 \hline
3677 {\bf type} & {\bf name} & {\bf description} \\ \hline
3678 {\tt VM ref } & self & reference to the object \\ \hline
3680 \end{tabular}
3682 \vspace{0.3cm}
3684 \noindent {\bf Return Type:}
3685 {\tt
3686 bool
3690 value of the field
3691 \vspace{0.3cm}
3692 \vspace{0.3cm}
3693 \vspace{0.3cm}
3694 \subsubsection{RPC name:~set\_platform\_localtime}
3696 {\bf Overview:}
3697 Set the platform/localtime field of the given VM.
3699 \noindent {\bf Signature:}
3700 \begin{verbatim} void set_platform_localtime (session_id s, VM ref self, bool value)\end{verbatim}
3703 \noindent{\bf Arguments:}
3706 \vspace{0.3cm}
3707 \begin{tabular}{|c|c|p{7cm}|}
3708 \hline
3709 {\bf type} & {\bf name} & {\bf description} \\ \hline
3710 {\tt VM ref } & self & reference to the object \\ \hline
3712 {\tt bool } & value & New value to set \\ \hline
3714 \end{tabular}
3716 \vspace{0.3cm}
3718 \noindent {\bf Return Type:}
3719 {\tt
3720 void
3725 \vspace{0.3cm}
3726 \vspace{0.3cm}
3727 \vspace{0.3cm}
3728 \subsubsection{RPC name:~get\_platform\_clock\_offset}
3730 {\bf Overview:}
3731 Get the platform/clock\_offset field of the given VM.
3733 \noindent {\bf Signature:}
3734 \begin{verbatim} bool get_platform_clock_offset (session_id s, VM ref self)\end{verbatim}
3737 \noindent{\bf Arguments:}
3740 \vspace{0.3cm}
3741 \begin{tabular}{|c|c|p{7cm}|}
3742 \hline
3743 {\bf type} & {\bf name} & {\bf description} \\ \hline
3744 {\tt VM ref } & self & reference to the object \\ \hline
3746 \end{tabular}
3748 \vspace{0.3cm}
3750 \noindent {\bf Return Type:}
3751 {\tt
3752 bool
3756 value of the field
3757 \vspace{0.3cm}
3758 \vspace{0.3cm}
3759 \vspace{0.3cm}
3760 \subsubsection{RPC name:~set\_platform\_clock\_offset}
3762 {\bf Overview:}
3763 Set the platform/clock\_offset field of the given VM.
3765 \noindent {\bf Signature:}
3766 \begin{verbatim} void set_platform_clock_offset (session_id s, VM ref self, bool value)\end{verbatim}
3769 \noindent{\bf Arguments:}
3772 \vspace{0.3cm}
3773 \begin{tabular}{|c|c|p{7cm}|}
3774 \hline
3775 {\bf type} & {\bf name} & {\bf description} \\ \hline
3776 {\tt VM ref } & self & reference to the object \\ \hline
3778 {\tt bool } & value & New value to set \\ \hline
3780 \end{tabular}
3782 \vspace{0.3cm}
3784 \noindent {\bf Return Type:}
3785 {\tt
3786 void
3791 \vspace{0.3cm}
3792 \vspace{0.3cm}
3793 \vspace{0.3cm}
3794 \subsubsection{RPC name:~get\_platform\_enable\_audio}
3796 {\bf Overview:}
3797 Get the platform/enable\_audio field of the given VM.
3799 \noindent {\bf Signature:}
3800 \begin{verbatim} bool get_platform_enable_audio (session_id s, VM ref self)\end{verbatim}
3803 \noindent{\bf Arguments:}
3806 \vspace{0.3cm}
3807 \begin{tabular}{|c|c|p{7cm}|}
3808 \hline
3809 {\bf type} & {\bf name} & {\bf description} \\ \hline
3810 {\tt VM ref } & self & reference to the object \\ \hline
3812 \end{tabular}
3814 \vspace{0.3cm}
3816 \noindent {\bf Return Type:}
3817 {\tt
3818 bool
3822 value of the field
3823 \vspace{0.3cm}
3824 \vspace{0.3cm}
3825 \vspace{0.3cm}
3826 \subsubsection{RPC name:~set\_platform\_enable\_audio}
3828 {\bf Overview:}
3829 Set the platform/enable\_audio field of the given VM.
3831 \noindent {\bf Signature:}
3832 \begin{verbatim} void set_platform_enable_audio (session_id s, VM ref self, bool value)\end{verbatim}
3835 \noindent{\bf Arguments:}
3838 \vspace{0.3cm}
3839 \begin{tabular}{|c|c|p{7cm}|}
3840 \hline
3841 {\bf type} & {\bf name} & {\bf description} \\ \hline
3842 {\tt VM ref } & self & reference to the object \\ \hline
3844 {\tt bool } & value & New value to set \\ \hline
3846 \end{tabular}
3848 \vspace{0.3cm}
3850 \noindent {\bf Return Type:}
3851 {\tt
3852 void
3857 \vspace{0.3cm}
3858 \vspace{0.3cm}
3859 \vspace{0.3cm}
3860 \subsubsection{RPC name:~get\_PCI\_bus}
3862 {\bf Overview:}
3863 Get the PCI\_bus field of the given VM.
3865 \noindent {\bf Signature:}
3866 \begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
3869 \noindent{\bf Arguments:}
3872 \vspace{0.3cm}
3873 \begin{tabular}{|c|c|p{7cm}|}
3874 \hline
3875 {\bf type} & {\bf name} & {\bf description} \\ \hline
3876 {\tt VM ref } & self & reference to the object \\ \hline
3878 \end{tabular}
3880 \vspace{0.3cm}
3882 \noindent {\bf Return Type:}
3883 {\tt
3884 string
3888 value of the field
3889 \vspace{0.3cm}
3890 \vspace{0.3cm}
3891 \vspace{0.3cm}
3892 \subsubsection{RPC name:~get\_tools\_version}
3894 {\bf Overview:}
3895 Get the tools\_version field of the given VM.
3897 \noindent {\bf Signature:}
3898 \begin{verbatim} ((string -> string) Map) get_tools_version (session_id s, VM ref self)\end{verbatim}
3901 \noindent{\bf Arguments:}
3904 \vspace{0.3cm}
3905 \begin{tabular}{|c|c|p{7cm}|}
3906 \hline
3907 {\bf type} & {\bf name} & {\bf description} \\ \hline
3908 {\tt VM ref } & self & reference to the object \\ \hline
3910 \end{tabular}
3912 \vspace{0.3cm}
3914 \noindent {\bf Return Type:}
3915 {\tt
3916 (string $\rightarrow$ string) Map
3920 value of the field
3921 \vspace{0.3cm}
3922 \vspace{0.3cm}
3923 \vspace{0.3cm}
3924 \subsubsection{RPC name:~get\_otherConfig}
3926 {\bf Overview:}
3927 Get the otherConfig field of the given VM.
3929 \noindent {\bf Signature:}
3930 \begin{verbatim} ((string -> string) Map) get_otherConfig (session_id s, VM ref self)\end{verbatim}
3933 \noindent{\bf Arguments:}
3936 \vspace{0.3cm}
3937 \begin{tabular}{|c|c|p{7cm}|}
3938 \hline
3939 {\bf type} & {\bf name} & {\bf description} \\ \hline
3940 {\tt VM ref } & self & reference to the object \\ \hline
3942 \end{tabular}
3944 \vspace{0.3cm}
3946 \noindent {\bf Return Type:}
3947 {\tt
3948 (string $\rightarrow$ string) Map
3952 value of the field
3953 \vspace{0.3cm}
3954 \vspace{0.3cm}
3955 \vspace{0.3cm}
3956 \subsubsection{RPC name:~set\_otherConfig}
3958 {\bf Overview:}
3959 Set the otherConfig field of the given VM.
3961 \noindent {\bf Signature:}
3962 \begin{verbatim} void set_otherConfig (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
3965 \noindent{\bf Arguments:}
3968 \vspace{0.3cm}
3969 \begin{tabular}{|c|c|p{7cm}|}
3970 \hline
3971 {\bf type} & {\bf name} & {\bf description} \\ \hline
3972 {\tt VM ref } & self & reference to the object \\ \hline
3974 {\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
3976 \end{tabular}
3978 \vspace{0.3cm}
3980 \noindent {\bf Return Type:}
3981 {\tt
3982 void
3987 \vspace{0.3cm}
3988 \vspace{0.3cm}
3989 \vspace{0.3cm}
3990 \subsubsection{RPC name:~add\_to\_otherConfig}
3992 {\bf Overview:}
3993 map add message derived from field otherConfig of object VM
3995 \noindent {\bf Signature:}
3996 \begin{verbatim} void add_to_otherConfig (session_id s, VM ref self, string key, string value)\end{verbatim}
3999 \noindent{\bf Arguments:}
4002 \vspace{0.3cm}
4003 \begin{tabular}{|c|c|p{7cm}|}
4004 \hline
4005 {\bf type} & {\bf name} & {\bf description} \\ \hline
4006 {\tt VM ref } & self & reference to the object \\ \hline
4008 {\tt string } & key & Key to add \\ \hline
4010 {\tt string } & value & Value to add \\ \hline
4012 \end{tabular}
4014 \vspace{0.3cm}
4016 \noindent {\bf Return Type:}
4017 {\tt
4018 void
4023 \vspace{0.3cm}
4024 \vspace{0.3cm}
4025 \vspace{0.3cm}
4026 \subsubsection{RPC name:~remove\_from\_otherConfig}
4028 {\bf Overview:}
4029 map remove message derived from field otherConfig of object VM
4031 \noindent {\bf Signature:}
4032 \begin{verbatim} void remove_from_otherConfig (session_id s, VM ref self, string key)\end{verbatim}
4035 \noindent{\bf Arguments:}
4038 \vspace{0.3cm}
4039 \begin{tabular}{|c|c|p{7cm}|}
4040 \hline
4041 {\bf type} & {\bf name} & {\bf description} \\ \hline
4042 {\tt VM ref } & self & reference to the object \\ \hline
4044 {\tt string } & key & Key to remove \\ \hline
4046 \end{tabular}
4048 \vspace{0.3cm}
4050 \noindent {\bf Return Type:}
4051 {\tt
4052 void
4057 \vspace{0.3cm}
4058 \vspace{0.3cm}
4059 \vspace{0.3cm}
4060 \subsubsection{RPC name:~create}
4062 {\bf Overview:}
4063 Create a new VM instance, and return its handle.
4065 \noindent {\bf Signature:}
4066 \begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
4069 \noindent{\bf Arguments:}
4072 \vspace{0.3cm}
4073 \begin{tabular}{|c|c|p{7cm}|}
4074 \hline
4075 {\bf type} & {\bf name} & {\bf description} \\ \hline
4076 {\tt VM record } & args & All constructor arguments \\ \hline
4078 \end{tabular}
4080 \vspace{0.3cm}
4082 \noindent {\bf Return Type:}
4083 {\tt
4084 VM ref
4088 reference to the newly created object
4089 \vspace{0.3cm}
4090 \vspace{0.3cm}
4091 \vspace{0.3cm}
4092 \subsubsection{RPC name:~destroy}
4094 {\bf Overview:}
4095 Destroy the specified VM. The VM is completely removed from the system. This function can only be called when the VM is in the Halted State.
4097 \noindent {\bf Signature:}
4098 \begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
4101 \noindent{\bf Arguments:}
4104 \vspace{0.3cm}
4105 \begin{tabular}{|c|c|p{7cm}|}
4106 \hline
4107 {\bf type} & {\bf name} & {\bf description} \\ \hline
4108 {\tt VM ref } & self & reference to the object \\ \hline
4110 \end{tabular}
4112 \vspace{0.3cm}
4114 \noindent {\bf Return Type:}
4115 {\tt
4116 void
4121 \vspace{0.3cm}
4122 \vspace{0.3cm}
4123 \vspace{0.3cm}
4124 \subsubsection{RPC name:~get\_by\_uuid}
4126 {\bf Overview:}
4127 Get a reference to the VM instance with the specified UUID.
4129 \noindent {\bf Signature:}
4130 \begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4133 \noindent{\bf Arguments:}
4136 \vspace{0.3cm}
4137 \begin{tabular}{|c|c|p{7cm}|}
4138 \hline
4139 {\bf type} & {\bf name} & {\bf description} \\ \hline
4140 {\tt string } & uuid & UUID of object to return \\ \hline
4142 \end{tabular}
4144 \vspace{0.3cm}
4146 \noindent {\bf Return Type:}
4147 {\tt
4148 VM ref
4152 reference to the object
4153 \vspace{0.3cm}
4154 \vspace{0.3cm}
4155 \vspace{0.3cm}
4156 \subsubsection{RPC name:~get\_record}
4158 {\bf Overview:}
4159 Get a record containing the current state of the given VM.
4161 \noindent {\bf Signature:}
4162 \begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
4165 \noindent{\bf Arguments:}
4168 \vspace{0.3cm}
4169 \begin{tabular}{|c|c|p{7cm}|}
4170 \hline
4171 {\bf type} & {\bf name} & {\bf description} \\ \hline
4172 {\tt VM ref } & self & reference to the object \\ \hline
4174 \end{tabular}
4176 \vspace{0.3cm}
4178 \noindent {\bf Return Type:}
4179 {\tt
4180 VM record
4184 all fields from the object
4185 \vspace{0.3cm}
4186 \vspace{0.3cm}
4187 \vspace{0.3cm}
4188 \subsubsection{RPC name:~get\_by\_name\_label}
4190 {\bf Overview:}
4191 Get all the VM instances with the given label.
4193 \noindent {\bf Signature:}
4194 \begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4197 \noindent{\bf Arguments:}
4200 \vspace{0.3cm}
4201 \begin{tabular}{|c|c|p{7cm}|}
4202 \hline
4203 {\bf type} & {\bf name} & {\bf description} \\ \hline
4204 {\tt string } & label & label of object to return \\ \hline
4206 \end{tabular}
4208 \vspace{0.3cm}
4210 \noindent {\bf Return Type:}
4211 {\tt
4212 (VM ref) Set
4216 references to objects with match names
4217 \vspace{0.3cm}
4218 \vspace{0.3cm}
4219 \vspace{0.3cm}
4221 \vspace{1cm}
4222 \newpage
4223 \section{Class: host}
4224 \subsection{Fields for class: host}
4225 \begin{longtable}{|lllp{0.38\textwidth}|}
4226 \hline
4227 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
4228 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical host}} \\
4229 \hline
4230 Quals & Field & Type & Description \\
4231 \hline
4232 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4233 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
4234 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
4235 $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
4236 $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
4237 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
4238 $\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
4239 \hline
4240 \end{longtable}
4241 \subsection{Additional RPCs associated with class: host}
4242 \subsubsection{RPC name:~disable}
4244 {\bf Overview:}
4245 Puts the host into a state in which no new VMs can be started. Currently active VMs on the host continue to execute.
4247 \noindent {\bf Signature:}
4248 \begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
4251 \noindent{\bf Arguments:}
4254 \vspace{0.3cm}
4255 \begin{tabular}{|c|c|p{7cm}|}
4256 \hline
4257 {\bf type} & {\bf name} & {\bf description} \\ \hline
4258 {\tt host ref } & host & The Host to disable \\ \hline
4260 \end{tabular}
4262 \vspace{0.3cm}
4264 \noindent {\bf Return Type:}
4265 {\tt
4266 void
4271 \vspace{0.3cm}
4272 \vspace{0.3cm}
4273 \vspace{0.3cm}
4274 \subsubsection{RPC name:~enable}
4276 {\bf Overview:}
4277 Puts the host into a state in which new VMs can be started.
4279 \noindent {\bf Signature:}
4280 \begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
4283 \noindent{\bf Arguments:}
4286 \vspace{0.3cm}
4287 \begin{tabular}{|c|c|p{7cm}|}
4288 \hline
4289 {\bf type} & {\bf name} & {\bf description} \\ \hline
4290 {\tt host ref } & host & The Host to enable \\ \hline
4292 \end{tabular}
4294 \vspace{0.3cm}
4296 \noindent {\bf Return Type:}
4297 {\tt
4298 void
4303 \vspace{0.3cm}
4304 \vspace{0.3cm}
4305 \vspace{0.3cm}
4306 \subsubsection{RPC name:~shutdown}
4308 {\bf Overview:}
4309 Shutdown the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
4311 \noindent {\bf Signature:}
4312 \begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
4315 \noindent{\bf Arguments:}
4318 \vspace{0.3cm}
4319 \begin{tabular}{|c|c|p{7cm}|}
4320 \hline
4321 {\bf type} & {\bf name} & {\bf description} \\ \hline
4322 {\tt host ref } & host & The Host to shutdown \\ \hline
4324 \end{tabular}
4326 \vspace{0.3cm}
4328 \noindent {\bf Return Type:}
4329 {\tt
4330 void
4335 \vspace{0.3cm}
4336 \vspace{0.3cm}
4337 \vspace{0.3cm}
4338 \subsubsection{RPC name:~reboot}
4340 {\bf Overview:}
4341 Reboot the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)
4343 \noindent {\bf Signature:}
4344 \begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
4347 \noindent{\bf Arguments:}
4350 \vspace{0.3cm}
4351 \begin{tabular}{|c|c|p{7cm}|}
4352 \hline
4353 {\bf type} & {\bf name} & {\bf description} \\ \hline
4354 {\tt host ref } & host & The Host to reboot \\ \hline
4356 \end{tabular}
4358 \vspace{0.3cm}
4360 \noindent {\bf Return Type:}
4361 {\tt
4362 void
4367 \vspace{0.3cm}
4368 \vspace{0.3cm}
4369 \vspace{0.3cm}
4370 \subsubsection{RPC name:~get\_all}
4372 {\bf Overview:}
4373 Return a list of all the hosts known to the system
4375 \noindent {\bf Signature:}
4376 \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
4379 \vspace{0.3cm}
4381 \noindent {\bf Return Type:}
4382 {\tt
4383 (host ref) Set
4387 A list of all the IDs of all the hosts
4388 \vspace{0.3cm}
4389 \vspace{0.3cm}
4390 \vspace{0.3cm}
4391 \subsubsection{RPC name:~get\_uuid}
4393 {\bf Overview:}
4394 Get the uuid field of the given host.
4396 \noindent {\bf Signature:}
4397 \begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
4400 \noindent{\bf Arguments:}
4403 \vspace{0.3cm}
4404 \begin{tabular}{|c|c|p{7cm}|}
4405 \hline
4406 {\bf type} & {\bf name} & {\bf description} \\ \hline
4407 {\tt host ref } & self & reference to the object \\ \hline
4409 \end{tabular}
4411 \vspace{0.3cm}
4413 \noindent {\bf Return Type:}
4414 {\tt
4415 string
4419 value of the field
4420 \vspace{0.3cm}
4421 \vspace{0.3cm}
4422 \vspace{0.3cm}
4423 \subsubsection{RPC name:~get\_name\_label}
4425 {\bf Overview:}
4426 Get the name/label field of the given host.
4428 \noindent {\bf Signature:}
4429 \begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
4432 \noindent{\bf Arguments:}
4435 \vspace{0.3cm}
4436 \begin{tabular}{|c|c|p{7cm}|}
4437 \hline
4438 {\bf type} & {\bf name} & {\bf description} \\ \hline
4439 {\tt host ref } & self & reference to the object \\ \hline
4441 \end{tabular}
4443 \vspace{0.3cm}
4445 \noindent {\bf Return Type:}
4446 {\tt
4447 string
4451 value of the field
4452 \vspace{0.3cm}
4453 \vspace{0.3cm}
4454 \vspace{0.3cm}
4455 \subsubsection{RPC name:~set\_name\_label}
4457 {\bf Overview:}
4458 Set the name/label field of the given host.
4460 \noindent {\bf Signature:}
4461 \begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
4464 \noindent{\bf Arguments:}
4467 \vspace{0.3cm}
4468 \begin{tabular}{|c|c|p{7cm}|}
4469 \hline
4470 {\bf type} & {\bf name} & {\bf description} \\ \hline
4471 {\tt host ref } & self & reference to the object \\ \hline
4473 {\tt string } & value & New value to set \\ \hline
4475 \end{tabular}
4477 \vspace{0.3cm}
4479 \noindent {\bf Return Type:}
4480 {\tt
4481 void
4486 \vspace{0.3cm}
4487 \vspace{0.3cm}
4488 \vspace{0.3cm}
4489 \subsubsection{RPC name:~get\_name\_description}
4491 {\bf Overview:}
4492 Get the name/description field of the given host.
4494 \noindent {\bf Signature:}
4495 \begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
4498 \noindent{\bf Arguments:}
4501 \vspace{0.3cm}
4502 \begin{tabular}{|c|c|p{7cm}|}
4503 \hline
4504 {\bf type} & {\bf name} & {\bf description} \\ \hline
4505 {\tt host ref } & self & reference to the object \\ \hline
4507 \end{tabular}
4509 \vspace{0.3cm}
4511 \noindent {\bf Return Type:}
4512 {\tt
4513 string
4517 value of the field
4518 \vspace{0.3cm}
4519 \vspace{0.3cm}
4520 \vspace{0.3cm}
4521 \subsubsection{RPC name:~set\_name\_description}
4523 {\bf Overview:}
4524 Set the name/description field of the given host.
4526 \noindent {\bf Signature:}
4527 \begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
4530 \noindent{\bf Arguments:}
4533 \vspace{0.3cm}
4534 \begin{tabular}{|c|c|p{7cm}|}
4535 \hline
4536 {\bf type} & {\bf name} & {\bf description} \\ \hline
4537 {\tt host ref } & self & reference to the object \\ \hline
4539 {\tt string } & value & New value to set \\ \hline
4541 \end{tabular}
4543 \vspace{0.3cm}
4545 \noindent {\bf Return Type:}
4546 {\tt
4547 void
4552 \vspace{0.3cm}
4553 \vspace{0.3cm}
4554 \vspace{0.3cm}
4555 \subsubsection{RPC name:~get\_software\_version}
4557 {\bf Overview:}
4558 Get the software\_version field of the given host.
4560 \noindent {\bf Signature:}
4561 \begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
4564 \noindent{\bf Arguments:}
4567 \vspace{0.3cm}
4568 \begin{tabular}{|c|c|p{7cm}|}
4569 \hline
4570 {\bf type} & {\bf name} & {\bf description} \\ \hline
4571 {\tt host ref } & self & reference to the object \\ \hline
4573 \end{tabular}
4575 \vspace{0.3cm}
4577 \noindent {\bf Return Type:}
4578 {\tt
4579 (string $\rightarrow$ string) Map
4583 value of the field
4584 \vspace{0.3cm}
4585 \vspace{0.3cm}
4586 \vspace{0.3cm}
4587 \subsubsection{RPC name:~get\_resident\_VMs}
4589 {\bf Overview:}
4590 Get the resident\_VMs field of the given host.
4592 \noindent {\bf Signature:}
4593 \begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
4596 \noindent{\bf Arguments:}
4599 \vspace{0.3cm}
4600 \begin{tabular}{|c|c|p{7cm}|}
4601 \hline
4602 {\bf type} & {\bf name} & {\bf description} \\ \hline
4603 {\tt host ref } & self & reference to the object \\ \hline
4605 \end{tabular}
4607 \vspace{0.3cm}
4609 \noindent {\bf Return Type:}
4610 {\tt
4611 (VM ref) Set
4615 value of the field
4616 \vspace{0.3cm}
4617 \vspace{0.3cm}
4618 \vspace{0.3cm}
4619 \subsubsection{RPC name:~get\_PIFs}
4621 {\bf Overview:}
4622 Get the PIFs field of the given host.
4624 \noindent {\bf Signature:}
4625 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
4628 \noindent{\bf Arguments:}
4631 \vspace{0.3cm}
4632 \begin{tabular}{|c|c|p{7cm}|}
4633 \hline
4634 {\bf type} & {\bf name} & {\bf description} \\ \hline
4635 {\tt host ref } & self & reference to the object \\ \hline
4637 \end{tabular}
4639 \vspace{0.3cm}
4641 \noindent {\bf Return Type:}
4642 {\tt
4643 (PIF ref) Set
4647 value of the field
4648 \vspace{0.3cm}
4649 \vspace{0.3cm}
4650 \vspace{0.3cm}
4651 \subsubsection{RPC name:~get\_host\_CPUs}
4653 {\bf Overview:}
4654 Get the host\_CPUs field of the given host.
4656 \noindent {\bf Signature:}
4657 \begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
4660 \noindent{\bf Arguments:}
4663 \vspace{0.3cm}
4664 \begin{tabular}{|c|c|p{7cm}|}
4665 \hline
4666 {\bf type} & {\bf name} & {\bf description} \\ \hline
4667 {\tt host ref } & self & reference to the object \\ \hline
4669 \end{tabular}
4671 \vspace{0.3cm}
4673 \noindent {\bf Return Type:}
4674 {\tt
4675 (host\_cpu ref) Set
4679 value of the field
4680 \vspace{0.3cm}
4681 \vspace{0.3cm}
4682 \vspace{0.3cm}
4683 \subsubsection{RPC name:~create}
4685 {\bf Overview:}
4686 Create a new host instance, and return its handle.
4688 \noindent {\bf Signature:}
4689 \begin{verbatim} (host ref) create (session_id s, host record args)\end{verbatim}
4692 \noindent{\bf Arguments:}
4695 \vspace{0.3cm}
4696 \begin{tabular}{|c|c|p{7cm}|}
4697 \hline
4698 {\bf type} & {\bf name} & {\bf description} \\ \hline
4699 {\tt host record } & args & All constructor arguments \\ \hline
4701 \end{tabular}
4703 \vspace{0.3cm}
4705 \noindent {\bf Return Type:}
4706 {\tt
4707 host ref
4711 reference to the newly created object
4712 \vspace{0.3cm}
4713 \vspace{0.3cm}
4714 \vspace{0.3cm}
4715 \subsubsection{RPC name:~destroy}
4717 {\bf Overview:}
4718 Destroy the specified host instance.
4720 \noindent {\bf Signature:}
4721 \begin{verbatim} void destroy (session_id s, host ref self)\end{verbatim}
4724 \noindent{\bf Arguments:}
4727 \vspace{0.3cm}
4728 \begin{tabular}{|c|c|p{7cm}|}
4729 \hline
4730 {\bf type} & {\bf name} & {\bf description} \\ \hline
4731 {\tt host ref } & self & reference to the object \\ \hline
4733 \end{tabular}
4735 \vspace{0.3cm}
4737 \noindent {\bf Return Type:}
4738 {\tt
4739 void
4744 \vspace{0.3cm}
4745 \vspace{0.3cm}
4746 \vspace{0.3cm}
4747 \subsubsection{RPC name:~get\_by\_uuid}
4749 {\bf Overview:}
4750 Get a reference to the host instance with the specified UUID.
4752 \noindent {\bf Signature:}
4753 \begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
4756 \noindent{\bf Arguments:}
4759 \vspace{0.3cm}
4760 \begin{tabular}{|c|c|p{7cm}|}
4761 \hline
4762 {\bf type} & {\bf name} & {\bf description} \\ \hline
4763 {\tt string } & uuid & UUID of object to return \\ \hline
4765 \end{tabular}
4767 \vspace{0.3cm}
4769 \noindent {\bf Return Type:}
4770 {\tt
4771 host ref
4775 reference to the object
4776 \vspace{0.3cm}
4777 \vspace{0.3cm}
4778 \vspace{0.3cm}
4779 \subsubsection{RPC name:~get\_record}
4781 {\bf Overview:}
4782 Get a record containing the current state of the given host.
4784 \noindent {\bf Signature:}
4785 \begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
4788 \noindent{\bf Arguments:}
4791 \vspace{0.3cm}
4792 \begin{tabular}{|c|c|p{7cm}|}
4793 \hline
4794 {\bf type} & {\bf name} & {\bf description} \\ \hline
4795 {\tt host ref } & self & reference to the object \\ \hline
4797 \end{tabular}
4799 \vspace{0.3cm}
4801 \noindent {\bf Return Type:}
4802 {\tt
4803 host record
4807 all fields from the object
4808 \vspace{0.3cm}
4809 \vspace{0.3cm}
4810 \vspace{0.3cm}
4811 \subsubsection{RPC name:~get\_by\_name\_label}
4813 {\bf Overview:}
4814 Get all the host instances with the given label.
4816 \noindent {\bf Signature:}
4817 \begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
4820 \noindent{\bf Arguments:}
4823 \vspace{0.3cm}
4824 \begin{tabular}{|c|c|p{7cm}|}
4825 \hline
4826 {\bf type} & {\bf name} & {\bf description} \\ \hline
4827 {\tt string } & label & label of object to return \\ \hline
4829 \end{tabular}
4831 \vspace{0.3cm}
4833 \noindent {\bf Return Type:}
4834 {\tt
4835 (host ref) Set
4839 references to objects with match names
4840 \vspace{0.3cm}
4841 \vspace{0.3cm}
4842 \vspace{0.3cm}
4844 \vspace{1cm}
4845 \newpage
4846 \section{Class: host\_cpu}
4847 \subsection{Fields for class: host\_cpu}
4848 \begin{longtable}{|lllp{0.38\textwidth}|}
4849 \hline
4850 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
4851 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
4852 \hline
4853 Quals & Field & Type & Description \\
4854 \hline
4855 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
4856 $\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & the host the CPU is in \\
4857 $\mathit{RO}_\mathit{ins}$ & {\tt number} & int & the number of the physical CPU within the host \\
4858 $\mathit{RO}_\mathit{ins}$ & {\tt vendor} & string & the vendor of the physical CPU \\
4859 $\mathit{RO}_\mathit{ins}$ & {\tt speed} & int & the speed of the physical CPU \\
4860 $\mathit{RO}_\mathit{ins}$ & {\tt modelname} & string & the model name of the physical CPU \\
4861 $\mathit{RO}_\mathit{ins}$ & {\tt features} & (cpu\_feature) Set & the features supported by the CPU \\
4862 $\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
4863 \hline
4864 \end{longtable}
4865 \subsection{Additional RPCs associated with class: host\_cpu}
4866 \subsubsection{RPC name:~get\_uuid}
4868 {\bf Overview:}
4869 Get the uuid field of the given host\_cpu.
4871 \noindent {\bf Signature:}
4872 \begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
4875 \noindent{\bf Arguments:}
4878 \vspace{0.3cm}
4879 \begin{tabular}{|c|c|p{7cm}|}
4880 \hline
4881 {\bf type} & {\bf name} & {\bf description} \\ \hline
4882 {\tt host\_cpu ref } & self & reference to the object \\ \hline
4884 \end{tabular}
4886 \vspace{0.3cm}
4888 \noindent {\bf Return Type:}
4889 {\tt
4890 string
4894 value of the field
4895 \vspace{0.3cm}
4896 \vspace{0.3cm}
4897 \vspace{0.3cm}
4898 \subsubsection{RPC name:~get\_host}
4900 {\bf Overview:}
4901 Get the host field of the given host\_cpu.
4903 \noindent {\bf Signature:}
4904 \begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
4907 \noindent{\bf Arguments:}
4910 \vspace{0.3cm}
4911 \begin{tabular}{|c|c|p{7cm}|}
4912 \hline
4913 {\bf type} & {\bf name} & {\bf description} \\ \hline
4914 {\tt host\_cpu ref } & self & reference to the object \\ \hline
4916 \end{tabular}
4918 \vspace{0.3cm}
4920 \noindent {\bf Return Type:}
4921 {\tt
4922 host ref
4926 value of the field
4927 \vspace{0.3cm}
4928 \vspace{0.3cm}
4929 \vspace{0.3cm}
4930 \subsubsection{RPC name:~get\_number}
4932 {\bf Overview:}
4933 Get the number field of the given host\_cpu.
4935 \noindent {\bf Signature:}
4936 \begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
4939 \noindent{\bf Arguments:}
4942 \vspace{0.3cm}
4943 \begin{tabular}{|c|c|p{7cm}|}
4944 \hline
4945 {\bf type} & {\bf name} & {\bf description} \\ \hline
4946 {\tt host\_cpu ref } & self & reference to the object \\ \hline
4948 \end{tabular}
4950 \vspace{0.3cm}
4952 \noindent {\bf Return Type:}
4953 {\tt
4954 int
4958 value of the field
4959 \vspace{0.3cm}
4960 \vspace{0.3cm}
4961 \vspace{0.3cm}
4962 \subsubsection{RPC name:~get\_vendor}
4964 {\bf Overview:}
4965 Get the vendor field of the given host\_cpu.
4967 \noindent {\bf Signature:}
4968 \begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
4971 \noindent{\bf Arguments:}
4974 \vspace{0.3cm}
4975 \begin{tabular}{|c|c|p{7cm}|}
4976 \hline
4977 {\bf type} & {\bf name} & {\bf description} \\ \hline
4978 {\tt host\_cpu ref } & self & reference to the object \\ \hline
4980 \end{tabular}
4982 \vspace{0.3cm}
4984 \noindent {\bf Return Type:}
4985 {\tt
4986 string
4990 value of the field
4991 \vspace{0.3cm}
4992 \vspace{0.3cm}
4993 \vspace{0.3cm}
4994 \subsubsection{RPC name:~get\_speed}
4996 {\bf Overview:}
4997 Get the speed field of the given host\_cpu.
4999 \noindent {\bf Signature:}
5000 \begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
5003 \noindent{\bf Arguments:}
5006 \vspace{0.3cm}
5007 \begin{tabular}{|c|c|p{7cm}|}
5008 \hline
5009 {\bf type} & {\bf name} & {\bf description} \\ \hline
5010 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5012 \end{tabular}
5014 \vspace{0.3cm}
5016 \noindent {\bf Return Type:}
5017 {\tt
5018 int
5022 value of the field
5023 \vspace{0.3cm}
5024 \vspace{0.3cm}
5025 \vspace{0.3cm}
5026 \subsubsection{RPC name:~get\_modelname}
5028 {\bf Overview:}
5029 Get the modelname field of the given host\_cpu.
5031 \noindent {\bf Signature:}
5032 \begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
5035 \noindent{\bf Arguments:}
5038 \vspace{0.3cm}
5039 \begin{tabular}{|c|c|p{7cm}|}
5040 \hline
5041 {\bf type} & {\bf name} & {\bf description} \\ \hline
5042 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5044 \end{tabular}
5046 \vspace{0.3cm}
5048 \noindent {\bf Return Type:}
5049 {\tt
5050 string
5054 value of the field
5055 \vspace{0.3cm}
5056 \vspace{0.3cm}
5057 \vspace{0.3cm}
5058 \subsubsection{RPC name:~get\_features}
5060 {\bf Overview:}
5061 Get the features field of the given host\_cpu.
5063 \noindent {\bf Signature:}
5064 \begin{verbatim} ((cpu_feature) Set) get_features (session_id s, host_cpu ref self)\end{verbatim}
5067 \noindent{\bf Arguments:}
5070 \vspace{0.3cm}
5071 \begin{tabular}{|c|c|p{7cm}|}
5072 \hline
5073 {\bf type} & {\bf name} & {\bf description} \\ \hline
5074 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5076 \end{tabular}
5078 \vspace{0.3cm}
5080 \noindent {\bf Return Type:}
5081 {\tt
5082 (cpu\_feature) Set
5086 value of the field
5087 \vspace{0.3cm}
5088 \vspace{0.3cm}
5089 \vspace{0.3cm}
5090 \subsubsection{RPC name:~get\_utilisation}
5092 {\bf Overview:}
5093 Get the utilisation field of the given host\_cpu.
5095 \noindent {\bf Signature:}
5096 \begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
5099 \noindent{\bf Arguments:}
5102 \vspace{0.3cm}
5103 \begin{tabular}{|c|c|p{7cm}|}
5104 \hline
5105 {\bf type} & {\bf name} & {\bf description} \\ \hline
5106 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5108 \end{tabular}
5110 \vspace{0.3cm}
5112 \noindent {\bf Return Type:}
5113 {\tt
5114 float
5118 value of the field
5119 \vspace{0.3cm}
5120 \vspace{0.3cm}
5121 \vspace{0.3cm}
5122 \subsubsection{RPC name:~create}
5124 {\bf Overview:}
5125 Create a new host\_cpu instance, and return its handle.
5127 \noindent {\bf Signature:}
5128 \begin{verbatim} (host_cpu ref) create (session_id s, host_cpu record args)\end{verbatim}
5131 \noindent{\bf Arguments:}
5134 \vspace{0.3cm}
5135 \begin{tabular}{|c|c|p{7cm}|}
5136 \hline
5137 {\bf type} & {\bf name} & {\bf description} \\ \hline
5138 {\tt host\_cpu record } & args & All constructor arguments \\ \hline
5140 \end{tabular}
5142 \vspace{0.3cm}
5144 \noindent {\bf Return Type:}
5145 {\tt
5146 host\_cpu ref
5150 reference to the newly created object
5151 \vspace{0.3cm}
5152 \vspace{0.3cm}
5153 \vspace{0.3cm}
5154 \subsubsection{RPC name:~destroy}
5156 {\bf Overview:}
5157 Destroy the specified host\_cpu instance.
5159 \noindent {\bf Signature:}
5160 \begin{verbatim} void destroy (session_id s, host_cpu ref self)\end{verbatim}
5163 \noindent{\bf Arguments:}
5166 \vspace{0.3cm}
5167 \begin{tabular}{|c|c|p{7cm}|}
5168 \hline
5169 {\bf type} & {\bf name} & {\bf description} \\ \hline
5170 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5172 \end{tabular}
5174 \vspace{0.3cm}
5176 \noindent {\bf Return Type:}
5177 {\tt
5178 void
5183 \vspace{0.3cm}
5184 \vspace{0.3cm}
5185 \vspace{0.3cm}
5186 \subsubsection{RPC name:~get\_by\_uuid}
5188 {\bf Overview:}
5189 Get a reference to the host\_cpu instance with the specified UUID.
5191 \noindent {\bf Signature:}
5192 \begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5195 \noindent{\bf Arguments:}
5198 \vspace{0.3cm}
5199 \begin{tabular}{|c|c|p{7cm}|}
5200 \hline
5201 {\bf type} & {\bf name} & {\bf description} \\ \hline
5202 {\tt string } & uuid & UUID of object to return \\ \hline
5204 \end{tabular}
5206 \vspace{0.3cm}
5208 \noindent {\bf Return Type:}
5209 {\tt
5210 host\_cpu ref
5214 reference to the object
5215 \vspace{0.3cm}
5216 \vspace{0.3cm}
5217 \vspace{0.3cm}
5218 \subsubsection{RPC name:~get\_record}
5220 {\bf Overview:}
5221 Get a record containing the current state of the given host\_cpu.
5223 \noindent {\bf Signature:}
5224 \begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
5227 \noindent{\bf Arguments:}
5230 \vspace{0.3cm}
5231 \begin{tabular}{|c|c|p{7cm}|}
5232 \hline
5233 {\bf type} & {\bf name} & {\bf description} \\ \hline
5234 {\tt host\_cpu ref } & self & reference to the object \\ \hline
5236 \end{tabular}
5238 \vspace{0.3cm}
5240 \noindent {\bf Return Type:}
5241 {\tt
5242 host\_cpu record
5246 all fields from the object
5247 \vspace{0.3cm}
5248 \vspace{0.3cm}
5249 \vspace{0.3cm}
5251 \vspace{1cm}
5252 \newpage
5253 \section{Class: network}
5254 \subsection{Fields for class: network}
5255 \begin{longtable}{|lllp{0.38\textwidth}|}
5256 \hline
5257 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
5258 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual network}} \\
5259 \hline
5260 Quals & Field & Type & Description \\
5261 \hline
5262 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5263 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
5264 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
5265 $\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
5266 $\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
5267 $\mathit{RW}$ & {\tt default\_gateway} & string & default gateway IP address. Used for auto-configuring guests with fixed IP setting \\
5268 $\mathit{RW}$ & {\tt default\_netmask} & string & default netmask. Used for auto-configuring guests with fixed IP setting \\
5269 \hline
5270 \end{longtable}
5271 \subsection{Additional RPCs associated with class: network}
5272 \subsubsection{RPC name:~get\_all}
5274 {\bf Overview:}
5275 Return a list of all the networks known to the system
5277 \noindent {\bf Signature:}
5278 \begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
5281 \vspace{0.3cm}
5283 \noindent {\bf Return Type:}
5284 {\tt
5285 (network ref) Set
5289 A list of all the IDs of all the networks
5290 \vspace{0.3cm}
5291 \vspace{0.3cm}
5292 \vspace{0.3cm}
5293 \subsubsection{RPC name:~get\_uuid}
5295 {\bf Overview:}
5296 Get the uuid field of the given network.
5298 \noindent {\bf Signature:}
5299 \begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
5302 \noindent{\bf Arguments:}
5305 \vspace{0.3cm}
5306 \begin{tabular}{|c|c|p{7cm}|}
5307 \hline
5308 {\bf type} & {\bf name} & {\bf description} \\ \hline
5309 {\tt network ref } & self & reference to the object \\ \hline
5311 \end{tabular}
5313 \vspace{0.3cm}
5315 \noindent {\bf Return Type:}
5316 {\tt
5317 string
5321 value of the field
5322 \vspace{0.3cm}
5323 \vspace{0.3cm}
5324 \vspace{0.3cm}
5325 \subsubsection{RPC name:~get\_name\_label}
5327 {\bf Overview:}
5328 Get the name/label field of the given network.
5330 \noindent {\bf Signature:}
5331 \begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
5334 \noindent{\bf Arguments:}
5337 \vspace{0.3cm}
5338 \begin{tabular}{|c|c|p{7cm}|}
5339 \hline
5340 {\bf type} & {\bf name} & {\bf description} \\ \hline
5341 {\tt network ref } & self & reference to the object \\ \hline
5343 \end{tabular}
5345 \vspace{0.3cm}
5347 \noindent {\bf Return Type:}
5348 {\tt
5349 string
5353 value of the field
5354 \vspace{0.3cm}
5355 \vspace{0.3cm}
5356 \vspace{0.3cm}
5357 \subsubsection{RPC name:~set\_name\_label}
5359 {\bf Overview:}
5360 Set the name/label field of the given network.
5362 \noindent {\bf Signature:}
5363 \begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
5366 \noindent{\bf Arguments:}
5369 \vspace{0.3cm}
5370 \begin{tabular}{|c|c|p{7cm}|}
5371 \hline
5372 {\bf type} & {\bf name} & {\bf description} \\ \hline
5373 {\tt network ref } & self & reference to the object \\ \hline
5375 {\tt string } & value & New value to set \\ \hline
5377 \end{tabular}
5379 \vspace{0.3cm}
5381 \noindent {\bf Return Type:}
5382 {\tt
5383 void
5388 \vspace{0.3cm}
5389 \vspace{0.3cm}
5390 \vspace{0.3cm}
5391 \subsubsection{RPC name:~get\_name\_description}
5393 {\bf Overview:}
5394 Get the name/description field of the given network.
5396 \noindent {\bf Signature:}
5397 \begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
5400 \noindent{\bf Arguments:}
5403 \vspace{0.3cm}
5404 \begin{tabular}{|c|c|p{7cm}|}
5405 \hline
5406 {\bf type} & {\bf name} & {\bf description} \\ \hline
5407 {\tt network ref } & self & reference to the object \\ \hline
5409 \end{tabular}
5411 \vspace{0.3cm}
5413 \noindent {\bf Return Type:}
5414 {\tt
5415 string
5419 value of the field
5420 \vspace{0.3cm}
5421 \vspace{0.3cm}
5422 \vspace{0.3cm}
5423 \subsubsection{RPC name:~set\_name\_description}
5425 {\bf Overview:}
5426 Set the name/description field of the given network.
5428 \noindent {\bf Signature:}
5429 \begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
5432 \noindent{\bf Arguments:}
5435 \vspace{0.3cm}
5436 \begin{tabular}{|c|c|p{7cm}|}
5437 \hline
5438 {\bf type} & {\bf name} & {\bf description} \\ \hline
5439 {\tt network ref } & self & reference to the object \\ \hline
5441 {\tt string } & value & New value to set \\ \hline
5443 \end{tabular}
5445 \vspace{0.3cm}
5447 \noindent {\bf Return Type:}
5448 {\tt
5449 void
5454 \vspace{0.3cm}
5455 \vspace{0.3cm}
5456 \vspace{0.3cm}
5457 \subsubsection{RPC name:~get\_VIFs}
5459 {\bf Overview:}
5460 Get the VIFs field of the given network.
5462 \noindent {\bf Signature:}
5463 \begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
5466 \noindent{\bf Arguments:}
5469 \vspace{0.3cm}
5470 \begin{tabular}{|c|c|p{7cm}|}
5471 \hline
5472 {\bf type} & {\bf name} & {\bf description} \\ \hline
5473 {\tt network ref } & self & reference to the object \\ \hline
5475 \end{tabular}
5477 \vspace{0.3cm}
5479 \noindent {\bf Return Type:}
5480 {\tt
5481 (VIF ref) Set
5485 value of the field
5486 \vspace{0.3cm}
5487 \vspace{0.3cm}
5488 \vspace{0.3cm}
5489 \subsubsection{RPC name:~get\_PIFs}
5491 {\bf Overview:}
5492 Get the PIFs field of the given network.
5494 \noindent {\bf Signature:}
5495 \begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
5498 \noindent{\bf Arguments:}
5501 \vspace{0.3cm}
5502 \begin{tabular}{|c|c|p{7cm}|}
5503 \hline
5504 {\bf type} & {\bf name} & {\bf description} \\ \hline
5505 {\tt network ref } & self & reference to the object \\ \hline
5507 \end{tabular}
5509 \vspace{0.3cm}
5511 \noindent {\bf Return Type:}
5512 {\tt
5513 (PIF ref) Set
5517 value of the field
5518 \vspace{0.3cm}
5519 \vspace{0.3cm}
5520 \vspace{0.3cm}
5521 \subsubsection{RPC name:~get\_default\_gateway}
5523 {\bf Overview:}
5524 Get the default\_gateway field of the given network.
5526 \noindent {\bf Signature:}
5527 \begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
5530 \noindent{\bf Arguments:}
5533 \vspace{0.3cm}
5534 \begin{tabular}{|c|c|p{7cm}|}
5535 \hline
5536 {\bf type} & {\bf name} & {\bf description} \\ \hline
5537 {\tt network ref } & self & reference to the object \\ \hline
5539 \end{tabular}
5541 \vspace{0.3cm}
5543 \noindent {\bf Return Type:}
5544 {\tt
5545 string
5549 value of the field
5550 \vspace{0.3cm}
5551 \vspace{0.3cm}
5552 \vspace{0.3cm}
5553 \subsubsection{RPC name:~set\_default\_gateway}
5555 {\bf Overview:}
5556 Set the default\_gateway field of the given network.
5558 \noindent {\bf Signature:}
5559 \begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
5562 \noindent{\bf Arguments:}
5565 \vspace{0.3cm}
5566 \begin{tabular}{|c|c|p{7cm}|}
5567 \hline
5568 {\bf type} & {\bf name} & {\bf description} \\ \hline
5569 {\tt network ref } & self & reference to the object \\ \hline
5571 {\tt string } & value & New value to set \\ \hline
5573 \end{tabular}
5575 \vspace{0.3cm}
5577 \noindent {\bf Return Type:}
5578 {\tt
5579 void
5584 \vspace{0.3cm}
5585 \vspace{0.3cm}
5586 \vspace{0.3cm}
5587 \subsubsection{RPC name:~get\_default\_netmask}
5589 {\bf Overview:}
5590 Get the default\_netmask field of the given network.
5592 \noindent {\bf Signature:}
5593 \begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
5596 \noindent{\bf Arguments:}
5599 \vspace{0.3cm}
5600 \begin{tabular}{|c|c|p{7cm}|}
5601 \hline
5602 {\bf type} & {\bf name} & {\bf description} \\ \hline
5603 {\tt network ref } & self & reference to the object \\ \hline
5605 \end{tabular}
5607 \vspace{0.3cm}
5609 \noindent {\bf Return Type:}
5610 {\tt
5611 string
5615 value of the field
5616 \vspace{0.3cm}
5617 \vspace{0.3cm}
5618 \vspace{0.3cm}
5619 \subsubsection{RPC name:~set\_default\_netmask}
5621 {\bf Overview:}
5622 Set the default\_netmask field of the given network.
5624 \noindent {\bf Signature:}
5625 \begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
5628 \noindent{\bf Arguments:}
5631 \vspace{0.3cm}
5632 \begin{tabular}{|c|c|p{7cm}|}
5633 \hline
5634 {\bf type} & {\bf name} & {\bf description} \\ \hline
5635 {\tt network ref } & self & reference to the object \\ \hline
5637 {\tt string } & value & New value to set \\ \hline
5639 \end{tabular}
5641 \vspace{0.3cm}
5643 \noindent {\bf Return Type:}
5644 {\tt
5645 void
5650 \vspace{0.3cm}
5651 \vspace{0.3cm}
5652 \vspace{0.3cm}
5653 \subsubsection{RPC name:~create}
5655 {\bf Overview:}
5656 Create a new network instance, and return its handle.
5658 \noindent {\bf Signature:}
5659 \begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
5662 \noindent{\bf Arguments:}
5665 \vspace{0.3cm}
5666 \begin{tabular}{|c|c|p{7cm}|}
5667 \hline
5668 {\bf type} & {\bf name} & {\bf description} \\ \hline
5669 {\tt network record } & args & All constructor arguments \\ \hline
5671 \end{tabular}
5673 \vspace{0.3cm}
5675 \noindent {\bf Return Type:}
5676 {\tt
5677 network ref
5681 reference to the newly created object
5682 \vspace{0.3cm}
5683 \vspace{0.3cm}
5684 \vspace{0.3cm}
5685 \subsubsection{RPC name:~destroy}
5687 {\bf Overview:}
5688 Destroy the specified network instance.
5690 \noindent {\bf Signature:}
5691 \begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
5694 \noindent{\bf Arguments:}
5697 \vspace{0.3cm}
5698 \begin{tabular}{|c|c|p{7cm}|}
5699 \hline
5700 {\bf type} & {\bf name} & {\bf description} \\ \hline
5701 {\tt network ref } & self & reference to the object \\ \hline
5703 \end{tabular}
5705 \vspace{0.3cm}
5707 \noindent {\bf Return Type:}
5708 {\tt
5709 void
5714 \vspace{0.3cm}
5715 \vspace{0.3cm}
5716 \vspace{0.3cm}
5717 \subsubsection{RPC name:~get\_by\_uuid}
5719 {\bf Overview:}
5720 Get a reference to the network instance with the specified UUID.
5722 \noindent {\bf Signature:}
5723 \begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
5726 \noindent{\bf Arguments:}
5729 \vspace{0.3cm}
5730 \begin{tabular}{|c|c|p{7cm}|}
5731 \hline
5732 {\bf type} & {\bf name} & {\bf description} \\ \hline
5733 {\tt string } & uuid & UUID of object to return \\ \hline
5735 \end{tabular}
5737 \vspace{0.3cm}
5739 \noindent {\bf Return Type:}
5740 {\tt
5741 network ref
5745 reference to the object
5746 \vspace{0.3cm}
5747 \vspace{0.3cm}
5748 \vspace{0.3cm}
5749 \subsubsection{RPC name:~get\_record}
5751 {\bf Overview:}
5752 Get a record containing the current state of the given network.
5754 \noindent {\bf Signature:}
5755 \begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
5758 \noindent{\bf Arguments:}
5761 \vspace{0.3cm}
5762 \begin{tabular}{|c|c|p{7cm}|}
5763 \hline
5764 {\bf type} & {\bf name} & {\bf description} \\ \hline
5765 {\tt network ref } & self & reference to the object \\ \hline
5767 \end{tabular}
5769 \vspace{0.3cm}
5771 \noindent {\bf Return Type:}
5772 {\tt
5773 network record
5777 all fields from the object
5778 \vspace{0.3cm}
5779 \vspace{0.3cm}
5780 \vspace{0.3cm}
5781 \subsubsection{RPC name:~get\_by\_name\_label}
5783 {\bf Overview:}
5784 Get all the network instances with the given label.
5786 \noindent {\bf Signature:}
5787 \begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
5790 \noindent{\bf Arguments:}
5793 \vspace{0.3cm}
5794 \begin{tabular}{|c|c|p{7cm}|}
5795 \hline
5796 {\bf type} & {\bf name} & {\bf description} \\ \hline
5797 {\tt string } & label & label of object to return \\ \hline
5799 \end{tabular}
5801 \vspace{0.3cm}
5803 \noindent {\bf Return Type:}
5804 {\tt
5805 (network ref) Set
5809 references to objects with match names
5810 \vspace{0.3cm}
5811 \vspace{0.3cm}
5812 \vspace{0.3cm}
5814 \vspace{1cm}
5815 \newpage
5816 \section{Class: VIF}
5817 \subsection{Fields for class: VIF}
5818 \begin{longtable}{|lllp{0.38\textwidth}|}
5819 \hline
5820 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
5821 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual network interface}} \\
5822 \hline
5823 Quals & Field & Type & Description \\
5824 \hline
5825 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
5826 $\mathit{RW}$ & {\tt name} & string & human-readable name of the interface \\
5827 $\mathit{RW}$ & {\tt type} & driver\_type & interface type \\
5828 $\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
5829 $\mathit{RW}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
5830 $\mathit{RW}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
5831 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
5832 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
5833 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
5834 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
5835 \hline
5836 \end{longtable}
5837 \subsection{Additional RPCs associated with class: VIF}
5838 \subsubsection{RPC name:~get\_uuid}
5840 {\bf Overview:}
5841 Get the uuid field of the given VIF.
5843 \noindent {\bf Signature:}
5844 \begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
5847 \noindent{\bf Arguments:}
5850 \vspace{0.3cm}
5851 \begin{tabular}{|c|c|p{7cm}|}
5852 \hline
5853 {\bf type} & {\bf name} & {\bf description} \\ \hline
5854 {\tt VIF ref } & self & reference to the object \\ \hline
5856 \end{tabular}
5858 \vspace{0.3cm}
5860 \noindent {\bf Return Type:}
5861 {\tt
5862 string
5866 value of the field
5867 \vspace{0.3cm}
5868 \vspace{0.3cm}
5869 \vspace{0.3cm}
5870 \subsubsection{RPC name:~get\_name}
5872 {\bf Overview:}
5873 Get the name field of the given VIF.
5875 \noindent {\bf Signature:}
5876 \begin{verbatim} string get_name (session_id s, VIF ref self)\end{verbatim}
5879 \noindent{\bf Arguments:}
5882 \vspace{0.3cm}
5883 \begin{tabular}{|c|c|p{7cm}|}
5884 \hline
5885 {\bf type} & {\bf name} & {\bf description} \\ \hline
5886 {\tt VIF ref } & self & reference to the object \\ \hline
5888 \end{tabular}
5890 \vspace{0.3cm}
5892 \noindent {\bf Return Type:}
5893 {\tt
5894 string
5898 value of the field
5899 \vspace{0.3cm}
5900 \vspace{0.3cm}
5901 \vspace{0.3cm}
5902 \subsubsection{RPC name:~set\_name}
5904 {\bf Overview:}
5905 Set the name field of the given VIF.
5907 \noindent {\bf Signature:}
5908 \begin{verbatim} void set_name (session_id s, VIF ref self, string value)\end{verbatim}
5911 \noindent{\bf Arguments:}
5914 \vspace{0.3cm}
5915 \begin{tabular}{|c|c|p{7cm}|}
5916 \hline
5917 {\bf type} & {\bf name} & {\bf description} \\ \hline
5918 {\tt VIF ref } & self & reference to the object \\ \hline
5920 {\tt string } & value & New value to set \\ \hline
5922 \end{tabular}
5924 \vspace{0.3cm}
5926 \noindent {\bf Return Type:}
5927 {\tt
5928 void
5933 \vspace{0.3cm}
5934 \vspace{0.3cm}
5935 \vspace{0.3cm}
5936 \subsubsection{RPC name:~get\_type}
5938 {\bf Overview:}
5939 Get the type field of the given VIF.
5941 \noindent {\bf Signature:}
5942 \begin{verbatim} (driver_type) get_type (session_id s, VIF ref self)\end{verbatim}
5945 \noindent{\bf Arguments:}
5948 \vspace{0.3cm}
5949 \begin{tabular}{|c|c|p{7cm}|}
5950 \hline
5951 {\bf type} & {\bf name} & {\bf description} \\ \hline
5952 {\tt VIF ref } & self & reference to the object \\ \hline
5954 \end{tabular}
5956 \vspace{0.3cm}
5958 \noindent {\bf Return Type:}
5959 {\tt
5960 driver\_type
5964 value of the field
5965 \vspace{0.3cm}
5966 \vspace{0.3cm}
5967 \vspace{0.3cm}
5968 \subsubsection{RPC name:~set\_type}
5970 {\bf Overview:}
5971 Set the type field of the given VIF.
5973 \noindent {\bf Signature:}
5974 \begin{verbatim} void set_type (session_id s, VIF ref self, driver_type value)\end{verbatim}
5977 \noindent{\bf Arguments:}
5980 \vspace{0.3cm}
5981 \begin{tabular}{|c|c|p{7cm}|}
5982 \hline
5983 {\bf type} & {\bf name} & {\bf description} \\ \hline
5984 {\tt VIF ref } & self & reference to the object \\ \hline
5986 {\tt driver\_type } & value & New value to set \\ \hline
5988 \end{tabular}
5990 \vspace{0.3cm}
5992 \noindent {\bf Return Type:}
5993 {\tt
5994 void
5999 \vspace{0.3cm}
6000 \vspace{0.3cm}
6001 \vspace{0.3cm}
6002 \subsubsection{RPC name:~get\_device}
6004 {\bf Overview:}
6005 Get the device field of the given VIF.
6007 \noindent {\bf Signature:}
6008 \begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
6011 \noindent{\bf Arguments:}
6014 \vspace{0.3cm}
6015 \begin{tabular}{|c|c|p{7cm}|}
6016 \hline
6017 {\bf type} & {\bf name} & {\bf description} \\ \hline
6018 {\tt VIF ref } & self & reference to the object \\ \hline
6020 \end{tabular}
6022 \vspace{0.3cm}
6024 \noindent {\bf Return Type:}
6025 {\tt
6026 string
6030 value of the field
6031 \vspace{0.3cm}
6032 \vspace{0.3cm}
6033 \vspace{0.3cm}
6034 \subsubsection{RPC name:~set\_device}
6036 {\bf Overview:}
6037 Set the device field of the given VIF.
6039 \noindent {\bf Signature:}
6040 \begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
6043 \noindent{\bf Arguments:}
6046 \vspace{0.3cm}
6047 \begin{tabular}{|c|c|p{7cm}|}
6048 \hline
6049 {\bf type} & {\bf name} & {\bf description} \\ \hline
6050 {\tt VIF ref } & self & reference to the object \\ \hline
6052 {\tt string } & value & New value to set \\ \hline
6054 \end{tabular}
6056 \vspace{0.3cm}
6058 \noindent {\bf Return Type:}
6059 {\tt
6060 void
6065 \vspace{0.3cm}
6066 \vspace{0.3cm}
6067 \vspace{0.3cm}
6068 \subsubsection{RPC name:~get\_network}
6070 {\bf Overview:}
6071 Get the network field of the given VIF.
6073 \noindent {\bf Signature:}
6074 \begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
6077 \noindent{\bf Arguments:}
6080 \vspace{0.3cm}
6081 \begin{tabular}{|c|c|p{7cm}|}
6082 \hline
6083 {\bf type} & {\bf name} & {\bf description} \\ \hline
6084 {\tt VIF ref } & self & reference to the object \\ \hline
6086 \end{tabular}
6088 \vspace{0.3cm}
6090 \noindent {\bf Return Type:}
6091 {\tt
6092 network ref
6096 value of the field
6097 \vspace{0.3cm}
6098 \vspace{0.3cm}
6099 \vspace{0.3cm}
6100 \subsubsection{RPC name:~set\_network}
6102 {\bf Overview:}
6103 Set the network field of the given VIF.
6105 \noindent {\bf Signature:}
6106 \begin{verbatim} void set_network (session_id s, VIF ref self, network ref value)\end{verbatim}
6109 \noindent{\bf Arguments:}
6112 \vspace{0.3cm}
6113 \begin{tabular}{|c|c|p{7cm}|}
6114 \hline
6115 {\bf type} & {\bf name} & {\bf description} \\ \hline
6116 {\tt VIF ref } & self & reference to the object \\ \hline
6118 {\tt network ref } & value & New value to set \\ \hline
6120 \end{tabular}
6122 \vspace{0.3cm}
6124 \noindent {\bf Return Type:}
6125 {\tt
6126 void
6131 \vspace{0.3cm}
6132 \vspace{0.3cm}
6133 \vspace{0.3cm}
6134 \subsubsection{RPC name:~get\_VM}
6136 {\bf Overview:}
6137 Get the VM field of the given VIF.
6139 \noindent {\bf Signature:}
6140 \begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
6143 \noindent{\bf Arguments:}
6146 \vspace{0.3cm}
6147 \begin{tabular}{|c|c|p{7cm}|}
6148 \hline
6149 {\bf type} & {\bf name} & {\bf description} \\ \hline
6150 {\tt VIF ref } & self & reference to the object \\ \hline
6152 \end{tabular}
6154 \vspace{0.3cm}
6156 \noindent {\bf Return Type:}
6157 {\tt
6158 VM ref
6162 value of the field
6163 \vspace{0.3cm}
6164 \vspace{0.3cm}
6165 \vspace{0.3cm}
6166 \subsubsection{RPC name:~set\_VM}
6168 {\bf Overview:}
6169 Set the VM field of the given VIF.
6171 \noindent {\bf Signature:}
6172 \begin{verbatim} void set_VM (session_id s, VIF ref self, VM ref value)\end{verbatim}
6175 \noindent{\bf Arguments:}
6178 \vspace{0.3cm}
6179 \begin{tabular}{|c|c|p{7cm}|}
6180 \hline
6181 {\bf type} & {\bf name} & {\bf description} \\ \hline
6182 {\tt VIF ref } & self & reference to the object \\ \hline
6184 {\tt VM ref } & value & New value to set \\ \hline
6186 \end{tabular}
6188 \vspace{0.3cm}
6190 \noindent {\bf Return Type:}
6191 {\tt
6192 void
6197 \vspace{0.3cm}
6198 \vspace{0.3cm}
6199 \vspace{0.3cm}
6200 \subsubsection{RPC name:~get\_MAC}
6202 {\bf Overview:}
6203 Get the MAC field of the given VIF.
6205 \noindent {\bf Signature:}
6206 \begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
6209 \noindent{\bf Arguments:}
6212 \vspace{0.3cm}
6213 \begin{tabular}{|c|c|p{7cm}|}
6214 \hline
6215 {\bf type} & {\bf name} & {\bf description} \\ \hline
6216 {\tt VIF ref } & self & reference to the object \\ \hline
6218 \end{tabular}
6220 \vspace{0.3cm}
6222 \noindent {\bf Return Type:}
6223 {\tt
6224 string
6228 value of the field
6229 \vspace{0.3cm}
6230 \vspace{0.3cm}
6231 \vspace{0.3cm}
6232 \subsubsection{RPC name:~set\_MAC}
6234 {\bf Overview:}
6235 Set the MAC field of the given VIF.
6237 \noindent {\bf Signature:}
6238 \begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
6241 \noindent{\bf Arguments:}
6244 \vspace{0.3cm}
6245 \begin{tabular}{|c|c|p{7cm}|}
6246 \hline
6247 {\bf type} & {\bf name} & {\bf description} \\ \hline
6248 {\tt VIF ref } & self & reference to the object \\ \hline
6250 {\tt string } & value & New value to set \\ \hline
6252 \end{tabular}
6254 \vspace{0.3cm}
6256 \noindent {\bf Return Type:}
6257 {\tt
6258 void
6263 \vspace{0.3cm}
6264 \vspace{0.3cm}
6265 \vspace{0.3cm}
6266 \subsubsection{RPC name:~get\_MTU}
6268 {\bf Overview:}
6269 Get the MTU field of the given VIF.
6271 \noindent {\bf Signature:}
6272 \begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
6275 \noindent{\bf Arguments:}
6278 \vspace{0.3cm}
6279 \begin{tabular}{|c|c|p{7cm}|}
6280 \hline
6281 {\bf type} & {\bf name} & {\bf description} \\ \hline
6282 {\tt VIF ref } & self & reference to the object \\ \hline
6284 \end{tabular}
6286 \vspace{0.3cm}
6288 \noindent {\bf Return Type:}
6289 {\tt
6290 int
6294 value of the field
6295 \vspace{0.3cm}
6296 \vspace{0.3cm}
6297 \vspace{0.3cm}
6298 \subsubsection{RPC name:~set\_MTU}
6300 {\bf Overview:}
6301 Set the MTU field of the given VIF.
6303 \noindent {\bf Signature:}
6304 \begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
6307 \noindent{\bf Arguments:}
6310 \vspace{0.3cm}
6311 \begin{tabular}{|c|c|p{7cm}|}
6312 \hline
6313 {\bf type} & {\bf name} & {\bf description} \\ \hline
6314 {\tt VIF ref } & self & reference to the object \\ \hline
6316 {\tt int } & value & New value to set \\ \hline
6318 \end{tabular}
6320 \vspace{0.3cm}
6322 \noindent {\bf Return Type:}
6323 {\tt
6324 void
6329 \vspace{0.3cm}
6330 \vspace{0.3cm}
6331 \vspace{0.3cm}
6332 \subsubsection{RPC name:~get\_io\_read\_kbs}
6334 {\bf Overview:}
6335 Get the io/read\_kbs field of the given VIF.
6337 \noindent {\bf Signature:}
6338 \begin{verbatim} float get_io_read_kbs (session_id s, VIF ref self)\end{verbatim}
6341 \noindent{\bf Arguments:}
6344 \vspace{0.3cm}
6345 \begin{tabular}{|c|c|p{7cm}|}
6346 \hline
6347 {\bf type} & {\bf name} & {\bf description} \\ \hline
6348 {\tt VIF ref } & self & reference to the object \\ \hline
6350 \end{tabular}
6352 \vspace{0.3cm}
6354 \noindent {\bf Return Type:}
6355 {\tt
6356 float
6360 value of the field
6361 \vspace{0.3cm}
6362 \vspace{0.3cm}
6363 \vspace{0.3cm}
6364 \subsubsection{RPC name:~get\_io\_write\_kbs}
6366 {\bf Overview:}
6367 Get the io/write\_kbs field of the given VIF.
6369 \noindent {\bf Signature:}
6370 \begin{verbatim} float get_io_write_kbs (session_id s, VIF ref self)\end{verbatim}
6373 \noindent{\bf Arguments:}
6376 \vspace{0.3cm}
6377 \begin{tabular}{|c|c|p{7cm}|}
6378 \hline
6379 {\bf type} & {\bf name} & {\bf description} \\ \hline
6380 {\tt VIF ref } & self & reference to the object \\ \hline
6382 \end{tabular}
6384 \vspace{0.3cm}
6386 \noindent {\bf Return Type:}
6387 {\tt
6388 float
6392 value of the field
6393 \vspace{0.3cm}
6394 \vspace{0.3cm}
6395 \vspace{0.3cm}
6396 \subsubsection{RPC name:~create}
6398 {\bf Overview:}
6399 Create a new VIF instance, and return its handle.
6401 \noindent {\bf Signature:}
6402 \begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
6405 \noindent{\bf Arguments:}
6408 \vspace{0.3cm}
6409 \begin{tabular}{|c|c|p{7cm}|}
6410 \hline
6411 {\bf type} & {\bf name} & {\bf description} \\ \hline
6412 {\tt VIF record } & args & All constructor arguments \\ \hline
6414 \end{tabular}
6416 \vspace{0.3cm}
6418 \noindent {\bf Return Type:}
6419 {\tt
6420 VIF ref
6424 reference to the newly created object
6425 \vspace{0.3cm}
6426 \vspace{0.3cm}
6427 \vspace{0.3cm}
6428 \subsubsection{RPC name:~destroy}
6430 {\bf Overview:}
6431 Destroy the specified VIF instance.
6433 \noindent {\bf Signature:}
6434 \begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
6437 \noindent{\bf Arguments:}
6440 \vspace{0.3cm}
6441 \begin{tabular}{|c|c|p{7cm}|}
6442 \hline
6443 {\bf type} & {\bf name} & {\bf description} \\ \hline
6444 {\tt VIF ref } & self & reference to the object \\ \hline
6446 \end{tabular}
6448 \vspace{0.3cm}
6450 \noindent {\bf Return Type:}
6451 {\tt
6452 void
6457 \vspace{0.3cm}
6458 \vspace{0.3cm}
6459 \vspace{0.3cm}
6460 \subsubsection{RPC name:~get\_by\_uuid}
6462 {\bf Overview:}
6463 Get a reference to the VIF instance with the specified UUID.
6465 \noindent {\bf Signature:}
6466 \begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
6469 \noindent{\bf Arguments:}
6472 \vspace{0.3cm}
6473 \begin{tabular}{|c|c|p{7cm}|}
6474 \hline
6475 {\bf type} & {\bf name} & {\bf description} \\ \hline
6476 {\tt string } & uuid & UUID of object to return \\ \hline
6478 \end{tabular}
6480 \vspace{0.3cm}
6482 \noindent {\bf Return Type:}
6483 {\tt
6484 VIF ref
6488 reference to the object
6489 \vspace{0.3cm}
6490 \vspace{0.3cm}
6491 \vspace{0.3cm}
6492 \subsubsection{RPC name:~get\_record}
6494 {\bf Overview:}
6495 Get a record containing the current state of the given VIF.
6497 \noindent {\bf Signature:}
6498 \begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
6501 \noindent{\bf Arguments:}
6504 \vspace{0.3cm}
6505 \begin{tabular}{|c|c|p{7cm}|}
6506 \hline
6507 {\bf type} & {\bf name} & {\bf description} \\ \hline
6508 {\tt VIF ref } & self & reference to the object \\ \hline
6510 \end{tabular}
6512 \vspace{0.3cm}
6514 \noindent {\bf Return Type:}
6515 {\tt
6516 VIF record
6520 all fields from the object
6521 \vspace{0.3cm}
6522 \vspace{0.3cm}
6523 \vspace{0.3cm}
6525 \vspace{1cm}
6526 \newpage
6527 \section{Class: PIF}
6528 \subsection{Fields for class: PIF}
6529 \begin{longtable}{|lllp{0.38\textwidth}|}
6530 \hline
6531 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
6532 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
6533 physical network interface (note separate VLANs are represented as several
6534 PIFs)}} \\
6535 \hline
6536 Quals & Field & Type & Description \\
6537 \hline
6538 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6539 $\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
6540 $\mathit{RW}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
6541 $\mathit{RW}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
6542 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
6543 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
6544 $\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
6545 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
6546 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
6547 \hline
6548 \end{longtable}
6549 \subsection{Additional RPCs associated with class: PIF}
6550 \subsubsection{RPC name:~create\_VLAN}
6552 {\bf Overview:}
6553 Create a VLAN interface from an existing physical interface
6555 \noindent {\bf Signature:}
6556 \begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
6559 \noindent{\bf Arguments:}
6562 \vspace{0.3cm}
6563 \begin{tabular}{|c|c|p{7cm}|}
6564 \hline
6565 {\bf type} & {\bf name} & {\bf description} \\ \hline
6566 {\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
6568 {\tt network ref } & network & network to which this interface should be connected \\ \hline
6570 {\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
6572 {\tt int } & VLAN & VLAN tag for the new interface \\ \hline
6574 \end{tabular}
6576 \vspace{0.3cm}
6578 \noindent {\bf Return Type:}
6579 {\tt
6580 PIF ref
6584 The reference of the created PIF object
6585 \vspace{0.3cm}
6587 \noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
6589 \vspace{0.6cm}
6590 \subsubsection{RPC name:~destroy}
6592 {\bf Overview:}
6593 Destroy the interface (provided it is a synthetic interface like a VLAN; fail if it is a physical interface)
6595 \noindent {\bf Signature:}
6596 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
6599 \noindent{\bf Arguments:}
6602 \vspace{0.3cm}
6603 \begin{tabular}{|c|c|p{7cm}|}
6604 \hline
6605 {\bf type} & {\bf name} & {\bf description} \\ \hline
6606 {\tt PIF ref } & self & the PIF object to destroy \\ \hline
6608 \end{tabular}
6610 \vspace{0.3cm}
6612 \noindent {\bf Return Type:}
6613 {\tt
6614 void
6619 \vspace{0.3cm}
6621 \noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
6623 \vspace{0.6cm}
6624 \subsubsection{RPC name:~get\_uuid}
6626 {\bf Overview:}
6627 Get the uuid field of the given PIF.
6629 \noindent {\bf Signature:}
6630 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
6633 \noindent{\bf Arguments:}
6636 \vspace{0.3cm}
6637 \begin{tabular}{|c|c|p{7cm}|}
6638 \hline
6639 {\bf type} & {\bf name} & {\bf description} \\ \hline
6640 {\tt PIF ref } & self & reference to the object \\ \hline
6642 \end{tabular}
6644 \vspace{0.3cm}
6646 \noindent {\bf Return Type:}
6647 {\tt
6648 string
6652 value of the field
6653 \vspace{0.3cm}
6654 \vspace{0.3cm}
6655 \vspace{0.3cm}
6656 \subsubsection{RPC name:~get\_device}
6658 {\bf Overview:}
6659 Get the device field of the given PIF.
6661 \noindent {\bf Signature:}
6662 \begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
6665 \noindent{\bf Arguments:}
6668 \vspace{0.3cm}
6669 \begin{tabular}{|c|c|p{7cm}|}
6670 \hline
6671 {\bf type} & {\bf name} & {\bf description} \\ \hline
6672 {\tt PIF ref } & self & reference to the object \\ \hline
6674 \end{tabular}
6676 \vspace{0.3cm}
6678 \noindent {\bf Return Type:}
6679 {\tt
6680 string
6684 value of the field
6685 \vspace{0.3cm}
6686 \vspace{0.3cm}
6687 \vspace{0.3cm}
6688 \subsubsection{RPC name:~set\_device}
6690 {\bf Overview:}
6691 Set the device field of the given PIF.
6693 \noindent {\bf Signature:}
6694 \begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
6697 \noindent{\bf Arguments:}
6700 \vspace{0.3cm}
6701 \begin{tabular}{|c|c|p{7cm}|}
6702 \hline
6703 {\bf type} & {\bf name} & {\bf description} \\ \hline
6704 {\tt PIF ref } & self & reference to the object \\ \hline
6706 {\tt string } & value & New value to set \\ \hline
6708 \end{tabular}
6710 \vspace{0.3cm}
6712 \noindent {\bf Return Type:}
6713 {\tt
6714 void
6719 \vspace{0.3cm}
6720 \vspace{0.3cm}
6721 \vspace{0.3cm}
6722 \subsubsection{RPC name:~get\_network}
6724 {\bf Overview:}
6725 Get the network field of the given PIF.
6727 \noindent {\bf Signature:}
6728 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
6731 \noindent{\bf Arguments:}
6734 \vspace{0.3cm}
6735 \begin{tabular}{|c|c|p{7cm}|}
6736 \hline
6737 {\bf type} & {\bf name} & {\bf description} \\ \hline
6738 {\tt PIF ref } & self & reference to the object \\ \hline
6740 \end{tabular}
6742 \vspace{0.3cm}
6744 \noindent {\bf Return Type:}
6745 {\tt
6746 network ref
6750 value of the field
6751 \vspace{0.3cm}
6752 \vspace{0.3cm}
6753 \vspace{0.3cm}
6754 \subsubsection{RPC name:~set\_network}
6756 {\bf Overview:}
6757 Set the network field of the given PIF.
6759 \noindent {\bf Signature:}
6760 \begin{verbatim} void set_network (session_id s, PIF ref self, network ref value)\end{verbatim}
6763 \noindent{\bf Arguments:}
6766 \vspace{0.3cm}
6767 \begin{tabular}{|c|c|p{7cm}|}
6768 \hline
6769 {\bf type} & {\bf name} & {\bf description} \\ \hline
6770 {\tt PIF ref } & self & reference to the object \\ \hline
6772 {\tt network ref } & value & New value to set \\ \hline
6774 \end{tabular}
6776 \vspace{0.3cm}
6778 \noindent {\bf Return Type:}
6779 {\tt
6780 void
6785 \vspace{0.3cm}
6786 \vspace{0.3cm}
6787 \vspace{0.3cm}
6788 \subsubsection{RPC name:~get\_host}
6790 {\bf Overview:}
6791 Get the host field of the given PIF.
6793 \noindent {\bf Signature:}
6794 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
6797 \noindent{\bf Arguments:}
6800 \vspace{0.3cm}
6801 \begin{tabular}{|c|c|p{7cm}|}
6802 \hline
6803 {\bf type} & {\bf name} & {\bf description} \\ \hline
6804 {\tt PIF ref } & self & reference to the object \\ \hline
6806 \end{tabular}
6808 \vspace{0.3cm}
6810 \noindent {\bf Return Type:}
6811 {\tt
6812 host ref
6816 value of the field
6817 \vspace{0.3cm}
6818 \vspace{0.3cm}
6819 \vspace{0.3cm}
6820 \subsubsection{RPC name:~set\_host}
6822 {\bf Overview:}
6823 Set the host field of the given PIF.
6825 \noindent {\bf Signature:}
6826 \begin{verbatim} void set_host (session_id s, PIF ref self, host ref value)\end{verbatim}
6829 \noindent{\bf Arguments:}
6832 \vspace{0.3cm}
6833 \begin{tabular}{|c|c|p{7cm}|}
6834 \hline
6835 {\bf type} & {\bf name} & {\bf description} \\ \hline
6836 {\tt PIF ref } & self & reference to the object \\ \hline
6838 {\tt host ref } & value & New value to set \\ \hline
6840 \end{tabular}
6842 \vspace{0.3cm}
6844 \noindent {\bf Return Type:}
6845 {\tt
6846 void
6851 \vspace{0.3cm}
6852 \vspace{0.3cm}
6853 \vspace{0.3cm}
6854 \subsubsection{RPC name:~get\_MAC}
6856 {\bf Overview:}
6857 Get the MAC field of the given PIF.
6859 \noindent {\bf Signature:}
6860 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
6863 \noindent{\bf Arguments:}
6866 \vspace{0.3cm}
6867 \begin{tabular}{|c|c|p{7cm}|}
6868 \hline
6869 {\bf type} & {\bf name} & {\bf description} \\ \hline
6870 {\tt PIF ref } & self & reference to the object \\ \hline
6872 \end{tabular}
6874 \vspace{0.3cm}
6876 \noindent {\bf Return Type:}
6877 {\tt
6878 string
6882 value of the field
6883 \vspace{0.3cm}
6884 \vspace{0.3cm}
6885 \vspace{0.3cm}
6886 \subsubsection{RPC name:~set\_MAC}
6888 {\bf Overview:}
6889 Set the MAC field of the given PIF.
6891 \noindent {\bf Signature:}
6892 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
6895 \noindent{\bf Arguments:}
6898 \vspace{0.3cm}
6899 \begin{tabular}{|c|c|p{7cm}|}
6900 \hline
6901 {\bf type} & {\bf name} & {\bf description} \\ \hline
6902 {\tt PIF ref } & self & reference to the object \\ \hline
6904 {\tt string } & value & New value to set \\ \hline
6906 \end{tabular}
6908 \vspace{0.3cm}
6910 \noindent {\bf Return Type:}
6911 {\tt
6912 void
6917 \vspace{0.3cm}
6918 \vspace{0.3cm}
6919 \vspace{0.3cm}
6920 \subsubsection{RPC name:~get\_MTU}
6922 {\bf Overview:}
6923 Get the MTU field of the given PIF.
6925 \noindent {\bf Signature:}
6926 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
6929 \noindent{\bf Arguments:}
6932 \vspace{0.3cm}
6933 \begin{tabular}{|c|c|p{7cm}|}
6934 \hline
6935 {\bf type} & {\bf name} & {\bf description} \\ \hline
6936 {\tt PIF ref } & self & reference to the object \\ \hline
6938 \end{tabular}
6940 \vspace{0.3cm}
6942 \noindent {\bf Return Type:}
6943 {\tt
6944 int
6948 value of the field
6949 \vspace{0.3cm}
6950 \vspace{0.3cm}
6951 \vspace{0.3cm}
6952 \subsubsection{RPC name:~set\_MTU}
6954 {\bf Overview:}
6955 Set the MTU field of the given PIF.
6957 \noindent {\bf Signature:}
6958 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
6961 \noindent{\bf Arguments:}
6964 \vspace{0.3cm}
6965 \begin{tabular}{|c|c|p{7cm}|}
6966 \hline
6967 {\bf type} & {\bf name} & {\bf description} \\ \hline
6968 {\tt PIF ref } & self & reference to the object \\ \hline
6970 {\tt int } & value & New value to set \\ \hline
6972 \end{tabular}
6974 \vspace{0.3cm}
6976 \noindent {\bf Return Type:}
6977 {\tt
6978 void
6983 \vspace{0.3cm}
6984 \vspace{0.3cm}
6985 \vspace{0.3cm}
6986 \subsubsection{RPC name:~get\_VLAN}
6988 {\bf Overview:}
6989 Get the VLAN field of the given PIF.
6991 \noindent {\bf Signature:}
6992 \begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
6995 \noindent{\bf Arguments:}
6998 \vspace{0.3cm}
6999 \begin{tabular}{|c|c|p{7cm}|}
7000 \hline
7001 {\bf type} & {\bf name} & {\bf description} \\ \hline
7002 {\tt PIF ref } & self & reference to the object \\ \hline
7004 \end{tabular}
7006 \vspace{0.3cm}
7008 \noindent {\bf Return Type:}
7009 {\tt
7010 int
7014 value of the field
7015 \vspace{0.3cm}
7016 \vspace{0.3cm}
7017 \vspace{0.3cm}
7018 \subsubsection{RPC name:~set\_VLAN}
7020 {\bf Overview:}
7021 Set the VLAN field of the given PIF.
7023 \noindent {\bf Signature:}
7024 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
7027 \noindent{\bf Arguments:}
7030 \vspace{0.3cm}
7031 \begin{tabular}{|c|c|p{7cm}|}
7032 \hline
7033 {\bf type} & {\bf name} & {\bf description} \\ \hline
7034 {\tt PIF ref } & self & reference to the object \\ \hline
7036 {\tt int } & value & New value to set \\ \hline
7038 \end{tabular}
7040 \vspace{0.3cm}
7042 \noindent {\bf Return Type:}
7043 {\tt
7044 void
7049 \vspace{0.3cm}
7050 \vspace{0.3cm}
7051 \vspace{0.3cm}
7052 \subsubsection{RPC name:~get\_io\_read\_kbs}
7054 {\bf Overview:}
7055 Get the io/read\_kbs field of the given PIF.
7057 \noindent {\bf Signature:}
7058 \begin{verbatim} float get_io_read_kbs (session_id s, PIF ref self)\end{verbatim}
7061 \noindent{\bf Arguments:}
7064 \vspace{0.3cm}
7065 \begin{tabular}{|c|c|p{7cm}|}
7066 \hline
7067 {\bf type} & {\bf name} & {\bf description} \\ \hline
7068 {\tt PIF ref } & self & reference to the object \\ \hline
7070 \end{tabular}
7072 \vspace{0.3cm}
7074 \noindent {\bf Return Type:}
7075 {\tt
7076 float
7080 value of the field
7081 \vspace{0.3cm}
7082 \vspace{0.3cm}
7083 \vspace{0.3cm}
7084 \subsubsection{RPC name:~get\_io\_write\_kbs}
7086 {\bf Overview:}
7087 Get the io/write\_kbs field of the given PIF.
7089 \noindent {\bf Signature:}
7090 \begin{verbatim} float get_io_write_kbs (session_id s, PIF ref self)\end{verbatim}
7093 \noindent{\bf Arguments:}
7096 \vspace{0.3cm}
7097 \begin{tabular}{|c|c|p{7cm}|}
7098 \hline
7099 {\bf type} & {\bf name} & {\bf description} \\ \hline
7100 {\tt PIF ref } & self & reference to the object \\ \hline
7102 \end{tabular}
7104 \vspace{0.3cm}
7106 \noindent {\bf Return Type:}
7107 {\tt
7108 float
7112 value of the field
7113 \vspace{0.3cm}
7114 \vspace{0.3cm}
7115 \vspace{0.3cm}
7116 \subsubsection{RPC name:~get\_by\_uuid}
7118 {\bf Overview:}
7119 Get a reference to the PIF instance with the specified UUID.
7121 \noindent {\bf Signature:}
7122 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\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 string } & uuid & UUID of object to return \\ \hline
7134 \end{tabular}
7136 \vspace{0.3cm}
7138 \noindent {\bf Return Type:}
7139 {\tt
7140 PIF ref
7144 reference to the object
7145 \vspace{0.3cm}
7146 \vspace{0.3cm}
7147 \vspace{0.3cm}
7148 \subsubsection{RPC name:~get\_record}
7150 {\bf Overview:}
7151 Get a record containing the current state of the given PIF.
7153 \noindent {\bf Signature:}
7154 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
7157 \noindent{\bf Arguments:}
7160 \vspace{0.3cm}
7161 \begin{tabular}{|c|c|p{7cm}|}
7162 \hline
7163 {\bf type} & {\bf name} & {\bf description} \\ \hline
7164 {\tt PIF ref } & self & reference to the object \\ \hline
7166 \end{tabular}
7168 \vspace{0.3cm}
7170 \noindent {\bf Return Type:}
7171 {\tt
7172 PIF record
7176 all fields from the object
7177 \vspace{0.3cm}
7178 \vspace{0.3cm}
7179 \vspace{0.3cm}
7181 \vspace{1cm}
7182 \newpage
7183 \section{Class: SR}
7184 \subsection{Fields for class: SR}
7185 \begin{longtable}{|lllp{0.38\textwidth}|}
7186 \hline
7187 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
7188 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A storage repository}} \\
7189 \hline
7190 Quals & Field & Type & Description \\
7191 \hline
7192 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7193 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7194 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7195 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
7196 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
7197 $\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 \\
7198 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
7199 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
7200 $\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 \\
7201 \hline
7202 \end{longtable}
7203 \subsection{Additional RPCs associated with class: SR}
7204 \subsubsection{RPC name:~clone}
7206 {\bf Overview:}
7207 Take an exact copy of the Storage Repository;
7208 the cloned storage repository has the same type as its parent
7210 \noindent {\bf Signature:}
7211 \begin{verbatim} (SR ref) clone (session_id s, SR ref sr, string loc, string name)\end{verbatim}
7214 \noindent{\bf Arguments:}
7217 \vspace{0.3cm}
7218 \begin{tabular}{|c|c|p{7cm}|}
7219 \hline
7220 {\bf type} & {\bf name} & {\bf description} \\ \hline
7221 {\tt SR ref } & sr & The Storage Repository to clone \\ \hline
7223 {\tt string } & loc & The location string that defines where the new storage repository will be located \\ \hline
7225 {\tt string } & name & The name of the new storage repository \\ \hline
7227 \end{tabular}
7229 \vspace{0.3cm}
7231 \noindent {\bf Return Type:}
7232 {\tt
7233 SR ref
7237 The ID of the newly created Storage Repository.
7238 \vspace{0.3cm}
7239 \vspace{0.3cm}
7240 \vspace{0.3cm}
7241 \subsubsection{RPC name:~get\_all}
7243 {\bf Overview:}
7244 Return a list of all the Storage Repositories known to the system
7246 \noindent {\bf Signature:}
7247 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
7250 \vspace{0.3cm}
7252 \noindent {\bf Return Type:}
7253 {\tt
7254 (SR ref) Set
7258 A list of all the IDs of all the Storage Repositories
7259 \vspace{0.3cm}
7260 \vspace{0.3cm}
7261 \vspace{0.3cm}
7262 \subsubsection{RPC name:~get\_uuid}
7264 {\bf Overview:}
7265 Get the uuid field of the given SR.
7267 \noindent {\bf Signature:}
7268 \begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
7271 \noindent{\bf Arguments:}
7274 \vspace{0.3cm}
7275 \begin{tabular}{|c|c|p{7cm}|}
7276 \hline
7277 {\bf type} & {\bf name} & {\bf description} \\ \hline
7278 {\tt SR ref } & self & reference to the object \\ \hline
7280 \end{tabular}
7282 \vspace{0.3cm}
7284 \noindent {\bf Return Type:}
7285 {\tt
7286 string
7290 value of the field
7291 \vspace{0.3cm}
7292 \vspace{0.3cm}
7293 \vspace{0.3cm}
7294 \subsubsection{RPC name:~get\_name\_label}
7296 {\bf Overview:}
7297 Get the name/label field of the given SR.
7299 \noindent {\bf Signature:}
7300 \begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
7303 \noindent{\bf Arguments:}
7306 \vspace{0.3cm}
7307 \begin{tabular}{|c|c|p{7cm}|}
7308 \hline
7309 {\bf type} & {\bf name} & {\bf description} \\ \hline
7310 {\tt SR ref } & self & reference to the object \\ \hline
7312 \end{tabular}
7314 \vspace{0.3cm}
7316 \noindent {\bf Return Type:}
7317 {\tt
7318 string
7322 value of the field
7323 \vspace{0.3cm}
7324 \vspace{0.3cm}
7325 \vspace{0.3cm}
7326 \subsubsection{RPC name:~set\_name\_label}
7328 {\bf Overview:}
7329 Set the name/label field of the given SR.
7331 \noindent {\bf Signature:}
7332 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
7335 \noindent{\bf Arguments:}
7338 \vspace{0.3cm}
7339 \begin{tabular}{|c|c|p{7cm}|}
7340 \hline
7341 {\bf type} & {\bf name} & {\bf description} \\ \hline
7342 {\tt SR ref } & self & reference to the object \\ \hline
7344 {\tt string } & value & New value to set \\ \hline
7346 \end{tabular}
7348 \vspace{0.3cm}
7350 \noindent {\bf Return Type:}
7351 {\tt
7352 void
7357 \vspace{0.3cm}
7358 \vspace{0.3cm}
7359 \vspace{0.3cm}
7360 \subsubsection{RPC name:~get\_name\_description}
7362 {\bf Overview:}
7363 Get the name/description field of the given SR.
7365 \noindent {\bf Signature:}
7366 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
7369 \noindent{\bf Arguments:}
7372 \vspace{0.3cm}
7373 \begin{tabular}{|c|c|p{7cm}|}
7374 \hline
7375 {\bf type} & {\bf name} & {\bf description} \\ \hline
7376 {\tt SR ref } & self & reference to the object \\ \hline
7378 \end{tabular}
7380 \vspace{0.3cm}
7382 \noindent {\bf Return Type:}
7383 {\tt
7384 string
7388 value of the field
7389 \vspace{0.3cm}
7390 \vspace{0.3cm}
7391 \vspace{0.3cm}
7392 \subsubsection{RPC name:~set\_name\_description}
7394 {\bf Overview:}
7395 Set the name/description field of the given SR.
7397 \noindent {\bf Signature:}
7398 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
7401 \noindent{\bf Arguments:}
7404 \vspace{0.3cm}
7405 \begin{tabular}{|c|c|p{7cm}|}
7406 \hline
7407 {\bf type} & {\bf name} & {\bf description} \\ \hline
7408 {\tt SR ref } & self & reference to the object \\ \hline
7410 {\tt string } & value & New value to set \\ \hline
7412 \end{tabular}
7414 \vspace{0.3cm}
7416 \noindent {\bf Return Type:}
7417 {\tt
7418 void
7423 \vspace{0.3cm}
7424 \vspace{0.3cm}
7425 \vspace{0.3cm}
7426 \subsubsection{RPC name:~get\_VDIs}
7428 {\bf Overview:}
7429 Get the VDIs field of the given SR.
7431 \noindent {\bf Signature:}
7432 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
7435 \noindent{\bf Arguments:}
7438 \vspace{0.3cm}
7439 \begin{tabular}{|c|c|p{7cm}|}
7440 \hline
7441 {\bf type} & {\bf name} & {\bf description} \\ \hline
7442 {\tt SR ref } & self & reference to the object \\ \hline
7444 \end{tabular}
7446 \vspace{0.3cm}
7448 \noindent {\bf Return Type:}
7449 {\tt
7450 (VDI ref) Set
7454 value of the field
7455 \vspace{0.3cm}
7456 \vspace{0.3cm}
7457 \vspace{0.3cm}
7458 \subsubsection{RPC name:~get\_virtual\_allocation}
7460 {\bf Overview:}
7461 Get the virtual\_allocation field of the given SR.
7463 \noindent {\bf Signature:}
7464 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
7467 \noindent{\bf Arguments:}
7470 \vspace{0.3cm}
7471 \begin{tabular}{|c|c|p{7cm}|}
7472 \hline
7473 {\bf type} & {\bf name} & {\bf description} \\ \hline
7474 {\tt SR ref } & self & reference to the object \\ \hline
7476 \end{tabular}
7478 \vspace{0.3cm}
7480 \noindent {\bf Return Type:}
7481 {\tt
7482 int
7486 value of the field
7487 \vspace{0.3cm}
7488 \vspace{0.3cm}
7489 \vspace{0.3cm}
7490 \subsubsection{RPC name:~get\_physical\_utilisation}
7492 {\bf Overview:}
7493 Get the physical\_utilisation field of the given SR.
7495 \noindent {\bf Signature:}
7496 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
7499 \noindent{\bf Arguments:}
7502 \vspace{0.3cm}
7503 \begin{tabular}{|c|c|p{7cm}|}
7504 \hline
7505 {\bf type} & {\bf name} & {\bf description} \\ \hline
7506 {\tt SR ref } & self & reference to the object \\ \hline
7508 \end{tabular}
7510 \vspace{0.3cm}
7512 \noindent {\bf Return Type:}
7513 {\tt
7514 int
7518 value of the field
7519 \vspace{0.3cm}
7520 \vspace{0.3cm}
7521 \vspace{0.3cm}
7522 \subsubsection{RPC name:~get\_physical\_size}
7524 {\bf Overview:}
7525 Get the physical\_size field of the given SR.
7527 \noindent {\bf Signature:}
7528 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
7531 \noindent{\bf Arguments:}
7534 \vspace{0.3cm}
7535 \begin{tabular}{|c|c|p{7cm}|}
7536 \hline
7537 {\bf type} & {\bf name} & {\bf description} \\ \hline
7538 {\tt SR ref } & self & reference to the object \\ \hline
7540 \end{tabular}
7542 \vspace{0.3cm}
7544 \noindent {\bf Return Type:}
7545 {\tt
7546 int
7550 value of the field
7551 \vspace{0.3cm}
7552 \vspace{0.3cm}
7553 \vspace{0.3cm}
7554 \subsubsection{RPC name:~get\_type}
7556 {\bf Overview:}
7557 Get the type field of the given SR.
7559 \noindent {\bf Signature:}
7560 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
7563 \noindent{\bf Arguments:}
7566 \vspace{0.3cm}
7567 \begin{tabular}{|c|c|p{7cm}|}
7568 \hline
7569 {\bf type} & {\bf name} & {\bf description} \\ \hline
7570 {\tt SR ref } & self & reference to the object \\ \hline
7572 \end{tabular}
7574 \vspace{0.3cm}
7576 \noindent {\bf Return Type:}
7577 {\tt
7578 string
7582 value of the field
7583 \vspace{0.3cm}
7584 \vspace{0.3cm}
7585 \vspace{0.3cm}
7586 \subsubsection{RPC name:~get\_location}
7588 {\bf Overview:}
7589 Get the location field of the given SR.
7591 \noindent {\bf Signature:}
7592 \begin{verbatim} string get_location (session_id s, SR ref self)\end{verbatim}
7595 \noindent{\bf Arguments:}
7598 \vspace{0.3cm}
7599 \begin{tabular}{|c|c|p{7cm}|}
7600 \hline
7601 {\bf type} & {\bf name} & {\bf description} \\ \hline
7602 {\tt SR ref } & self & reference to the object \\ \hline
7604 \end{tabular}
7606 \vspace{0.3cm}
7608 \noindent {\bf Return Type:}
7609 {\tt
7610 string
7614 value of the field
7615 \vspace{0.3cm}
7616 \vspace{0.3cm}
7617 \vspace{0.3cm}
7618 \subsubsection{RPC name:~create}
7620 {\bf Overview:}
7621 Create a new SR instance, and return its handle.
7623 \noindent {\bf Signature:}
7624 \begin{verbatim} (SR ref) create (session_id s, SR record args)\end{verbatim}
7627 \noindent{\bf Arguments:}
7630 \vspace{0.3cm}
7631 \begin{tabular}{|c|c|p{7cm}|}
7632 \hline
7633 {\bf type} & {\bf name} & {\bf description} \\ \hline
7634 {\tt SR record } & args & All constructor arguments \\ \hline
7636 \end{tabular}
7638 \vspace{0.3cm}
7640 \noindent {\bf Return Type:}
7641 {\tt
7642 SR ref
7646 reference to the newly created object
7647 \vspace{0.3cm}
7648 \vspace{0.3cm}
7649 \vspace{0.3cm}
7650 \subsubsection{RPC name:~destroy}
7652 {\bf Overview:}
7653 Destroy the specified SR instance.
7655 \noindent {\bf Signature:}
7656 \begin{verbatim} void destroy (session_id s, SR ref self)\end{verbatim}
7659 \noindent{\bf Arguments:}
7662 \vspace{0.3cm}
7663 \begin{tabular}{|c|c|p{7cm}|}
7664 \hline
7665 {\bf type} & {\bf name} & {\bf description} \\ \hline
7666 {\tt SR ref } & self & reference to the object \\ \hline
7668 \end{tabular}
7670 \vspace{0.3cm}
7672 \noindent {\bf Return Type:}
7673 {\tt
7674 void
7679 \vspace{0.3cm}
7680 \vspace{0.3cm}
7681 \vspace{0.3cm}
7682 \subsubsection{RPC name:~get\_by\_uuid}
7684 {\bf Overview:}
7685 Get a reference to the SR instance with the specified UUID.
7687 \noindent {\bf Signature:}
7688 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7691 \noindent{\bf Arguments:}
7694 \vspace{0.3cm}
7695 \begin{tabular}{|c|c|p{7cm}|}
7696 \hline
7697 {\bf type} & {\bf name} & {\bf description} \\ \hline
7698 {\tt string } & uuid & UUID of object to return \\ \hline
7700 \end{tabular}
7702 \vspace{0.3cm}
7704 \noindent {\bf Return Type:}
7705 {\tt
7706 SR ref
7710 reference to the object
7711 \vspace{0.3cm}
7712 \vspace{0.3cm}
7713 \vspace{0.3cm}
7714 \subsubsection{RPC name:~get\_record}
7716 {\bf Overview:}
7717 Get a record containing the current state of the given SR.
7719 \noindent {\bf Signature:}
7720 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
7723 \noindent{\bf Arguments:}
7726 \vspace{0.3cm}
7727 \begin{tabular}{|c|c|p{7cm}|}
7728 \hline
7729 {\bf type} & {\bf name} & {\bf description} \\ \hline
7730 {\tt SR ref } & self & reference to the object \\ \hline
7732 \end{tabular}
7734 \vspace{0.3cm}
7736 \noindent {\bf Return Type:}
7737 {\tt
7738 SR record
7742 all fields from the object
7743 \vspace{0.3cm}
7744 \vspace{0.3cm}
7745 \vspace{0.3cm}
7746 \subsubsection{RPC name:~get\_by\_name\_label}
7748 {\bf Overview:}
7749 Get all the SR instances with the given label.
7751 \noindent {\bf Signature:}
7752 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
7755 \noindent{\bf Arguments:}
7758 \vspace{0.3cm}
7759 \begin{tabular}{|c|c|p{7cm}|}
7760 \hline
7761 {\bf type} & {\bf name} & {\bf description} \\ \hline
7762 {\tt string } & label & label of object to return \\ \hline
7764 \end{tabular}
7766 \vspace{0.3cm}
7768 \noindent {\bf Return Type:}
7769 {\tt
7770 (SR ref) Set
7774 references to objects with match names
7775 \vspace{0.3cm}
7776 \vspace{0.3cm}
7777 \vspace{0.3cm}
7779 \vspace{1cm}
7780 \newpage
7781 \section{Class: VDI}
7782 \subsection{Fields for class: VDI}
7783 \begin{longtable}{|lllp{0.38\textwidth}|}
7784 \hline
7785 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
7786 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual disk image}} \\
7787 \hline
7788 Quals & Field & Type & Description \\
7789 \hline
7790 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7791 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7792 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7793 $\mathit{RW}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
7794 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
7795 $\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in multiples of sector\_size field) \\
7796 $\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) \\
7797 $\mathit{RO}_\mathit{ins}$ & {\tt sector\_size} & int & sector size of VDI (in bytes) \\
7798 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
7799 $\mathit{RO}_\mathit{ins}$ & {\tt parent} & VDI ref & parent disk (e.g. in the case of copy on write) \\
7800 $\mathit{RO}_\mathit{run}$ & {\tt children} & (VDI ref) Set & child disks (e.g. in the case of copy on write) \\
7801 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
7802 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
7803 \hline
7804 \end{longtable}
7805 \subsection{Additional RPCs associated with class: VDI}
7806 \subsubsection{RPC name:~snapshot}
7808 {\bf Overview:}
7809 Take an exact copy of the VDI; the snapshot lives in the same Storage Repository as its parent.
7811 \noindent {\bf Signature:}
7812 \begin{verbatim} (VDI ref) snapshot (session_id s, VDI ref vdi)\end{verbatim}
7815 \noindent{\bf Arguments:}
7818 \vspace{0.3cm}
7819 \begin{tabular}{|c|c|p{7cm}|}
7820 \hline
7821 {\bf type} & {\bf name} & {\bf description} \\ \hline
7822 {\tt VDI ref } & vdi & The VDI to snapshot \\ \hline
7824 \end{tabular}
7826 \vspace{0.3cm}
7828 \noindent {\bf Return Type:}
7829 {\tt
7830 VDI ref
7834 The ID of the newly created VDI.
7835 \vspace{0.3cm}
7836 \vspace{0.3cm}
7837 \vspace{0.3cm}
7838 \subsubsection{RPC name:~resize}
7840 {\bf Overview:}
7841 Resize the vdi to the size.
7843 \noindent {\bf Signature:}
7844 \begin{verbatim} void resize (session_id s, VDI ref vdi, int size)\end{verbatim}
7847 \noindent{\bf Arguments:}
7850 \vspace{0.3cm}
7851 \begin{tabular}{|c|c|p{7cm}|}
7852 \hline
7853 {\bf type} & {\bf name} & {\bf description} \\ \hline
7854 {\tt VDI ref } & vdi & The VDI to resize \\ \hline
7856 {\tt int } & size & The new size of the VDI \\ \hline
7858 \end{tabular}
7860 \vspace{0.3cm}
7862 \noindent {\bf Return Type:}
7863 {\tt
7864 void
7869 \vspace{0.3cm}
7870 \vspace{0.3cm}
7871 \vspace{0.3cm}
7872 \subsubsection{RPC name:~get\_uuid}
7874 {\bf Overview:}
7875 Get the uuid field of the given VDI.
7877 \noindent {\bf Signature:}
7878 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
7881 \noindent{\bf Arguments:}
7884 \vspace{0.3cm}
7885 \begin{tabular}{|c|c|p{7cm}|}
7886 \hline
7887 {\bf type} & {\bf name} & {\bf description} \\ \hline
7888 {\tt VDI ref } & self & reference to the object \\ \hline
7890 \end{tabular}
7892 \vspace{0.3cm}
7894 \noindent {\bf Return Type:}
7895 {\tt
7896 string
7900 value of the field
7901 \vspace{0.3cm}
7902 \vspace{0.3cm}
7903 \vspace{0.3cm}
7904 \subsubsection{RPC name:~get\_name\_label}
7906 {\bf Overview:}
7907 Get the name/label field of the given VDI.
7909 \noindent {\bf Signature:}
7910 \begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
7913 \noindent{\bf Arguments:}
7916 \vspace{0.3cm}
7917 \begin{tabular}{|c|c|p{7cm}|}
7918 \hline
7919 {\bf type} & {\bf name} & {\bf description} \\ \hline
7920 {\tt VDI ref } & self & reference to the object \\ \hline
7922 \end{tabular}
7924 \vspace{0.3cm}
7926 \noindent {\bf Return Type:}
7927 {\tt
7928 string
7932 value of the field
7933 \vspace{0.3cm}
7934 \vspace{0.3cm}
7935 \vspace{0.3cm}
7936 \subsubsection{RPC name:~set\_name\_label}
7938 {\bf Overview:}
7939 Set the name/label field of the given VDI.
7941 \noindent {\bf Signature:}
7942 \begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
7945 \noindent{\bf Arguments:}
7948 \vspace{0.3cm}
7949 \begin{tabular}{|c|c|p{7cm}|}
7950 \hline
7951 {\bf type} & {\bf name} & {\bf description} \\ \hline
7952 {\tt VDI ref } & self & reference to the object \\ \hline
7954 {\tt string } & value & New value to set \\ \hline
7956 \end{tabular}
7958 \vspace{0.3cm}
7960 \noindent {\bf Return Type:}
7961 {\tt
7962 void
7967 \vspace{0.3cm}
7968 \vspace{0.3cm}
7969 \vspace{0.3cm}
7970 \subsubsection{RPC name:~get\_name\_description}
7972 {\bf Overview:}
7973 Get the name/description field of the given VDI.
7975 \noindent {\bf Signature:}
7976 \begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
7979 \noindent{\bf Arguments:}
7982 \vspace{0.3cm}
7983 \begin{tabular}{|c|c|p{7cm}|}
7984 \hline
7985 {\bf type} & {\bf name} & {\bf description} \\ \hline
7986 {\tt VDI ref } & self & reference to the object \\ \hline
7988 \end{tabular}
7990 \vspace{0.3cm}
7992 \noindent {\bf Return Type:}
7993 {\tt
7994 string
7998 value of the field
7999 \vspace{0.3cm}
8000 \vspace{0.3cm}
8001 \vspace{0.3cm}
8002 \subsubsection{RPC name:~set\_name\_description}
8004 {\bf Overview:}
8005 Set the name/description field of the given VDI.
8007 \noindent {\bf Signature:}
8008 \begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
8011 \noindent{\bf Arguments:}
8014 \vspace{0.3cm}
8015 \begin{tabular}{|c|c|p{7cm}|}
8016 \hline
8017 {\bf type} & {\bf name} & {\bf description} \\ \hline
8018 {\tt VDI ref } & self & reference to the object \\ \hline
8020 {\tt string } & value & New value to set \\ \hline
8022 \end{tabular}
8024 \vspace{0.3cm}
8026 \noindent {\bf Return Type:}
8027 {\tt
8028 void
8033 \vspace{0.3cm}
8034 \vspace{0.3cm}
8035 \vspace{0.3cm}
8036 \subsubsection{RPC name:~get\_SR}
8038 {\bf Overview:}
8039 Get the SR field of the given VDI.
8041 \noindent {\bf Signature:}
8042 \begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
8045 \noindent{\bf Arguments:}
8048 \vspace{0.3cm}
8049 \begin{tabular}{|c|c|p{7cm}|}
8050 \hline
8051 {\bf type} & {\bf name} & {\bf description} \\ \hline
8052 {\tt VDI ref } & self & reference to the object \\ \hline
8054 \end{tabular}
8056 \vspace{0.3cm}
8058 \noindent {\bf Return Type:}
8059 {\tt
8060 SR ref
8064 value of the field
8065 \vspace{0.3cm}
8066 \vspace{0.3cm}
8067 \vspace{0.3cm}
8068 \subsubsection{RPC name:~set\_SR}
8070 {\bf Overview:}
8071 Set the SR field of the given VDI.
8073 \noindent {\bf Signature:}
8074 \begin{verbatim} void set_SR (session_id s, VDI ref self, SR ref value)\end{verbatim}
8077 \noindent{\bf Arguments:}
8080 \vspace{0.3cm}
8081 \begin{tabular}{|c|c|p{7cm}|}
8082 \hline
8083 {\bf type} & {\bf name} & {\bf description} \\ \hline
8084 {\tt VDI ref } & self & reference to the object \\ \hline
8086 {\tt SR ref } & value & New value to set \\ \hline
8088 \end{tabular}
8090 \vspace{0.3cm}
8092 \noindent {\bf Return Type:}
8093 {\tt
8094 void
8099 \vspace{0.3cm}
8100 \vspace{0.3cm}
8101 \vspace{0.3cm}
8102 \subsubsection{RPC name:~get\_VBDs}
8104 {\bf Overview:}
8105 Get the VBDs field of the given VDI.
8107 \noindent {\bf Signature:}
8108 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
8111 \noindent{\bf Arguments:}
8114 \vspace{0.3cm}
8115 \begin{tabular}{|c|c|p{7cm}|}
8116 \hline
8117 {\bf type} & {\bf name} & {\bf description} \\ \hline
8118 {\tt VDI ref } & self & reference to the object \\ \hline
8120 \end{tabular}
8122 \vspace{0.3cm}
8124 \noindent {\bf Return Type:}
8125 {\tt
8126 (VBD ref) Set
8130 value of the field
8131 \vspace{0.3cm}
8132 \vspace{0.3cm}
8133 \vspace{0.3cm}
8134 \subsubsection{RPC name:~get\_virtual\_size}
8136 {\bf Overview:}
8137 Get the virtual\_size field of the given VDI.
8139 \noindent {\bf Signature:}
8140 \begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
8143 \noindent{\bf Arguments:}
8146 \vspace{0.3cm}
8147 \begin{tabular}{|c|c|p{7cm}|}
8148 \hline
8149 {\bf type} & {\bf name} & {\bf description} \\ \hline
8150 {\tt VDI ref } & self & reference to the object \\ \hline
8152 \end{tabular}
8154 \vspace{0.3cm}
8156 \noindent {\bf Return Type:}
8157 {\tt
8158 int
8162 value of the field
8163 \vspace{0.3cm}
8164 \vspace{0.3cm}
8165 \vspace{0.3cm}
8166 \subsubsection{RPC name:~set\_virtual\_size}
8168 {\bf Overview:}
8169 Set the virtual\_size field of the given VDI.
8171 \noindent {\bf Signature:}
8172 \begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
8175 \noindent{\bf Arguments:}
8178 \vspace{0.3cm}
8179 \begin{tabular}{|c|c|p{7cm}|}
8180 \hline
8181 {\bf type} & {\bf name} & {\bf description} \\ \hline
8182 {\tt VDI ref } & self & reference to the object \\ \hline
8184 {\tt int } & value & New value to set \\ \hline
8186 \end{tabular}
8188 \vspace{0.3cm}
8190 \noindent {\bf Return Type:}
8191 {\tt
8192 void
8197 \vspace{0.3cm}
8198 \vspace{0.3cm}
8199 \vspace{0.3cm}
8200 \subsubsection{RPC name:~get\_physical\_utilisation}
8202 {\bf Overview:}
8203 Get the physical\_utilisation field of the given VDI.
8205 \noindent {\bf Signature:}
8206 \begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\end{verbatim}
8209 \noindent{\bf Arguments:}
8212 \vspace{0.3cm}
8213 \begin{tabular}{|c|c|p{7cm}|}
8214 \hline
8215 {\bf type} & {\bf name} & {\bf description} \\ \hline
8216 {\tt VDI ref } & self & reference to the object \\ \hline
8218 \end{tabular}
8220 \vspace{0.3cm}
8222 \noindent {\bf Return Type:}
8223 {\tt
8224 int
8228 value of the field
8229 \vspace{0.3cm}
8230 \vspace{0.3cm}
8231 \vspace{0.3cm}
8232 \subsubsection{RPC name:~get\_sector\_size}
8234 {\bf Overview:}
8235 Get the sector\_size field of the given VDI.
8237 \noindent {\bf Signature:}
8238 \begin{verbatim} int get_sector_size (session_id s, VDI ref self)\end{verbatim}
8241 \noindent{\bf Arguments:}
8244 \vspace{0.3cm}
8245 \begin{tabular}{|c|c|p{7cm}|}
8246 \hline
8247 {\bf type} & {\bf name} & {\bf description} \\ \hline
8248 {\tt VDI ref } & self & reference to the object \\ \hline
8250 \end{tabular}
8252 \vspace{0.3cm}
8254 \noindent {\bf Return Type:}
8255 {\tt
8256 int
8260 value of the field
8261 \vspace{0.3cm}
8262 \vspace{0.3cm}
8263 \vspace{0.3cm}
8264 \subsubsection{RPC name:~get\_type}
8266 {\bf Overview:}
8267 Get the type field of the given VDI.
8269 \noindent {\bf Signature:}
8270 \begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
8273 \noindent{\bf Arguments:}
8276 \vspace{0.3cm}
8277 \begin{tabular}{|c|c|p{7cm}|}
8278 \hline
8279 {\bf type} & {\bf name} & {\bf description} \\ \hline
8280 {\tt VDI ref } & self & reference to the object \\ \hline
8282 \end{tabular}
8284 \vspace{0.3cm}
8286 \noindent {\bf Return Type:}
8287 {\tt
8288 vdi\_type
8292 value of the field
8293 \vspace{0.3cm}
8294 \vspace{0.3cm}
8295 \vspace{0.3cm}
8296 \subsubsection{RPC name:~get\_parent}
8298 {\bf Overview:}
8299 Get the parent field of the given VDI.
8301 \noindent {\bf Signature:}
8302 \begin{verbatim} (VDI ref) get_parent (session_id s, VDI ref self)\end{verbatim}
8305 \noindent{\bf Arguments:}
8308 \vspace{0.3cm}
8309 \begin{tabular}{|c|c|p{7cm}|}
8310 \hline
8311 {\bf type} & {\bf name} & {\bf description} \\ \hline
8312 {\tt VDI ref } & self & reference to the object \\ \hline
8314 \end{tabular}
8316 \vspace{0.3cm}
8318 \noindent {\bf Return Type:}
8319 {\tt
8320 VDI ref
8324 value of the field
8325 \vspace{0.3cm}
8326 \vspace{0.3cm}
8327 \vspace{0.3cm}
8328 \subsubsection{RPC name:~get\_children}
8330 {\bf Overview:}
8331 Get the children field of the given VDI.
8333 \noindent {\bf Signature:}
8334 \begin{verbatim} ((VDI ref) Set) get_children (session_id s, VDI ref self)\end{verbatim}
8337 \noindent{\bf Arguments:}
8340 \vspace{0.3cm}
8341 \begin{tabular}{|c|c|p{7cm}|}
8342 \hline
8343 {\bf type} & {\bf name} & {\bf description} \\ \hline
8344 {\tt VDI ref } & self & reference to the object \\ \hline
8346 \end{tabular}
8348 \vspace{0.3cm}
8350 \noindent {\bf Return Type:}
8351 {\tt
8352 (VDI ref) Set
8356 value of the field
8357 \vspace{0.3cm}
8358 \vspace{0.3cm}
8359 \vspace{0.3cm}
8360 \subsubsection{RPC name:~get\_sharable}
8362 {\bf Overview:}
8363 Get the sharable field of the given VDI.
8365 \noindent {\bf Signature:}
8366 \begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
8369 \noindent{\bf Arguments:}
8372 \vspace{0.3cm}
8373 \begin{tabular}{|c|c|p{7cm}|}
8374 \hline
8375 {\bf type} & {\bf name} & {\bf description} \\ \hline
8376 {\tt VDI ref } & self & reference to the object \\ \hline
8378 \end{tabular}
8380 \vspace{0.3cm}
8382 \noindent {\bf Return Type:}
8383 {\tt
8384 bool
8388 value of the field
8389 \vspace{0.3cm}
8390 \vspace{0.3cm}
8391 \vspace{0.3cm}
8392 \subsubsection{RPC name:~set\_sharable}
8394 {\bf Overview:}
8395 Set the sharable field of the given VDI.
8397 \noindent {\bf Signature:}
8398 \begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
8401 \noindent{\bf Arguments:}
8404 \vspace{0.3cm}
8405 \begin{tabular}{|c|c|p{7cm}|}
8406 \hline
8407 {\bf type} & {\bf name} & {\bf description} \\ \hline
8408 {\tt VDI ref } & self & reference to the object \\ \hline
8410 {\tt bool } & value & New value to set \\ \hline
8412 \end{tabular}
8414 \vspace{0.3cm}
8416 \noindent {\bf Return Type:}
8417 {\tt
8418 void
8423 \vspace{0.3cm}
8424 \vspace{0.3cm}
8425 \vspace{0.3cm}
8426 \subsubsection{RPC name:~get\_read\_only}
8428 {\bf Overview:}
8429 Get the read\_only field of the given VDI.
8431 \noindent {\bf Signature:}
8432 \begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
8435 \noindent{\bf Arguments:}
8438 \vspace{0.3cm}
8439 \begin{tabular}{|c|c|p{7cm}|}
8440 \hline
8441 {\bf type} & {\bf name} & {\bf description} \\ \hline
8442 {\tt VDI ref } & self & reference to the object \\ \hline
8444 \end{tabular}
8446 \vspace{0.3cm}
8448 \noindent {\bf Return Type:}
8449 {\tt
8450 bool
8454 value of the field
8455 \vspace{0.3cm}
8456 \vspace{0.3cm}
8457 \vspace{0.3cm}
8458 \subsubsection{RPC name:~set\_read\_only}
8460 {\bf Overview:}
8461 Set the read\_only field of the given VDI.
8463 \noindent {\bf Signature:}
8464 \begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
8467 \noindent{\bf Arguments:}
8470 \vspace{0.3cm}
8471 \begin{tabular}{|c|c|p{7cm}|}
8472 \hline
8473 {\bf type} & {\bf name} & {\bf description} \\ \hline
8474 {\tt VDI ref } & self & reference to the object \\ \hline
8476 {\tt bool } & value & New value to set \\ \hline
8478 \end{tabular}
8480 \vspace{0.3cm}
8482 \noindent {\bf Return Type:}
8483 {\tt
8484 void
8489 \vspace{0.3cm}
8490 \vspace{0.3cm}
8491 \vspace{0.3cm}
8492 \subsubsection{RPC name:~create}
8494 {\bf Overview:}
8495 Create a new VDI instance, and return its handle.
8497 \noindent {\bf Signature:}
8498 \begin{verbatim} (VDI ref) create (session_id s, VDI record args)\end{verbatim}
8501 \noindent{\bf Arguments:}
8504 \vspace{0.3cm}
8505 \begin{tabular}{|c|c|p{7cm}|}
8506 \hline
8507 {\bf type} & {\bf name} & {\bf description} \\ \hline
8508 {\tt VDI record } & args & All constructor arguments \\ \hline
8510 \end{tabular}
8512 \vspace{0.3cm}
8514 \noindent {\bf Return Type:}
8515 {\tt
8516 VDI ref
8520 reference to the newly created object
8521 \vspace{0.3cm}
8522 \vspace{0.3cm}
8523 \vspace{0.3cm}
8524 \subsubsection{RPC name:~destroy}
8526 {\bf Overview:}
8527 Destroy the specified VDI instance.
8529 \noindent {\bf Signature:}
8530 \begin{verbatim} void destroy (session_id s, VDI ref self)\end{verbatim}
8533 \noindent{\bf Arguments:}
8536 \vspace{0.3cm}
8537 \begin{tabular}{|c|c|p{7cm}|}
8538 \hline
8539 {\bf type} & {\bf name} & {\bf description} \\ \hline
8540 {\tt VDI ref } & self & reference to the object \\ \hline
8542 \end{tabular}
8544 \vspace{0.3cm}
8546 \noindent {\bf Return Type:}
8547 {\tt
8548 void
8553 \vspace{0.3cm}
8554 \vspace{0.3cm}
8555 \vspace{0.3cm}
8556 \subsubsection{RPC name:~get\_by\_uuid}
8558 {\bf Overview:}
8559 Get a reference to the VDI instance with the specified UUID.
8561 \noindent {\bf Signature:}
8562 \begin{verbatim} (VDI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8565 \noindent{\bf Arguments:}
8568 \vspace{0.3cm}
8569 \begin{tabular}{|c|c|p{7cm}|}
8570 \hline
8571 {\bf type} & {\bf name} & {\bf description} \\ \hline
8572 {\tt string } & uuid & UUID of object to return \\ \hline
8574 \end{tabular}
8576 \vspace{0.3cm}
8578 \noindent {\bf Return Type:}
8579 {\tt
8580 VDI ref
8584 reference to the object
8585 \vspace{0.3cm}
8586 \vspace{0.3cm}
8587 \vspace{0.3cm}
8588 \subsubsection{RPC name:~get\_record}
8590 {\bf Overview:}
8591 Get a record containing the current state of the given VDI.
8593 \noindent {\bf Signature:}
8594 \begin{verbatim} (VDI record) get_record (session_id s, VDI ref self)\end{verbatim}
8597 \noindent{\bf Arguments:}
8600 \vspace{0.3cm}
8601 \begin{tabular}{|c|c|p{7cm}|}
8602 \hline
8603 {\bf type} & {\bf name} & {\bf description} \\ \hline
8604 {\tt VDI ref } & self & reference to the object \\ \hline
8606 \end{tabular}
8608 \vspace{0.3cm}
8610 \noindent {\bf Return Type:}
8611 {\tt
8612 VDI record
8616 all fields from the object
8617 \vspace{0.3cm}
8618 \vspace{0.3cm}
8619 \vspace{0.3cm}
8620 \subsubsection{RPC name:~get\_by\_name\_label}
8622 {\bf Overview:}
8623 Get all the VDI instances with the given label.
8625 \noindent {\bf Signature:}
8626 \begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8629 \noindent{\bf Arguments:}
8632 \vspace{0.3cm}
8633 \begin{tabular}{|c|c|p{7cm}|}
8634 \hline
8635 {\bf type} & {\bf name} & {\bf description} \\ \hline
8636 {\tt string } & label & label of object to return \\ \hline
8638 \end{tabular}
8640 \vspace{0.3cm}
8642 \noindent {\bf Return Type:}
8643 {\tt
8644 (VDI ref) Set
8648 references to objects with match names
8649 \vspace{0.3cm}
8650 \vspace{0.3cm}
8651 \vspace{0.3cm}
8653 \vspace{1cm}
8654 \newpage
8655 \section{Class: VBD}
8656 \subsection{Fields for class: VBD}
8657 \begin{longtable}{|lllp{0.38\textwidth}|}
8658 \hline
8659 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
8660 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual block device}} \\
8661 \hline
8662 Quals & Field & Type & Description \\
8663 \hline
8664 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8665 $\mathit{RW}$ & {\tt VM} & VM ref & the virtual machine \\
8666 $\mathit{RW}$ & {\tt VDI} & VDI ref & the virtual disk \\
8667 $\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
8668 $\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the disk should be mounted with \\
8669 $\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
8670 $\mathit{RW}$ & {\tt driver} & driver\_type & the style of driver \\
8671 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
8672 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
8673 \hline
8674 \end{longtable}
8675 \subsection{Additional RPCs associated with class: VBD}
8676 \subsubsection{RPC name:~media\_change}
8678 {\bf Overview:}
8679 Change the media in the device for CDROM-like devices only. For other devices, detach the VBD and attach a new one
8681 \noindent {\bf Signature:}
8682 \begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
8685 \noindent{\bf Arguments:}
8688 \vspace{0.3cm}
8689 \begin{tabular}{|c|c|p{7cm}|}
8690 \hline
8691 {\bf type} & {\bf name} & {\bf description} \\ \hline
8692 {\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
8694 {\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
8696 \end{tabular}
8698 \vspace{0.3cm}
8700 \noindent {\bf Return Type:}
8701 {\tt
8702 void
8707 \vspace{0.3cm}
8708 \vspace{0.3cm}
8709 \vspace{0.3cm}
8710 \subsubsection{RPC name:~get\_uuid}
8712 {\bf Overview:}
8713 Get the uuid field of the given VBD.
8715 \noindent {\bf Signature:}
8716 \begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
8719 \noindent{\bf Arguments:}
8722 \vspace{0.3cm}
8723 \begin{tabular}{|c|c|p{7cm}|}
8724 \hline
8725 {\bf type} & {\bf name} & {\bf description} \\ \hline
8726 {\tt VBD ref } & self & reference to the object \\ \hline
8728 \end{tabular}
8730 \vspace{0.3cm}
8732 \noindent {\bf Return Type:}
8733 {\tt
8734 string
8738 value of the field
8739 \vspace{0.3cm}
8740 \vspace{0.3cm}
8741 \vspace{0.3cm}
8742 \subsubsection{RPC name:~get\_VM}
8744 {\bf Overview:}
8745 Get the VM field of the given VBD.
8747 \noindent {\bf Signature:}
8748 \begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
8751 \noindent{\bf Arguments:}
8754 \vspace{0.3cm}
8755 \begin{tabular}{|c|c|p{7cm}|}
8756 \hline
8757 {\bf type} & {\bf name} & {\bf description} \\ \hline
8758 {\tt VBD ref } & self & reference to the object \\ \hline
8760 \end{tabular}
8762 \vspace{0.3cm}
8764 \noindent {\bf Return Type:}
8765 {\tt
8766 VM ref
8770 value of the field
8771 \vspace{0.3cm}
8772 \vspace{0.3cm}
8773 \vspace{0.3cm}
8774 \subsubsection{RPC name:~set\_VM}
8776 {\bf Overview:}
8777 Set the VM field of the given VBD.
8779 \noindent {\bf Signature:}
8780 \begin{verbatim} void set_VM (session_id s, VBD ref self, VM ref value)\end{verbatim}
8783 \noindent{\bf Arguments:}
8786 \vspace{0.3cm}
8787 \begin{tabular}{|c|c|p{7cm}|}
8788 \hline
8789 {\bf type} & {\bf name} & {\bf description} \\ \hline
8790 {\tt VBD ref } & self & reference to the object \\ \hline
8792 {\tt VM ref } & value & New value to set \\ \hline
8794 \end{tabular}
8796 \vspace{0.3cm}
8798 \noindent {\bf Return Type:}
8799 {\tt
8800 void
8805 \vspace{0.3cm}
8806 \vspace{0.3cm}
8807 \vspace{0.3cm}
8808 \subsubsection{RPC name:~get\_VDI}
8810 {\bf Overview:}
8811 Get the VDI field of the given VBD.
8813 \noindent {\bf Signature:}
8814 \begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
8817 \noindent{\bf Arguments:}
8820 \vspace{0.3cm}
8821 \begin{tabular}{|c|c|p{7cm}|}
8822 \hline
8823 {\bf type} & {\bf name} & {\bf description} \\ \hline
8824 {\tt VBD ref } & self & reference to the object \\ \hline
8826 \end{tabular}
8828 \vspace{0.3cm}
8830 \noindent {\bf Return Type:}
8831 {\tt
8832 VDI ref
8836 value of the field
8837 \vspace{0.3cm}
8838 \vspace{0.3cm}
8839 \vspace{0.3cm}
8840 \subsubsection{RPC name:~set\_VDI}
8842 {\bf Overview:}
8843 Set the VDI field of the given VBD.
8845 \noindent {\bf Signature:}
8846 \begin{verbatim} void set_VDI (session_id s, VBD ref self, VDI ref value)\end{verbatim}
8849 \noindent{\bf Arguments:}
8852 \vspace{0.3cm}
8853 \begin{tabular}{|c|c|p{7cm}|}
8854 \hline
8855 {\bf type} & {\bf name} & {\bf description} \\ \hline
8856 {\tt VBD ref } & self & reference to the object \\ \hline
8858 {\tt VDI ref } & value & New value to set \\ \hline
8860 \end{tabular}
8862 \vspace{0.3cm}
8864 \noindent {\bf Return Type:}
8865 {\tt
8866 void
8871 \vspace{0.3cm}
8872 \vspace{0.3cm}
8873 \vspace{0.3cm}
8874 \subsubsection{RPC name:~get\_device}
8876 {\bf Overview:}
8877 Get the device field of the given VBD.
8879 \noindent {\bf Signature:}
8880 \begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
8883 \noindent{\bf Arguments:}
8886 \vspace{0.3cm}
8887 \begin{tabular}{|c|c|p{7cm}|}
8888 \hline
8889 {\bf type} & {\bf name} & {\bf description} \\ \hline
8890 {\tt VBD ref } & self & reference to the object \\ \hline
8892 \end{tabular}
8894 \vspace{0.3cm}
8896 \noindent {\bf Return Type:}
8897 {\tt
8898 string
8902 value of the field
8903 \vspace{0.3cm}
8904 \vspace{0.3cm}
8905 \vspace{0.3cm}
8906 \subsubsection{RPC name:~set\_device}
8908 {\bf Overview:}
8909 Set the device field of the given VBD.
8911 \noindent {\bf Signature:}
8912 \begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim}
8915 \noindent{\bf Arguments:}
8918 \vspace{0.3cm}
8919 \begin{tabular}{|c|c|p{7cm}|}
8920 \hline
8921 {\bf type} & {\bf name} & {\bf description} \\ \hline
8922 {\tt VBD ref } & self & reference to the object \\ \hline
8924 {\tt string } & value & New value to set \\ \hline
8926 \end{tabular}
8928 \vspace{0.3cm}
8930 \noindent {\bf Return Type:}
8931 {\tt
8932 void
8937 \vspace{0.3cm}
8938 \vspace{0.3cm}
8939 \vspace{0.3cm}
8940 \subsubsection{RPC name:~get\_mode}
8942 {\bf Overview:}
8943 Get the mode field of the given VBD.
8945 \noindent {\bf Signature:}
8946 \begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
8949 \noindent{\bf Arguments:}
8952 \vspace{0.3cm}
8953 \begin{tabular}{|c|c|p{7cm}|}
8954 \hline
8955 {\bf type} & {\bf name} & {\bf description} \\ \hline
8956 {\tt VBD ref } & self & reference to the object \\ \hline
8958 \end{tabular}
8960 \vspace{0.3cm}
8962 \noindent {\bf Return Type:}
8963 {\tt
8964 vbd\_mode
8968 value of the field
8969 \vspace{0.3cm}
8970 \vspace{0.3cm}
8971 \vspace{0.3cm}
8972 \subsubsection{RPC name:~set\_mode}
8974 {\bf Overview:}
8975 Set the mode field of the given VBD.
8977 \noindent {\bf Signature:}
8978 \begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
8981 \noindent{\bf Arguments:}
8984 \vspace{0.3cm}
8985 \begin{tabular}{|c|c|p{7cm}|}
8986 \hline
8987 {\bf type} & {\bf name} & {\bf description} \\ \hline
8988 {\tt VBD ref } & self & reference to the object \\ \hline
8990 {\tt vbd\_mode } & value & New value to set \\ \hline
8992 \end{tabular}
8994 \vspace{0.3cm}
8996 \noindent {\bf Return Type:}
8997 {\tt
8998 void
9003 \vspace{0.3cm}
9004 \vspace{0.3cm}
9005 \vspace{0.3cm}
9006 \subsubsection{RPC name:~get\_type}
9008 {\bf Overview:}
9009 Get the type field of the given VBD.
9011 \noindent {\bf Signature:}
9012 \begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
9015 \noindent{\bf Arguments:}
9018 \vspace{0.3cm}
9019 \begin{tabular}{|c|c|p{7cm}|}
9020 \hline
9021 {\bf type} & {\bf name} & {\bf description} \\ \hline
9022 {\tt VBD ref } & self & reference to the object \\ \hline
9024 \end{tabular}
9026 \vspace{0.3cm}
9028 \noindent {\bf Return Type:}
9029 {\tt
9030 vbd\_type
9034 value of the field
9035 \vspace{0.3cm}
9036 \vspace{0.3cm}
9037 \vspace{0.3cm}
9038 \subsubsection{RPC name:~set\_type}
9040 {\bf Overview:}
9041 Set the type field of the given VBD.
9043 \noindent {\bf Signature:}
9044 \begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
9047 \noindent{\bf Arguments:}
9050 \vspace{0.3cm}
9051 \begin{tabular}{|c|c|p{7cm}|}
9052 \hline
9053 {\bf type} & {\bf name} & {\bf description} \\ \hline
9054 {\tt VBD ref } & self & reference to the object \\ \hline
9056 {\tt vbd\_type } & value & New value to set \\ \hline
9058 \end{tabular}
9060 \vspace{0.3cm}
9062 \noindent {\bf Return Type:}
9063 {\tt
9064 void
9069 \vspace{0.3cm}
9070 \vspace{0.3cm}
9071 \vspace{0.3cm}
9072 \subsubsection{RPC name:~get\_driver}
9074 {\bf Overview:}
9075 Get the driver field of the given VBD.
9077 \noindent {\bf Signature:}
9078 \begin{verbatim} (driver_type) get_driver (session_id s, VBD ref self)\end{verbatim}
9081 \noindent{\bf Arguments:}
9084 \vspace{0.3cm}
9085 \begin{tabular}{|c|c|p{7cm}|}
9086 \hline
9087 {\bf type} & {\bf name} & {\bf description} \\ \hline
9088 {\tt VBD ref } & self & reference to the object \\ \hline
9090 \end{tabular}
9092 \vspace{0.3cm}
9094 \noindent {\bf Return Type:}
9095 {\tt
9096 driver\_type
9100 value of the field
9101 \vspace{0.3cm}
9102 \vspace{0.3cm}
9103 \vspace{0.3cm}
9104 \subsubsection{RPC name:~set\_driver}
9106 {\bf Overview:}
9107 Set the driver field of the given VBD.
9109 \noindent {\bf Signature:}
9110 \begin{verbatim} void set_driver (session_id s, VBD ref self, driver_type value)\end{verbatim}
9113 \noindent{\bf Arguments:}
9116 \vspace{0.3cm}
9117 \begin{tabular}{|c|c|p{7cm}|}
9118 \hline
9119 {\bf type} & {\bf name} & {\bf description} \\ \hline
9120 {\tt VBD ref } & self & reference to the object \\ \hline
9122 {\tt driver\_type } & value & New value to set \\ \hline
9124 \end{tabular}
9126 \vspace{0.3cm}
9128 \noindent {\bf Return Type:}
9129 {\tt
9130 void
9135 \vspace{0.3cm}
9136 \vspace{0.3cm}
9137 \vspace{0.3cm}
9138 \subsubsection{RPC name:~get\_io\_read\_kbs}
9140 {\bf Overview:}
9141 Get the io/read\_kbs field of the given VBD.
9143 \noindent {\bf Signature:}
9144 \begin{verbatim} float get_io_read_kbs (session_id s, VBD ref self)\end{verbatim}
9147 \noindent{\bf Arguments:}
9150 \vspace{0.3cm}
9151 \begin{tabular}{|c|c|p{7cm}|}
9152 \hline
9153 {\bf type} & {\bf name} & {\bf description} \\ \hline
9154 {\tt VBD ref } & self & reference to the object \\ \hline
9156 \end{tabular}
9158 \vspace{0.3cm}
9160 \noindent {\bf Return Type:}
9161 {\tt
9162 float
9166 value of the field
9167 \vspace{0.3cm}
9168 \vspace{0.3cm}
9169 \vspace{0.3cm}
9170 \subsubsection{RPC name:~get\_io\_write\_kbs}
9172 {\bf Overview:}
9173 Get the io/write\_kbs field of the given VBD.
9175 \noindent {\bf Signature:}
9176 \begin{verbatim} float get_io_write_kbs (session_id s, VBD ref self)\end{verbatim}
9179 \noindent{\bf Arguments:}
9182 \vspace{0.3cm}
9183 \begin{tabular}{|c|c|p{7cm}|}
9184 \hline
9185 {\bf type} & {\bf name} & {\bf description} \\ \hline
9186 {\tt VBD ref } & self & reference to the object \\ \hline
9188 \end{tabular}
9190 \vspace{0.3cm}
9192 \noindent {\bf Return Type:}
9193 {\tt
9194 float
9198 value of the field
9199 \vspace{0.3cm}
9200 \vspace{0.3cm}
9201 \vspace{0.3cm}
9202 \subsubsection{RPC name:~create}
9204 {\bf Overview:}
9205 Create a new VBD instance, and return its handle.
9207 \noindent {\bf Signature:}
9208 \begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
9211 \noindent{\bf Arguments:}
9214 \vspace{0.3cm}
9215 \begin{tabular}{|c|c|p{7cm}|}
9216 \hline
9217 {\bf type} & {\bf name} & {\bf description} \\ \hline
9218 {\tt VBD record } & args & All constructor arguments \\ \hline
9220 \end{tabular}
9222 \vspace{0.3cm}
9224 \noindent {\bf Return Type:}
9225 {\tt
9226 VBD ref
9230 reference to the newly created object
9231 \vspace{0.3cm}
9232 \vspace{0.3cm}
9233 \vspace{0.3cm}
9234 \subsubsection{RPC name:~destroy}
9236 {\bf Overview:}
9237 Destroy the specified VBD instance.
9239 \noindent {\bf Signature:}
9240 \begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
9243 \noindent{\bf Arguments:}
9246 \vspace{0.3cm}
9247 \begin{tabular}{|c|c|p{7cm}|}
9248 \hline
9249 {\bf type} & {\bf name} & {\bf description} \\ \hline
9250 {\tt VBD ref } & self & reference to the object \\ \hline
9252 \end{tabular}
9254 \vspace{0.3cm}
9256 \noindent {\bf Return Type:}
9257 {\tt
9258 void
9263 \vspace{0.3cm}
9264 \vspace{0.3cm}
9265 \vspace{0.3cm}
9266 \subsubsection{RPC name:~get\_by\_uuid}
9268 {\bf Overview:}
9269 Get a reference to the VBD instance with the specified UUID.
9271 \noindent {\bf Signature:}
9272 \begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9275 \noindent{\bf Arguments:}
9278 \vspace{0.3cm}
9279 \begin{tabular}{|c|c|p{7cm}|}
9280 \hline
9281 {\bf type} & {\bf name} & {\bf description} \\ \hline
9282 {\tt string } & uuid & UUID of object to return \\ \hline
9284 \end{tabular}
9286 \vspace{0.3cm}
9288 \noindent {\bf Return Type:}
9289 {\tt
9290 VBD ref
9294 reference to the object
9295 \vspace{0.3cm}
9296 \vspace{0.3cm}
9297 \vspace{0.3cm}
9298 \subsubsection{RPC name:~get\_record}
9300 {\bf Overview:}
9301 Get a record containing the current state of the given VBD.
9303 \noindent {\bf Signature:}
9304 \begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
9307 \noindent{\bf Arguments:}
9310 \vspace{0.3cm}
9311 \begin{tabular}{|c|c|p{7cm}|}
9312 \hline
9313 {\bf type} & {\bf name} & {\bf description} \\ \hline
9314 {\tt VBD ref } & self & reference to the object \\ \hline
9316 \end{tabular}
9318 \vspace{0.3cm}
9320 \noindent {\bf Return Type:}
9321 {\tt
9322 VBD record
9326 all fields from the object
9327 \vspace{0.3cm}
9328 \vspace{0.3cm}
9329 \vspace{0.3cm}
9331 \vspace{1cm}
9332 \newpage
9333 \section{Class: VTPM}
9334 \subsection{Fields for class: VTPM}
9335 \begin{longtable}{|lllp{0.38\textwidth}|}
9336 \hline
9337 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
9338 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual TPM device}} \\
9339 \hline
9340 Quals & Field & Type & Description \\
9341 \hline
9342 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9343 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
9344 $\mathit{RO}_\mathit{ins}$ & {\tt backend} & VM ref & the domain where the backend is located \\
9345 $\mathit{RO}_\mathit{ins}$ & {\tt driver} & driver\_type & the style of driver \\
9346 $\mathit{RO}_\mathit{ins}$ & {\tt instance} & int & the instance number the virtual TPM represents \\
9347 \hline
9348 \end{longtable}
9349 \subsection{Additional RPCs associated with class: VTPM}
9350 \subsubsection{RPC name:~get\_uuid}
9352 {\bf Overview:}
9353 Get the uuid field of the given VTPM.
9355 \noindent {\bf Signature:}
9356 \begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
9359 \noindent{\bf Arguments:}
9362 \vspace{0.3cm}
9363 \begin{tabular}{|c|c|p{7cm}|}
9364 \hline
9365 {\bf type} & {\bf name} & {\bf description} \\ \hline
9366 {\tt VTPM ref } & self & reference to the object \\ \hline
9368 \end{tabular}
9370 \vspace{0.3cm}
9372 \noindent {\bf Return Type:}
9373 {\tt
9374 string
9378 value of the field
9379 \vspace{0.3cm}
9380 \vspace{0.3cm}
9381 \vspace{0.3cm}
9382 \subsubsection{RPC name:~get\_VM}
9384 {\bf Overview:}
9385 Get the VM field of the given VTPM.
9387 \noindent {\bf Signature:}
9388 \begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
9391 \noindent{\bf Arguments:}
9394 \vspace{0.3cm}
9395 \begin{tabular}{|c|c|p{7cm}|}
9396 \hline
9397 {\bf type} & {\bf name} & {\bf description} \\ \hline
9398 {\tt VTPM ref } & self & reference to the object \\ \hline
9400 \end{tabular}
9402 \vspace{0.3cm}
9404 \noindent {\bf Return Type:}
9405 {\tt
9406 VM ref
9410 value of the field
9411 \vspace{0.3cm}
9412 \vspace{0.3cm}
9413 \vspace{0.3cm}
9414 \subsubsection{RPC name:~get\_backend}
9416 {\bf Overview:}
9417 Get the backend field of the given VTPM.
9419 \noindent {\bf Signature:}
9420 \begin{verbatim} (VM ref) get_backend (session_id s, VTPM 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 VTPM ref } & self & reference to the object \\ \hline
9432 \end{tabular}
9434 \vspace{0.3cm}
9436 \noindent {\bf Return Type:}
9437 {\tt
9438 VM ref
9442 value of the field
9443 \vspace{0.3cm}
9444 \vspace{0.3cm}
9445 \vspace{0.3cm}
9446 \subsubsection{RPC name:~get\_driver}
9448 {\bf Overview:}
9449 Get the driver field of the given VTPM.
9451 \noindent {\bf Signature:}
9452 \begin{verbatim} (driver_type) get_driver (session_id s, VTPM 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 VTPM ref } & self & reference to the object \\ \hline
9464 \end{tabular}
9466 \vspace{0.3cm}
9468 \noindent {\bf Return Type:}
9469 {\tt
9470 driver\_type
9474 value of the field
9475 \vspace{0.3cm}
9476 \vspace{0.3cm}
9477 \vspace{0.3cm}
9478 \subsubsection{RPC name:~get\_instance}
9480 {\bf Overview:}
9481 Get the instance field of the given VTPM.
9483 \noindent {\bf Signature:}
9484 \begin{verbatim} int get_instance (session_id s, VTPM 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 VTPM ref } & self & reference to the object \\ \hline
9496 \end{tabular}
9498 \vspace{0.3cm}
9500 \noindent {\bf Return Type:}
9501 {\tt
9502 int
9506 value of the field
9507 \vspace{0.3cm}
9508 \vspace{0.3cm}
9509 \vspace{0.3cm}
9510 \subsubsection{RPC name:~create}
9512 {\bf Overview:}
9513 Create a new VTPM instance, and return its handle.
9515 \noindent {\bf Signature:}
9516 \begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\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 VTPM record } & args & All constructor arguments \\ \hline
9528 \end{tabular}
9530 \vspace{0.3cm}
9532 \noindent {\bf Return Type:}
9533 {\tt
9534 VTPM ref
9538 reference to the newly created object
9539 \vspace{0.3cm}
9540 \vspace{0.3cm}
9541 \vspace{0.3cm}
9542 \subsubsection{RPC name:~destroy}
9544 {\bf Overview:}
9545 Destroy the specified VTPM instance.
9547 \noindent {\bf Signature:}
9548 \begin{verbatim} void destroy (session_id s, VTPM ref self)\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 VTPM ref } & self & reference to the object \\ \hline
9560 \end{tabular}
9562 \vspace{0.3cm}
9564 \noindent {\bf Return Type:}
9565 {\tt
9566 void
9571 \vspace{0.3cm}
9572 \vspace{0.3cm}
9573 \vspace{0.3cm}
9574 \subsubsection{RPC name:~get\_by\_uuid}
9576 {\bf Overview:}
9577 Get a reference to the VTPM instance with the specified UUID.
9579 \noindent {\bf Signature:}
9580 \begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9583 \noindent{\bf Arguments:}
9586 \vspace{0.3cm}
9587 \begin{tabular}{|c|c|p{7cm}|}
9588 \hline
9589 {\bf type} & {\bf name} & {\bf description} \\ \hline
9590 {\tt string } & uuid & UUID of object to return \\ \hline
9592 \end{tabular}
9594 \vspace{0.3cm}
9596 \noindent {\bf Return Type:}
9597 {\tt
9598 VTPM ref
9602 reference to the object
9603 \vspace{0.3cm}
9604 \vspace{0.3cm}
9605 \vspace{0.3cm}
9606 \subsubsection{RPC name:~get\_record}
9608 {\bf Overview:}
9609 Get a record containing the current state of the given VTPM.
9611 \noindent {\bf Signature:}
9612 \begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
9615 \noindent{\bf Arguments:}
9618 \vspace{0.3cm}
9619 \begin{tabular}{|c|c|p{7cm}|}
9620 \hline
9621 {\bf type} & {\bf name} & {\bf description} \\ \hline
9622 {\tt VTPM ref } & self & reference to the object \\ \hline
9624 \end{tabular}
9626 \vspace{0.3cm}
9628 \noindent {\bf Return Type:}
9629 {\tt
9630 VTPM record
9634 all fields from the object
9635 \vspace{0.3cm}
9636 \vspace{0.3cm}
9637 \vspace{0.3cm}
9639 \vspace{1cm}
9640 \newpage
9641 \section{Class: console}
9642 \subsection{Fields for class: console}
9643 \begin{longtable}{|lllp{0.38\textwidth}|}
9644 \hline
9645 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf console} \\
9646 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A console}} \\
9647 \hline
9648 Quals & Field & Type & Description \\
9649 \hline
9650 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9651 $\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\
9652 $\mathit{RO}_\mathit{run}$ & {\tt uri} & string & URI for the console service \\
9653 $\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\
9654 \hline
9655 \end{longtable}
9656 \subsection{Additional RPCs associated with class: console}
9657 \subsubsection{RPC name:~get\_uuid}
9659 {\bf Overview:}
9660 Get the uuid field of the given console.
9662 \noindent {\bf Signature:}
9663 \begin{verbatim} string get_uuid (session_id s, console ref self)\end{verbatim}
9666 \noindent{\bf Arguments:}
9669 \vspace{0.3cm}
9670 \begin{tabular}{|c|c|p{7cm}|}
9671 \hline
9672 {\bf type} & {\bf name} & {\bf description} \\ \hline
9673 {\tt console ref } & self & reference to the object \\ \hline
9675 \end{tabular}
9677 \vspace{0.3cm}
9679 \noindent {\bf Return Type:}
9680 {\tt
9681 string
9685 value of the field
9686 \vspace{0.3cm}
9687 \vspace{0.3cm}
9688 \vspace{0.3cm}
9689 \subsubsection{RPC name:~get\_protocol}
9691 {\bf Overview:}
9692 Get the protocol field of the given console.
9694 \noindent {\bf Signature:}
9695 \begin{verbatim} (console_protocol) get_protocol (session_id s, console ref self)\end{verbatim}
9698 \noindent{\bf Arguments:}
9701 \vspace{0.3cm}
9702 \begin{tabular}{|c|c|p{7cm}|}
9703 \hline
9704 {\bf type} & {\bf name} & {\bf description} \\ \hline
9705 {\tt console ref } & self & reference to the object \\ \hline
9707 \end{tabular}
9709 \vspace{0.3cm}
9711 \noindent {\bf Return Type:}
9712 {\tt
9713 console\_protocol
9717 value of the field
9718 \vspace{0.3cm}
9719 \vspace{0.3cm}
9720 \vspace{0.3cm}
9721 \subsubsection{RPC name:~get\_uri}
9723 {\bf Overview:}
9724 Get the uri field of the given console.
9726 \noindent {\bf Signature:}
9727 \begin{verbatim} string get_uri (session_id s, console ref self)\end{verbatim}
9730 \noindent{\bf Arguments:}
9733 \vspace{0.3cm}
9734 \begin{tabular}{|c|c|p{7cm}|}
9735 \hline
9736 {\bf type} & {\bf name} & {\bf description} \\ \hline
9737 {\tt console ref } & self & reference to the object \\ \hline
9739 \end{tabular}
9741 \vspace{0.3cm}
9743 \noindent {\bf Return Type:}
9744 {\tt
9745 string
9749 value of the field
9750 \vspace{0.3cm}
9751 \vspace{0.3cm}
9752 \vspace{0.3cm}
9753 \subsubsection{RPC name:~get\_VM}
9755 {\bf Overview:}
9756 Get the VM field of the given console.
9758 \noindent {\bf Signature:}
9759 \begin{verbatim} (VM ref) get_VM (session_id s, console ref self)\end{verbatim}
9762 \noindent{\bf Arguments:}
9765 \vspace{0.3cm}
9766 \begin{tabular}{|c|c|p{7cm}|}
9767 \hline
9768 {\bf type} & {\bf name} & {\bf description} \\ \hline
9769 {\tt console ref } & self & reference to the object \\ \hline
9771 \end{tabular}
9773 \vspace{0.3cm}
9775 \noindent {\bf Return Type:}
9776 {\tt
9777 VM ref
9781 value of the field
9782 \vspace{0.3cm}
9783 \vspace{0.3cm}
9784 \vspace{0.3cm}
9785 \subsubsection{RPC name:~create}
9787 {\bf Overview:}
9788 Create a new console instance, and return its handle.
9790 \noindent {\bf Signature:}
9791 \begin{verbatim} (console ref) create (session_id s, console record args)\end{verbatim}
9794 \noindent{\bf Arguments:}
9797 \vspace{0.3cm}
9798 \begin{tabular}{|c|c|p{7cm}|}
9799 \hline
9800 {\bf type} & {\bf name} & {\bf description} \\ \hline
9801 {\tt console record } & args & All constructor arguments \\ \hline
9803 \end{tabular}
9805 \vspace{0.3cm}
9807 \noindent {\bf Return Type:}
9808 {\tt
9809 console ref
9813 reference to the newly created object
9814 \vspace{0.3cm}
9815 \vspace{0.3cm}
9816 \vspace{0.3cm}
9817 \subsubsection{RPC name:~destroy}
9819 {\bf Overview:}
9820 Destroy the specified console instance.
9822 \noindent {\bf Signature:}
9823 \begin{verbatim} void destroy (session_id s, console ref self)\end{verbatim}
9826 \noindent{\bf Arguments:}
9829 \vspace{0.3cm}
9830 \begin{tabular}{|c|c|p{7cm}|}
9831 \hline
9832 {\bf type} & {\bf name} & {\bf description} \\ \hline
9833 {\tt console ref } & self & reference to the object \\ \hline
9835 \end{tabular}
9837 \vspace{0.3cm}
9839 \noindent {\bf Return Type:}
9840 {\tt
9841 void
9846 \vspace{0.3cm}
9847 \vspace{0.3cm}
9848 \vspace{0.3cm}
9849 \subsubsection{RPC name:~get\_by\_uuid}
9851 {\bf Overview:}
9852 Get a reference to the console instance with the specified UUID.
9854 \noindent {\bf Signature:}
9855 \begin{verbatim} (console ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9858 \noindent{\bf Arguments:}
9861 \vspace{0.3cm}
9862 \begin{tabular}{|c|c|p{7cm}|}
9863 \hline
9864 {\bf type} & {\bf name} & {\bf description} \\ \hline
9865 {\tt string } & uuid & UUID of object to return \\ \hline
9867 \end{tabular}
9869 \vspace{0.3cm}
9871 \noindent {\bf Return Type:}
9872 {\tt
9873 console ref
9877 reference to the object
9878 \vspace{0.3cm}
9879 \vspace{0.3cm}
9880 \vspace{0.3cm}
9881 \subsubsection{RPC name:~get\_record}
9883 {\bf Overview:}
9884 Get a record containing the current state of the given console.
9886 \noindent {\bf Signature:}
9887 \begin{verbatim} (console record) get_record (session_id s, console ref self)\end{verbatim}
9890 \noindent{\bf Arguments:}
9893 \vspace{0.3cm}
9894 \begin{tabular}{|c|c|p{7cm}|}
9895 \hline
9896 {\bf type} & {\bf name} & {\bf description} \\ \hline
9897 {\tt console ref } & self & reference to the object \\ \hline
9899 \end{tabular}
9901 \vspace{0.3cm}
9903 \noindent {\bf Return Type:}
9904 {\tt
9905 console record
9909 all fields from the object
9910 \vspace{0.3cm}
9911 \vspace{0.3cm}
9912 \vspace{0.3cm}
9914 \vspace{1cm}
9915 \newpage
9916 \section{Class: user}
9917 \subsection{Fields for class: user}
9918 \begin{longtable}{|lllp{0.38\textwidth}|}
9919 \hline
9920 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf user} \\
9921 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A user of the system}} \\
9922 \hline
9923 Quals & Field & Type & Description \\
9924 \hline
9925 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9926 $\mathit{RO}_\mathit{ins}$ & {\tt short\_name} & string & short name (e.g. userid) \\
9927 $\mathit{RW}$ & {\tt fullname} & string & full name \\
9928 \hline
9929 \end{longtable}
9930 \subsection{Additional RPCs associated with class: user}
9931 \subsubsection{RPC name:~get\_uuid}
9933 {\bf Overview:}
9934 Get the uuid field of the given user.
9936 \noindent {\bf Signature:}
9937 \begin{verbatim} string get_uuid (session_id s, user ref self)\end{verbatim}
9940 \noindent{\bf Arguments:}
9943 \vspace{0.3cm}
9944 \begin{tabular}{|c|c|p{7cm}|}
9945 \hline
9946 {\bf type} & {\bf name} & {\bf description} \\ \hline
9947 {\tt user ref } & self & reference to the object \\ \hline
9949 \end{tabular}
9951 \vspace{0.3cm}
9953 \noindent {\bf Return Type:}
9954 {\tt
9955 string
9959 value of the field
9960 \vspace{0.3cm}
9961 \vspace{0.3cm}
9962 \vspace{0.3cm}
9963 \subsubsection{RPC name:~get\_short\_name}
9965 {\bf Overview:}
9966 Get the short\_name field of the given user.
9968 \noindent {\bf Signature:}
9969 \begin{verbatim} string get_short_name (session_id s, user ref self)\end{verbatim}
9972 \noindent{\bf Arguments:}
9975 \vspace{0.3cm}
9976 \begin{tabular}{|c|c|p{7cm}|}
9977 \hline
9978 {\bf type} & {\bf name} & {\bf description} \\ \hline
9979 {\tt user ref } & self & reference to the object \\ \hline
9981 \end{tabular}
9983 \vspace{0.3cm}
9985 \noindent {\bf Return Type:}
9986 {\tt
9987 string
9991 value of the field
9992 \vspace{0.3cm}
9993 \vspace{0.3cm}
9994 \vspace{0.3cm}
9995 \subsubsection{RPC name:~get\_fullname}
9997 {\bf Overview:}
9998 Get the fullname field of the given user.
10000 \noindent {\bf Signature:}
10001 \begin{verbatim} string get_fullname (session_id s, user ref self)\end{verbatim}
10004 \noindent{\bf Arguments:}
10007 \vspace{0.3cm}
10008 \begin{tabular}{|c|c|p{7cm}|}
10009 \hline
10010 {\bf type} & {\bf name} & {\bf description} \\ \hline
10011 {\tt user ref } & self & reference to the object \\ \hline
10013 \end{tabular}
10015 \vspace{0.3cm}
10017 \noindent {\bf Return Type:}
10018 {\tt
10019 string
10023 value of the field
10024 \vspace{0.3cm}
10025 \vspace{0.3cm}
10026 \vspace{0.3cm}
10027 \subsubsection{RPC name:~set\_fullname}
10029 {\bf Overview:}
10030 Set the fullname field of the given user.
10032 \noindent {\bf Signature:}
10033 \begin{verbatim} void set_fullname (session_id s, user ref self, string value)\end{verbatim}
10036 \noindent{\bf Arguments:}
10039 \vspace{0.3cm}
10040 \begin{tabular}{|c|c|p{7cm}|}
10041 \hline
10042 {\bf type} & {\bf name} & {\bf description} \\ \hline
10043 {\tt user ref } & self & reference to the object \\ \hline
10045 {\tt string } & value & New value to set \\ \hline
10047 \end{tabular}
10049 \vspace{0.3cm}
10051 \noindent {\bf Return Type:}
10052 {\tt
10053 void
10058 \vspace{0.3cm}
10059 \vspace{0.3cm}
10060 \vspace{0.3cm}
10061 \subsubsection{RPC name:~create}
10063 {\bf Overview:}
10064 Create a new user instance, and return its handle.
10066 \noindent {\bf Signature:}
10067 \begin{verbatim} (user ref) create (session_id s, user record args)\end{verbatim}
10070 \noindent{\bf Arguments:}
10073 \vspace{0.3cm}
10074 \begin{tabular}{|c|c|p{7cm}|}
10075 \hline
10076 {\bf type} & {\bf name} & {\bf description} \\ \hline
10077 {\tt user record } & args & All constructor arguments \\ \hline
10079 \end{tabular}
10081 \vspace{0.3cm}
10083 \noindent {\bf Return Type:}
10084 {\tt
10085 user ref
10089 reference to the newly created object
10090 \vspace{0.3cm}
10091 \vspace{0.3cm}
10092 \vspace{0.3cm}
10093 \subsubsection{RPC name:~destroy}
10095 {\bf Overview:}
10096 Destroy the specified user instance.
10098 \noindent {\bf Signature:}
10099 \begin{verbatim} void destroy (session_id s, user ref self)\end{verbatim}
10102 \noindent{\bf Arguments:}
10105 \vspace{0.3cm}
10106 \begin{tabular}{|c|c|p{7cm}|}
10107 \hline
10108 {\bf type} & {\bf name} & {\bf description} \\ \hline
10109 {\tt user ref } & self & reference to the object \\ \hline
10111 \end{tabular}
10113 \vspace{0.3cm}
10115 \noindent {\bf Return Type:}
10116 {\tt
10117 void
10122 \vspace{0.3cm}
10123 \vspace{0.3cm}
10124 \vspace{0.3cm}
10125 \subsubsection{RPC name:~get\_by\_uuid}
10127 {\bf Overview:}
10128 Get a reference to the user instance with the specified UUID.
10130 \noindent {\bf Signature:}
10131 \begin{verbatim} (user ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10134 \noindent{\bf Arguments:}
10137 \vspace{0.3cm}
10138 \begin{tabular}{|c|c|p{7cm}|}
10139 \hline
10140 {\bf type} & {\bf name} & {\bf description} \\ \hline
10141 {\tt string } & uuid & UUID of object to return \\ \hline
10143 \end{tabular}
10145 \vspace{0.3cm}
10147 \noindent {\bf Return Type:}
10148 {\tt
10149 user ref
10153 reference to the object
10154 \vspace{0.3cm}
10155 \vspace{0.3cm}
10156 \vspace{0.3cm}
10157 \subsubsection{RPC name:~get\_record}
10159 {\bf Overview:}
10160 Get a record containing the current state of the given user.
10162 \noindent {\bf Signature:}
10163 \begin{verbatim} (user record) get_record (session_id s, user ref self)\end{verbatim}
10166 \noindent{\bf Arguments:}
10169 \vspace{0.3cm}
10170 \begin{tabular}{|c|c|p{7cm}|}
10171 \hline
10172 {\bf type} & {\bf name} & {\bf description} \\ \hline
10173 {\tt user ref } & self & reference to the object \\ \hline
10175 \end{tabular}
10177 \vspace{0.3cm}
10179 \noindent {\bf Return Type:}
10180 {\tt
10181 user record
10185 all fields from the object
10186 \vspace{0.3cm}
10187 \vspace{0.3cm}
10188 \vspace{0.3cm}
10190 \vspace{1cm}
10191 \newpage
10192 \section{Class: debug}
10193 \subsection{Fields for class: debug}
10194 {\bf Class debug has no fields.}
10195 \subsection{Additional RPCs associated with class: debug}
10196 \subsubsection{RPC name:~get\_all}
10198 {\bf Overview:}
10199 Return a list of all the debug records known to the system
10201 \noindent {\bf Signature:}
10202 \begin{verbatim} ((debug ref) Set) get_all (session_id s)\end{verbatim}
10205 \vspace{0.3cm}
10207 \noindent {\bf Return Type:}
10208 {\tt
10209 (debug ref) Set
10213 A list of all the IDs of all the debug records
10214 \vspace{0.3cm}
10215 \vspace{0.3cm}
10216 \vspace{0.3cm}
10217 \subsubsection{RPC name:~return\_failure}
10219 {\bf Overview:}
10220 Return an API 'successful' failure
10222 \noindent {\bf Signature:}
10223 \begin{verbatim} void return_failure (session_id s)\end{verbatim}
10226 \vspace{0.3cm}
10228 \noindent {\bf Return Type:}
10229 {\tt
10230 void
10235 \vspace{0.3cm}
10236 \vspace{0.3cm}
10237 \vspace{0.3cm}
10238 \subsubsection{RPC name:~create}
10240 {\bf Overview:}
10241 Create a new debug instance, and return its handle.
10243 \noindent {\bf Signature:}
10244 \begin{verbatim} (debug ref) create (session_id s, debug record args)\end{verbatim}
10247 \noindent{\bf Arguments:}
10250 \vspace{0.3cm}
10251 \begin{tabular}{|c|c|p{7cm}|}
10252 \hline
10253 {\bf type} & {\bf name} & {\bf description} \\ \hline
10254 {\tt debug record } & args & All constructor arguments \\ \hline
10256 \end{tabular}
10258 \vspace{0.3cm}
10260 \noindent {\bf Return Type:}
10261 {\tt
10262 debug ref
10266 reference to the newly created object
10267 \vspace{0.3cm}
10268 \vspace{0.3cm}
10269 \vspace{0.3cm}
10270 \subsubsection{RPC name:~destroy}
10272 {\bf Overview:}
10273 Destroy the specified debug instance.
10275 \noindent {\bf Signature:}
10276 \begin{verbatim} void destroy (session_id s, debug ref self)\end{verbatim}
10279 \noindent{\bf Arguments:}
10282 \vspace{0.3cm}
10283 \begin{tabular}{|c|c|p{7cm}|}
10284 \hline
10285 {\bf type} & {\bf name} & {\bf description} \\ \hline
10286 {\tt debug ref } & self & reference to the object \\ \hline
10288 \end{tabular}
10290 \vspace{0.3cm}
10292 \noindent {\bf Return Type:}
10293 {\tt
10294 void
10299 \vspace{0.3cm}
10300 \vspace{0.3cm}
10301 \vspace{0.3cm}
10302 \subsubsection{RPC name:~get\_by\_uuid}
10304 {\bf Overview:}
10305 Get a reference to the debug instance with the specified UUID.
10307 \noindent {\bf Signature:}
10308 \begin{verbatim} (debug ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10311 \noindent{\bf Arguments:}
10314 \vspace{0.3cm}
10315 \begin{tabular}{|c|c|p{7cm}|}
10316 \hline
10317 {\bf type} & {\bf name} & {\bf description} \\ \hline
10318 {\tt string } & uuid & UUID of object to return \\ \hline
10320 \end{tabular}
10322 \vspace{0.3cm}
10324 \noindent {\bf Return Type:}
10325 {\tt
10326 debug ref
10330 reference to the object
10331 \vspace{0.3cm}
10332 \vspace{0.3cm}
10333 \vspace{0.3cm}
10334 \subsubsection{RPC name:~get\_record}
10336 {\bf Overview:}
10337 Get a record containing the current state of the given debug.
10339 \noindent {\bf Signature:}
10340 \begin{verbatim} (debug record) get_record (session_id s, debug ref self)\end{verbatim}
10343 \noindent{\bf Arguments:}
10346 \vspace{0.3cm}
10347 \begin{tabular}{|c|c|p{7cm}|}
10348 \hline
10349 {\bf type} & {\bf name} & {\bf description} \\ \hline
10350 {\tt debug ref } & self & reference to the object \\ \hline
10352 \end{tabular}
10354 \vspace{0.3cm}
10356 \noindent {\bf Return Type:}
10357 {\tt
10358 debug record
10362 all fields from the object
10363 \vspace{0.3cm}
10364 \vspace{0.3cm}
10365 \vspace{0.3cm}
10367 \vspace{1cm}
10368 \newpage
10369 \section{Error Handling}
10370 When a low-level transport error occurs, or a request is malformed at the HTTP
10371 or XML-RPC level, the server may send an XML-RPC Fault response, or the client
10372 may simulate the same. The client must be prepared to handle these errors,
10373 though they may be treated as fatal. On the wire, these are transmitted in a
10374 form similar to this:
10376 \begin{verbatim}
10377 <methodResponse>
10378 <fault>
10379 <value>
10380 <struct>
10381 <member>
10382 <name>faultCode</name>
10383 <value><int>-1</int></value>
10384 </member>
10385 <member>
10386 <name>faultString</name>
10387 <value><string>Malformed request</string></value>
10388 </member>
10389 </struct>
10390 </value>
10391 </fault>
10392 </methodResponse>
10393 \end{verbatim}
10395 All other failures are reported with a more structured error response, to
10396 allow better automatic response to failures, proper internationalisation of
10397 any error message, and easier debugging. On the wire, these are transmitted
10398 like this:
10400 \begin{verbatim}
10401 <struct>
10402 <member>
10403 <name>Status</name>
10404 <value>Failure</value>
10405 </member>
10406 <member>
10407 <name>ErrorDescription</name>
10408 <value>
10409 <array>
10410 <data>
10411 <value>MAP_DUPLICATE_KEY</value>
10412 <value>Customer</value>
10413 <value>eSpeil Inc.</value>
10414 <value>eSpeil Incorporated</value>
10415 </data>
10416 </array>
10417 </value>
10418 </member>
10419 </struct>
10420 \end{verbatim}
10422 Note that {\tt ErrorDescription} value is an array of string values. The
10423 first element of the array is an error code; the remainder of the array are
10424 strings representing error parameters relating to that code. In this case,
10425 the client has attempted to add the mapping {\tt Customer $\rightarrow$
10426 eSpiel Incorporated} to a Map, but it already contains the mapping
10427 {\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
10429 Each possible error code is documented in the following section.
10431 \subsection{Error Codes}
10433 \subsubsection{HOST\_CPU\_HANDLE\_INVALID}
10435 You gave an invalid host\_cpu handle. The host\_cpu may have recently been
10436 deleted. The handle parameter echoes the bad value given.
10438 \vspace{0.3cm}
10439 {\bf Signature:}
10440 \begin{verbatim}HOST_CPU_HANDLE_INVALID(handle)\end{verbatim}
10441 \begin{center}\rule{10em}{0.1pt}\end{center}
10443 \subsubsection{HOST\_HANDLE\_INVALID}
10445 You gave an invalid host handle. The host may have recently been deleted.
10446 The handle parameter echoes the bad value given.
10448 \vspace{0.3cm}
10449 {\bf Signature:}
10450 \begin{verbatim}HOST_HANDLE_INVALID(handle)\end{verbatim}
10451 \begin{center}\rule{10em}{0.1pt}\end{center}
10453 \subsubsection{INTERNAL\_ERROR}
10455 The server failed to handle your request, due to an internal error. The
10456 given message may give details useful for debugging the problem.
10458 \vspace{0.3cm}
10459 {\bf Signature:}
10460 \begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
10461 \begin{center}\rule{10em}{0.1pt}\end{center}
10463 \subsubsection{MAP\_DUPLICATE\_KEY}
10465 You tried to add a key-value pair to a map, but that key is already there.
10466 The key, current value, and the new value that you tried to set are all
10467 echoed.
10469 \vspace{0.3cm}
10470 {\bf Signature:}
10471 \begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
10472 \begin{center}\rule{10em}{0.1pt}\end{center}
10474 \subsubsection{MESSAGE\_METHOD\_UNKNOWN}
10476 You tried to call a method that does not exist. The method name that you
10477 used is echoed.
10479 \vspace{0.3cm}
10480 {\bf Signature:}
10481 \begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
10482 \begin{center}\rule{10em}{0.1pt}\end{center}
10484 \subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
10486 You tried to call a method with the incorrect number of parameters. The
10487 fully-qualified method name that you used, and the number of received and
10488 expected parameters are returned.
10490 \vspace{0.3cm}
10491 {\bf Signature:}
10492 \begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
10493 \begin{center}\rule{10em}{0.1pt}\end{center}
10495 \subsubsection{NETWORK\_ALREADY\_CONNECTED}
10497 You tried to create a PIF, but the network you tried to attach it to is
10498 already attached to some other PIF, and so the creation failed.
10500 \vspace{0.3cm}
10501 {\bf Signature:}
10502 \begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
10503 \begin{center}\rule{10em}{0.1pt}\end{center}
10505 \subsubsection{PIF\_IS\_PHYSICAL}
10507 You tried to destroy a PIF, but it represents an aspect of the physical
10508 host configuration, and so cannot be destroyed. The parameter echoes the
10509 PIF handle you gave.
10511 \vspace{0.3cm}
10512 {\bf Signature:}
10513 \begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim}
10514 \begin{center}\rule{10em}{0.1pt}\end{center}
10516 \subsubsection{SESSION\_AUTHENTICATION\_FAILED}
10518 The credentials given by the user are incorrect, so access has been denied,
10519 and you have not been issued a session handle.
10521 \vspace{0.3cm}
10522 No parameters.
10523 \begin{center}\rule{10em}{0.1pt}\end{center}
10525 \subsubsection{SESSION\_INVALID}
10527 You gave an invalid session handle. It may have been invalidated by a
10528 server restart, or timed out. You should get a new session handle, using
10529 one of the session.login\_ calls. This error does not invalidate the
10530 current connection. The handle parameter echoes the bad value given.
10532 \vspace{0.3cm}
10533 {\bf Signature:}
10534 \begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
10535 \begin{center}\rule{10em}{0.1pt}\end{center}
10537 \subsubsection{SR\_HANDLE\_INVALID}
10539 You gave an invalid SR handle. The SR may have recently been deleted. The
10540 handle parameter echoes the bad value given.
10542 \vspace{0.3cm}
10543 {\bf Signature:}
10544 \begin{verbatim}SR_HANDLE_INVALID(handle)\end{verbatim}
10545 \begin{center}\rule{10em}{0.1pt}\end{center}
10547 \subsubsection{VBD\_HANDLE\_INVALID}
10549 You gave an invalid VBD handle. The VBD may have recently been deleted.
10550 The handle parameter echoes the bad value given.
10552 \vspace{0.3cm}
10553 {\bf Signature:}
10554 \begin{verbatim}VBD_HANDLE_INVALID(handle)\end{verbatim}
10555 \begin{center}\rule{10em}{0.1pt}\end{center}
10557 \subsubsection{VDI\_HANDLE\_INVALID}
10559 You gave an invalid VDI handle. The VDI may have recently been deleted.
10560 The handle parameter echoes the bad value given.
10562 \vspace{0.3cm}
10563 {\bf Signature:}
10564 \begin{verbatim}VDI_HANDLE_INVALID(handle)\end{verbatim}
10565 \begin{center}\rule{10em}{0.1pt}\end{center}
10567 \subsubsection{VIF\_HANDLE\_INVALID}
10569 You gave an invalid VIF handle. The VIF may have recently been deleted.
10570 The handle parameter echoes the bad value given.
10572 \vspace{0.3cm}
10573 {\bf Signature:}
10574 \begin{verbatim}VIF_HANDLE_INVALID(handle)\end{verbatim}
10575 \begin{center}\rule{10em}{0.1pt}\end{center}
10577 \subsubsection{VLAN\_TAG\_INVALID}
10579 You tried to create a VLAN, but the tag you gave was invalid -- it mmust be
10580 between 0 and 4095. The parameter echoes the VLAN tag you gave.
10582 \vspace{0.3cm}
10583 {\bf Signature:}
10584 \begin{verbatim}VLAN_TAG_INVALID(VLAN)\end{verbatim}
10585 \begin{center}\rule{10em}{0.1pt}\end{center}
10587 \subsubsection{VM\_BAD\_POWER\_STATE}
10589 You attempted an operation on a VM that was not in an appropriate power
10590 state at the time; for example, you attempted to start a VM that was
10591 already running. The parameters returned are the VM's handle, and the
10592 expected and actual VM state at the time of the call.
10594 \vspace{0.3cm}
10595 {\bf Signature:}
10596 \begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
10597 \begin{center}\rule{10em}{0.1pt}\end{center}
10599 \subsubsection{VM\_HANDLE\_INVALID}
10601 You gave an invalid VM handle. The VM may have recently been deleted. The
10602 handle parameter echoes the bad value given.
10604 \vspace{0.3cm}
10605 {\bf Signature:}
10606 \begin{verbatim}VM_HANDLE_INVALID(handle)\end{verbatim}
10607 \begin{center}\rule{10em}{0.1pt}\end{center}
10609 \subsubsection{VTPM\_HANDLE\_INVALID}
10611 You gave an invalid VTPM handle. The VTPM may have recently been deleted.
10612 The handle parameter echoes the bad value given.
10614 \vspace{0.3cm}
10615 {\bf Signature:}
10616 \begin{verbatim}VTPM_HANDLE_INVALID(handle)\end{verbatim}
10617 \begin{center}\rule{10em}{0.1pt}\end{center}
10621 \newpage
10622 \section{DTD}
10623 General notes:
10624 \begin{itemize}
10625 \item Values of primitive types (int, bool, etc) and higher-order types (Sets, Maps) are encoded as simple strings, rather than being expanded into XML fragments. For example ``5'', ``true'', ``1, 2, 3, 4'', ``(1, 2), (2, 3), (3, 4)''
10626 \item Values of enumeration types are represented as strings (e.g. ``PAE'', ``3DNow!'')
10627 \item Object References are represented as UUIDs, written in string form
10628 \end{itemize}