diff options
author | Brian Rosmaita <rosmaita.fossdev@gmail.com> | 2023-04-18 11:22:27 -0400 |
---|---|---|
committer | Brian Rosmaita <rosmaita.fossdev@gmail.com> | 2023-05-10 08:29:05 -0400 |
commit | 1d8033e54e009bbc4408f6e16aec4f6c01687c91 (patch) | |
tree | 6b657a5cf1eed0a979014315cfa0754e52209093 | |
parent | 7fd4c49b16f511574a4790e19b662f029d3ea2f6 (diff) | |
download | glance_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.py | 3 | ||||
-rw-r--r-- | glance_store/tests/unit/cinder/test_base.py | 2 | ||||
-rw-r--r-- | glance_store/tests/unit/cinder/test_cinder_base.py | 2 | ||||
-rw-r--r-- | releasenotes/notes/bug-2004555-4fd67fce86c07461.yaml | 11 |
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. |