libvirt/docs/schemas/domainsnapshot.rng
Peter Krempa 7076b4b72c snapshot: Add support for specifying snapshot disk backing type
Add support for specifying various types when doing snapshots. This will
later allow to do snapshots on network backed volumes. Disks of type
'volume' are not supported by snapshots (yet).

Also amend the test suite to check parsing of the various new disk
types that can now be specified.
2014-01-29 12:56:35 +01:00

196 lines
5.1 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>
<ref name='domain'/>
</choice>
</optional>
<optional>
<element name='parent'>
<element name='name'>
<text/>
</element>
</element>
</optional>
</interleave>
</element>
</define>
<define name='state'>
<choice>
<value>nostate</value>
<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='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>
<empty/>
</element>
</optional>
<ref name='disksnapshotdriver'/>
</interleave>
</group>
<group>
<attribute name='type'>
<value>block</value>
</attribute>
<interleave>
<optional>
<element name="source">
<attribute name="dev">
<ref name="absFilePath"/>
</attribute>
<empty/>
</element>
</optional>
<ref name='disksnapshotdriver'/>
</interleave>
</group>
<group>
<attribute name="type">
<value>network</value>
</attribute>
<interleave>
<optional>
<element name="source">
<ref name='diskSourceNetwork'/>
</element>
</optional>
<ref name='disksnapshotdriver'/>
</interleave>
</group>
</choice>
</group>
</choice>
</element>
</define>
<define name='disksnapshotdriver'>
<optional>
<element name='driver'>
<optional>
<attribute name='type'>
<ref name='storageFormat'/>
</attribute>
</optional>
<empty/>
</element>
</optional>
</define>
</grammar>