diff --git a/nova/tests/unit/virt/hyperv/test_basevolumeutils.py b/nova/tests/unit/virt/hyperv/test_basevolumeutils.py index 8f48515d0917..d2b114967ba7 100644 --- a/nova/tests/unit/virt/hyperv/test_basevolumeutils.py +++ b/nova/tests/unit/virt/hyperv/test_basevolumeutils.py @@ -125,11 +125,15 @@ class BaseVolumeUtilsTestCase(test.NoDBTestCase): '_get_devices_for_target') def test_get_target_lun_count(self, fake_get_devices): init_session = self._create_initiator_session() - fake_get_devices.return_value = [init_session] + # Only disk devices are being counted. + disk_device = mock.Mock(DeviceType=self._volutils._FILE_DEVICE_DISK) + init_session.Devices.append(disk_device) + fake_get_devices.return_value = init_session.Devices + lun_count = self._volutils.get_target_lun_count( mock.sentinel.FAKE_IQN) - self.assertEqual(len(init_session.Devices), lun_count) + self.assertEqual(1, lun_count) @mock.patch.object(basevolumeutils.BaseVolumeUtils, "_get_drive_number_from_disk_path") diff --git a/nova/virt/hyperv/basevolumeutils.py b/nova/virt/hyperv/basevolumeutils.py index 0242e30d02ed..791302463359 100644 --- a/nova/virt/hyperv/basevolumeutils.py +++ b/nova/virt/hyperv/basevolumeutils.py @@ -36,6 +36,7 @@ LOG = logging.getLogger(__name__) class BaseVolumeUtils(object): + _FILE_DEVICE_DISK = 7 def __init__(self, host='.'): if sys.platform == 'win32': @@ -137,7 +138,9 @@ class BaseVolumeUtils(object): def get_target_lun_count(self, target_iqn): devices = self._get_devices_for_target(target_iqn) - return len(devices) + disk_devices = [device for device in devices + if device.DeviceType == self._FILE_DEVICE_DISK] + return len(disk_devices) def get_target_from_disk_path(self, disk_path): initiator_sessions = self._conn_wmi.MSiSCSIInitiator_SessionClass()