On Wed, Mar 07, 2007 at 12:35:20PM +0000, Richard W.M. Jones wrote:
I've been looking into the parts of virtinst which try to probe
the
capabilities of the host directly, rather than being abstracted through
libvirt (for example, opening and parsing
/sys/hypervisor/properties/capabilities directly).
Attached is a proposed API for probing the capabilities and supported
guest architectures of the hypervisor / driver.
I've implemented the virCapabilities part already. My original
implementation of the guest architectures had virCapabilities containing
a list of supported architectures, but that doesn't nearly cover the
richness of what the underlying drivers could support, so I'm currently
separating that out into a separate virConnectGetGuestArchitectures call.
Let me know your opinions of this API.
This sounds too variable, adding an entry point per capability of
some of the hypervisor available will lead to just too many entry points
once the set of virtualization engines and associated benefits increase.
That's one of the places where I feel wy more comfortable returning an
XML description which can then be augmented as more features are added.
As an aside, the current virt-manager "choose paravirt /
fullvirt"
screen doesn't really capture the full, shall I say, ugliness of the
possible choices for architecture, particularly when we add qemu, kqemu,
and emulation in the mix. I suspect that presenting a list of
architectures here, perhaps with some options to show only paravirt,
show only fullvirt, show only accelerated ...
I'm not sure we should directly add something like the Architectures
to the API (I mean the structure), it's very hard to guess now if we know
all the informations which would be useful to return, and again, I would
feel way better if this was provided as an XML blob, possibly embedded in
the host capacities one.
Basically just turning the current virtinst lookups into libvirt APIs
sounds a bit premature to me, I would prefer something more versatile and
hence future-proof.
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/