From fe5382819a8e21d3c32832d92c41477df21c34fa Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 20 Feb 2013 10:53:40 -0800 Subject: libvirt: fix volume walk of /dev/disk/by-path If /dev/disk/by-path does not exist, then _get_iscsi_devices() will raise an IndexError. Handle this case and return an empty list. This fixes a test on OSX. Fixes bug 1130841 Change-Id: Ibae2f1238feac9a10b8dc2b74886ea59edac0bcc --- nova/virt/libvirt/volume.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'nova') diff --git a/nova/virt/libvirt/volume.py b/nova/virt/libvirt/volume.py index a5bd2dd43..e3f859486 100644 --- a/nova/virt/libvirt/volume.py +++ b/nova/virt/libvirt/volume.py @@ -378,8 +378,11 @@ class LibvirtISCSIVolumeDriver(LibvirtBaseVolumeDriver): return None def _get_iscsi_devices(self): - return [entry for entry in list(os.walk('/dev/disk/by-path'))[0][-1] - if entry.startswith("ip-")] + try: + devices = list(os.walk('/dev/disk/by-path'))[0][-1] + except IndexError: + return [] + return [entry for entry in devices if entry.startswith("ip-")] def _disconnect_mpath(self, iscsi_properties): entries = self._get_iscsi_devices() -- cgit