summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kobyda <skobyda@redhat.com>2021-10-08 11:43:49 +0200
committerCole Robinson <crobinso@redhat.com>2022-01-19 14:11:46 -0500
commit2676640979f929a1d439d91fab1c13dc41a6adf0 (patch)
tree315b63b66b96523f7f68842c50fe8ff1bcf3630a
parent59e24f6bb9b9a1b8f34c17de837106135851c69e (diff)
downloadvirt-manager-2676640979f929a1d439d91fab1c13dc41a6adf0.tar.gz
Disk pool volumes should be always attached as "raw" disks
Usually, when storage volume is attached as a disk and disk xml is filled with default values, the "<driver type=...>" value is copied from volume's "<format type=...>". This makes sense for volumes of storage pool of type "dir", where format types include "raw, qcow2...". However, the same approach cannot be used for the storage pool of type "disk". In that case, format types include "none, linux, fat16, fat32...". Such formats cannot be used for disk's "<driver type=...>". Therefore, when generating disk XML for volume of storage pool type "disk", driver type should always be "raw".
-rw-r--r--tests/data/cli/compare/virt-xml-build-disk-pool-disk.xml2
-rw-r--r--virtinst/diskbackend.py9
2 files changed, 7 insertions, 4 deletions
diff --git a/tests/data/cli/compare/virt-xml-build-disk-pool-disk.xml b/tests/data/cli/compare/virt-xml-build-disk-pool-disk.xml
index 130904dc..055a8f04 100644
--- a/tests/data/cli/compare/virt-xml-build-disk-pool-disk.xml
+++ b/tests/data/cli/compare/virt-xml-build-disk-pool-disk.xml
@@ -1,5 +1,5 @@
<disk type="volume" device="disk">
- <driver name="qemu" type="none"/>
+ <driver name="qemu" type="raw"/>
<source volume="sdfg1" pool="pool-disk"/>
<target dev="vdag" bus="virtio"/>
</disk>
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
index e2375db0..eaa9d2f6 100644
--- a/virtinst/diskbackend.py
+++ b/virtinst/diskbackend.py
@@ -787,9 +787,12 @@ class StorageBackend(_StorageBase):
def get_driver_type(self):
if self._vol_object:
- ret = self.get_vol_xml().format
- if ret != "unknown":
- return ret
+ if self.get_parent_pool_xml().type != "disk":
+ ret = self.get_vol_xml().format
+ if ret != "unknown":
+ return ret
+ else:
+ return "raw"
return None
def validate(self):