On 04/15/2014 03:43 PM, Jiri Denemark wrote:
On Mon, Apr 14, 2014 at 16:54:16 -0600, Eric Blake wrote:
> Disk snapshots use a subset of <disk> sources (no directory or
> pool support yet, and while domain disks support a startupPolicy,
> it doesn't make sense for snapshots). This patch lets the two
> RelaxNG grammars share a bit more code, as well as factoring
> things into pieces that will be easier to move to a common file
> for sharing with storage volumes. It relies on the ability
> to override definitions as part of an include, set up in the
> previous patch.
>
> The diff is a bit hard to read, because it mixes reindentation
> with refactoring; 'git diff -b --patience' may help.
>
>
> + <define name='disksnapshotsource'>
> + <choice>
> + <ref name='diskSourceFile'/>
> + <ref name='diskSourceBlock'/>
> + <ref name='diskSourceNetwork'/>
> + </choice>
> + </define>
This would allow <ref name='devSeclabel'/> in
/domainsnapshot/disks/disk/source even though it was not allowed before.
Indeed, but that is intentional - it SHOULD be possible to specify the
label that libvirt applies to the new element of a backing chain. But
I'm fine splitting the work to add seclabel support in snapshots as a
later commit.
For example, the attached XML would be considered valid after this
patch. And I see the follow-up patches add more stuff that is allowed in
domain snapshot XML however there's no code that would actually use the
new stuff, is it?
Not yet, so saving the RNG changes until the code changes are also in
place is fine.
I think we should take the changes in domaincommon.rng
while leaving domainsnapshot.rng alone. You started playing with making
some stuff usable only in domain XML and another stuff only in
domain snapshot XML but unfortunately there's a lot of other elements
that would need similar treatment. Making both XMLs reuse the same
source schema is a great idea but it's going to be a time-consuming task
and the possibility for the result to become even less readable than two
distinct definitions is very high.
ACK to the domaincommon.rng part.
Thanks for picking up on this and committing the uncontroversial parts
while I was offline last week. Now I get to review your series, and
rebase my remaining work on top of the additional progress. :)
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org