diff options
author | Simon Kobyda <skobyda@redhat.com> | 2021-10-08 11:43:49 +0200 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2022-01-19 14:11:46 -0500 |
commit | 2676640979f929a1d439d91fab1c13dc41a6adf0 (patch) | |
tree | 315b63b66b96523f7f68842c50fe8ff1bcf3630a | |
parent | 59e24f6bb9b9a1b8f34c17de837106135851c69e (diff) | |
download | virt-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.xml | 2 | ||||
-rw-r--r-- | virtinst/diskbackend.py | 9 |
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): |