mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-09 09:14:57 +00:00
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>
308 lines
8.8 KiB
XML
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>
|