libvirt/docs/schemas/domainsnapshot.rng
Peter Krempa ac88a8cfad docs: schemas: Add 'seclabel' for external disk snapshot
Allow using seclabels the same way as disk images allow it. Currently
the snapshot code copies the seclabels from the original image if no
seclabel is provided. Also there's no code change required as the
snapshot XML parser actually uses parts of the disk parser thus
seclabels are already parsed and formatted and even applied thus this is
just a formalization of our support for this.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2019-06-20 17:08:53 +02:00

209 lines
5.6 KiB
XML

<?xml version="1.0"?>
<!-- A Relax NG schema for the libvirt domain snapshot properties XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name='domainsnapshot'/>
</start>
<include href='domaincommon.rng'/>
<define name='domainsnapshot'>
<element name='domainsnapshot'>
<interleave>
<optional>
<element name='name'>
<text/>
</element>
</optional>
<optional>
<element name='description'>
<text/>
</element>
</optional>
<optional>
<element name='state'>
<ref name='state'/>
</element>
</optional>
<optional>
<element name='creationTime'>
<text/>
</element>
</optional>
<optional>
<element name='memory'>
<choice>
<attribute name='snapshot'>
<choice>
<value>no</value>
<value>internal</value>
</choice>
</attribute>
<group>
<optional>
<attribute name='snapshot'>
<value>external</value>
</attribute>
</optional>
<attribute name='file'>
<ref name='absFilePath'/>
</attribute>
</group>
</choice>
<empty/>
</element>
</optional>
<optional>
<element name='disks'>
<zeroOrMore>
<ref name='disksnapshot'/>
</zeroOrMore>
</element>
</optional>
<optional>
<element name='active'>
<choice>
<value>0</value>
<value>1</value>
</choice>
</element>
</optional>
<optional>
<choice>
<element name='domain'>
<element name='uuid'>
<ref name="UUID"/>
</element>
</element>
<!-- Nested grammar ensures that any of our overrides of
storagecommon/domaincommon defines do not conflict
with any domain.rng overrides. -->
<grammar>
<include href='domain.rng'/>
</grammar>
</choice>
</optional>
<optional>
<element name='parent'>
<element name='name'>
<text/>
</element>
</element>
</optional>
<optional>
<element name='cookie'>
<zeroOrMore>
<ref name='customElement'/>
</zeroOrMore>
</element>
</optional>
</interleave>
</element>
</define>
<define name='state'>
<choice>
<value>running</value>
<value>blocked</value>
<value>paused</value>
<value>shutdown</value>
<value>shutoff</value>
<value>crashed</value>
<value>disk-snapshot</value>
</choice>
</define>
<define name='storageSourceExtra' combine='choice'>
<!-- overrides the no-op version in storagecommon.rng -->
<ref name='disksnapshotdriver'/>
</define>
<define name='disksnapshot'>
<element name='disk'>
<attribute name='name'>
<choice>
<ref name='diskTarget'/>
<ref name='absFilePath'/>
</choice>
</attribute>
<choice>
<attribute name='snapshot'>
<value>no</value>
</attribute>
<attribute name='snapshot'>
<value>internal</value>
</attribute>
<group>
<optional>
<attribute name='snapshot'>
<value>external</value>
</attribute>
</optional>
<choice>
<group>
<optional>
<attribute name='type'>
<value>file</value>
</attribute>
</optional>
<interleave>
<optional>
<element name='source'>
<optional>
<attribute name='file'>
<ref name='absFilePath'/>
</attribute>
</optional>
<optional>
<ref name='storageStartupPolicy'/>
</optional>
<zeroOrMore>
<ref name='devSeclabel'/>
</zeroOrMore>
<empty/>
</element>
</optional>
<ref name='storageSourceExtra'/>
</interleave>
</group>
<group>
<attribute name='type'>
<value>block</value>
</attribute>
<interleave>
<optional>
<element name="source">
<attribute name="dev">
<ref name="absFilePath"/>
</attribute>
<zeroOrMore>
<ref name='devSeclabel'/>
</zeroOrMore>
<empty/>
</element>
</optional>
<ref name='storageSourceExtra'/>
</interleave>
</group>
<ref name='diskSourceNetwork'/>
</choice>
</group>
</choice>
</element>
</define>
<define name='disksnapshotdriver'>
<optional>
<element name='driver'>
<optional>
<attribute name='type'>
<ref name='storageFormatBacking'/>
</attribute>
</optional>
<empty/>
</element>
</optional>
</define>
</grammar>