Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Cloud:OpenStack:Juno:Staging
openstack-nova
try-harder-for-multipath.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File try-harder-for-multipath.diff of Package openstack-nova
Index: nova/virt/libvirt/volume.py =================================================================== --- nova/virt/libvirt/volume.py.orig +++ nova/virt/libvirt/volume.py @@ -346,9 +346,13 @@ class LibvirtISCSIVolumeDriver(LibvirtBa multipath_device = self._get_multipath_device_name(host_device) if multipath_device is not None: + # Wait for multipath device name to appear + if not os.path.exists(multipath_device): + raise exception.NovaException(_("mpath iSCSI device not found at %s") + % (host_device)) host_device = multipath_device connection_info['data']['multipath_id'] = \ - multipath_device.split('/')[-1] + multipath_device.replace('/dev/disk/by-id/dm-name-', '') connection_info['data']['host_device'] = host_device return self.get_config(connection_info, disk_info) @@ -415,7 +419,7 @@ class LibvirtISCSIVolumeDriver(LibvirtBa multipath_device = None if self.use_multipath: if 'multipath_id' in iscsi_properties: - multipath_device = ('/dev/mapper/%s' % + multipath_device = ('/dev/disk/by-id/dm-name-%s' % iscsi_properties['multipath_id']) else: multipath_device = self._get_multipath_device_name(host_device) @@ -451,7 +455,7 @@ class LibvirtISCSIVolumeDriver(LibvirtBa LOG.warn(_LW("Unable to delete volume device %s"), device_name) def _remove_multipath_device_descriptor(self, disk_descriptor): - disk_descriptor = disk_descriptor.replace('/dev/mapper/', '') + disk_descriptor = disk_descriptor.replace('/dev/disk/by-id/dm-name-', '') try: self._run_multipath(['-f', disk_descriptor], check_exit_code=[0, 1]) @@ -471,7 +475,7 @@ class LibvirtISCSIVolumeDriver(LibvirtBa block_devices = self.connection._get_all_block_devices() devices = [] for dev in block_devices: - if "/mapper/" in dev: + if "/dev/disk/by-id/dm-name-" in dev: devices.append(dev) else: mpdev = self._get_multipath_device_name(dev) @@ -612,7 +616,7 @@ class LibvirtISCSIVolumeDriver(LibvirtBa mpath_line = [line for line in out.splitlines() if "scsi_id" not in line] # ignore udev errors if len(mpath_line) > 0 and len(mpath_line[0]) > 0: - return "/dev/mapper/%s" % mpath_line[0].split(" ")[0] + return "/dev/disk/by-id/dm-name-%s" % mpath_line[0].split(" ")[0] return None
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor