mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
c3ace7e234
Both are optional but don't have to be specified together. Fix the schema. https://bugzilla.redhat.com/show_bug.cgi?id=1826746 Suggested-by: Yi Sun <yisun@redhat.com> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
271 lines
7.9 KiB
XML
271 lines
7.9 KiB
XML
<?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>
|
|
<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'>
|
|
<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>
|
|
<!-- add tls? -->
|
|
</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='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='diskTarget'/>
|
|
</attribute>
|
|
<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='diskTarget'/>
|
|
</attribute>
|
|
<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>
|