summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwhoami-rajat <rajatdhasmana@gmail.com>2021-04-14 10:40:45 -0400
committerRajat Dhasmana <rajatdhasmana@gmail.com>2021-04-15 08:08:19 +0000
commit04e5ead7c000211a4c10104ed2bb65c9df7681ae (patch)
tree462d9a9142310b653ce8bb1ffe57c610712de870
parent088a07e602825ae482ebf747cddc94d1996f04e6 (diff)
downloadglance_store-04e5ead7c000211a4c10104ed2bb65c9df7681ae.tar.gz
Pass multipath config while creating connector object
Currently we only pass the configured multipath option when getting the connector properties and do not pass it when creating the connector object which in turn does the multipathing in os-brick. So we are only passing multipathing option to cinder for exporting & mapping the volume to paths but not while creating the connector object and hence doing multipathing partially. This patch passes that option and fixes the stated issue. Related-Bug: #1863983 Co-Authored-By: Gorka Eguileor <geguileo@redhat.com> Change-Id: I82979c47ec9ec1dd6cc864d3827ab219177251f8
-rw-r--r--glance_store/_drivers/cinder.py2
-rw-r--r--glance_store/tests/unit/test_cinder_store.py5
-rw-r--r--glance_store/tests/unit/test_multistore_cinder.py5
3 files changed, 9 insertions, 3 deletions
diff --git a/glance_store/_drivers/cinder.py b/glance_store/_drivers/cinder.py
index 20fcc48..2db8e9b 100644
--- a/glance_store/_drivers/cinder.py
+++ b/glance_store/_drivers/cinder.py
@@ -628,7 +628,7 @@ class Store(glance_store.driver.Store):
connection_info = volume.initialize_connection(volume, properties)
conn = connector.InitiatorConnector.factory(
connection_info['driver_volume_type'], root_helper,
- conn=connection_info)
+ conn=connection_info, use_multipath=use_multipath)
if connection_info['driver_volume_type'] == 'nfs':
if volume.encrypted:
volume.unreserve(volume)
diff --git a/glance_store/tests/unit/test_cinder_store.py b/glance_store/tests/unit/test_cinder_store.py
index f17674a..7ba655d 100644
--- a/glance_store/tests/unit/test_cinder_store.py
+++ b/glance_store/tests/unit/test_cinder_store.py
@@ -189,7 +189,7 @@ class TestCinderStore(base.StoreBaseTest,
mock.patch.object(cinder.Store, 'get_root_helper',
return_value=root_helper), \
mock.patch.object(connector.InitiatorConnector, 'factory',
- side_effect=fake_factory):
+ side_effect=fake_factory) as fake_conn_obj:
with mock.patch.object(connector,
'get_connector_properties') as mock_conn:
@@ -224,6 +224,9 @@ class TestCinderStore(base.StoreBaseTest,
None, 'glance_store', attach_mode,
host_name=socket.gethostname())
fake_volumes.detach.assert_called_once_with(fake_volume)
+ fake_conn_obj.assert_called_once_with(
+ mock.ANY, root_helper, conn=mock.ANY,
+ use_multipath=multipath_supported)
def test_open_cinder_volume_rw(self):
self._test_open_cinder_volume('wb', 'rw', None)
diff --git a/glance_store/tests/unit/test_multistore_cinder.py b/glance_store/tests/unit/test_multistore_cinder.py
index b5c89f5..1c6ae26 100644
--- a/glance_store/tests/unit/test_multistore_cinder.py
+++ b/glance_store/tests/unit/test_multistore_cinder.py
@@ -219,7 +219,7 @@ class TestMultiCinderStore(base.MultiStoreBaseTest,
mock.patch.object(cinder.Store, 'get_root_helper',
return_value=root_helper), \
mock.patch.object(connector.InitiatorConnector, 'factory',
- side_effect=fake_factory):
+ side_effect=fake_factory) as fake_conn_obj:
with mock.patch.object(connector,
'get_connector_properties') as mock_conn:
@@ -238,6 +238,9 @@ class TestMultiCinderStore(base.MultiStoreBaseTest,
None, 'glance_store', attach_mode,
host_name=socket.gethostname())
fake_volumes.detach.assert_called_once_with(fake_volume)
+ fake_conn_obj.assert_called_once_with(
+ mock.ANY, root_helper, conn=mock.ANY,
+ use_multipath=multipath_supported)
def test_open_cinder_volume_rw(self):
self._test_open_cinder_volume('wb', 'rw', None)