mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 23:25:24 +00:00
a7db0b757d
Add the appropriate entries into the schema to allow encryption of the backup or scratch image. Since we use blockdev internals for everything no changes to the code are actually necessary. https://bugzilla.redhat.com/show_bug.cgi?id=1811906 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
269 lines
7.9 KiB
XML
269 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>
|
|
<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>
|