ia64/xen-unstable

view docs/xen-api/xenapi-datamodel.tex @ 13341:3040ba0f2d3d

When booting via xm, only run the bootloader if it's in non-interactive mode:
otherwise we lose the user's named kernel and try to bootload the temporary
file pygrub returned.

Signed-off-by: John Levon <john.levon@sun.com>
author Tim Deegan <Tim.Deegan@xensource.com>
date Tue Jan 09 13:24:45 2007 +0000 (2007-01-09)
parents f43fc1d6c1a6
children 965cdfff68b0
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 physical network interface (note separate VLANs are represented as several PIFs)}} \\
6533 \hline
6534 Quals & Field & Type & Description \\
6535 \hline
6536 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
6537 $\mathit{RW}$ & {\tt name} & string & human-readable name of the interface \\
6538 $\mathit{RW}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
6539 $\mathit{RW}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
6540 $\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
6541 $\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
6542 $\mathit{RW}$ & {\tt VLAN} & string & VLAN tag for all traffic passing through this interface \\
6543 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
6544 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
6545 \hline
6546 \end{longtable}
6547 \subsection{Additional RPCs associated with class: PIF}
6548 \subsubsection{RPC name:~get\_uuid}
6550 {\bf Overview:}
6551 Get the uuid field of the given PIF.
6553 \noindent {\bf Signature:}
6554 \begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
6557 \noindent{\bf Arguments:}
6560 \vspace{0.3cm}
6561 \begin{tabular}{|c|c|p{7cm}|}
6562 \hline
6563 {\bf type} & {\bf name} & {\bf description} \\ \hline
6564 {\tt PIF ref } & self & reference to the object \\ \hline
6566 \end{tabular}
6568 \vspace{0.3cm}
6570 \noindent {\bf Return Type:}
6571 {\tt
6572 string
6576 value of the field
6577 \vspace{0.3cm}
6578 \vspace{0.3cm}
6579 \vspace{0.3cm}
6580 \subsubsection{RPC name:~get\_name}
6582 {\bf Overview:}
6583 Get the name field of the given PIF.
6585 \noindent {\bf Signature:}
6586 \begin{verbatim} string get_name (session_id s, PIF ref self)\end{verbatim}
6589 \noindent{\bf Arguments:}
6592 \vspace{0.3cm}
6593 \begin{tabular}{|c|c|p{7cm}|}
6594 \hline
6595 {\bf type} & {\bf name} & {\bf description} \\ \hline
6596 {\tt PIF ref } & self & reference to the object \\ \hline
6598 \end{tabular}
6600 \vspace{0.3cm}
6602 \noindent {\bf Return Type:}
6603 {\tt
6604 string
6608 value of the field
6609 \vspace{0.3cm}
6610 \vspace{0.3cm}
6611 \vspace{0.3cm}
6612 \subsubsection{RPC name:~set\_name}
6614 {\bf Overview:}
6615 Set the name field of the given PIF.
6617 \noindent {\bf Signature:}
6618 \begin{verbatim} void set_name (session_id s, PIF ref self, string value)\end{verbatim}
6621 \noindent{\bf Arguments:}
6624 \vspace{0.3cm}
6625 \begin{tabular}{|c|c|p{7cm}|}
6626 \hline
6627 {\bf type} & {\bf name} & {\bf description} \\ \hline
6628 {\tt PIF ref } & self & reference to the object \\ \hline
6630 {\tt string } & value & New value to set \\ \hline
6632 \end{tabular}
6634 \vspace{0.3cm}
6636 \noindent {\bf Return Type:}
6637 {\tt
6638 void
6643 \vspace{0.3cm}
6644 \vspace{0.3cm}
6645 \vspace{0.3cm}
6646 \subsubsection{RPC name:~get\_network}
6648 {\bf Overview:}
6649 Get the network field of the given PIF.
6651 \noindent {\bf Signature:}
6652 \begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
6655 \noindent{\bf Arguments:}
6658 \vspace{0.3cm}
6659 \begin{tabular}{|c|c|p{7cm}|}
6660 \hline
6661 {\bf type} & {\bf name} & {\bf description} \\ \hline
6662 {\tt PIF ref } & self & reference to the object \\ \hline
6664 \end{tabular}
6666 \vspace{0.3cm}
6668 \noindent {\bf Return Type:}
6669 {\tt
6670 network ref
6674 value of the field
6675 \vspace{0.3cm}
6676 \vspace{0.3cm}
6677 \vspace{0.3cm}
6678 \subsubsection{RPC name:~set\_network}
6680 {\bf Overview:}
6681 Set the network field of the given PIF.
6683 \noindent {\bf Signature:}
6684 \begin{verbatim} void set_network (session_id s, PIF ref self, network ref value)\end{verbatim}
6687 \noindent{\bf Arguments:}
6690 \vspace{0.3cm}
6691 \begin{tabular}{|c|c|p{7cm}|}
6692 \hline
6693 {\bf type} & {\bf name} & {\bf description} \\ \hline
6694 {\tt PIF ref } & self & reference to the object \\ \hline
6696 {\tt network ref } & value & New value to set \\ \hline
6698 \end{tabular}
6700 \vspace{0.3cm}
6702 \noindent {\bf Return Type:}
6703 {\tt
6704 void
6709 \vspace{0.3cm}
6710 \vspace{0.3cm}
6711 \vspace{0.3cm}
6712 \subsubsection{RPC name:~get\_host}
6714 {\bf Overview:}
6715 Get the host field of the given PIF.
6717 \noindent {\bf Signature:}
6718 \begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
6721 \noindent{\bf Arguments:}
6724 \vspace{0.3cm}
6725 \begin{tabular}{|c|c|p{7cm}|}
6726 \hline
6727 {\bf type} & {\bf name} & {\bf description} \\ \hline
6728 {\tt PIF ref } & self & reference to the object \\ \hline
6730 \end{tabular}
6732 \vspace{0.3cm}
6734 \noindent {\bf Return Type:}
6735 {\tt
6736 host ref
6740 value of the field
6741 \vspace{0.3cm}
6742 \vspace{0.3cm}
6743 \vspace{0.3cm}
6744 \subsubsection{RPC name:~set\_host}
6746 {\bf Overview:}
6747 Set the host field of the given PIF.
6749 \noindent {\bf Signature:}
6750 \begin{verbatim} void set_host (session_id s, PIF ref self, host ref value)\end{verbatim}
6753 \noindent{\bf Arguments:}
6756 \vspace{0.3cm}
6757 \begin{tabular}{|c|c|p{7cm}|}
6758 \hline
6759 {\bf type} & {\bf name} & {\bf description} \\ \hline
6760 {\tt PIF ref } & self & reference to the object \\ \hline
6762 {\tt host ref } & value & New value to set \\ \hline
6764 \end{tabular}
6766 \vspace{0.3cm}
6768 \noindent {\bf Return Type:}
6769 {\tt
6770 void
6775 \vspace{0.3cm}
6776 \vspace{0.3cm}
6777 \vspace{0.3cm}
6778 \subsubsection{RPC name:~get\_MAC}
6780 {\bf Overview:}
6781 Get the MAC field of the given PIF.
6783 \noindent {\bf Signature:}
6784 \begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
6787 \noindent{\bf Arguments:}
6790 \vspace{0.3cm}
6791 \begin{tabular}{|c|c|p{7cm}|}
6792 \hline
6793 {\bf type} & {\bf name} & {\bf description} \\ \hline
6794 {\tt PIF ref } & self & reference to the object \\ \hline
6796 \end{tabular}
6798 \vspace{0.3cm}
6800 \noindent {\bf Return Type:}
6801 {\tt
6802 string
6806 value of the field
6807 \vspace{0.3cm}
6808 \vspace{0.3cm}
6809 \vspace{0.3cm}
6810 \subsubsection{RPC name:~set\_MAC}
6812 {\bf Overview:}
6813 Set the MAC field of the given PIF.
6815 \noindent {\bf Signature:}
6816 \begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
6819 \noindent{\bf Arguments:}
6822 \vspace{0.3cm}
6823 \begin{tabular}{|c|c|p{7cm}|}
6824 \hline
6825 {\bf type} & {\bf name} & {\bf description} \\ \hline
6826 {\tt PIF ref } & self & reference to the object \\ \hline
6828 {\tt string } & value & New value to set \\ \hline
6830 \end{tabular}
6832 \vspace{0.3cm}
6834 \noindent {\bf Return Type:}
6835 {\tt
6836 void
6841 \vspace{0.3cm}
6842 \vspace{0.3cm}
6843 \vspace{0.3cm}
6844 \subsubsection{RPC name:~get\_MTU}
6846 {\bf Overview:}
6847 Get the MTU field of the given PIF.
6849 \noindent {\bf Signature:}
6850 \begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
6853 \noindent{\bf Arguments:}
6856 \vspace{0.3cm}
6857 \begin{tabular}{|c|c|p{7cm}|}
6858 \hline
6859 {\bf type} & {\bf name} & {\bf description} \\ \hline
6860 {\tt PIF ref } & self & reference to the object \\ \hline
6862 \end{tabular}
6864 \vspace{0.3cm}
6866 \noindent {\bf Return Type:}
6867 {\tt
6868 int
6872 value of the field
6873 \vspace{0.3cm}
6874 \vspace{0.3cm}
6875 \vspace{0.3cm}
6876 \subsubsection{RPC name:~set\_MTU}
6878 {\bf Overview:}
6879 Set the MTU field of the given PIF.
6881 \noindent {\bf Signature:}
6882 \begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
6885 \noindent{\bf Arguments:}
6888 \vspace{0.3cm}
6889 \begin{tabular}{|c|c|p{7cm}|}
6890 \hline
6891 {\bf type} & {\bf name} & {\bf description} \\ \hline
6892 {\tt PIF ref } & self & reference to the object \\ \hline
6894 {\tt int } & value & New value to set \\ \hline
6896 \end{tabular}
6898 \vspace{0.3cm}
6900 \noindent {\bf Return Type:}
6901 {\tt
6902 void
6907 \vspace{0.3cm}
6908 \vspace{0.3cm}
6909 \vspace{0.3cm}
6910 \subsubsection{RPC name:~get\_VLAN}
6912 {\bf Overview:}
6913 Get the VLAN field of the given PIF.
6915 \noindent {\bf Signature:}
6916 \begin{verbatim} string get_VLAN (session_id s, PIF ref self)\end{verbatim}
6919 \noindent{\bf Arguments:}
6922 \vspace{0.3cm}
6923 \begin{tabular}{|c|c|p{7cm}|}
6924 \hline
6925 {\bf type} & {\bf name} & {\bf description} \\ \hline
6926 {\tt PIF ref } & self & reference to the object \\ \hline
6928 \end{tabular}
6930 \vspace{0.3cm}
6932 \noindent {\bf Return Type:}
6933 {\tt
6934 string
6938 value of the field
6939 \vspace{0.3cm}
6940 \vspace{0.3cm}
6941 \vspace{0.3cm}
6942 \subsubsection{RPC name:~set\_VLAN}
6944 {\bf Overview:}
6945 Set the VLAN field of the given PIF.
6947 \noindent {\bf Signature:}
6948 \begin{verbatim} void set_VLAN (session_id s, PIF ref self, string value)\end{verbatim}
6951 \noindent{\bf Arguments:}
6954 \vspace{0.3cm}
6955 \begin{tabular}{|c|c|p{7cm}|}
6956 \hline
6957 {\bf type} & {\bf name} & {\bf description} \\ \hline
6958 {\tt PIF ref } & self & reference to the object \\ \hline
6960 {\tt string } & value & New value to set \\ \hline
6962 \end{tabular}
6964 \vspace{0.3cm}
6966 \noindent {\bf Return Type:}
6967 {\tt
6968 void
6973 \vspace{0.3cm}
6974 \vspace{0.3cm}
6975 \vspace{0.3cm}
6976 \subsubsection{RPC name:~get\_io\_read\_kbs}
6978 {\bf Overview:}
6979 Get the io/read\_kbs field of the given PIF.
6981 \noindent {\bf Signature:}
6982 \begin{verbatim} float get_io_read_kbs (session_id s, PIF ref self)\end{verbatim}
6985 \noindent{\bf Arguments:}
6988 \vspace{0.3cm}
6989 \begin{tabular}{|c|c|p{7cm}|}
6990 \hline
6991 {\bf type} & {\bf name} & {\bf description} \\ \hline
6992 {\tt PIF ref } & self & reference to the object \\ \hline
6994 \end{tabular}
6996 \vspace{0.3cm}
6998 \noindent {\bf Return Type:}
6999 {\tt
7000 float
7004 value of the field
7005 \vspace{0.3cm}
7006 \vspace{0.3cm}
7007 \vspace{0.3cm}
7008 \subsubsection{RPC name:~get\_io\_write\_kbs}
7010 {\bf Overview:}
7011 Get the io/write\_kbs field of the given PIF.
7013 \noindent {\bf Signature:}
7014 \begin{verbatim} float get_io_write_kbs (session_id s, PIF ref self)\end{verbatim}
7017 \noindent{\bf Arguments:}
7020 \vspace{0.3cm}
7021 \begin{tabular}{|c|c|p{7cm}|}
7022 \hline
7023 {\bf type} & {\bf name} & {\bf description} \\ \hline
7024 {\tt PIF ref } & self & reference to the object \\ \hline
7026 \end{tabular}
7028 \vspace{0.3cm}
7030 \noindent {\bf Return Type:}
7031 {\tt
7032 float
7036 value of the field
7037 \vspace{0.3cm}
7038 \vspace{0.3cm}
7039 \vspace{0.3cm}
7040 \subsubsection{RPC name:~create}
7042 {\bf Overview:}
7043 Create a new PIF instance, and return its handle.
7045 \noindent {\bf Signature:}
7046 \begin{verbatim} (PIF ref) create (session_id s, PIF record args)\end{verbatim}
7049 \noindent{\bf Arguments:}
7052 \vspace{0.3cm}
7053 \begin{tabular}{|c|c|p{7cm}|}
7054 \hline
7055 {\bf type} & {\bf name} & {\bf description} \\ \hline
7056 {\tt PIF record } & args & All constructor arguments \\ \hline
7058 \end{tabular}
7060 \vspace{0.3cm}
7062 \noindent {\bf Return Type:}
7063 {\tt
7064 PIF ref
7068 reference to the newly created object
7069 \vspace{0.3cm}
7070 \vspace{0.3cm}
7071 \vspace{0.3cm}
7072 \subsubsection{RPC name:~destroy}
7074 {\bf Overview:}
7075 Destroy the specified PIF instance.
7077 \noindent {\bf Signature:}
7078 \begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
7081 \noindent{\bf Arguments:}
7084 \vspace{0.3cm}
7085 \begin{tabular}{|c|c|p{7cm}|}
7086 \hline
7087 {\bf type} & {\bf name} & {\bf description} \\ \hline
7088 {\tt PIF ref } & self & reference to the object \\ \hline
7090 \end{tabular}
7092 \vspace{0.3cm}
7094 \noindent {\bf Return Type:}
7095 {\tt
7096 void
7101 \vspace{0.3cm}
7102 \vspace{0.3cm}
7103 \vspace{0.3cm}
7104 \subsubsection{RPC name:~get\_by\_uuid}
7106 {\bf Overview:}
7107 Get a reference to the PIF instance with the specified UUID.
7109 \noindent {\bf Signature:}
7110 \begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7113 \noindent{\bf Arguments:}
7116 \vspace{0.3cm}
7117 \begin{tabular}{|c|c|p{7cm}|}
7118 \hline
7119 {\bf type} & {\bf name} & {\bf description} \\ \hline
7120 {\tt string } & uuid & UUID of object to return \\ \hline
7122 \end{tabular}
7124 \vspace{0.3cm}
7126 \noindent {\bf Return Type:}
7127 {\tt
7128 PIF ref
7132 reference to the object
7133 \vspace{0.3cm}
7134 \vspace{0.3cm}
7135 \vspace{0.3cm}
7136 \subsubsection{RPC name:~get\_record}
7138 {\bf Overview:}
7139 Get a record containing the current state of the given PIF.
7141 \noindent {\bf Signature:}
7142 \begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
7145 \noindent{\bf Arguments:}
7148 \vspace{0.3cm}
7149 \begin{tabular}{|c|c|p{7cm}|}
7150 \hline
7151 {\bf type} & {\bf name} & {\bf description} \\ \hline
7152 {\tt PIF ref } & self & reference to the object \\ \hline
7154 \end{tabular}
7156 \vspace{0.3cm}
7158 \noindent {\bf Return Type:}
7159 {\tt
7160 PIF record
7164 all fields from the object
7165 \vspace{0.3cm}
7166 \vspace{0.3cm}
7167 \vspace{0.3cm}
7169 \vspace{1cm}
7170 \newpage
7171 \section{Class: SR}
7172 \subsection{Fields for class: SR}
7173 \begin{longtable}{|lllp{0.38\textwidth}|}
7174 \hline
7175 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
7176 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A storage repository}} \\
7177 \hline
7178 Quals & Field & Type & Description \\
7179 \hline
7180 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7181 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7182 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7183 $\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
7184 $\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
7185 $\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 \\
7186 $\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
7187 $\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
7188 $\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 \\
7189 \hline
7190 \end{longtable}
7191 \subsection{Additional RPCs associated with class: SR}
7192 \subsubsection{RPC name:~clone}
7194 {\bf Overview:}
7195 Take an exact copy of the Storage Repository;
7196 the cloned storage repository has the same type as its parent
7198 \noindent {\bf Signature:}
7199 \begin{verbatim} (SR ref) clone (session_id s, SR ref sr, string loc, string name)\end{verbatim}
7202 \noindent{\bf Arguments:}
7205 \vspace{0.3cm}
7206 \begin{tabular}{|c|c|p{7cm}|}
7207 \hline
7208 {\bf type} & {\bf name} & {\bf description} \\ \hline
7209 {\tt SR ref } & sr & The Storage Repository to clone \\ \hline
7211 {\tt string } & loc & The location string that defines where the new storage repository will be located \\ \hline
7213 {\tt string } & name & The name of the new storage repository \\ \hline
7215 \end{tabular}
7217 \vspace{0.3cm}
7219 \noindent {\bf Return Type:}
7220 {\tt
7221 SR ref
7225 The ID of the newly created Storage Repository.
7226 \vspace{0.3cm}
7227 \vspace{0.3cm}
7228 \vspace{0.3cm}
7229 \subsubsection{RPC name:~get\_all}
7231 {\bf Overview:}
7232 Return a list of all the Storage Repositories known to the system
7234 \noindent {\bf Signature:}
7235 \begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
7238 \vspace{0.3cm}
7240 \noindent {\bf Return Type:}
7241 {\tt
7242 (SR ref) Set
7246 A list of all the IDs of all the Storage Repositories
7247 \vspace{0.3cm}
7248 \vspace{0.3cm}
7249 \vspace{0.3cm}
7250 \subsubsection{RPC name:~get\_uuid}
7252 {\bf Overview:}
7253 Get the uuid field of the given SR.
7255 \noindent {\bf Signature:}
7256 \begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
7259 \noindent{\bf Arguments:}
7262 \vspace{0.3cm}
7263 \begin{tabular}{|c|c|p{7cm}|}
7264 \hline
7265 {\bf type} & {\bf name} & {\bf description} \\ \hline
7266 {\tt SR ref } & self & reference to the object \\ \hline
7268 \end{tabular}
7270 \vspace{0.3cm}
7272 \noindent {\bf Return Type:}
7273 {\tt
7274 string
7278 value of the field
7279 \vspace{0.3cm}
7280 \vspace{0.3cm}
7281 \vspace{0.3cm}
7282 \subsubsection{RPC name:~get\_name\_label}
7284 {\bf Overview:}
7285 Get the name/label field of the given SR.
7287 \noindent {\bf Signature:}
7288 \begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
7291 \noindent{\bf Arguments:}
7294 \vspace{0.3cm}
7295 \begin{tabular}{|c|c|p{7cm}|}
7296 \hline
7297 {\bf type} & {\bf name} & {\bf description} \\ \hline
7298 {\tt SR ref } & self & reference to the object \\ \hline
7300 \end{tabular}
7302 \vspace{0.3cm}
7304 \noindent {\bf Return Type:}
7305 {\tt
7306 string
7310 value of the field
7311 \vspace{0.3cm}
7312 \vspace{0.3cm}
7313 \vspace{0.3cm}
7314 \subsubsection{RPC name:~set\_name\_label}
7316 {\bf Overview:}
7317 Set the name/label field of the given SR.
7319 \noindent {\bf Signature:}
7320 \begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
7323 \noindent{\bf Arguments:}
7326 \vspace{0.3cm}
7327 \begin{tabular}{|c|c|p{7cm}|}
7328 \hline
7329 {\bf type} & {\bf name} & {\bf description} \\ \hline
7330 {\tt SR ref } & self & reference to the object \\ \hline
7332 {\tt string } & value & New value to set \\ \hline
7334 \end{tabular}
7336 \vspace{0.3cm}
7338 \noindent {\bf Return Type:}
7339 {\tt
7340 void
7345 \vspace{0.3cm}
7346 \vspace{0.3cm}
7347 \vspace{0.3cm}
7348 \subsubsection{RPC name:~get\_name\_description}
7350 {\bf Overview:}
7351 Get the name/description field of the given SR.
7353 \noindent {\bf Signature:}
7354 \begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
7357 \noindent{\bf Arguments:}
7360 \vspace{0.3cm}
7361 \begin{tabular}{|c|c|p{7cm}|}
7362 \hline
7363 {\bf type} & {\bf name} & {\bf description} \\ \hline
7364 {\tt SR ref } & self & reference to the object \\ \hline
7366 \end{tabular}
7368 \vspace{0.3cm}
7370 \noindent {\bf Return Type:}
7371 {\tt
7372 string
7376 value of the field
7377 \vspace{0.3cm}
7378 \vspace{0.3cm}
7379 \vspace{0.3cm}
7380 \subsubsection{RPC name:~set\_name\_description}
7382 {\bf Overview:}
7383 Set the name/description field of the given SR.
7385 \noindent {\bf Signature:}
7386 \begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
7389 \noindent{\bf Arguments:}
7392 \vspace{0.3cm}
7393 \begin{tabular}{|c|c|p{7cm}|}
7394 \hline
7395 {\bf type} & {\bf name} & {\bf description} \\ \hline
7396 {\tt SR ref } & self & reference to the object \\ \hline
7398 {\tt string } & value & New value to set \\ \hline
7400 \end{tabular}
7402 \vspace{0.3cm}
7404 \noindent {\bf Return Type:}
7405 {\tt
7406 void
7411 \vspace{0.3cm}
7412 \vspace{0.3cm}
7413 \vspace{0.3cm}
7414 \subsubsection{RPC name:~get\_VDIs}
7416 {\bf Overview:}
7417 Get the VDIs field of the given SR.
7419 \noindent {\bf Signature:}
7420 \begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
7423 \noindent{\bf Arguments:}
7426 \vspace{0.3cm}
7427 \begin{tabular}{|c|c|p{7cm}|}
7428 \hline
7429 {\bf type} & {\bf name} & {\bf description} \\ \hline
7430 {\tt SR ref } & self & reference to the object \\ \hline
7432 \end{tabular}
7434 \vspace{0.3cm}
7436 \noindent {\bf Return Type:}
7437 {\tt
7438 (VDI ref) Set
7442 value of the field
7443 \vspace{0.3cm}
7444 \vspace{0.3cm}
7445 \vspace{0.3cm}
7446 \subsubsection{RPC name:~get\_virtual\_allocation}
7448 {\bf Overview:}
7449 Get the virtual\_allocation field of the given SR.
7451 \noindent {\bf Signature:}
7452 \begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
7455 \noindent{\bf Arguments:}
7458 \vspace{0.3cm}
7459 \begin{tabular}{|c|c|p{7cm}|}
7460 \hline
7461 {\bf type} & {\bf name} & {\bf description} \\ \hline
7462 {\tt SR ref } & self & reference to the object \\ \hline
7464 \end{tabular}
7466 \vspace{0.3cm}
7468 \noindent {\bf Return Type:}
7469 {\tt
7470 int
7474 value of the field
7475 \vspace{0.3cm}
7476 \vspace{0.3cm}
7477 \vspace{0.3cm}
7478 \subsubsection{RPC name:~get\_physical\_utilisation}
7480 {\bf Overview:}
7481 Get the physical\_utilisation field of the given SR.
7483 \noindent {\bf Signature:}
7484 \begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
7487 \noindent{\bf Arguments:}
7490 \vspace{0.3cm}
7491 \begin{tabular}{|c|c|p{7cm}|}
7492 \hline
7493 {\bf type} & {\bf name} & {\bf description} \\ \hline
7494 {\tt SR ref } & self & reference to the object \\ \hline
7496 \end{tabular}
7498 \vspace{0.3cm}
7500 \noindent {\bf Return Type:}
7501 {\tt
7502 int
7506 value of the field
7507 \vspace{0.3cm}
7508 \vspace{0.3cm}
7509 \vspace{0.3cm}
7510 \subsubsection{RPC name:~get\_physical\_size}
7512 {\bf Overview:}
7513 Get the physical\_size field of the given SR.
7515 \noindent {\bf Signature:}
7516 \begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
7519 \noindent{\bf Arguments:}
7522 \vspace{0.3cm}
7523 \begin{tabular}{|c|c|p{7cm}|}
7524 \hline
7525 {\bf type} & {\bf name} & {\bf description} \\ \hline
7526 {\tt SR ref } & self & reference to the object \\ \hline
7528 \end{tabular}
7530 \vspace{0.3cm}
7532 \noindent {\bf Return Type:}
7533 {\tt
7534 int
7538 value of the field
7539 \vspace{0.3cm}
7540 \vspace{0.3cm}
7541 \vspace{0.3cm}
7542 \subsubsection{RPC name:~get\_type}
7544 {\bf Overview:}
7545 Get the type field of the given SR.
7547 \noindent {\bf Signature:}
7548 \begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
7551 \noindent{\bf Arguments:}
7554 \vspace{0.3cm}
7555 \begin{tabular}{|c|c|p{7cm}|}
7556 \hline
7557 {\bf type} & {\bf name} & {\bf description} \\ \hline
7558 {\tt SR ref } & self & reference to the object \\ \hline
7560 \end{tabular}
7562 \vspace{0.3cm}
7564 \noindent {\bf Return Type:}
7565 {\tt
7566 string
7570 value of the field
7571 \vspace{0.3cm}
7572 \vspace{0.3cm}
7573 \vspace{0.3cm}
7574 \subsubsection{RPC name:~get\_location}
7576 {\bf Overview:}
7577 Get the location field of the given SR.
7579 \noindent {\bf Signature:}
7580 \begin{verbatim} string get_location (session_id s, SR ref self)\end{verbatim}
7583 \noindent{\bf Arguments:}
7586 \vspace{0.3cm}
7587 \begin{tabular}{|c|c|p{7cm}|}
7588 \hline
7589 {\bf type} & {\bf name} & {\bf description} \\ \hline
7590 {\tt SR ref } & self & reference to the object \\ \hline
7592 \end{tabular}
7594 \vspace{0.3cm}
7596 \noindent {\bf Return Type:}
7597 {\tt
7598 string
7602 value of the field
7603 \vspace{0.3cm}
7604 \vspace{0.3cm}
7605 \vspace{0.3cm}
7606 \subsubsection{RPC name:~create}
7608 {\bf Overview:}
7609 Create a new SR instance, and return its handle.
7611 \noindent {\bf Signature:}
7612 \begin{verbatim} (SR ref) create (session_id s, SR record args)\end{verbatim}
7615 \noindent{\bf Arguments:}
7618 \vspace{0.3cm}
7619 \begin{tabular}{|c|c|p{7cm}|}
7620 \hline
7621 {\bf type} & {\bf name} & {\bf description} \\ \hline
7622 {\tt SR record } & args & All constructor arguments \\ \hline
7624 \end{tabular}
7626 \vspace{0.3cm}
7628 \noindent {\bf Return Type:}
7629 {\tt
7630 SR ref
7634 reference to the newly created object
7635 \vspace{0.3cm}
7636 \vspace{0.3cm}
7637 \vspace{0.3cm}
7638 \subsubsection{RPC name:~destroy}
7640 {\bf Overview:}
7641 Destroy the specified SR instance.
7643 \noindent {\bf Signature:}
7644 \begin{verbatim} void destroy (session_id s, SR ref self)\end{verbatim}
7647 \noindent{\bf Arguments:}
7650 \vspace{0.3cm}
7651 \begin{tabular}{|c|c|p{7cm}|}
7652 \hline
7653 {\bf type} & {\bf name} & {\bf description} \\ \hline
7654 {\tt SR ref } & self & reference to the object \\ \hline
7656 \end{tabular}
7658 \vspace{0.3cm}
7660 \noindent {\bf Return Type:}
7661 {\tt
7662 void
7667 \vspace{0.3cm}
7668 \vspace{0.3cm}
7669 \vspace{0.3cm}
7670 \subsubsection{RPC name:~get\_by\_uuid}
7672 {\bf Overview:}
7673 Get a reference to the SR instance with the specified UUID.
7675 \noindent {\bf Signature:}
7676 \begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
7679 \noindent{\bf Arguments:}
7682 \vspace{0.3cm}
7683 \begin{tabular}{|c|c|p{7cm}|}
7684 \hline
7685 {\bf type} & {\bf name} & {\bf description} \\ \hline
7686 {\tt string } & uuid & UUID of object to return \\ \hline
7688 \end{tabular}
7690 \vspace{0.3cm}
7692 \noindent {\bf Return Type:}
7693 {\tt
7694 SR ref
7698 reference to the object
7699 \vspace{0.3cm}
7700 \vspace{0.3cm}
7701 \vspace{0.3cm}
7702 \subsubsection{RPC name:~get\_record}
7704 {\bf Overview:}
7705 Get a record containing the current state of the given SR.
7707 \noindent {\bf Signature:}
7708 \begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
7711 \noindent{\bf Arguments:}
7714 \vspace{0.3cm}
7715 \begin{tabular}{|c|c|p{7cm}|}
7716 \hline
7717 {\bf type} & {\bf name} & {\bf description} \\ \hline
7718 {\tt SR ref } & self & reference to the object \\ \hline
7720 \end{tabular}
7722 \vspace{0.3cm}
7724 \noindent {\bf Return Type:}
7725 {\tt
7726 SR record
7730 all fields from the object
7731 \vspace{0.3cm}
7732 \vspace{0.3cm}
7733 \vspace{0.3cm}
7734 \subsubsection{RPC name:~get\_by\_name\_label}
7736 {\bf Overview:}
7737 Get all the SR instances with the given label.
7739 \noindent {\bf Signature:}
7740 \begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
7743 \noindent{\bf Arguments:}
7746 \vspace{0.3cm}
7747 \begin{tabular}{|c|c|p{7cm}|}
7748 \hline
7749 {\bf type} & {\bf name} & {\bf description} \\ \hline
7750 {\tt string } & label & label of object to return \\ \hline
7752 \end{tabular}
7754 \vspace{0.3cm}
7756 \noindent {\bf Return Type:}
7757 {\tt
7758 (SR ref) Set
7762 references to objects with match names
7763 \vspace{0.3cm}
7764 \vspace{0.3cm}
7765 \vspace{0.3cm}
7767 \vspace{1cm}
7768 \newpage
7769 \section{Class: VDI}
7770 \subsection{Fields for class: VDI}
7771 \begin{longtable}{|lllp{0.38\textwidth}|}
7772 \hline
7773 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
7774 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual disk image}} \\
7775 \hline
7776 Quals & Field & Type & Description \\
7777 \hline
7778 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
7779 $\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
7780 $\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
7781 $\mathit{RW}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
7782 $\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
7783 $\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in multiples of sector\_size field) \\
7784 $\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) \\
7785 $\mathit{RO}_\mathit{ins}$ & {\tt sector\_size} & int & sector size of VDI (in bytes) \\
7786 $\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
7787 $\mathit{RO}_\mathit{ins}$ & {\tt parent} & VDI ref & parent disk (e.g. in the case of copy on write) \\
7788 $\mathit{RO}_\mathit{run}$ & {\tt children} & (VDI ref) Set & child disks (e.g. in the case of copy on write) \\
7789 $\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
7790 $\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
7791 \hline
7792 \end{longtable}
7793 \subsection{Additional RPCs associated with class: VDI}
7794 \subsubsection{RPC name:~snapshot}
7796 {\bf Overview:}
7797 Take an exact copy of the VDI; the snapshot lives in the same Storage Repository as its parent.
7799 \noindent {\bf Signature:}
7800 \begin{verbatim} (VDI ref) snapshot (session_id s, VDI ref vdi)\end{verbatim}
7803 \noindent{\bf Arguments:}
7806 \vspace{0.3cm}
7807 \begin{tabular}{|c|c|p{7cm}|}
7808 \hline
7809 {\bf type} & {\bf name} & {\bf description} \\ \hline
7810 {\tt VDI ref } & vdi & The VDI to snapshot \\ \hline
7812 \end{tabular}
7814 \vspace{0.3cm}
7816 \noindent {\bf Return Type:}
7817 {\tt
7818 VDI ref
7822 The ID of the newly created VDI.
7823 \vspace{0.3cm}
7824 \vspace{0.3cm}
7825 \vspace{0.3cm}
7826 \subsubsection{RPC name:~resize}
7828 {\bf Overview:}
7829 Resize the vdi to the size.
7831 \noindent {\bf Signature:}
7832 \begin{verbatim} void resize (session_id s, VDI ref vdi, int size)\end{verbatim}
7835 \noindent{\bf Arguments:}
7838 \vspace{0.3cm}
7839 \begin{tabular}{|c|c|p{7cm}|}
7840 \hline
7841 {\bf type} & {\bf name} & {\bf description} \\ \hline
7842 {\tt VDI ref } & vdi & The VDI to resize \\ \hline
7844 {\tt int } & size & The new size of the VDI \\ \hline
7846 \end{tabular}
7848 \vspace{0.3cm}
7850 \noindent {\bf Return Type:}
7851 {\tt
7852 void
7857 \vspace{0.3cm}
7858 \vspace{0.3cm}
7859 \vspace{0.3cm}
7860 \subsubsection{RPC name:~get\_uuid}
7862 {\bf Overview:}
7863 Get the uuid field of the given VDI.
7865 \noindent {\bf Signature:}
7866 \begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
7869 \noindent{\bf Arguments:}
7872 \vspace{0.3cm}
7873 \begin{tabular}{|c|c|p{7cm}|}
7874 \hline
7875 {\bf type} & {\bf name} & {\bf description} \\ \hline
7876 {\tt VDI ref } & self & reference to the object \\ \hline
7878 \end{tabular}
7880 \vspace{0.3cm}
7882 \noindent {\bf Return Type:}
7883 {\tt
7884 string
7888 value of the field
7889 \vspace{0.3cm}
7890 \vspace{0.3cm}
7891 \vspace{0.3cm}
7892 \subsubsection{RPC name:~get\_name\_label}
7894 {\bf Overview:}
7895 Get the name/label field of the given VDI.
7897 \noindent {\bf Signature:}
7898 \begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
7901 \noindent{\bf Arguments:}
7904 \vspace{0.3cm}
7905 \begin{tabular}{|c|c|p{7cm}|}
7906 \hline
7907 {\bf type} & {\bf name} & {\bf description} \\ \hline
7908 {\tt VDI ref } & self & reference to the object \\ \hline
7910 \end{tabular}
7912 \vspace{0.3cm}
7914 \noindent {\bf Return Type:}
7915 {\tt
7916 string
7920 value of the field
7921 \vspace{0.3cm}
7922 \vspace{0.3cm}
7923 \vspace{0.3cm}
7924 \subsubsection{RPC name:~set\_name\_label}
7926 {\bf Overview:}
7927 Set the name/label field of the given VDI.
7929 \noindent {\bf Signature:}
7930 \begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
7933 \noindent{\bf Arguments:}
7936 \vspace{0.3cm}
7937 \begin{tabular}{|c|c|p{7cm}|}
7938 \hline
7939 {\bf type} & {\bf name} & {\bf description} \\ \hline
7940 {\tt VDI ref } & self & reference to the object \\ \hline
7942 {\tt string } & value & New value to set \\ \hline
7944 \end{tabular}
7946 \vspace{0.3cm}
7948 \noindent {\bf Return Type:}
7949 {\tt
7950 void
7955 \vspace{0.3cm}
7956 \vspace{0.3cm}
7957 \vspace{0.3cm}
7958 \subsubsection{RPC name:~get\_name\_description}
7960 {\bf Overview:}
7961 Get the name/description field of the given VDI.
7963 \noindent {\bf Signature:}
7964 \begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
7967 \noindent{\bf Arguments:}
7970 \vspace{0.3cm}
7971 \begin{tabular}{|c|c|p{7cm}|}
7972 \hline
7973 {\bf type} & {\bf name} & {\bf description} \\ \hline
7974 {\tt VDI ref } & self & reference to the object \\ \hline
7976 \end{tabular}
7978 \vspace{0.3cm}
7980 \noindent {\bf Return Type:}
7981 {\tt
7982 string
7986 value of the field
7987 \vspace{0.3cm}
7988 \vspace{0.3cm}
7989 \vspace{0.3cm}
7990 \subsubsection{RPC name:~set\_name\_description}
7992 {\bf Overview:}
7993 Set the name/description field of the given VDI.
7995 \noindent {\bf Signature:}
7996 \begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
7999 \noindent{\bf Arguments:}
8002 \vspace{0.3cm}
8003 \begin{tabular}{|c|c|p{7cm}|}
8004 \hline
8005 {\bf type} & {\bf name} & {\bf description} \\ \hline
8006 {\tt VDI ref } & self & reference to the object \\ \hline
8008 {\tt string } & value & New value to set \\ \hline
8010 \end{tabular}
8012 \vspace{0.3cm}
8014 \noindent {\bf Return Type:}
8015 {\tt
8016 void
8021 \vspace{0.3cm}
8022 \vspace{0.3cm}
8023 \vspace{0.3cm}
8024 \subsubsection{RPC name:~get\_SR}
8026 {\bf Overview:}
8027 Get the SR field of the given VDI.
8029 \noindent {\bf Signature:}
8030 \begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
8033 \noindent{\bf Arguments:}
8036 \vspace{0.3cm}
8037 \begin{tabular}{|c|c|p{7cm}|}
8038 \hline
8039 {\bf type} & {\bf name} & {\bf description} \\ \hline
8040 {\tt VDI ref } & self & reference to the object \\ \hline
8042 \end{tabular}
8044 \vspace{0.3cm}
8046 \noindent {\bf Return Type:}
8047 {\tt
8048 SR ref
8052 value of the field
8053 \vspace{0.3cm}
8054 \vspace{0.3cm}
8055 \vspace{0.3cm}
8056 \subsubsection{RPC name:~set\_SR}
8058 {\bf Overview:}
8059 Set the SR field of the given VDI.
8061 \noindent {\bf Signature:}
8062 \begin{verbatim} void set_SR (session_id s, VDI ref self, SR ref value)\end{verbatim}
8065 \noindent{\bf Arguments:}
8068 \vspace{0.3cm}
8069 \begin{tabular}{|c|c|p{7cm}|}
8070 \hline
8071 {\bf type} & {\bf name} & {\bf description} \\ \hline
8072 {\tt VDI ref } & self & reference to the object \\ \hline
8074 {\tt SR ref } & value & New value to set \\ \hline
8076 \end{tabular}
8078 \vspace{0.3cm}
8080 \noindent {\bf Return Type:}
8081 {\tt
8082 void
8087 \vspace{0.3cm}
8088 \vspace{0.3cm}
8089 \vspace{0.3cm}
8090 \subsubsection{RPC name:~get\_VBDs}
8092 {\bf Overview:}
8093 Get the VBDs field of the given VDI.
8095 \noindent {\bf Signature:}
8096 \begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
8099 \noindent{\bf Arguments:}
8102 \vspace{0.3cm}
8103 \begin{tabular}{|c|c|p{7cm}|}
8104 \hline
8105 {\bf type} & {\bf name} & {\bf description} \\ \hline
8106 {\tt VDI ref } & self & reference to the object \\ \hline
8108 \end{tabular}
8110 \vspace{0.3cm}
8112 \noindent {\bf Return Type:}
8113 {\tt
8114 (VBD ref) Set
8118 value of the field
8119 \vspace{0.3cm}
8120 \vspace{0.3cm}
8121 \vspace{0.3cm}
8122 \subsubsection{RPC name:~get\_virtual\_size}
8124 {\bf Overview:}
8125 Get the virtual\_size field of the given VDI.
8127 \noindent {\bf Signature:}
8128 \begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
8131 \noindent{\bf Arguments:}
8134 \vspace{0.3cm}
8135 \begin{tabular}{|c|c|p{7cm}|}
8136 \hline
8137 {\bf type} & {\bf name} & {\bf description} \\ \hline
8138 {\tt VDI ref } & self & reference to the object \\ \hline
8140 \end{tabular}
8142 \vspace{0.3cm}
8144 \noindent {\bf Return Type:}
8145 {\tt
8146 int
8150 value of the field
8151 \vspace{0.3cm}
8152 \vspace{0.3cm}
8153 \vspace{0.3cm}
8154 \subsubsection{RPC name:~set\_virtual\_size}
8156 {\bf Overview:}
8157 Set the virtual\_size field of the given VDI.
8159 \noindent {\bf Signature:}
8160 \begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
8163 \noindent{\bf Arguments:}
8166 \vspace{0.3cm}
8167 \begin{tabular}{|c|c|p{7cm}|}
8168 \hline
8169 {\bf type} & {\bf name} & {\bf description} \\ \hline
8170 {\tt VDI ref } & self & reference to the object \\ \hline
8172 {\tt int } & value & New value to set \\ \hline
8174 \end{tabular}
8176 \vspace{0.3cm}
8178 \noindent {\bf Return Type:}
8179 {\tt
8180 void
8185 \vspace{0.3cm}
8186 \vspace{0.3cm}
8187 \vspace{0.3cm}
8188 \subsubsection{RPC name:~get\_physical\_utilisation}
8190 {\bf Overview:}
8191 Get the physical\_utilisation field of the given VDI.
8193 \noindent {\bf Signature:}
8194 \begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\end{verbatim}
8197 \noindent{\bf Arguments:}
8200 \vspace{0.3cm}
8201 \begin{tabular}{|c|c|p{7cm}|}
8202 \hline
8203 {\bf type} & {\bf name} & {\bf description} \\ \hline
8204 {\tt VDI ref } & self & reference to the object \\ \hline
8206 \end{tabular}
8208 \vspace{0.3cm}
8210 \noindent {\bf Return Type:}
8211 {\tt
8212 int
8216 value of the field
8217 \vspace{0.3cm}
8218 \vspace{0.3cm}
8219 \vspace{0.3cm}
8220 \subsubsection{RPC name:~get\_sector\_size}
8222 {\bf Overview:}
8223 Get the sector\_size field of the given VDI.
8225 \noindent {\bf Signature:}
8226 \begin{verbatim} int get_sector_size (session_id s, VDI ref self)\end{verbatim}
8229 \noindent{\bf Arguments:}
8232 \vspace{0.3cm}
8233 \begin{tabular}{|c|c|p{7cm}|}
8234 \hline
8235 {\bf type} & {\bf name} & {\bf description} \\ \hline
8236 {\tt VDI ref } & self & reference to the object \\ \hline
8238 \end{tabular}
8240 \vspace{0.3cm}
8242 \noindent {\bf Return Type:}
8243 {\tt
8244 int
8248 value of the field
8249 \vspace{0.3cm}
8250 \vspace{0.3cm}
8251 \vspace{0.3cm}
8252 \subsubsection{RPC name:~get\_type}
8254 {\bf Overview:}
8255 Get the type field of the given VDI.
8257 \noindent {\bf Signature:}
8258 \begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
8261 \noindent{\bf Arguments:}
8264 \vspace{0.3cm}
8265 \begin{tabular}{|c|c|p{7cm}|}
8266 \hline
8267 {\bf type} & {\bf name} & {\bf description} \\ \hline
8268 {\tt VDI ref } & self & reference to the object \\ \hline
8270 \end{tabular}
8272 \vspace{0.3cm}
8274 \noindent {\bf Return Type:}
8275 {\tt
8276 vdi\_type
8280 value of the field
8281 \vspace{0.3cm}
8282 \vspace{0.3cm}
8283 \vspace{0.3cm}
8284 \subsubsection{RPC name:~get\_parent}
8286 {\bf Overview:}
8287 Get the parent field of the given VDI.
8289 \noindent {\bf Signature:}
8290 \begin{verbatim} (VDI ref) get_parent (session_id s, VDI ref self)\end{verbatim}
8293 \noindent{\bf Arguments:}
8296 \vspace{0.3cm}
8297 \begin{tabular}{|c|c|p{7cm}|}
8298 \hline
8299 {\bf type} & {\bf name} & {\bf description} \\ \hline
8300 {\tt VDI ref } & self & reference to the object \\ \hline
8302 \end{tabular}
8304 \vspace{0.3cm}
8306 \noindent {\bf Return Type:}
8307 {\tt
8308 VDI ref
8312 value of the field
8313 \vspace{0.3cm}
8314 \vspace{0.3cm}
8315 \vspace{0.3cm}
8316 \subsubsection{RPC name:~get\_children}
8318 {\bf Overview:}
8319 Get the children field of the given VDI.
8321 \noindent {\bf Signature:}
8322 \begin{verbatim} ((VDI ref) Set) get_children (session_id s, VDI ref self)\end{verbatim}
8325 \noindent{\bf Arguments:}
8328 \vspace{0.3cm}
8329 \begin{tabular}{|c|c|p{7cm}|}
8330 \hline
8331 {\bf type} & {\bf name} & {\bf description} \\ \hline
8332 {\tt VDI ref } & self & reference to the object \\ \hline
8334 \end{tabular}
8336 \vspace{0.3cm}
8338 \noindent {\bf Return Type:}
8339 {\tt
8340 (VDI ref) Set
8344 value of the field
8345 \vspace{0.3cm}
8346 \vspace{0.3cm}
8347 \vspace{0.3cm}
8348 \subsubsection{RPC name:~get\_sharable}
8350 {\bf Overview:}
8351 Get the sharable field of the given VDI.
8353 \noindent {\bf Signature:}
8354 \begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
8357 \noindent{\bf Arguments:}
8360 \vspace{0.3cm}
8361 \begin{tabular}{|c|c|p{7cm}|}
8362 \hline
8363 {\bf type} & {\bf name} & {\bf description} \\ \hline
8364 {\tt VDI ref } & self & reference to the object \\ \hline
8366 \end{tabular}
8368 \vspace{0.3cm}
8370 \noindent {\bf Return Type:}
8371 {\tt
8372 bool
8376 value of the field
8377 \vspace{0.3cm}
8378 \vspace{0.3cm}
8379 \vspace{0.3cm}
8380 \subsubsection{RPC name:~set\_sharable}
8382 {\bf Overview:}
8383 Set the sharable field of the given VDI.
8385 \noindent {\bf Signature:}
8386 \begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
8389 \noindent{\bf Arguments:}
8392 \vspace{0.3cm}
8393 \begin{tabular}{|c|c|p{7cm}|}
8394 \hline
8395 {\bf type} & {\bf name} & {\bf description} \\ \hline
8396 {\tt VDI ref } & self & reference to the object \\ \hline
8398 {\tt bool } & value & New value to set \\ \hline
8400 \end{tabular}
8402 \vspace{0.3cm}
8404 \noindent {\bf Return Type:}
8405 {\tt
8406 void
8411 \vspace{0.3cm}
8412 \vspace{0.3cm}
8413 \vspace{0.3cm}
8414 \subsubsection{RPC name:~get\_read\_only}
8416 {\bf Overview:}
8417 Get the read\_only field of the given VDI.
8419 \noindent {\bf Signature:}
8420 \begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
8423 \noindent{\bf Arguments:}
8426 \vspace{0.3cm}
8427 \begin{tabular}{|c|c|p{7cm}|}
8428 \hline
8429 {\bf type} & {\bf name} & {\bf description} \\ \hline
8430 {\tt VDI ref } & self & reference to the object \\ \hline
8432 \end{tabular}
8434 \vspace{0.3cm}
8436 \noindent {\bf Return Type:}
8437 {\tt
8438 bool
8442 value of the field
8443 \vspace{0.3cm}
8444 \vspace{0.3cm}
8445 \vspace{0.3cm}
8446 \subsubsection{RPC name:~set\_read\_only}
8448 {\bf Overview:}
8449 Set the read\_only field of the given VDI.
8451 \noindent {\bf Signature:}
8452 \begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
8455 \noindent{\bf Arguments:}
8458 \vspace{0.3cm}
8459 \begin{tabular}{|c|c|p{7cm}|}
8460 \hline
8461 {\bf type} & {\bf name} & {\bf description} \\ \hline
8462 {\tt VDI ref } & self & reference to the object \\ \hline
8464 {\tt bool } & value & New value to set \\ \hline
8466 \end{tabular}
8468 \vspace{0.3cm}
8470 \noindent {\bf Return Type:}
8471 {\tt
8472 void
8477 \vspace{0.3cm}
8478 \vspace{0.3cm}
8479 \vspace{0.3cm}
8480 \subsubsection{RPC name:~create}
8482 {\bf Overview:}
8483 Create a new VDI instance, and return its handle.
8485 \noindent {\bf Signature:}
8486 \begin{verbatim} (VDI ref) create (session_id s, VDI record args)\end{verbatim}
8489 \noindent{\bf Arguments:}
8492 \vspace{0.3cm}
8493 \begin{tabular}{|c|c|p{7cm}|}
8494 \hline
8495 {\bf type} & {\bf name} & {\bf description} \\ \hline
8496 {\tt VDI record } & args & All constructor arguments \\ \hline
8498 \end{tabular}
8500 \vspace{0.3cm}
8502 \noindent {\bf Return Type:}
8503 {\tt
8504 VDI ref
8508 reference to the newly created object
8509 \vspace{0.3cm}
8510 \vspace{0.3cm}
8511 \vspace{0.3cm}
8512 \subsubsection{RPC name:~destroy}
8514 {\bf Overview:}
8515 Destroy the specified VDI instance.
8517 \noindent {\bf Signature:}
8518 \begin{verbatim} void destroy (session_id s, VDI ref self)\end{verbatim}
8521 \noindent{\bf Arguments:}
8524 \vspace{0.3cm}
8525 \begin{tabular}{|c|c|p{7cm}|}
8526 \hline
8527 {\bf type} & {\bf name} & {\bf description} \\ \hline
8528 {\tt VDI ref } & self & reference to the object \\ \hline
8530 \end{tabular}
8532 \vspace{0.3cm}
8534 \noindent {\bf Return Type:}
8535 {\tt
8536 void
8541 \vspace{0.3cm}
8542 \vspace{0.3cm}
8543 \vspace{0.3cm}
8544 \subsubsection{RPC name:~get\_by\_uuid}
8546 {\bf Overview:}
8547 Get a reference to the VDI instance with the specified UUID.
8549 \noindent {\bf Signature:}
8550 \begin{verbatim} (VDI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
8553 \noindent{\bf Arguments:}
8556 \vspace{0.3cm}
8557 \begin{tabular}{|c|c|p{7cm}|}
8558 \hline
8559 {\bf type} & {\bf name} & {\bf description} \\ \hline
8560 {\tt string } & uuid & UUID of object to return \\ \hline
8562 \end{tabular}
8564 \vspace{0.3cm}
8566 \noindent {\bf Return Type:}
8567 {\tt
8568 VDI ref
8572 reference to the object
8573 \vspace{0.3cm}
8574 \vspace{0.3cm}
8575 \vspace{0.3cm}
8576 \subsubsection{RPC name:~get\_record}
8578 {\bf Overview:}
8579 Get a record containing the current state of the given VDI.
8581 \noindent {\bf Signature:}
8582 \begin{verbatim} (VDI record) get_record (session_id s, VDI ref self)\end{verbatim}
8585 \noindent{\bf Arguments:}
8588 \vspace{0.3cm}
8589 \begin{tabular}{|c|c|p{7cm}|}
8590 \hline
8591 {\bf type} & {\bf name} & {\bf description} \\ \hline
8592 {\tt VDI ref } & self & reference to the object \\ \hline
8594 \end{tabular}
8596 \vspace{0.3cm}
8598 \noindent {\bf Return Type:}
8599 {\tt
8600 VDI record
8604 all fields from the object
8605 \vspace{0.3cm}
8606 \vspace{0.3cm}
8607 \vspace{0.3cm}
8608 \subsubsection{RPC name:~get\_by\_name\_label}
8610 {\bf Overview:}
8611 Get all the VDI instances with the given label.
8613 \noindent {\bf Signature:}
8614 \begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
8617 \noindent{\bf Arguments:}
8620 \vspace{0.3cm}
8621 \begin{tabular}{|c|c|p{7cm}|}
8622 \hline
8623 {\bf type} & {\bf name} & {\bf description} \\ \hline
8624 {\tt string } & label & label of object to return \\ \hline
8626 \end{tabular}
8628 \vspace{0.3cm}
8630 \noindent {\bf Return Type:}
8631 {\tt
8632 (VDI ref) Set
8636 references to objects with match names
8637 \vspace{0.3cm}
8638 \vspace{0.3cm}
8639 \vspace{0.3cm}
8641 \vspace{1cm}
8642 \newpage
8643 \section{Class: VBD}
8644 \subsection{Fields for class: VBD}
8645 \begin{longtable}{|lllp{0.38\textwidth}|}
8646 \hline
8647 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
8648 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual block device}} \\
8649 \hline
8650 Quals & Field & Type & Description \\
8651 \hline
8652 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
8653 $\mathit{RW}$ & {\tt VM} & VM ref & the virtual machine \\
8654 $\mathit{RW}$ & {\tt VDI} & VDI ref & the virtual disk \\
8655 $\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
8656 $\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the disk should be mounted with \\
8657 $\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
8658 $\mathit{RW}$ & {\tt driver} & driver\_type & the style of driver \\
8659 $\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
8660 $\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
8661 \hline
8662 \end{longtable}
8663 \subsection{Additional RPCs associated with class: VBD}
8664 \subsubsection{RPC name:~media\_change}
8666 {\bf Overview:}
8667 Change the media in the device for CDROM-like devices only. For other devices, detach the VBD and attach a new one
8669 \noindent {\bf Signature:}
8670 \begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
8673 \noindent{\bf Arguments:}
8676 \vspace{0.3cm}
8677 \begin{tabular}{|c|c|p{7cm}|}
8678 \hline
8679 {\bf type} & {\bf name} & {\bf description} \\ \hline
8680 {\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
8682 {\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
8684 \end{tabular}
8686 \vspace{0.3cm}
8688 \noindent {\bf Return Type:}
8689 {\tt
8690 void
8695 \vspace{0.3cm}
8696 \vspace{0.3cm}
8697 \vspace{0.3cm}
8698 \subsubsection{RPC name:~get\_uuid}
8700 {\bf Overview:}
8701 Get the uuid field of the given VBD.
8703 \noindent {\bf Signature:}
8704 \begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
8707 \noindent{\bf Arguments:}
8710 \vspace{0.3cm}
8711 \begin{tabular}{|c|c|p{7cm}|}
8712 \hline
8713 {\bf type} & {\bf name} & {\bf description} \\ \hline
8714 {\tt VBD ref } & self & reference to the object \\ \hline
8716 \end{tabular}
8718 \vspace{0.3cm}
8720 \noindent {\bf Return Type:}
8721 {\tt
8722 string
8726 value of the field
8727 \vspace{0.3cm}
8728 \vspace{0.3cm}
8729 \vspace{0.3cm}
8730 \subsubsection{RPC name:~get\_VM}
8732 {\bf Overview:}
8733 Get the VM field of the given VBD.
8735 \noindent {\bf Signature:}
8736 \begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
8739 \noindent{\bf Arguments:}
8742 \vspace{0.3cm}
8743 \begin{tabular}{|c|c|p{7cm}|}
8744 \hline
8745 {\bf type} & {\bf name} & {\bf description} \\ \hline
8746 {\tt VBD ref } & self & reference to the object \\ \hline
8748 \end{tabular}
8750 \vspace{0.3cm}
8752 \noindent {\bf Return Type:}
8753 {\tt
8754 VM ref
8758 value of the field
8759 \vspace{0.3cm}
8760 \vspace{0.3cm}
8761 \vspace{0.3cm}
8762 \subsubsection{RPC name:~set\_VM}
8764 {\bf Overview:}
8765 Set the VM field of the given VBD.
8767 \noindent {\bf Signature:}
8768 \begin{verbatim} void set_VM (session_id s, VBD ref self, VM ref value)\end{verbatim}
8771 \noindent{\bf Arguments:}
8774 \vspace{0.3cm}
8775 \begin{tabular}{|c|c|p{7cm}|}
8776 \hline
8777 {\bf type} & {\bf name} & {\bf description} \\ \hline
8778 {\tt VBD ref } & self & reference to the object \\ \hline
8780 {\tt VM ref } & value & New value to set \\ \hline
8782 \end{tabular}
8784 \vspace{0.3cm}
8786 \noindent {\bf Return Type:}
8787 {\tt
8788 void
8793 \vspace{0.3cm}
8794 \vspace{0.3cm}
8795 \vspace{0.3cm}
8796 \subsubsection{RPC name:~get\_VDI}
8798 {\bf Overview:}
8799 Get the VDI field of the given VBD.
8801 \noindent {\bf Signature:}
8802 \begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
8805 \noindent{\bf Arguments:}
8808 \vspace{0.3cm}
8809 \begin{tabular}{|c|c|p{7cm}|}
8810 \hline
8811 {\bf type} & {\bf name} & {\bf description} \\ \hline
8812 {\tt VBD ref } & self & reference to the object \\ \hline
8814 \end{tabular}
8816 \vspace{0.3cm}
8818 \noindent {\bf Return Type:}
8819 {\tt
8820 VDI ref
8824 value of the field
8825 \vspace{0.3cm}
8826 \vspace{0.3cm}
8827 \vspace{0.3cm}
8828 \subsubsection{RPC name:~set\_VDI}
8830 {\bf Overview:}
8831 Set the VDI field of the given VBD.
8833 \noindent {\bf Signature:}
8834 \begin{verbatim} void set_VDI (session_id s, VBD ref self, VDI ref value)\end{verbatim}
8837 \noindent{\bf Arguments:}
8840 \vspace{0.3cm}
8841 \begin{tabular}{|c|c|p{7cm}|}
8842 \hline
8843 {\bf type} & {\bf name} & {\bf description} \\ \hline
8844 {\tt VBD ref } & self & reference to the object \\ \hline
8846 {\tt VDI ref } & value & New value to set \\ \hline
8848 \end{tabular}
8850 \vspace{0.3cm}
8852 \noindent {\bf Return Type:}
8853 {\tt
8854 void
8859 \vspace{0.3cm}
8860 \vspace{0.3cm}
8861 \vspace{0.3cm}
8862 \subsubsection{RPC name:~get\_device}
8864 {\bf Overview:}
8865 Get the device field of the given VBD.
8867 \noindent {\bf Signature:}
8868 \begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
8871 \noindent{\bf Arguments:}
8874 \vspace{0.3cm}
8875 \begin{tabular}{|c|c|p{7cm}|}
8876 \hline
8877 {\bf type} & {\bf name} & {\bf description} \\ \hline
8878 {\tt VBD ref } & self & reference to the object \\ \hline
8880 \end{tabular}
8882 \vspace{0.3cm}
8884 \noindent {\bf Return Type:}
8885 {\tt
8886 string
8890 value of the field
8891 \vspace{0.3cm}
8892 \vspace{0.3cm}
8893 \vspace{0.3cm}
8894 \subsubsection{RPC name:~set\_device}
8896 {\bf Overview:}
8897 Set the device field of the given VBD.
8899 \noindent {\bf Signature:}
8900 \begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim}
8903 \noindent{\bf Arguments:}
8906 \vspace{0.3cm}
8907 \begin{tabular}{|c|c|p{7cm}|}
8908 \hline
8909 {\bf type} & {\bf name} & {\bf description} \\ \hline
8910 {\tt VBD ref } & self & reference to the object \\ \hline
8912 {\tt string } & value & New value to set \\ \hline
8914 \end{tabular}
8916 \vspace{0.3cm}
8918 \noindent {\bf Return Type:}
8919 {\tt
8920 void
8925 \vspace{0.3cm}
8926 \vspace{0.3cm}
8927 \vspace{0.3cm}
8928 \subsubsection{RPC name:~get\_mode}
8930 {\bf Overview:}
8931 Get the mode field of the given VBD.
8933 \noindent {\bf Signature:}
8934 \begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
8937 \noindent{\bf Arguments:}
8940 \vspace{0.3cm}
8941 \begin{tabular}{|c|c|p{7cm}|}
8942 \hline
8943 {\bf type} & {\bf name} & {\bf description} \\ \hline
8944 {\tt VBD ref } & self & reference to the object \\ \hline
8946 \end{tabular}
8948 \vspace{0.3cm}
8950 \noindent {\bf Return Type:}
8951 {\tt
8952 vbd\_mode
8956 value of the field
8957 \vspace{0.3cm}
8958 \vspace{0.3cm}
8959 \vspace{0.3cm}
8960 \subsubsection{RPC name:~set\_mode}
8962 {\bf Overview:}
8963 Set the mode field of the given VBD.
8965 \noindent {\bf Signature:}
8966 \begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
8969 \noindent{\bf Arguments:}
8972 \vspace{0.3cm}
8973 \begin{tabular}{|c|c|p{7cm}|}
8974 \hline
8975 {\bf type} & {\bf name} & {\bf description} \\ \hline
8976 {\tt VBD ref } & self & reference to the object \\ \hline
8978 {\tt vbd\_mode } & value & New value to set \\ \hline
8980 \end{tabular}
8982 \vspace{0.3cm}
8984 \noindent {\bf Return Type:}
8985 {\tt
8986 void
8991 \vspace{0.3cm}
8992 \vspace{0.3cm}
8993 \vspace{0.3cm}
8994 \subsubsection{RPC name:~get\_type}
8996 {\bf Overview:}
8997 Get the type field of the given VBD.
8999 \noindent {\bf Signature:}
9000 \begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
9003 \noindent{\bf Arguments:}
9006 \vspace{0.3cm}
9007 \begin{tabular}{|c|c|p{7cm}|}
9008 \hline
9009 {\bf type} & {\bf name} & {\bf description} \\ \hline
9010 {\tt VBD ref } & self & reference to the object \\ \hline
9012 \end{tabular}
9014 \vspace{0.3cm}
9016 \noindent {\bf Return Type:}
9017 {\tt
9018 vbd\_type
9022 value of the field
9023 \vspace{0.3cm}
9024 \vspace{0.3cm}
9025 \vspace{0.3cm}
9026 \subsubsection{RPC name:~set\_type}
9028 {\bf Overview:}
9029 Set the type field of the given VBD.
9031 \noindent {\bf Signature:}
9032 \begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
9035 \noindent{\bf Arguments:}
9038 \vspace{0.3cm}
9039 \begin{tabular}{|c|c|p{7cm}|}
9040 \hline
9041 {\bf type} & {\bf name} & {\bf description} \\ \hline
9042 {\tt VBD ref } & self & reference to the object \\ \hline
9044 {\tt vbd\_type } & value & New value to set \\ \hline
9046 \end{tabular}
9048 \vspace{0.3cm}
9050 \noindent {\bf Return Type:}
9051 {\tt
9052 void
9057 \vspace{0.3cm}
9058 \vspace{0.3cm}
9059 \vspace{0.3cm}
9060 \subsubsection{RPC name:~get\_driver}
9062 {\bf Overview:}
9063 Get the driver field of the given VBD.
9065 \noindent {\bf Signature:}
9066 \begin{verbatim} (driver_type) get_driver (session_id s, VBD ref self)\end{verbatim}
9069 \noindent{\bf Arguments:}
9072 \vspace{0.3cm}
9073 \begin{tabular}{|c|c|p{7cm}|}
9074 \hline
9075 {\bf type} & {\bf name} & {\bf description} \\ \hline
9076 {\tt VBD ref } & self & reference to the object \\ \hline
9078 \end{tabular}
9080 \vspace{0.3cm}
9082 \noindent {\bf Return Type:}
9083 {\tt
9084 driver\_type
9088 value of the field
9089 \vspace{0.3cm}
9090 \vspace{0.3cm}
9091 \vspace{0.3cm}
9092 \subsubsection{RPC name:~set\_driver}
9094 {\bf Overview:}
9095 Set the driver field of the given VBD.
9097 \noindent {\bf Signature:}
9098 \begin{verbatim} void set_driver (session_id s, VBD ref self, driver_type value)\end{verbatim}
9101 \noindent{\bf Arguments:}
9104 \vspace{0.3cm}
9105 \begin{tabular}{|c|c|p{7cm}|}
9106 \hline
9107 {\bf type} & {\bf name} & {\bf description} \\ \hline
9108 {\tt VBD ref } & self & reference to the object \\ \hline
9110 {\tt driver\_type } & value & New value to set \\ \hline
9112 \end{tabular}
9114 \vspace{0.3cm}
9116 \noindent {\bf Return Type:}
9117 {\tt
9118 void
9123 \vspace{0.3cm}
9124 \vspace{0.3cm}
9125 \vspace{0.3cm}
9126 \subsubsection{RPC name:~get\_io\_read\_kbs}
9128 {\bf Overview:}
9129 Get the io/read\_kbs field of the given VBD.
9131 \noindent {\bf Signature:}
9132 \begin{verbatim} float get_io_read_kbs (session_id s, VBD ref self)\end{verbatim}
9135 \noindent{\bf Arguments:}
9138 \vspace{0.3cm}
9139 \begin{tabular}{|c|c|p{7cm}|}
9140 \hline
9141 {\bf type} & {\bf name} & {\bf description} \\ \hline
9142 {\tt VBD ref } & self & reference to the object \\ \hline
9144 \end{tabular}
9146 \vspace{0.3cm}
9148 \noindent {\bf Return Type:}
9149 {\tt
9150 float
9154 value of the field
9155 \vspace{0.3cm}
9156 \vspace{0.3cm}
9157 \vspace{0.3cm}
9158 \subsubsection{RPC name:~get\_io\_write\_kbs}
9160 {\bf Overview:}
9161 Get the io/write\_kbs field of the given VBD.
9163 \noindent {\bf Signature:}
9164 \begin{verbatim} float get_io_write_kbs (session_id s, VBD ref self)\end{verbatim}
9167 \noindent{\bf Arguments:}
9170 \vspace{0.3cm}
9171 \begin{tabular}{|c|c|p{7cm}|}
9172 \hline
9173 {\bf type} & {\bf name} & {\bf description} \\ \hline
9174 {\tt VBD ref } & self & reference to the object \\ \hline
9176 \end{tabular}
9178 \vspace{0.3cm}
9180 \noindent {\bf Return Type:}
9181 {\tt
9182 float
9186 value of the field
9187 \vspace{0.3cm}
9188 \vspace{0.3cm}
9189 \vspace{0.3cm}
9190 \subsubsection{RPC name:~create}
9192 {\bf Overview:}
9193 Create a new VBD instance, and return its handle.
9195 \noindent {\bf Signature:}
9196 \begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
9199 \noindent{\bf Arguments:}
9202 \vspace{0.3cm}
9203 \begin{tabular}{|c|c|p{7cm}|}
9204 \hline
9205 {\bf type} & {\bf name} & {\bf description} \\ \hline
9206 {\tt VBD record } & args & All constructor arguments \\ \hline
9208 \end{tabular}
9210 \vspace{0.3cm}
9212 \noindent {\bf Return Type:}
9213 {\tt
9214 VBD ref
9218 reference to the newly created object
9219 \vspace{0.3cm}
9220 \vspace{0.3cm}
9221 \vspace{0.3cm}
9222 \subsubsection{RPC name:~destroy}
9224 {\bf Overview:}
9225 Destroy the specified VBD instance.
9227 \noindent {\bf Signature:}
9228 \begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
9231 \noindent{\bf Arguments:}
9234 \vspace{0.3cm}
9235 \begin{tabular}{|c|c|p{7cm}|}
9236 \hline
9237 {\bf type} & {\bf name} & {\bf description} \\ \hline
9238 {\tt VBD ref } & self & reference to the object \\ \hline
9240 \end{tabular}
9242 \vspace{0.3cm}
9244 \noindent {\bf Return Type:}
9245 {\tt
9246 void
9251 \vspace{0.3cm}
9252 \vspace{0.3cm}
9253 \vspace{0.3cm}
9254 \subsubsection{RPC name:~get\_by\_uuid}
9256 {\bf Overview:}
9257 Get a reference to the VBD instance with the specified UUID.
9259 \noindent {\bf Signature:}
9260 \begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9263 \noindent{\bf Arguments:}
9266 \vspace{0.3cm}
9267 \begin{tabular}{|c|c|p{7cm}|}
9268 \hline
9269 {\bf type} & {\bf name} & {\bf description} \\ \hline
9270 {\tt string } & uuid & UUID of object to return \\ \hline
9272 \end{tabular}
9274 \vspace{0.3cm}
9276 \noindent {\bf Return Type:}
9277 {\tt
9278 VBD ref
9282 reference to the object
9283 \vspace{0.3cm}
9284 \vspace{0.3cm}
9285 \vspace{0.3cm}
9286 \subsubsection{RPC name:~get\_record}
9288 {\bf Overview:}
9289 Get a record containing the current state of the given VBD.
9291 \noindent {\bf Signature:}
9292 \begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
9295 \noindent{\bf Arguments:}
9298 \vspace{0.3cm}
9299 \begin{tabular}{|c|c|p{7cm}|}
9300 \hline
9301 {\bf type} & {\bf name} & {\bf description} \\ \hline
9302 {\tt VBD ref } & self & reference to the object \\ \hline
9304 \end{tabular}
9306 \vspace{0.3cm}
9308 \noindent {\bf Return Type:}
9309 {\tt
9310 VBD record
9314 all fields from the object
9315 \vspace{0.3cm}
9316 \vspace{0.3cm}
9317 \vspace{0.3cm}
9319 \vspace{1cm}
9320 \newpage
9321 \section{Class: VTPM}
9322 \subsection{Fields for class: VTPM}
9323 \begin{longtable}{|lllp{0.38\textwidth}|}
9324 \hline
9325 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
9326 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual TPM device}} \\
9327 \hline
9328 Quals & Field & Type & Description \\
9329 \hline
9330 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9331 $\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
9332 $\mathit{RO}_\mathit{ins}$ & {\tt backend} & VM ref & the domain where the backend is located \\
9333 $\mathit{RO}_\mathit{ins}$ & {\tt driver} & driver\_type & the style of driver \\
9334 $\mathit{RO}_\mathit{ins}$ & {\tt instance} & int & the instance number the virtual TPM represents \\
9335 \hline
9336 \end{longtable}
9337 \subsection{Additional RPCs associated with class: VTPM}
9338 \subsubsection{RPC name:~get\_uuid}
9340 {\bf Overview:}
9341 Get the uuid field of the given VTPM.
9343 \noindent {\bf Signature:}
9344 \begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
9347 \noindent{\bf Arguments:}
9350 \vspace{0.3cm}
9351 \begin{tabular}{|c|c|p{7cm}|}
9352 \hline
9353 {\bf type} & {\bf name} & {\bf description} \\ \hline
9354 {\tt VTPM ref } & self & reference to the object \\ \hline
9356 \end{tabular}
9358 \vspace{0.3cm}
9360 \noindent {\bf Return Type:}
9361 {\tt
9362 string
9366 value of the field
9367 \vspace{0.3cm}
9368 \vspace{0.3cm}
9369 \vspace{0.3cm}
9370 \subsubsection{RPC name:~get\_VM}
9372 {\bf Overview:}
9373 Get the VM field of the given VTPM.
9375 \noindent {\bf Signature:}
9376 \begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
9379 \noindent{\bf Arguments:}
9382 \vspace{0.3cm}
9383 \begin{tabular}{|c|c|p{7cm}|}
9384 \hline
9385 {\bf type} & {\bf name} & {\bf description} \\ \hline
9386 {\tt VTPM ref } & self & reference to the object \\ \hline
9388 \end{tabular}
9390 \vspace{0.3cm}
9392 \noindent {\bf Return Type:}
9393 {\tt
9394 VM ref
9398 value of the field
9399 \vspace{0.3cm}
9400 \vspace{0.3cm}
9401 \vspace{0.3cm}
9402 \subsubsection{RPC name:~get\_backend}
9404 {\bf Overview:}
9405 Get the backend field of the given VTPM.
9407 \noindent {\bf Signature:}
9408 \begin{verbatim} (VM ref) get_backend (session_id s, VTPM ref self)\end{verbatim}
9411 \noindent{\bf Arguments:}
9414 \vspace{0.3cm}
9415 \begin{tabular}{|c|c|p{7cm}|}
9416 \hline
9417 {\bf type} & {\bf name} & {\bf description} \\ \hline
9418 {\tt VTPM ref } & self & reference to the object \\ \hline
9420 \end{tabular}
9422 \vspace{0.3cm}
9424 \noindent {\bf Return Type:}
9425 {\tt
9426 VM ref
9430 value of the field
9431 \vspace{0.3cm}
9432 \vspace{0.3cm}
9433 \vspace{0.3cm}
9434 \subsubsection{RPC name:~get\_driver}
9436 {\bf Overview:}
9437 Get the driver field of the given VTPM.
9439 \noindent {\bf Signature:}
9440 \begin{verbatim} (driver_type) get_driver (session_id s, VTPM ref self)\end{verbatim}
9443 \noindent{\bf Arguments:}
9446 \vspace{0.3cm}
9447 \begin{tabular}{|c|c|p{7cm}|}
9448 \hline
9449 {\bf type} & {\bf name} & {\bf description} \\ \hline
9450 {\tt VTPM ref } & self & reference to the object \\ \hline
9452 \end{tabular}
9454 \vspace{0.3cm}
9456 \noindent {\bf Return Type:}
9457 {\tt
9458 driver\_type
9462 value of the field
9463 \vspace{0.3cm}
9464 \vspace{0.3cm}
9465 \vspace{0.3cm}
9466 \subsubsection{RPC name:~get\_instance}
9468 {\bf Overview:}
9469 Get the instance field of the given VTPM.
9471 \noindent {\bf Signature:}
9472 \begin{verbatim} int get_instance (session_id s, VTPM ref self)\end{verbatim}
9475 \noindent{\bf Arguments:}
9478 \vspace{0.3cm}
9479 \begin{tabular}{|c|c|p{7cm}|}
9480 \hline
9481 {\bf type} & {\bf name} & {\bf description} \\ \hline
9482 {\tt VTPM ref } & self & reference to the object \\ \hline
9484 \end{tabular}
9486 \vspace{0.3cm}
9488 \noindent {\bf Return Type:}
9489 {\tt
9490 int
9494 value of the field
9495 \vspace{0.3cm}
9496 \vspace{0.3cm}
9497 \vspace{0.3cm}
9498 \subsubsection{RPC name:~create}
9500 {\bf Overview:}
9501 Create a new VTPM instance, and return its handle.
9503 \noindent {\bf Signature:}
9504 \begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\end{verbatim}
9507 \noindent{\bf Arguments:}
9510 \vspace{0.3cm}
9511 \begin{tabular}{|c|c|p{7cm}|}
9512 \hline
9513 {\bf type} & {\bf name} & {\bf description} \\ \hline
9514 {\tt VTPM record } & args & All constructor arguments \\ \hline
9516 \end{tabular}
9518 \vspace{0.3cm}
9520 \noindent {\bf Return Type:}
9521 {\tt
9522 VTPM ref
9526 reference to the newly created object
9527 \vspace{0.3cm}
9528 \vspace{0.3cm}
9529 \vspace{0.3cm}
9530 \subsubsection{RPC name:~destroy}
9532 {\bf Overview:}
9533 Destroy the specified VTPM instance.
9535 \noindent {\bf Signature:}
9536 \begin{verbatim} void destroy (session_id s, VTPM ref self)\end{verbatim}
9539 \noindent{\bf Arguments:}
9542 \vspace{0.3cm}
9543 \begin{tabular}{|c|c|p{7cm}|}
9544 \hline
9545 {\bf type} & {\bf name} & {\bf description} \\ \hline
9546 {\tt VTPM ref } & self & reference to the object \\ \hline
9548 \end{tabular}
9550 \vspace{0.3cm}
9552 \noindent {\bf Return Type:}
9553 {\tt
9554 void
9559 \vspace{0.3cm}
9560 \vspace{0.3cm}
9561 \vspace{0.3cm}
9562 \subsubsection{RPC name:~get\_by\_uuid}
9564 {\bf Overview:}
9565 Get a reference to the VTPM instance with the specified UUID.
9567 \noindent {\bf Signature:}
9568 \begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9571 \noindent{\bf Arguments:}
9574 \vspace{0.3cm}
9575 \begin{tabular}{|c|c|p{7cm}|}
9576 \hline
9577 {\bf type} & {\bf name} & {\bf description} \\ \hline
9578 {\tt string } & uuid & UUID of object to return \\ \hline
9580 \end{tabular}
9582 \vspace{0.3cm}
9584 \noindent {\bf Return Type:}
9585 {\tt
9586 VTPM ref
9590 reference to the object
9591 \vspace{0.3cm}
9592 \vspace{0.3cm}
9593 \vspace{0.3cm}
9594 \subsubsection{RPC name:~get\_record}
9596 {\bf Overview:}
9597 Get a record containing the current state of the given VTPM.
9599 \noindent {\bf Signature:}
9600 \begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
9603 \noindent{\bf Arguments:}
9606 \vspace{0.3cm}
9607 \begin{tabular}{|c|c|p{7cm}|}
9608 \hline
9609 {\bf type} & {\bf name} & {\bf description} \\ \hline
9610 {\tt VTPM ref } & self & reference to the object \\ \hline
9612 \end{tabular}
9614 \vspace{0.3cm}
9616 \noindent {\bf Return Type:}
9617 {\tt
9618 VTPM record
9622 all fields from the object
9623 \vspace{0.3cm}
9624 \vspace{0.3cm}
9625 \vspace{0.3cm}
9627 \vspace{1cm}
9628 \newpage
9629 \section{Class: console}
9630 \subsection{Fields for class: console}
9631 \begin{longtable}{|lllp{0.38\textwidth}|}
9632 \hline
9633 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf console} \\
9634 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A console}} \\
9635 \hline
9636 Quals & Field & Type & Description \\
9637 \hline
9638 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9639 $\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\
9640 $\mathit{RO}_\mathit{run}$ & {\tt uri} & string & URI for the console service \\
9641 $\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\
9642 \hline
9643 \end{longtable}
9644 \subsection{Additional RPCs associated with class: console}
9645 \subsubsection{RPC name:~get\_record}
9647 {\bf Overview:}
9648 Get the current state of the given console.
9650 \noindent {\bf Signature:}
9651 \begin{verbatim} (console record) get_record (session_id s, console ref self)\end{verbatim}
9654 \noindent{\bf Arguments:}
9657 \vspace{0.3cm}
9658 \begin{tabular}{|c|c|p{7cm}|}
9659 \hline
9660 {\bf type} & {\bf name} & {\bf description} \\ \hline
9661 {\tt console ref } & self & reference to the object \\ \hline
9663 \end{tabular}
9665 \vspace{0.3cm}
9667 \noindent {\bf Return Type:}
9668 {\tt
9669 console record
9673 all fields from the object
9674 \vspace{0.3cm}
9675 \vspace{0.3cm}
9676 \vspace{0.3cm}
9677 \subsubsection{RPC name:~get\_by\_uuid}
9679 {\bf Overview:}
9680 Get a reference to the object with the specified UUID.
9682 \noindent {\bf Signature:}
9683 \begin{verbatim} (console ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
9686 \noindent{\bf Arguments:}
9689 \vspace{0.3cm}
9690 \begin{tabular}{|c|c|p{7cm}|}
9691 \hline
9692 {\bf type} & {\bf name} & {\bf description} \\ \hline
9693 {\tt string } & uuid & UUID of object to return \\ \hline
9695 \end{tabular}
9697 \vspace{0.3cm}
9699 \noindent {\bf Return Type:}
9700 {\tt
9701 console ref
9705 reference to the object
9706 \vspace{0.3cm}
9707 \vspace{0.3cm}
9708 \vspace{0.3cm}
9709 \subsubsection{RPC name:~create}
9711 {\bf Overview:}
9712 Create a new console instance, and return its handle.
9714 \noindent {\bf Signature:}
9715 \begin{verbatim} (console ref) create (session_id s, console record args)\end{verbatim}
9718 \noindent{\bf Arguments:}
9721 \vspace{0.3cm}
9722 \begin{tabular}{|c|c|p{7cm}|}
9723 \hline
9724 {\bf type} & {\bf name} & {\bf description} \\ \hline
9725 {\tt console record } & args & All constructor arguments \\ \hline
9727 \end{tabular}
9729 \vspace{0.3cm}
9731 \noindent {\bf Return Type:}
9732 {\tt
9733 console ref
9737 reference to the newly created object
9738 \vspace{0.3cm}
9739 \vspace{0.3cm}
9740 \vspace{0.3cm}
9741 \subsubsection{RPC name:~destroy}
9743 {\bf Overview:}
9744 Destroy the specified console instance.
9746 \noindent {\bf Signature:}
9747 \begin{verbatim} void destroy (session_id s, console ref self)\end{verbatim}
9750 \noindent{\bf Arguments:}
9753 \vspace{0.3cm}
9754 \begin{tabular}{|c|c|p{7cm}|}
9755 \hline
9756 {\bf type} & {\bf name} & {\bf description} \\ \hline
9757 {\tt console ref } & self & reference to the object \\ \hline
9759 \end{tabular}
9761 \vspace{0.3cm}
9763 \noindent {\bf Return Type:}
9764 {\tt
9765 void
9770 \vspace{0.3cm}
9771 \vspace{0.3cm}
9772 \vspace{0.3cm}
9773 \subsubsection{RPC name:~get\_uuid}
9775 {\bf Overview:}
9776 Get the uuid field of the given console.
9778 \noindent {\bf Signature:}
9779 \begin{verbatim} string get_uuid (session_id s, console ref self)\end{verbatim}
9782 \noindent{\bf Arguments:}
9785 \vspace{0.3cm}
9786 \begin{tabular}{|c|c|p{7cm}|}
9787 \hline
9788 {\bf type} & {\bf name} & {\bf description} \\ \hline
9789 {\tt console ref } & self & reference to the object \\ \hline
9791 \end{tabular}
9793 \vspace{0.3cm}
9795 \noindent {\bf Return Type:}
9796 {\tt
9797 string
9801 value of the field
9802 \vspace{0.3cm}
9803 \vspace{0.3cm}
9804 \vspace{0.3cm}
9805 \subsubsection{RPC name:~get\_protocol}
9807 {\bf Overview:}
9808 Get the protocol field of the given console.
9810 \noindent {\bf Signature:}
9811 \begin{verbatim} (console_protocol) get_protocol (session_id s, console ref self)\end{verbatim}
9814 \noindent{\bf Arguments:}
9817 \vspace{0.3cm}
9818 \begin{tabular}{|c|c|p{7cm}|}
9819 \hline
9820 {\bf type} & {\bf name} & {\bf description} \\ \hline
9821 {\tt console ref } & self & reference to the object \\ \hline
9823 \end{tabular}
9825 \vspace{0.3cm}
9827 \noindent {\bf Return Type:}
9828 {\tt
9829 console\_protocol
9833 value of the field
9834 \vspace{0.3cm}
9835 \vspace{0.3cm}
9836 \vspace{0.3cm}
9837 \subsubsection{RPC name:~get\_uri}
9839 {\bf Overview:}
9840 Get the uri field of the given console.
9842 \noindent {\bf Signature:}
9843 \begin{verbatim} string get_uri (session_id s, console ref self)\end{verbatim}
9846 \noindent{\bf Arguments:}
9849 \vspace{0.3cm}
9850 \begin{tabular}{|c|c|p{7cm}|}
9851 \hline
9852 {\bf type} & {\bf name} & {\bf description} \\ \hline
9853 {\tt console ref } & self & reference to the object \\ \hline
9855 \end{tabular}
9857 \vspace{0.3cm}
9859 \noindent {\bf Return Type:}
9860 {\tt
9861 string
9865 value of the field
9866 \vspace{0.3cm}
9867 \vspace{0.3cm}
9868 \vspace{0.3cm}
9869 \subsubsection{RPC name:~get\_VM}
9871 {\bf Overview:}
9872 Get the VM field of the given console.
9874 \noindent {\bf Signature:}
9875 \begin{verbatim} (VM ref) get_VM (session_id s, console ref self)\end{verbatim}
9878 \noindent{\bf Arguments:}
9881 \vspace{0.3cm}
9882 \begin{tabular}{|c|c|p{7cm}|}
9883 \hline
9884 {\bf type} & {\bf name} & {\bf description} \\ \hline
9885 {\tt console ref } & self & reference to the object \\ \hline
9887 \end{tabular}
9889 \vspace{0.3cm}
9891 \noindent {\bf Return Type:}
9892 {\tt
9893 VM ref
9897 value of the field
9898 \vspace{0.3cm}
9899 \vspace{0.3cm}
9900 \vspace{0.3cm}
9902 \vspace{1cm}
9903 \newpage
9904 \section{Class: user}
9905 \subsection{Fields for class: user}
9906 \begin{longtable}{|lllp{0.38\textwidth}|}
9907 \hline
9908 \multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf user} \\
9909 \multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A user of the system}} \\
9910 \hline
9911 Quals & Field & Type & Description \\
9912 \hline
9913 $\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
9914 $\mathit{RO}_\mathit{ins}$ & {\tt short\_name} & string & short name (e.g. userid) \\
9915 $\mathit{RW}$ & {\tt fullname} & string & full name \\
9916 \hline
9917 \end{longtable}
9918 \subsection{Additional RPCs associated with class: user}
9919 \subsubsection{RPC name:~get\_uuid}
9921 {\bf Overview:}
9922 Get the uuid field of the given user.
9924 \noindent {\bf Signature:}
9925 \begin{verbatim} string get_uuid (session_id s, user ref self)\end{verbatim}
9928 \noindent{\bf Arguments:}
9931 \vspace{0.3cm}
9932 \begin{tabular}{|c|c|p{7cm}|}
9933 \hline
9934 {\bf type} & {\bf name} & {\bf description} \\ \hline
9935 {\tt user ref } & self & reference to the object \\ \hline
9937 \end{tabular}
9939 \vspace{0.3cm}
9941 \noindent {\bf Return Type:}
9942 {\tt
9943 string
9947 value of the field
9948 \vspace{0.3cm}
9949 \vspace{0.3cm}
9950 \vspace{0.3cm}
9951 \subsubsection{RPC name:~get\_short\_name}
9953 {\bf Overview:}
9954 Get the short\_name field of the given user.
9956 \noindent {\bf Signature:}
9957 \begin{verbatim} string get_short_name (session_id s, user ref self)\end{verbatim}
9960 \noindent{\bf Arguments:}
9963 \vspace{0.3cm}
9964 \begin{tabular}{|c|c|p{7cm}|}
9965 \hline
9966 {\bf type} & {\bf name} & {\bf description} \\ \hline
9967 {\tt user ref } & self & reference to the object \\ \hline
9969 \end{tabular}
9971 \vspace{0.3cm}
9973 \noindent {\bf Return Type:}
9974 {\tt
9975 string
9979 value of the field
9980 \vspace{0.3cm}
9981 \vspace{0.3cm}
9982 \vspace{0.3cm}
9983 \subsubsection{RPC name:~get\_fullname}
9985 {\bf Overview:}
9986 Get the fullname field of the given user.
9988 \noindent {\bf Signature:}
9989 \begin{verbatim} string get_fullname (session_id s, user ref self)\end{verbatim}
9992 \noindent{\bf Arguments:}
9995 \vspace{0.3cm}
9996 \begin{tabular}{|c|c|p{7cm}|}
9997 \hline
9998 {\bf type} & {\bf name} & {\bf description} \\ \hline
9999 {\tt user ref } & self & reference to the object \\ \hline
10001 \end{tabular}
10003 \vspace{0.3cm}
10005 \noindent {\bf Return Type:}
10006 {\tt
10007 string
10011 value of the field
10012 \vspace{0.3cm}
10013 \vspace{0.3cm}
10014 \vspace{0.3cm}
10015 \subsubsection{RPC name:~set\_fullname}
10017 {\bf Overview:}
10018 Set the fullname field of the given user.
10020 \noindent {\bf Signature:}
10021 \begin{verbatim} void set_fullname (session_id s, user ref self, string value)\end{verbatim}
10024 \noindent{\bf Arguments:}
10027 \vspace{0.3cm}
10028 \begin{tabular}{|c|c|p{7cm}|}
10029 \hline
10030 {\bf type} & {\bf name} & {\bf description} \\ \hline
10031 {\tt user ref } & self & reference to the object \\ \hline
10033 {\tt string } & value & New value to set \\ \hline
10035 \end{tabular}
10037 \vspace{0.3cm}
10039 \noindent {\bf Return Type:}
10040 {\tt
10041 void
10046 \vspace{0.3cm}
10047 \vspace{0.3cm}
10048 \vspace{0.3cm}
10049 \subsubsection{RPC name:~create}
10051 {\bf Overview:}
10052 Create a new user instance, and return its handle.
10054 \noindent {\bf Signature:}
10055 \begin{verbatim} (user ref) create (session_id s, user record args)\end{verbatim}
10058 \noindent{\bf Arguments:}
10061 \vspace{0.3cm}
10062 \begin{tabular}{|c|c|p{7cm}|}
10063 \hline
10064 {\bf type} & {\bf name} & {\bf description} \\ \hline
10065 {\tt user record } & args & All constructor arguments \\ \hline
10067 \end{tabular}
10069 \vspace{0.3cm}
10071 \noindent {\bf Return Type:}
10072 {\tt
10073 user ref
10077 reference to the newly created object
10078 \vspace{0.3cm}
10079 \vspace{0.3cm}
10080 \vspace{0.3cm}
10081 \subsubsection{RPC name:~destroy}
10083 {\bf Overview:}
10084 Destroy the specified user instance.
10086 \noindent {\bf Signature:}
10087 \begin{verbatim} void destroy (session_id s, user ref self)\end{verbatim}
10090 \noindent{\bf Arguments:}
10093 \vspace{0.3cm}
10094 \begin{tabular}{|c|c|p{7cm}|}
10095 \hline
10096 {\bf type} & {\bf name} & {\bf description} \\ \hline
10097 {\tt user ref } & self & reference to the object \\ \hline
10099 \end{tabular}
10101 \vspace{0.3cm}
10103 \noindent {\bf Return Type:}
10104 {\tt
10105 void
10110 \vspace{0.3cm}
10111 \vspace{0.3cm}
10112 \vspace{0.3cm}
10113 \subsubsection{RPC name:~get\_by\_uuid}
10115 {\bf Overview:}
10116 Get a reference to the user instance with the specified UUID.
10118 \noindent {\bf Signature:}
10119 \begin{verbatim} (user ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10122 \noindent{\bf Arguments:}
10125 \vspace{0.3cm}
10126 \begin{tabular}{|c|c|p{7cm}|}
10127 \hline
10128 {\bf type} & {\bf name} & {\bf description} \\ \hline
10129 {\tt string } & uuid & UUID of object to return \\ \hline
10131 \end{tabular}
10133 \vspace{0.3cm}
10135 \noindent {\bf Return Type:}
10136 {\tt
10137 user ref
10141 reference to the object
10142 \vspace{0.3cm}
10143 \vspace{0.3cm}
10144 \vspace{0.3cm}
10145 \subsubsection{RPC name:~get\_record}
10147 {\bf Overview:}
10148 Get a record containing the current state of the given user.
10150 \noindent {\bf Signature:}
10151 \begin{verbatim} (user record) get_record (session_id s, user ref self)\end{verbatim}
10154 \noindent{\bf Arguments:}
10157 \vspace{0.3cm}
10158 \begin{tabular}{|c|c|p{7cm}|}
10159 \hline
10160 {\bf type} & {\bf name} & {\bf description} \\ \hline
10161 {\tt user ref } & self & reference to the object \\ \hline
10163 \end{tabular}
10165 \vspace{0.3cm}
10167 \noindent {\bf Return Type:}
10168 {\tt
10169 user record
10173 all fields from the object
10174 \vspace{0.3cm}
10175 \vspace{0.3cm}
10176 \vspace{0.3cm}
10178 \vspace{1cm}
10179 \newpage
10180 \section{Class: debug}
10181 \subsection{Fields for class: debug}
10182 {\bf Class debug has no fields.}
10183 \subsection{Additional RPCs associated with class: debug}
10184 \subsubsection{RPC name:~get\_all}
10186 {\bf Overview:}
10187 Return a list of all the debug records known to the system
10189 \noindent {\bf Signature:}
10190 \begin{verbatim} ((debug ref) Set) get_all (session_id s)\end{verbatim}
10193 \vspace{0.3cm}
10195 \noindent {\bf Return Type:}
10196 {\tt
10197 (debug ref) Set
10201 A list of all the IDs of all the debug records
10202 \vspace{0.3cm}
10203 \vspace{0.3cm}
10204 \vspace{0.3cm}
10205 \subsubsection{RPC name:~return\_failure}
10207 {\bf Overview:}
10208 Return an API 'successful' failure
10210 \noindent {\bf Signature:}
10211 \begin{verbatim} void return_failure (session_id s)\end{verbatim}
10214 \vspace{0.3cm}
10216 \noindent {\bf Return Type:}
10217 {\tt
10218 void
10223 \vspace{0.3cm}
10224 \vspace{0.3cm}
10225 \vspace{0.3cm}
10226 \subsubsection{RPC name:~create}
10228 {\bf Overview:}
10229 Create a new debug instance, and return its handle.
10231 \noindent {\bf Signature:}
10232 \begin{verbatim} (debug ref) create (session_id s, debug record args)\end{verbatim}
10235 \noindent{\bf Arguments:}
10238 \vspace{0.3cm}
10239 \begin{tabular}{|c|c|p{7cm}|}
10240 \hline
10241 {\bf type} & {\bf name} & {\bf description} \\ \hline
10242 {\tt debug record } & args & All constructor arguments \\ \hline
10244 \end{tabular}
10246 \vspace{0.3cm}
10248 \noindent {\bf Return Type:}
10249 {\tt
10250 debug ref
10254 reference to the newly created object
10255 \vspace{0.3cm}
10256 \vspace{0.3cm}
10257 \vspace{0.3cm}
10258 \subsubsection{RPC name:~destroy}
10260 {\bf Overview:}
10261 Destroy the specified debug instance.
10263 \noindent {\bf Signature:}
10264 \begin{verbatim} void destroy (session_id s, debug ref self)\end{verbatim}
10267 \noindent{\bf Arguments:}
10270 \vspace{0.3cm}
10271 \begin{tabular}{|c|c|p{7cm}|}
10272 \hline
10273 {\bf type} & {\bf name} & {\bf description} \\ \hline
10274 {\tt debug ref } & self & reference to the object \\ \hline
10276 \end{tabular}
10278 \vspace{0.3cm}
10280 \noindent {\bf Return Type:}
10281 {\tt
10282 void
10287 \vspace{0.3cm}
10288 \vspace{0.3cm}
10289 \vspace{0.3cm}
10290 \subsubsection{RPC name:~get\_by\_uuid}
10292 {\bf Overview:}
10293 Get a reference to the debug instance with the specified UUID.
10295 \noindent {\bf Signature:}
10296 \begin{verbatim} (debug ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
10299 \noindent{\bf Arguments:}
10302 \vspace{0.3cm}
10303 \begin{tabular}{|c|c|p{7cm}|}
10304 \hline
10305 {\bf type} & {\bf name} & {\bf description} \\ \hline
10306 {\tt string } & uuid & UUID of object to return \\ \hline
10308 \end{tabular}
10310 \vspace{0.3cm}
10312 \noindent {\bf Return Type:}
10313 {\tt
10314 debug ref
10318 reference to the object
10319 \vspace{0.3cm}
10320 \vspace{0.3cm}
10321 \vspace{0.3cm}
10322 \subsubsection{RPC name:~get\_record}
10324 {\bf Overview:}
10325 Get a record containing the current state of the given debug.
10327 \noindent {\bf Signature:}
10328 \begin{verbatim} (debug record) get_record (session_id s, debug ref self)\end{verbatim}
10331 \noindent{\bf Arguments:}
10334 \vspace{0.3cm}
10335 \begin{tabular}{|c|c|p{7cm}|}
10336 \hline
10337 {\bf type} & {\bf name} & {\bf description} \\ \hline
10338 {\tt debug ref } & self & reference to the object \\ \hline
10340 \end{tabular}
10342 \vspace{0.3cm}
10344 \noindent {\bf Return Type:}
10345 {\tt
10346 debug record
10350 all fields from the object
10351 \vspace{0.3cm}
10352 \vspace{0.3cm}
10353 \vspace{0.3cm}
10355 \vspace{1cm}
10356 \newpage
10357 \section{Error Handling}
10358 When a low-level transport error occurs, or a request is malformed at the HTTP
10359 or XML-RPC level, the server may send an XML-RPC Fault response, or the client
10360 may simulate the same. The client must be prepared to handle these errors,
10361 though they may be treated as fatal. On the wire, these are transmitted in a
10362 form similar to this:
10364 \begin{verbatim}
10365 <methodResponse>
10366 <fault>
10367 <value>
10368 <struct>
10369 <member>
10370 <name>faultCode</name>
10371 <value><int>-1</int></value>
10372 </member>
10373 <member>
10374 <name>faultString</name>
10375 <value><string>Malformed request</string></value>
10376 </member>
10377 </struct>
10378 </value>
10379 </fault>
10380 </methodResponse>
10381 \end{verbatim}
10383 All other failures are reported with a more structured error response, to
10384 allow better automatic response to failures, proper internationalisation of
10385 any error message, and easier debugging. On the wire, these are transmitted
10386 like this:
10388 \begin{verbatim}
10389 <struct>
10390 <member>
10391 <name>Status</name>
10392 <value>Failure</value>
10393 </member>
10394 <member>
10395 <name>ErrorDescription</name>
10396 <value>
10397 <array>
10398 <data>
10399 <value>MAP_DUPLICATE_KEY</value>
10400 <value>Customer</value>
10401 <value>eSpeil Inc.</value>
10402 <value>eSpeil Incorporated</value>
10403 </data>
10404 </array>
10405 </value>
10406 </member>
10407 </struct>
10408 \end{verbatim}
10410 Note that {\tt ErrorDescription} value is an array of string values. The
10411 first element of the array is an error code; the remainder of the array are
10412 strings representing error parameters relating to that code. In this case,
10413 the client has attempted to add the mapping {\tt Customer $\rightarrow$
10414 eSpiel Incorporated} to a Map, but it already contains the mapping
10415 {\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
10417 Each possible error code is documented in the following section.
10419 \subsection{Error Codes}
10421 \subsubsection{HOST\_CPU\_HANDLE\_INVALID}
10423 You gave an invalid host\_cpu handle. The host\_cpu may have recently been
10424 deleted. The handle parameter echoes the bad value given.
10426 \vspace{0.3cm}
10427 {\bf Signature:}
10428 \begin{verbatim}HOST_CPU_HANDLE_INVALID(handle)\end{verbatim}
10429 \begin{center}\rule{10em}{0.1pt}\end{center}
10431 \subsubsection{HOST\_HANDLE\_INVALID}
10433 You gave an invalid host handle. The host may have recently been deleted.
10434 The handle parameter echoes the bad value given.
10436 \vspace{0.3cm}
10437 {\bf Signature:}
10438 \begin{verbatim}HOST_HANDLE_INVALID(handle)\end{verbatim}
10439 \begin{center}\rule{10em}{0.1pt}\end{center}
10441 \subsubsection{INTERNAL\_ERROR}
10443 The server failed to handle your request, due to an internal error. The
10444 given message may give details useful for debugging the problem.
10446 \vspace{0.3cm}
10447 {\bf Signature:}
10448 \begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
10449 \begin{center}\rule{10em}{0.1pt}\end{center}
10451 \subsubsection{MAP\_DUPLICATE\_KEY}
10453 You tried to add a key-value pair to a map, but that key is already there.
10454 The key, current value, and the new value that you tried to set are all
10455 echoed.
10457 \vspace{0.3cm}
10458 {\bf Signature:}
10459 \begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
10460 \begin{center}\rule{10em}{0.1pt}\end{center}
10462 \subsubsection{MESSAGE\_METHOD\_UNKNOWN}
10464 You tried to call a method that does not exist. The method name that you
10465 used is echoed.
10467 \vspace{0.3cm}
10468 {\bf Signature:}
10469 \begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
10470 \begin{center}\rule{10em}{0.1pt}\end{center}
10472 \subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
10474 You tried to call a method with the incorrect number of parameters. The
10475 fully-qualified method name that you used, and the number of received and
10476 expected parameters are returned.
10478 \vspace{0.3cm}
10479 {\bf Signature:}
10480 \begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
10481 \begin{center}\rule{10em}{0.1pt}\end{center}
10483 \subsubsection{NETWORK\_ALREADY\_CONNECTED}
10485 You tried to create a PIF, but the network you tried to attach it to is
10486 already attached to some other PIF, and so the creation failed.
10488 \vspace{0.3cm}
10489 {\bf Signature:}
10490 \begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
10491 \begin{center}\rule{10em}{0.1pt}\end{center}
10493 \subsubsection{SESSION\_AUTHENTICATION\_FAILED}
10495 The credentials given by the user are incorrect, so access has been denied,
10496 and you have not been issued a session handle.
10498 \vspace{0.3cm}
10499 No parameters.
10500 \begin{center}\rule{10em}{0.1pt}\end{center}
10502 \subsubsection{SESSION\_INVALID}
10504 You gave an invalid session handle. It may have been invalidated by a
10505 server restart, or timed out. You should get a new session handle, using
10506 one of the session.login\_ calls. This error does not invalidate the
10507 current connection. The handle parameter echoes the bad value given.
10509 \vspace{0.3cm}
10510 {\bf Signature:}
10511 \begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
10512 \begin{center}\rule{10em}{0.1pt}\end{center}
10514 \subsubsection{SR\_HANDLE\_INVALID}
10516 You gave an invalid SR handle. The SR may have recently been deleted. The
10517 handle parameter echoes the bad value given.
10519 \vspace{0.3cm}
10520 {\bf Signature:}
10521 \begin{verbatim}SR_HANDLE_INVALID(handle)\end{verbatim}
10522 \begin{center}\rule{10em}{0.1pt}\end{center}
10524 \subsubsection{VBD\_HANDLE\_INVALID}
10526 You gave an invalid VBD handle. The VBD may have recently been deleted.
10527 The handle parameter echoes the bad value given.
10529 \vspace{0.3cm}
10530 {\bf Signature:}
10531 \begin{verbatim}VBD_HANDLE_INVALID(handle)\end{verbatim}
10532 \begin{center}\rule{10em}{0.1pt}\end{center}
10534 \subsubsection{VDI\_HANDLE\_INVALID}
10536 You gave an invalid VDI handle. The VDI may have recently been deleted.
10537 The handle parameter echoes the bad value given.
10539 \vspace{0.3cm}
10540 {\bf Signature:}
10541 \begin{verbatim}VDI_HANDLE_INVALID(handle)\end{verbatim}
10542 \begin{center}\rule{10em}{0.1pt}\end{center}
10544 \subsubsection{VIF\_HANDLE\_INVALID}
10546 You gave an invalid VIF handle. The VIF may have recently been deleted.
10547 The handle parameter echoes the bad value given.
10549 \vspace{0.3cm}
10550 {\bf Signature:}
10551 \begin{verbatim}VIF_HANDLE_INVALID(handle)\end{verbatim}
10552 \begin{center}\rule{10em}{0.1pt}\end{center}
10554 \subsubsection{VM\_BAD\_POWER\_STATE}
10556 You attempted an operation on a VM that was not in an appropriate power
10557 state at the time; for example, you attempted to start a VM that was
10558 already running. The parameters returned are the VM's UUID, and the
10559 expected and actual VM state at the time of the call.
10561 \vspace{0.3cm}
10562 {\bf Signature:}
10563 \begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
10564 \begin{center}\rule{10em}{0.1pt}\end{center}
10566 \subsubsection{VM\_HANDLE\_INVALID}
10568 You gave an invalid VM handle. The VM may have recently been deleted. The
10569 handle parameter echoes the bad value given.
10571 \vspace{0.3cm}
10572 {\bf Signature:}
10573 \begin{verbatim}VM_HANDLE_INVALID(handle)\end{verbatim}
10574 \begin{center}\rule{10em}{0.1pt}\end{center}
10576 \subsubsection{VTPM\_HANDLE\_INVALID}
10578 You gave an invalid VTPM handle. The VTPM may have recently been deleted.
10579 The handle parameter echoes the bad value given.
10581 \vspace{0.3cm}
10582 {\bf Signature:}
10583 \begin{verbatim}VTPM_HANDLE_INVALID(handle)\end{verbatim}
10584 \begin{center}\rule{10em}{0.1pt}\end{center}
10588 \newpage
10589 \section{DTD}
10590 General notes:
10591 \begin{itemize}
10592 \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)''
10593 \item Values of enumeration types are represented as strings (e.g. ``PAE'', ``3DNow!'')
10594 \item Object References are represented as UUIDs, written in string form
10595 \end{itemize}