mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
conf: backup: Allow configuration of names exported via NBD
If users wish to use different name for exported disks or bitmaps the new fields allow to do so. Additionally they also document the current settings. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
69908db0f6
commit
12ccd8d4db
@ -85,6 +85,15 @@
|
||||
<dd>Setting this attribute to <code>yes</code>(default) specifies
|
||||
that the disk should take part in the backup and using
|
||||
<code>no</code> excludes the disk from the backup.</dd>
|
||||
<dt><code>exportname</code></dt>
|
||||
<dd>Allows modification of the NBD export name for the given disk.
|
||||
By default equal to disk target.
|
||||
Valid only for pull mode backups.</dd>
|
||||
<dt><code>exportbitmap</code></dt>
|
||||
<dd>Allows modification of the name of the bitmap describing dirty
|
||||
blocks for an incremental backup exported via NBD export name
|
||||
for the given disk.
|
||||
Valid only for pull mode backups.</dd>
|
||||
<dt><code>type</code></dt>
|
||||
<dd>A mandatory attribute to describe the type of the
|
||||
disk, except when <code>backup='no'</code> is
|
||||
|
@ -165,6 +165,14 @@
|
||||
<attribute name='name'>
|
||||
<ref name='diskTarget'/>
|
||||
</attribute>
|
||||
<optional>
|
||||
<attribute name='exportname'>
|
||||
<text/>
|
||||
</attribute>
|
||||
<attribute name='exportbitmap'>
|
||||
<text/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<choice>
|
||||
<group>
|
||||
<attribute name='backup'>
|
||||
|
@ -71,6 +71,8 @@ virDomainBackupDefFree(virDomainBackupDefPtr def)
|
||||
virDomainBackupDiskDefPtr disk = def->disks + i;
|
||||
|
||||
g_free(disk->name);
|
||||
g_free(disk->exportname);
|
||||
g_free(disk->exportbitmap);
|
||||
virObjectUnref(disk->store);
|
||||
}
|
||||
|
||||
@ -124,6 +126,11 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node,
|
||||
if (def->backup == VIR_TRISTATE_BOOL_NO)
|
||||
return 0;
|
||||
|
||||
if (!push) {
|
||||
def->exportname = virXMLPropString(node, "exportname");
|
||||
def->exportbitmap = virXMLPropString(node, "exportbitmap");
|
||||
}
|
||||
|
||||
if (internal) {
|
||||
if (!(state = virXMLPropString(node, "state")) ||
|
||||
(tmp = virDomainBackupDiskStateTypeFromString(state)) < 0) {
|
||||
@ -333,6 +340,9 @@ virDomainBackupDiskDefFormat(virBufferPtr buf,
|
||||
if (disk->backup == VIR_TRISTATE_BOOL_YES) {
|
||||
virBufferAsprintf(&attrBuf, " type='%s'", virStorageTypeToString(disk->store->type));
|
||||
|
||||
virBufferEscapeString(&attrBuf, " exportname='%s'", disk->exportname);
|
||||
virBufferEscapeString(&attrBuf, " exportbitmap='%s'", disk->exportbitmap);
|
||||
|
||||
if (disk->store->format > 0)
|
||||
virBufferEscapeString(&childBuf, "<driver type='%s'/>\n",
|
||||
virStorageFileFormatTypeToString(disk->store->format));
|
||||
|
@ -51,6 +51,8 @@ typedef virDomainBackupDiskDef *virDomainBackupDiskDefPtr;
|
||||
struct _virDomainBackupDiskDef {
|
||||
char *name; /* name matching the <target dev='...' of the domain */
|
||||
virTristateBool backup; /* whether backup is requested */
|
||||
char *exportname; /* name of the NBD export for pull mode backup */
|
||||
char *exportbitmap; /* name of the bitmap exposed in NBD for pull mode backup */
|
||||
|
||||
/* details of target for push-mode, or of the scratch file for pull-mode */
|
||||
virStorageSourcePtr store;
|
||||
|
@ -2,7 +2,7 @@
|
||||
<incremental>1525889631</incremental>
|
||||
<server transport='tcp' name='localhost' port='10809'/>
|
||||
<disks>
|
||||
<disk name='vda' type='file'>
|
||||
<disk name='vda' type='file' exportname='test-vda' exportbitmap='blah'>
|
||||
<driver type='qcow2'/>
|
||||
<scratch file='/path/to/file'>
|
||||
<seclabel model='dac' relabel='no'/>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<incremental>1525889631</incremental>
|
||||
<server transport='tcp' name='localhost' port='10809'/>
|
||||
<disks>
|
||||
<disk name='vda' backup='yes' type='file'>
|
||||
<disk name='vda' backup='yes' type='file' exportname='test-vda' exportbitmap='blah'>
|
||||
<driver type='qcow2'/>
|
||||
<scratch file='/path/to/file'>
|
||||
<seclabel model='dac' relabel='no'/>
|
||||
|
Loading…
Reference in New Issue
Block a user