On 02/21/2012 03:46 PM, Igor Galić wrote:
So much for the starting conditions. You can find my
configuration here:
http://sprunge.us/gCVj (I'm attaching
it just in case the pastebin goes stale).
The first thing that is slightly irritating is that it
doesn't validate:
"""
Relax-NG validity error : Extra element kernel in interleave
web.xml:9: element kernel: Relax-NG validity error : Element os failed to validate
content
web.xml:8: element type: Relax-NG validity error : Error validating value
web.xml:8: element type: Relax-NG validity error : Element type failed to validate
content
web.xml:1: element domain: Relax-NG validity error : Invalid sequence in interleave
web.xml:1: element domain: Relax-NG validity error : Element domain failed to validate
content
web.xml fails to validate
Right now, the RNG says you can have either <kernel> or <boot> under
<os>, but not both. But the C code doesn't reject attempts to have
both, and I have to wonder if we are running into problems by allowing
both. And unfortunately, none of the tests/qemuxml2argvdata test files
include any use of <kernel>, so we aren't exercising this part of XML
parsing. Definitely some bugs to be fixed, but my problem is that I
don't know what behavior should be legal. Is there ever a use case to
combine both <kernel> and <boot> in the same image? Or are they really
distinct (<kernel> says to boot using an image in the host, <boot> says
to boot by using a kernel found in the guest device, whether that be a
guest disk device or a guest network interface for PXE boot)?
I'm hoping Dan has a bit more experience on this, given his work on
libvirt-sandbox.
"""
Interestingly, even if I remove some of the elements that
`virt-xml-validate` complains about via `virsh edit`, next
time I `edit`, or `dumpxml` it'll be back in place.
Hmm - that makes it sound like once we have both methods in memory, we
don't really have a way to remove one again. Also quite fishy.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org