mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 19:41:16 +00:00
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>
209 lines
5.6 KiB
XML
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>
|