diff options
Diffstat (limited to 'docs/xen-api/todo.tex')
-rw-r--r-- | docs/xen-api/todo.tex | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/docs/xen-api/todo.tex b/docs/xen-api/todo.tex new file mode 100644 index 0000000000..2778ccce55 --- /dev/null +++ b/docs/xen-api/todo.tex @@ -0,0 +1,140 @@ +% +% Copyright (c) 2006 XenSource, Inc. +% +% Permission is granted to copy, distribute and/or modify this document under +% the terms of the GNU Free Documentation License, Version 1.2 or any later +% version published by the Free Software Foundation; with no Invariant +% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the +% license is included in the section entitled +% "GNU Free Documentation License" or the file fdl.tex. +% +% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop. +% + +\section{To-Do} + +Lots and lots! Including: + +\subsection{Clarity} + +\begin{itemize} + +\item Roll constructors and get\_by\_uuid etc (section 1.2) into section 2 so +that it is clearer that each class has these. + +\item Emphasise that enums are strings on the wire, and so are not restricted +to a certain number of bits. + +\item Clarify return values, in particular that void means return a status +code, potential error description, but otherwise no value. + +\item Talk about UUID generation. + +\item Clarify session behaviour wrt timeouts and disconnects. + +\item Clarify behaviour of progress field on asyncrhonous request polling when +that request fails. + +\end{itemize} + +\subsection{Content} + +\subsubsection{Model} + +\begin{itemize} + +\item Improve the set of available power\_states and corresponding lifecycle +semantics. Rename power\_state, maybe. + +\item Specify the CPU scheduler configuration properly, inc CPU affinity, +weights, etc. + +\item Add Vm.architecture and Host.compatible\_architecture fields. + +\item Add migration calls, including the ability to test whether a migration +will succeed, and authentication token exchange. + +\item Improve asynchronous task handling, with a registration call, a +``blocking poll'' call, and an explicit notification destination. Registration +for ``power\_state'' is useful. + +\item Specify that session keys outlive the HTTP session, and add a timeout +for them (configurable in the tools). + +\item Add places for people to store extra data (``otherConfig'' perhaps) + +\item Specify how hardware UUIDs are used / accessed. + +\item Marking VDIs as exclusive / shareable (locking?) + +\item Consider how to represent CDROMs (as VDIs?) + +\item Define lists of exceptions which may be thrown by each RPC, including +error codes and parameters. + +\item Host characteristics: minimum amount of memory, TPM, network bandwidth, +amount of host memory, amount consumed by VMs, max amount available for new +VMs? + +\item Cooked resource monitoring interface. + +\item Network needs additional attributes that provide media characteristics +of the NIC: + +\begin{itemize} + +\item RO bandwidth integer Bandwidth in mbps +\item RO latency integer time in ms for an icmp roundtrip to a host on the +same subnet. + +\end{itemize} + +\item TPM +\begin{itemize} + +\item Would it not be better to have a class TPM and a member TPMs ((TPM ref) +Set) containing an array of zero or one references to TPMs? I assume that +an empty array would make it clear that no TPM is associated with the VM +instead of encoding its existence into TPM/instance or TPM/backend +somehow. The current members instance and backend could then be moved into +the TPM class. + +\item Also a Xen system can be running an access control policy where each +VM's run-time access to resources is restricted by the label it has been given +compared to those of the resources. Currently a VM's configuration file may +contain a line like access\_control[policy='$<$name of the system's +policy$>$',label='$<$label given to VM$>$']. I think the identifiers 'policy' +and 'label' should also be part of the VM class either directly in the form +'access\_control/policy' or indirectly in an access\_control class. + +\end{itemize} + +\item Mike Day's Vm.profile field? + +\item Clone customisation? + +\item NIC teaming? The NIC field of the Network class should be a list (Set) +so that we can signify NIC teaming. (Combining physical NICs in a single host +interface to achieve greater bandwidth). + +\end{itemize} + +\subsubsection{Transport} + +\begin{itemize} + +\item Allow non-HTTP transports. Explicitly allow stdio transport, for SSH. + +\end{itemize} + +\subsubsection{Authentication} + +\begin{itemize} + +\item Delegation to the transport layer. + +\item Extend PAM exchange across the wire. + +\item Fine-grained access control. + +\end{itemize} |