summaryrefslogtreecommitdiffstats
path: root/src/main/resources/libvirt/rng/domainsnapshot.rng
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/resources/libvirt/rng/domainsnapshot.rng')
-rw-r--r--src/main/resources/libvirt/rng/domainsnapshot.rng246
1 files changed, 246 insertions, 0 deletions
diff --git a/src/main/resources/libvirt/rng/domainsnapshot.rng b/src/main/resources/libvirt/rng/domainsnapshot.rng
new file mode 100644
index 0000000..45f01b9
--- /dev/null
+++ b/src/main/resources/libvirt/rng/domainsnapshot.rng
@@ -0,0 +1,246 @@
+<?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>
+ <grammar>
+ <include href="inactiveDomain.rng"/>
+ </grammar>
+ </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="snapshotDeleteInProgress">
+ <optional>
+ <element name="snapshotDeleteInProgress">
+ <empty/>
+ </element>
+ </optional>
+ </define>
+
+ <define name="disksnapshot">
+ <element name="disk">
+ <attribute name="name">
+ <choice>
+ <ref name="diskTargetDev"/>
+ <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>
+ <optional>
+ <ref name="diskSourceCommon"/>
+ </optional>
+ <optional>
+ <ref name="encryption"/>
+ </optional>
+ <empty/>
+ </element>
+ </optional>
+ <ref name="storageSourceExtra"/>
+ <ref name="snapshotDeleteInProgress"/>
+ </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>
+ <optional>
+ <ref name="diskSourceCommon"/>
+ </optional>
+ <optional>
+ <ref name="encryption"/>
+ </optional>
+ <empty/>
+ </element>
+ </optional>
+ <ref name="storageSourceExtra"/>
+ <ref name="snapshotDeleteInProgress"/>
+ </interleave>
+ </group>
+ <ref name="diskSourceNetwork"/>
+ </choice>
+ </group>
+ <attribute name="snapshot">
+ <value>manual</value>
+ </attribute>
+ </choice>
+ </element>
+ </define>
+
+ <define name="disksnapshotdriver">
+ <optional>
+ <element name="driver">
+ <optional>
+ <attribute name="type">
+ <ref name="storageFormatBacking"/>
+ </attribute>
+ </optional>
+ <optional>
+ <element name="metadata_cache">
+ <optional>
+ <element name="max_size">
+ <ref name="scaledInteger"/>
+ </element>
+ </optional>
+ </element>
+ </optional>
+ </element>
+ </optional>
+ </define>
+
+</grammar>