On Tue, Jul 27, 2010 at 03:20:42PM +0200, Jean-Baptiste Rouault wrote:
Hi all,
I'm working on the hynesim project (
http://www.hynesim.org
http://blog.hynesim.org).
We are going to add VMware Workstation support to hynesim,
so we would like to contribute to the development of a libvirt driver.
There probably are multiple ways of doing this, one of them could
be to use the VIX C API provided by VMware :
http://www.vmware.com/support/developer/vix-api/
However, the VIX license seems to be quite restrictive :
http://www.vmware.com/download/eula/vixapi_eula.html
I'm not a license expert so I don't know if this license forbids
using the API in software like libvirt.
We had a look at the VIX Licence and it wasn't pretty, this EULA
seems to directly try to prevent reuse for anything except toying
with it.
Another big problem is that it's not available for distribution
not packaged, it's a download from VMWare, i.e. it won't be present
in any build installation of distribution I think. As a result the
dependancy will make this impossible to support in default builds,
the only way being to download the vix library, and then rebuild
libvirt locally. Very painful !
Another possibility could be to run VMware command line tools
from libvirt to control guests.
That sounds quite a better option, first we avoid the licencing
tie in, second we can have the driver detect at runtime if the command
line tools are available, and then activate or not the driver. This
allows to provide the compiled support in all libvirt builds, even
if only a fraction of the users may actually use VMware Workstation.
So really it sounds like making the driver call directly the
command line tools is the right approach.
Code wise the driver should be installed in a directory separated
from src/esx , and some tweaking might be needed to 'export' the
ESX config parser and make it available from there, but that should
not be too hard really.
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/