Hi,
I'm still working on the VMX config to domain XML mapping for
dump/create XML, but it's not complete yet. I got distracted by other
urgent, Uni related work that had to be done first.
So I won't be able to complete the dump/create XML implementation
until tomorrow (freeze for the 0.6.5 release) that was requested in
order to get the driver merged into the official repository. But well,
with the short release cycle of libvirt not much is lost :)
Some details on the VMX config to domain XML mapping:
I claimed before that I would need to read most information needed for
dump XML from the VMX config file. That's not true. Possibly all
information can be retrieved via VI API, but the information is
scattered in various places in the VI API object model. I'm currently
heading for reading this information from the VMX config file, because
all needed information is concentrated in this file. Also, if one
changes properties of a virtual machine via VI API and this properties
is reflected in the VMX config, the ESX host updates the VMX config,
so the information is kept in sync between the object model and the
config file.
I guess, that the VMX config files contains enough information to fill
all or at least most fields of a virDomainDef. So the first goal is to
fill a virDomainDef for dump XML.
The next goal would be a basic create XML. I claimed before that I
would need to write an VMX config file to the ESX host in order to
create a new virtual machine, but as I dig trough the VI API in more
detail, it seems that this claim maybe false. I'll just have to test
this, but haven't had time to do it yet.
One problem here is the essential guestOS field of the VMX config, see
http://sanbarrow.com/vmx/vmx-guestos.html . For a first try I would
set it to 'other' by default, because there is currently no field
available in the domain XML to map this information to. But to allow
the user to set this filed, I would want to extend to domain XML
definition in order to reuse existing code. So how would I do this?
Currently I'm just using the virDomainDef struct and the related parse
and format functions. One option would be to add a guest field to the
virDomainOSDef struct and extend the parse and format functions to
handle it. The parse and format functions take flags already, so a
flag could be added to indicate if the guest field should be handled
or not (just like the VMX extension for the virConfParser).
Regards,
Matthias