summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/conf/backup_conf.c7
-rw-r--r--tests/domainbackupxml2xmlin/backup-push.xml1
-rw-r--r--tests/domainbackupxml2xmlout/backup-push.xml3
3 files changed, 9 insertions, 2 deletions
diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c
index 013c08cd6e..e151c29738 100644
--- a/src/conf/backup_conf.c
+++ b/src/conf/backup_conf.c
@@ -424,7 +424,8 @@ virDomainBackupDefAssignStore(virDomainBackupDiskDef *disk,
}
}
- if (!disk->store) {
+ if (!disk->store ||
+ virStorageSourceIsEmpty(disk->store)) {
if (virStorageSourceGetActualType(src) != VIR_STORAGE_TYPE_FILE) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("refusing to generate file name for disk '%1$s'"),
@@ -432,7 +433,9 @@ virDomainBackupDefAssignStore(virDomainBackupDiskDef *disk,
return -1;
}
- disk->store = virStorageSourceNew();
+ if (!disk->store)
+ disk->store = virStorageSourceNew();
+
disk->store->type = VIR_STORAGE_TYPE_FILE;
disk->store->path = g_strdup_printf("%s.%s", src->path, suffix);
}
diff --git a/tests/domainbackupxml2xmlin/backup-push.xml b/tests/domainbackupxml2xmlin/backup-push.xml
index 0bfec9b270..a95833d407 100644
--- a/tests/domainbackupxml2xmlin/backup-push.xml
+++ b/tests/domainbackupxml2xmlin/backup-push.xml
@@ -5,6 +5,7 @@
<driver type='raw'/>
<target file='/path/to/file'/>
</disk>
+ <disk name='vdb' type='file' backupmode='full'/>
<disk name='hda' backup='no'/>
</disks>
</domainbackup>
diff --git a/tests/domainbackupxml2xmlout/backup-push.xml b/tests/domainbackupxml2xmlout/backup-push.xml
index 317dcf6e47..fff7db716b 100644
--- a/tests/domainbackupxml2xmlout/backup-push.xml
+++ b/tests/domainbackupxml2xmlout/backup-push.xml
@@ -5,6 +5,9 @@
<driver type='raw'/>
<target file='/path/to/file'/>
</disk>
+ <disk name='vdb' backup='yes' type='file' backupmode='full'>
+ <target file='/fake/vdb.qcow2.SUFFIX'/>
+ </disk>
<disk name='hda' backup='no'/>
<disk name='vdextradisk' backup='no'/>
</disks>