diff options
Diffstat (limited to 'src/main/resources/libvirt/rng/domainbackup.rng')
-rw-r--r-- | src/main/resources/libvirt/rng/domainbackup.rng | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/src/main/resources/libvirt/rng/domainbackup.rng b/src/main/resources/libvirt/rng/domainbackup.rng new file mode 100644 index 0000000..bfc29a6 --- /dev/null +++ b/src/main/resources/libvirt/rng/domainbackup.rng @@ -0,0 +1,304 @@ +<?xml version="1.0"?> +<!-- A Relax NG schema for the libvirt domain backup properties XML format --> +<grammar xmlns="http://relaxng.org/ns/structure/1.0"> + <start> + <ref name="domainbackup"/> + </start> + + <include href="domaincommon.rng"/> + + <define name="backupEncryption"> + <element name="encryption"> + <attribute name="format"> + <choice> + <value>luks</value> + </choice> + </attribute> + <optional> + <attribute name="engine"> + <choice> + <value>qemu</value> + </choice> + </attribute> + </optional> + <interleave> + <ref name="secret"/> + <optional> + <element name="cipher"> + <ref name="keycipher"/> + </element> + <element name="ivgen"> + <ref name="keyivgen"/> + </element> + </optional> + </interleave> + </element> + </define> + + <define name="domainbackup"> + <element name="domainbackup"> + <interleave> + <optional> + <element name="incremental"> + <text/> + </element> + </optional> + <choice> + <group> + <optional> + <attribute name="mode"> + <value>push</value> + </attribute> + </optional> + <ref name="backupDisksPush"/> + </group> + <group> + <attribute name="mode"> + <value>pull</value> + </attribute> + <interleave> + <element name="server"> + <optional> + <attribute name="tls"> + <ref name="virYesNo"/> + </attribute> + </optional> + <choice> + <group> + <optional> + <attribute name="transport"> + <value>tcp</value> + </attribute> + </optional> + <attribute name="name"> + <choice> + <ref name="dnsName"/> + <ref name="ipAddr"/> + </choice> + </attribute> + <optional> + <attribute name="port"> + <ref name="unsignedInt"/> + </attribute> + </optional> + </group> + <group> + <attribute name="transport"> + <value>unix</value> + </attribute> + <attribute name="socket"> + <ref name="absFilePath"/> + </attribute> + </group> + </choice> + </element> + <ref name="backupDisksPull"/> + </interleave> + </group> + </choice> + </interleave> + </element> + </define> + + + <define name="backupDiskMode"> + <optional> + <choice> + <attribute name="backupmode"> + <value>full</value> + </attribute> + <group> + <optional> + <attribute name="backupmode"> + <value>incremental</value> + </attribute> + </optional> + <optional> + <attribute name="incremental"/> + </optional> + </group> + </choice> + </optional> + </define> + + <define name="backupPushDriver"> + <optional> + <element name="driver"> + <attribute name="type"> + <ref name="storageFormat"/> + </attribute> + </element> + </optional> + </define> + + <define name="backupPullDriver"> + <optional> + <element name="driver"> + <attribute name="type"> + <value>qcow2</value> + </attribute> + </element> + </optional> + </define> + + <define name="backupAttr"> + <optional> + <attribute name="backup"> + <choice> + <value>yes</value> + </choice> + </attribute> + </optional> + </define> + + <define name="backupDisksPush"> + <optional> + <element name="disks"> + <oneOrMore> + <element name="disk"> + <attribute name="name"> + <ref name="diskTargetDev"/> + </attribute> + <ref name="backupDiskMode"/> + <choice> + <group> + <attribute name="backup"> + <value>no</value> + </attribute> + </group> + <group> + <ref name="backupAttr"/> + <attribute name="type"> + <value>file</value> + </attribute> + <interleave> + <optional> + <element name="target"> + <attribute name="file"> + <ref name="absFilePath"/> + </attribute> + <interleave> + <zeroOrMore> + <ref name="devSeclabel"/> + </zeroOrMore> + <optional> + <ref name="backupEncryption"/> + </optional> + </interleave> + </element> + </optional> + <ref name="backupPushDriver"/> + </interleave> + </group> + <group> + <ref name="backupAttr"/> + <attribute name="type"> + <value>block</value> + </attribute> + <interleave> + <optional> + <element name="target"> + <attribute name="dev"> + <ref name="absFilePath"/> + </attribute> + <interleave> + <zeroOrMore> + <ref name="devSeclabel"/> + </zeroOrMore> + <optional> + <ref name="backupEncryption"/> + </optional> + </interleave> + </element> + </optional> + <ref name="backupPushDriver"/> + </interleave> + </group> + </choice> + </element> + </oneOrMore> + </element> + </optional> + </define> + + <define name="backupDisksPull"> + <optional> + <element name="disks"> + <oneOrMore> + <element name="disk"> + <attribute name="name"> + <ref name="diskTargetDev"/> + </attribute> + <ref name="backupDiskMode"/> + <optional> + <attribute name="exportname"> + <text/> + </attribute> + </optional> + <optional> + <attribute name="exportbitmap"> + <text/> + </attribute> + </optional> + <choice> + <group> + <attribute name="backup"> + <value>no</value> + </attribute> + </group> + <group> + <optional> + <ref name="backupAttr"/> + <attribute name="type"> + <value>file</value> + </attribute> + </optional> + <optional> + <interleave> + <element name="scratch"> + <attribute name="file"> + <ref name="absFilePath"/> + </attribute> + <interleave> + <zeroOrMore> + <ref name="devSeclabel"/> + </zeroOrMore> + <optional> + <ref name="backupEncryption"/> + </optional> + </interleave> + </element> + <ref name="backupPullDriver"/> + </interleave> + </optional> + </group> + <group> + <ref name="backupAttr"/> + <attribute name="type"> + <value>block</value> + </attribute> + <interleave> + <element name="scratch"> + <attribute name="dev"> + <ref name="absFilePath"/> + </attribute> + <interleave> + <zeroOrMore> + <ref name="devSeclabel"/> + </zeroOrMore> + <optional> + <ref name="backupEncryption"/> + </optional> + </interleave> + </element> + <ref name="backupPullDriver"/> + </interleave> + </group> + </choice> + </element> + </oneOrMore> + </element> + </optional> + </define> + +</grammar> |