On Wed, Jul 02, 2014 at 10:32:59AM -0400, John Ferlan wrote:
I was trying to envision use cases - that is how is this expected to
be
used and what "knowledge" is assumed of the caller/user vs. being
designed to a more naive user trying to glean information about what's
available. You have a very specific use case described - can I determine
if vfio is supported, but that requires someone knowing quite a bit of
information that isn't easily accessible unless you read sources or have
a bit of history built up.
For the domcapabilities command that eventually gets added - how does
one know what to provide for the 4 options without knowing a bit about
the environment. It seems the assumption is the user knows to pass
certain elements.
The 'virttype' is pretty easy - that comes from the connection - so I
wonder why it's a parameter to be provided. Does one really have to have
a connection to get the data?
The 'emulatorbin' is less obvious. If it's not passed, there is a way to
get the default value given that you have a virttype, an os type, and an
os arch using virCapabilitiesDefaultGuestEmulator(). What if someone
provides "/usr/bin/qemu-kvm" or "/usr/libexec/qemu-kvm" or is there
an
expectation of /usr/bin/qemu-system-x86_64?
The 'arch' requires a bit more knowledge, but is certainly
"obtainable"
as a default by the current host arch, right? There's also
virCapabilitiesDefaultGuestArch(). However, if someone was looking to
find out what was running on the remote connection (not the local
machine), then that assumption would be incorrect. Seems we should be
able to figure out what arch is associated with the connection.
I think 'machine' is perhaps the most odd to provide; however, like arch
and emulatorbin, there is virCapabilitiesDefaultGuestMachine() to help
you out. For this if one passed "pc" does that work - or do they have
to pass something like "pc-i440fx-1.6" with the next question being how
would they know to generate that?
The valid values for all those parameters are listed in the main
<capabilities> XML under the <guest> sections. The app is of course
free to ask about support for other non-listed values if they have
a custom emulator binary they're passing in.
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|