ia64/xen-unstable

changeset 12154:2ec35abfd9a2

Datamodel changes adding some basic vTPM extensions to the API that
make its handling similar to that of VBD etc.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
author Ewan Mellor <ewan@xensource.com>
date Wed Oct 25 20:44:01 2006 +0100 (2006-10-25)
parents 0bf7d37bcfdb
children 3ca584553972
files docs/xen-api/xenapi-datamodel.tex
line diff
     1.1 --- a/docs/xen-api/xenapi-datamodel.tex	Wed Oct 25 20:40:49 2006 +0100
     1.2 +++ b/docs/xen-api/xenapi-datamodel.tex	Wed Oct 25 20:44:01 2006 +0100
     1.3 @@ -32,6 +32,7 @@ Name & Description \\
     1.4  {\tt SR} & A storage repository \\
     1.5  {\tt VDI} & A virtual disk image \\
     1.6  {\tt VBD} & A virtual block device \\
     1.7 +{\tt VTPM} & A virtual TPM device \\
     1.8  {\tt user} & A user of the system \\
     1.9  {\tt debug} & A basic class for testing \\
    1.10  \hline
    1.11 @@ -49,6 +50,7 @@ VBD.VM & VM.VBDs & one-to-many\\
    1.12  VIF.VM & VM.VIFs & one-to-many\\
    1.13  VIF.network & network.VIFs & one-to-many\\
    1.14  SR.VDIs & VDI.SR & many-to-one\\
    1.15 +VTPM.VM & VM.VTPMs & one-to-many\\
    1.16  host.resident\_VMs & VM.resident\_on & many-to-one\\
    1.17  host.host\_CPUs & host\_cpu.host & many-to-one\\
    1.18  \hline
    1.19 @@ -1049,8 +1051,7 @@ Quals & Field & Type & Description \\
    1.20  $\mathit{RW}$ &  {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
    1.21  $\mathit{RO}_\mathit{ins}$ &  {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
    1.22  $\mathit{RO}_\mathit{ins}$ &  {\tt VBDs} & (VBD ref) Set & virtual block devices \\
    1.23 -$\mathit{RO}_\mathit{ins}$ &  {\tt TPM/instance} & int & included for TPM support \\
    1.24 -$\mathit{RO}_\mathit{ins}$ &  {\tt TPM/backend} & int & included for TPM support \\
    1.25 +$\mathit{RO}_\mathit{ins}$ &  {\tt VTPM} & (VTPM ref) Set & virtual TPMs \\
    1.26  $\mathit{RW}$ &  {\tt bios/boot} & string & device to boot the guest from \\
    1.27  $\mathit{RW}$ &  {\tt platform/std\_VGA} & bool & emulate standard VGA instead of cirrus logic \\
    1.28  $\mathit{RW}$ &  {\tt platform/serial} & string & redirect serial port to pty \\
    1.29 @@ -2796,13 +2797,13 @@ value of the field
    1.30  \vspace{0.3cm}
    1.31  \vspace{0.3cm}
    1.32  \vspace{0.3cm}
    1.33 -\subsubsection{RPC name:~get\_TPM\_instance}
    1.34 -
    1.35 -{\bf Overview:} 
    1.36 -get accessor message derived from field TPM/instance of object VM
    1.37 -
    1.38 - \noindent {\bf Signature:} 
    1.39 -\begin{verbatim} int get_TPM_instance (session_id s, VM ref self)\end{verbatim}
    1.40 +\subsubsection{RPC name:~get\_VTPMs}
    1.41 +
    1.42 +{\bf Overview:} 
    1.43 +get accessor message derived from field VTPMs of object VM
    1.44 +
    1.45 + \noindent {\bf Signature:} 
    1.46 +\begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
    1.47  
    1.48  
    1.49  \noindent{\bf Arguments:}
    1.50 @@ -2820,39 +2821,7 @@ get accessor message derived from field 
    1.51  
    1.52   \noindent {\bf Return Type:} 
    1.53  {\tt 
    1.54 -int
    1.55 -}
    1.56 -
    1.57 -
    1.58 -value of the field
    1.59 -\vspace{0.3cm}
    1.60 -\vspace{0.3cm}
    1.61 -\vspace{0.3cm}
    1.62 -\subsubsection{RPC name:~get\_TPM\_backend}
    1.63 -
    1.64 -{\bf Overview:} 
    1.65 -get accessor message derived from field TPM/backend of object VM
    1.66 -
    1.67 - \noindent {\bf Signature:} 
    1.68 -\begin{verbatim} int get_TPM_backend (session_id s, VM ref self)\end{verbatim}
    1.69 -
    1.70 -
    1.71 -\noindent{\bf Arguments:}
    1.72 -
    1.73 - 
    1.74 -\vspace{0.3cm}
    1.75 -\begin{tabular}{|c|c|p{7cm}|}
    1.76 - \hline
    1.77 -{\bf type} & {\bf name} & {\bf description} \\ \hline
    1.78 -{\tt VM ref } & self & object instance \\ \hline 
    1.79 -
    1.80 -\end{tabular}
    1.81 -
    1.82 -\vspace{0.3cm}
    1.83 -
    1.84 - \noindent {\bf Return Type:} 
    1.85 -{\tt 
    1.86 -int
    1.87 +(VTPM ref) Set
    1.88  }
    1.89  
    1.90  
    1.91 @@ -8759,6 +8728,367 @@ references to all objects
    1.92  
    1.93  \vspace{1cm}
    1.94  \newpage
    1.95 +\section{Class: VTPM}
    1.96 +\subsection{Fields for class: VTPM}
    1.97 +\begin{longtable}{|lllp{0.38\textwidth}|}
    1.98 +\hline
    1.99 +\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
   1.100 +\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A virtual TPM device}} \\
   1.101 +\hline
   1.102 +Quals & Field & Type & Description \\
   1.103 +\hline
   1.104 +$\mathit{RO}_\mathit{run}$ &  {\tt uuid} & string & unique identifier/object reference \\
   1.105 +$\mathit{RO}_\mathit{ins}$ & {\tt type} & driver\_type & the style of driver \\
   1.106 +$\mathit{RO}_\mathit{ins}$ &  {\tt VM} & VM ref & the virtual machine \\
   1.107 +$\mathit{RO}_\mathit{ins}$ &  {\tt backend} & VM ref & the domain where the backend is located \\
   1.108 +$\mathit{RO}_\mathit{ins}$ &  {\tt instance} & int & the instance number the virtual TPM represents \\
   1.109 +\hline
   1.110 +\end{longtable}
   1.111 +\subsection{Additional RPCs associated with class: VTPM}
   1.112 +\subsubsection{RPC name:~get\_uuid}
   1.113 +
   1.114 +{\bf Overview:} 
   1.115 +get accessor message derived from field uuid of object VTPM
   1.116 +
   1.117 + \noindent {\bf Signature:} 
   1.118 +\begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
   1.119 +
   1.120 +
   1.121 +\noindent{\bf Arguments:}
   1.122 +
   1.123 + 
   1.124 +\vspace{0.3cm}
   1.125 +\begin{tabular}{|c|c|p{7cm}|}
   1.126 + \hline
   1.127 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.128 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.129 +
   1.130 +\end{tabular}
   1.131 +
   1.132 +\vspace{0.3cm}
   1.133 +
   1.134 + \noindent {\bf Return Type:} 
   1.135 +{\tt 
   1.136 +string
   1.137 +}
   1.138 +
   1.139 +
   1.140 +value of the field
   1.141 +\vspace{0.3cm}
   1.142 +\vspace{0.3cm}
   1.143 +\vspace{0.3cm}
   1.144 +\subsubsection{RPC name:~get\_type}
   1.145 +
   1.146 +{\bf Overview:} 
   1.147 +get accessor message derived from field type of object VTPM
   1.148 +
   1.149 + \noindent {\bf Signature:} 
   1.150 +\begin{verbatim} (driver_type) get_type (session_id s, VTPM ref self)\end{verbatim}
   1.151 +
   1.152 +
   1.153 +\noindent{\bf Arguments:}
   1.154 +
   1.155 + 
   1.156 +\vspace{0.3cm}
   1.157 +\begin{tabular}{|c|c|p{7cm}|}
   1.158 + \hline
   1.159 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.160 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.161 +
   1.162 +\end{tabular}
   1.163 +
   1.164 +\vspace{0.3cm}
   1.165 +
   1.166 + \noindent {\bf Return Type:} 
   1.167 +{\tt 
   1.168 +driver\_type
   1.169 +}
   1.170 +
   1.171 +
   1.172 +value of the field
   1.173 +\vspace{0.3cm}
   1.174 +\vspace{0.3cm}
   1.175 +\vspace{0.3cm}
   1.176 +\subsubsection{RPC name:~get\_VM}
   1.177 +
   1.178 +{\bf Overview:} 
   1.179 +get accessor message derived from field VM of object VTPM
   1.180 +
   1.181 + \noindent {\bf Signature:} 
   1.182 +\begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
   1.183 +
   1.184 +
   1.185 +\noindent{\bf Arguments:}
   1.186 +
   1.187 + 
   1.188 +\vspace{0.3cm}
   1.189 +\begin{tabular}{|c|c|p{7cm}|}
   1.190 + \hline
   1.191 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.192 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.193 +
   1.194 +\end{tabular}
   1.195 +
   1.196 +\vspace{0.3cm}
   1.197 +
   1.198 + \noindent {\bf Return Type:} 
   1.199 +{\tt 
   1.200 +VM ref
   1.201 +}
   1.202 +
   1.203 +
   1.204 +value of the field
   1.205 +\vspace{0.3cm}
   1.206 +\vspace{0.3cm}
   1.207 +\vspace{0.3cm}
   1.208 +\subsubsection{RPC name:~get\_backend}
   1.209 +
   1.210 +{\bf Overview:} 
   1.211 +get accessor message derived from field backend of object VTPM
   1.212 +
   1.213 + \noindent {\bf Signature:} 
   1.214 +\begin{verbatim} int get_backend (session_id s, VTPM ref self)\end{verbatim}
   1.215 +
   1.216 +
   1.217 +\noindent{\bf Arguments:}
   1.218 +
   1.219 + 
   1.220 +\vspace{0.3cm}
   1.221 +\begin{tabular}{|c|c|p{7cm}|}
   1.222 + \hline
   1.223 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.224 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.225 +
   1.226 +\end{tabular}
   1.227 +
   1.228 +\vspace{0.3cm}
   1.229 +
   1.230 + \noindent {\bf Return Type:} 
   1.231 +{\tt 
   1.232 +int
   1.233 +}
   1.234 +
   1.235 +
   1.236 +value of the field
   1.237 +\vspace{0.3cm}
   1.238 +\vspace{0.3cm}
   1.239 +\vspace{0.3cm}
   1.240 +\subsubsection{RPC name:~get\_instance}
   1.241 +
   1.242 +{\bf Overview:} 
   1.243 +get accessor message derived from field instance of object VTPM
   1.244 +
   1.245 + \noindent {\bf Signature:} 
   1.246 +\begin{verbatim} int get_instance (session_id s, VTPM ref self)\end{verbatim}
   1.247 +
   1.248 +
   1.249 +\noindent{\bf Arguments:}
   1.250 +
   1.251 + 
   1.252 +\vspace{0.3cm}
   1.253 +\begin{tabular}{|c|c|p{7cm}|}
   1.254 + \hline
   1.255 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.256 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.257 +
   1.258 +\end{tabular}
   1.259 +
   1.260 +\vspace{0.3cm}
   1.261 +
   1.262 + \noindent {\bf Return Type:} 
   1.263 +{\tt 
   1.264 +int
   1.265 +}
   1.266 +
   1.267 +
   1.268 +value of the field
   1.269 +\vspace{0.3cm}
   1.270 +\vspace{0.3cm}
   1.271 +\vspace{0.3cm}
   1.272 +\subsubsection{RPC name:~create}
   1.273 +
   1.274 +{\bf Overview:} 
   1.275 +constructor for class VTPM
   1.276 +
   1.277 + \noindent {\bf Signature:} 
   1.278 +\begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\end{verbatim}
   1.279 +
   1.280 +
   1.281 +\noindent{\bf Arguments:}
   1.282 +
   1.283 + 
   1.284 +\vspace{0.3cm}
   1.285 +\begin{tabular}{|c|c|p{7cm}|}
   1.286 + \hline
   1.287 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.288 +{\tt VTPM record } & args & All constructor arguments \\ \hline 
   1.289 +
   1.290 +\end{tabular}
   1.291 +
   1.292 +\vspace{0.3cm}
   1.293 +
   1.294 + \noindent {\bf Return Type:} 
   1.295 +{\tt 
   1.296 +VTPM ref
   1.297 +}
   1.298 +
   1.299 +
   1.300 +reference to the newly created object
   1.301 +\vspace{0.3cm}
   1.302 +\vspace{0.3cm}
   1.303 +\vspace{0.3cm}
   1.304 +\subsubsection{RPC name:~destroy}
   1.305 +
   1.306 +{\bf Overview:} 
   1.307 +destructor for class VTPM
   1.308 +
   1.309 + \noindent {\bf Signature:} 
   1.310 +\begin{verbatim} void destroy (session_id s, VTPM ref self)\end{verbatim}
   1.311 +
   1.312 +
   1.313 +\noindent{\bf Arguments:}
   1.314 +
   1.315 + 
   1.316 +\vspace{0.3cm}
   1.317 +\begin{tabular}{|c|c|p{7cm}|}
   1.318 + \hline
   1.319 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.320 +{\tt VTPM ref } & self & object instance \\ \hline 
   1.321 +
   1.322 +\end{tabular}
   1.323 +
   1.324 +\vspace{0.3cm}
   1.325 +
   1.326 + \noindent {\bf Return Type:} 
   1.327 +{\tt 
   1.328 +void
   1.329 +}
   1.330 +
   1.331 +
   1.332 +
   1.333 +\vspace{0.3cm}
   1.334 +\vspace{0.3cm}
   1.335 +\vspace{0.3cm}
   1.336 +\subsubsection{RPC name:~get\_by\_uuid}
   1.337 +
   1.338 +{\bf Overview:} 
   1.339 +returns the VTPM instance with a particular uuid
   1.340 +
   1.341 + \noindent {\bf Signature:} 
   1.342 +\begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
   1.343 +
   1.344 +
   1.345 +\noindent{\bf Arguments:}
   1.346 +
   1.347 + 
   1.348 +\vspace{0.3cm}
   1.349 +\begin{tabular}{|c|c|p{7cm}|}
   1.350 + \hline
   1.351 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.352 +{\tt string } & uuid & UUID of object to return \\ \hline 
   1.353 +
   1.354 +\end{tabular}
   1.355 +
   1.356 +\vspace{0.3cm}
   1.357 +
   1.358 + \noindent {\bf Return Type:} 
   1.359 +{\tt 
   1.360 +VTPM ref
   1.361 +}
   1.362 +
   1.363 +
   1.364 +reference to the object
   1.365 +\vspace{0.3cm}
   1.366 +\vspace{0.3cm}
   1.367 +\vspace{0.3cm}
   1.368 +\subsubsection{RPC name:~get\_record}
   1.369 +
   1.370 +{\bf Overview:} 
   1.371 +returns a record containing the state of an instance of class VTPM
   1.372 +
   1.373 + \noindent {\bf Signature:} 
   1.374 +\begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
   1.375 +
   1.376 +
   1.377 +\noindent{\bf Arguments:}
   1.378 +
   1.379 + 
   1.380 +\vspace{0.3cm}
   1.381 +\begin{tabular}{|c|c|p{7cm}|}
   1.382 + \hline
   1.383 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.384 +{\tt VTPM ref } & self & reference to the object \\ \hline 
   1.385 +
   1.386 +\end{tabular}
   1.387 +
   1.388 +\vspace{0.3cm}
   1.389 +
   1.390 + \noindent {\bf Return Type:} 
   1.391 +{\tt 
   1.392 +VTPM record
   1.393 +}
   1.394 +
   1.395 +
   1.396 +all fields from the object
   1.397 +\vspace{0.3cm}
   1.398 +\vspace{0.3cm}
   1.399 +\vspace{0.3cm}
   1.400 +\subsubsection{RPC name:~get\_record\_internal}
   1.401 +
   1.402 +{\bf Overview:} 
   1.403 +returns a record containing the state of an instance of class VTPM
   1.404 +
   1.405 + \noindent {\bf Signature:} 
   1.406 +\begin{verbatim} (VTPM record) get_record_internal (session_id s, VTPM ref self)\end{verbatim}
   1.407 +
   1.408 +
   1.409 +\noindent{\bf Arguments:}
   1.410 +
   1.411 + 
   1.412 +\vspace{0.3cm}
   1.413 +\begin{tabular}{|c|c|p{7cm}|}
   1.414 + \hline
   1.415 +{\bf type} & {\bf name} & {\bf description} \\ \hline
   1.416 +{\tt VTPM ref } & self & reference to the object \\ \hline 
   1.417 +
   1.418 +\end{tabular}
   1.419 +
   1.420 +\vspace{0.3cm}
   1.421 +
   1.422 + \noindent {\bf Return Type:} 
   1.423 +{\tt 
   1.424 +VTPM record
   1.425 +}
   1.426 +
   1.427 +
   1.428 +all fields from the object, including implementation-only ones
   1.429 +\vspace{0.3cm}
   1.430 +\vspace{0.3cm}
   1.431 +\vspace{0.3cm}
   1.432 +\subsubsection{RPC name:~get\_all}
   1.433 +
   1.434 +{\bf Overview:} 
   1.435 +returns a set of references to all objects
   1.436 +
   1.437 + \noindent {\bf Signature:} 
   1.438 +\begin{verbatim} ((VTPM ref) Set) get_all (session_id s)\end{verbatim}
   1.439 +
   1.440 +
   1.441 +\vspace{0.3cm}
   1.442 +
   1.443 + \noindent {\bf Return Type:} 
   1.444 +{\tt 
   1.445 +(VTPM ref) Set
   1.446 +}
   1.447 +
   1.448 +
   1.449 +references to all objects
   1.450 +\vspace{0.3cm}
   1.451 +\vspace{0.3cm}
   1.452 +\vspace{0.3cm}
   1.453 +
   1.454 +\vspace{1cm}
   1.455 +\newpage
   1.456  \section{Class: user}
   1.457  \subsection{Fields for class: user}
   1.458  \begin{longtable}{|lllp{0.38\textwidth}|}