From 603d036ff93add6692097f2a7654d33d3443d99a Mon Sep 17 00:00:00 2001 From: Lucian Petrut Date: Fri, 15 Dec 2017 12:16:52 +0200 Subject: [PATCH] Windows: fix connectors 'disconnect_volume' signature The Windows connectors do not include the 'device_info' argument in the 'disconnect_volume' method. This wasn't an issue for Nova as the Hyper-V driver doesn't pass this argument, yet Cinder does pass it, which will lead to an exception. This change adds the missing argument, defaulting to "None" so that it won't break the Nova Hyper-V driver. Change-Id: Iaf8b57c97afc393862a61a7338a35f008b65c8c1 Closes-Bug: #1738390 --- os_brick/initiator/windows/fibre_channel.py | 2 +- os_brick/initiator/windows/iscsi.py | 2 +- os_brick/initiator/windows/smbfs.py | 2 +- os_brick/tests/windows/test_iscsi.py | 3 ++- os_brick/tests/windows/test_smbfs.py | 3 ++- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/os_brick/initiator/windows/fibre_channel.py b/os_brick/initiator/windows/fibre_channel.py index 7995fde96..3efd5130c 100644 --- a/os_brick/initiator/windows/fibre_channel.py +++ b/os_brick/initiator/windows/fibre_channel.py @@ -126,6 +126,6 @@ class WindowsFCConnector(win_conn_base.BaseWindowsConnector): return mappings @utils.trace - def disconnect_volume(self, connection_properties, + def disconnect_volume(self, connection_properties, device_info=None, force=False, ignore_errors=False): pass diff --git a/os_brick/initiator/windows/iscsi.py b/os_brick/initiator/windows/iscsi.py index 9a2f9435f..c81291789 100644 --- a/os_brick/initiator/windows/iscsi.py +++ b/os_brick/initiator/windows/iscsi.py @@ -134,7 +134,7 @@ class WindowsISCSIConnector(win_conn_base.BaseWindowsConnector, return device_info @utils.trace - def disconnect_volume(self, connection_properties, + def disconnect_volume(self, connection_properties, device_info=None, force=False, ignore_errors=False): # We want to refresh the cached information first. self._diskutils.rescan_disks() diff --git a/os_brick/initiator/windows/smbfs.py b/os_brick/initiator/windows/smbfs.py index 4465bbe9a..fe026f2f8 100644 --- a/os_brick/initiator/windows/smbfs.py +++ b/os_brick/initiator/windows/smbfs.py @@ -49,7 +49,7 @@ class WindowsSMBFSConnector(win_conn_base.BaseWindowsConnector): return device_info @utils.trace - def disconnect_volume(self, connection_properties, + def disconnect_volume(self, connection_properties, device_info=None, force=False, ignore_errors=False): export_path = self._get_export_path(connection_properties) self._remotefsclient.unmount(export_path) diff --git a/os_brick/tests/windows/test_iscsi.py b/os_brick/tests/windows/test_iscsi.py index 42d6ca28b..67e3e1b82 100644 --- a/os_brick/tests/windows/test_iscsi.py +++ b/os_brick/tests/windows/test_iscsi.py @@ -168,7 +168,8 @@ class WindowsISCSIConnectorTestCase(test_base.WindowsConnectorTestBase): mock_get_all_targets.return_value = targets self._iscsi_utils.get_target_luns.return_value = [mock.sentinel.lun_0] - self._connector.disconnect_volume(mock.sentinel.conn_props) + self._connector.disconnect_volume(mock.sentinel.conn_props, + mock.sentinel.dev_info) self._diskutils.rescan_disks.assert_called_once_with() mock_get_all_targets.assert_called_once_with(mock.sentinel.conn_props) diff --git a/os_brick/tests/windows/test_smbfs.py b/os_brick/tests/windows/test_smbfs.py index 0775f7b49..a11ee23ce 100644 --- a/os_brick/tests/windows/test_smbfs.py +++ b/os_brick/tests/windows/test_smbfs.py @@ -46,7 +46,8 @@ class WindowsSMBFSConnectorTestCase(test_base.WindowsConnectorTestBase): @mock.patch.object(smbfs.WindowsSMBFSConnector, '_get_export_path') def test_disconnect_volume(self, mock_get_export_path): - self._connector.disconnect_volume(mock.sentinel.conn_props) + self._connector.disconnect_volume(mock.sentinel.conn_props, + mock.sentinel.dev_info) self._remotefs.unmount.assert_called_once_with( mock_get_export_path.return_value)