[libvirt] My beefs with the libvirt XML configuration format
Daniel P. Berrange
berrange at redhat.com
Fri Dec 11 10:12:48 UTC 2009
On Fri, Dec 11, 2009 at 08:09:33AM +0100, Daniel Veillard wrote:
> On Thu, Dec 10, 2009 at 06:07:13PM +0000, Daniel P. Berrange wrote:
> > There should be an option to validate the XML input, either by
> > providing a VIR_DOMAIN_XML_VALIDATE flag with the APIs which
> > accept XML as input, or by having virsh edit doing validation
> > after the editor exits.
> I think I suggested a couple of time to have the input XML data
> be validated at the API level, but we don't want to do this
> systematically, this would create IMHO more problems it can solve.
> Using a flag and/or activating it when libvirt conf is in debug mode
> would both make sense.
> > This would also allow virsh to re-launch the editor upon error
> > and let you correct the mistake instead of forcing you to start
> > again from scratch.
> The schemas validation won't be perfect in any way, for example
> trying to limit the list of allowed ethernet adapter based on the
> hypervisor type is nearly impossible even with Relax-NG since we
> differentiate based on an attribute in the top level element (this
> would force to basically write parallel schemas and become completely
> unmaintainable). Relax-NG validation also will provide out of context
> error messages, while the conf parser can give way better diagnostics.
I think it is a mistake that our current schemas try to validate the
content of attributes such as ethernet adapter name. Increasingly we
in a situation where the allowed values are dynamically determined on
the fly. The schema would be more useful if it simply validated that
it was a string a-Z,0-9, and didn't try to check explicit enumeration
of values there. ie just validate basic syntax, and not semantics.
The original poster's problem of 'pc' vs 'pc-0.11' is a good example
of validating the individual values is bad - 'pc-0.11' is dynamically
pulled from the QEMU binary so there's no hope of the schema ever
being aware of that.
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list