summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Rosmaita <rosmaita.fossdev@gmail.com>2023-04-18 11:22:27 -0400
committerBrian Rosmaita <rosmaita.fossdev@gmail.com>2023-05-10 08:29:05 -0400
commit1d8033e54e009bbc4408f6e16aec4f6c01687c91 (patch)
tree6b657a5cf1eed0a979014315cfa0754e52209093
parent7fd4c49b16f511574a4790e19b662f029d3ea2f6 (diff)
downloadglance_store-1d8033e54e009bbc4408f6e16aec4f6c01687c91.tar.gz
Add force to os-brick disconnect4.4.0
In order to be sure that devices are being removed from the host, we should be using the 'force' parameter with os-brick's disconnect_volume() method. Closes-bug: #2004555 Change-Id: I63d09ad9ef465bc154c85a9ea125449c039d1b90
-rw-r--r--glance_store/_drivers/cinder/base.py3
-rw-r--r--glance_store/tests/unit/cinder/test_base.py2
-rw-r--r--glance_store/tests/unit/cinder/test_cinder_base.py2
-rw-r--r--releasenotes/notes/bug-2004555-4fd67fce86c07461.yaml11
4 files changed, 15 insertions, 3 deletions
diff --git a/glance_store/_drivers/cinder/base.py b/glance_store/_drivers/cinder/base.py
index 20fb897..26d83f6 100644
--- a/glance_store/_drivers/cinder/base.py
+++ b/glance_store/_drivers/cinder/base.py
@@ -50,7 +50,8 @@ class BaseBrickConnectorInterface(object):
return device
def disconnect_volume(self, device):
- self.conn.disconnect_volume(self.connection_info, device)
+ # Bug #2004555: use force so there aren't any leftovers
+ self.conn.disconnect_volume(self.connection_info, device, force=True)
def extend_volume(self):
self.conn.extend_volume(self.connection_info)
diff --git a/glance_store/tests/unit/cinder/test_base.py b/glance_store/tests/unit/cinder/test_base.py
index 488cf1a..7c0add5 100644
--- a/glance_store/tests/unit/cinder/test_base.py
+++ b/glance_store/tests/unit/cinder/test_base.py
@@ -102,7 +102,7 @@ class TestBaseBrickConnectorInterface(test_base.StoreBaseTest):
self.mock_object(self.connector.conn, 'disconnect_volume')
self.connector.disconnect_volume(fake_device)
self.connector.conn.disconnect_volume.assert_called_once_with(
- self.connection_info, fake_device)
+ self.connection_info, fake_device, force=True)
def test_extend_volume(self):
self.mock_object(self.connector.conn, 'extend_volume')
diff --git a/glance_store/tests/unit/cinder/test_cinder_base.py b/glance_store/tests/unit/cinder/test_cinder_base.py
index 922b161..3269de1 100644
--- a/glance_store/tests/unit/cinder/test_cinder_base.py
+++ b/glance_store/tests/unit/cinder/test_cinder_base.py
@@ -328,7 +328,7 @@ class TestCinderStoreBase(object):
fake_connector.connect_volume.assert_called_once_with(
mock.ANY)
fake_connector.disconnect_volume.assert_called_once_with(
- mock.ANY, fake_devinfo)
+ mock.ANY, fake_devinfo, force=True)
fake_conn_obj.assert_called_once_with(
mock.ANY, root_helper, conn=mock.ANY,
use_multipath=multipath_supported)
diff --git a/releasenotes/notes/bug-2004555-4fd67fce86c07461.yaml b/releasenotes/notes/bug-2004555-4fd67fce86c07461.yaml
new file mode 100644
index 0000000..8d982c6
--- /dev/null
+++ b/releasenotes/notes/bug-2004555-4fd67fce86c07461.yaml
@@ -0,0 +1,11 @@
+security:
+ - |
+ Cinder glance_store driver: in order to avoid a situation where a
+ leftover device could be mapped to a different volume than the one
+ intended, the cinder glance_store driver now instructs the os-brick
+ library to force detach volumes, which ensures that devices are
+ removed from the host.
+
+ See `Bug #2004555
+ <https://bugs.launchpad.net/glance-store/+bug/2004555>`_ for more
+ information about this issue.