When creating a new VM and selecting a volume from a network-based storage pool such as rbd, the volume is not recognized as network-based and is treated as a volume from a directory storage pool. This patch adds a method to check if the volume's path points to a network-based volume, then uses the method to avoid actions like setting unix file permissions on the volume, which doesn't make sense for a network-based volume. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- virtinst/devices/disk.py | 4 ++++ virtinst/diskbackend.py | 18 +++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/virtinst/devices/disk.py b/virtinst/devices/disk.py index 75a31f46..35302236 100644 --- a/virtinst/devices/disk.py +++ b/virtinst/devices/disk.py @@ -274,6 +274,10 @@ class DeviceDisk(Device): if conn.is_remote() or not conn.is_qemu_system(): return None, [] + # No need to check network volumes + if diskbackend.path_is_network_vol(conn, path): + return None, [] + user = None try: for secmodel in conn.caps.host.secmodels: diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py index 877eaec6..c54ed921 100644 --- a/virtinst/diskbackend.py +++ b/virtinst/diskbackend.py @@ -144,7 +144,7 @@ def manage_path(conn, path): if not path: return None, None - if not path_is_url(path): + if not path_is_network_vol(conn, path) and not path_is_url(path): path = os.path.abspath(path) vol, pool = check_if_path_managed(conn, path) if vol or pool or not _can_auto_manage(path): @@ -176,6 +176,22 @@ def path_is_url(path): return bool(re.match(r"[a-zA-Z]+(\+[a-zA-Z]+)?://.*", path)) +def path_is_network_vol(conn, path): + """ + Detect if path is a network volume such as rbd, gluster, etc + """ + if not path: + return False + + vol, ignore = _lookup_vol_by_path(conn, path) + if vol: + voltype, ignore, ignore = vol.info() + if voltype == libvirt.VIR_STORAGE_VOL_NETWORK: + return True + + return False + + def _get_dev_type(path, vol_xml, vol_object, pool_xml, remote): """ Try to get device type for volume. -- 2.18.0 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list