libvirt/docs/schemas/domainbackup.rng
Or Ozeri ab1d46d612 conf: add encryption engine property
This commit extends libvirt XML configuration to support a custom encryption engine.
This means that <encryption format="luks" engine="qemu">  becomes valid.
The only engine for now is qemu. However, a new engine (librbd) will be added in an upcoming commit.
If no engine is specified, qemu will be used (assuming qemu driver is used).

Signed-off-by: Or Ozeri <oro@il.ibm.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2021-10-25 14:06:15 +02:00

308 lines
8.8 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>
<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">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</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="diskTarget"/>
</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="diskTarget"/>
</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>