Update the StorPool Cinder patches

Catch up with the upstream removal of the use of the Python
"six" library from the StorPool driver.

Change-Id: If8a5d3dcac2a27473f87f57b6802b44dc651ea29
diff --git a/patches/openstack/cinder/sep-clone-across-pools.patch b/patches/openstack/cinder/sep-clone-across-pools.patch
index fade092..0992ec0 100644
--- a/patches/openstack/cinder/sep-clone-across-pools.patch
+++ b/patches/openstack/cinder/sep-clone-across-pools.patch
@@ -1,7 +1,7 @@
-From 8ce9bb75fb32c921043b14b43884c8b1660cd9b8 Mon Sep 17 00:00:00 2001
+From 3b0addd827de5613b4c17c802b9f936fb60491ff Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 22 Jun 2022 10:04:31 +0300
-Subject: [PATCH 08/10] Add the clone_across_pools driver capability
+Subject: [PATCH 7/9] Add the clone_across_pools driver capability
 
 Let drivers declare that they can clone a volume into a different pool and
 relax the checks when creating a volume from an image (both with and
@@ -96,7 +96,7 @@
              expect = {'cluster_name': self.volume.cluster_name}
          found_entry = cache.get_entry(self.context,
 diff --git a/cinder/tests/unit/volume/flows/test_create_volume_flow.py b/cinder/tests/unit/volume/flows/test_create_volume_flow.py
-index 1bb3f2b98..a804d7fe6 100644
+index fa629599a..a90e943fe 100644
 --- a/cinder/tests/unit/volume/flows/test_create_volume_flow.py
 +++ b/cinder/tests/unit/volume/flows/test_create_volume_flow.py
 @@ -1060,6 +1060,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
@@ -131,7 +131,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_cache = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
-@@ -1194,6 +1198,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1195,6 +1199,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
                                                      mock_cleanup_cg):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -139,7 +139,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              fake_volume_manager, fake_db, fake_driver)
-@@ -1252,6 +1257,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1254,6 +1259,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
                                  driver_error):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -147,7 +147,7 @@
          fake_volume_manager = mock.MagicMock()
          backup_host = 'host@backend#pool'
          test_manager = create_volume_manager.CreateVolumeFromSpecTask(
-@@ -1291,6 +1297,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1293,6 +1299,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
      def test_create_drive_error(self, mock_message_create):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -155,7 +155,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              fake_volume_manager, fake_db, fake_driver)
-@@ -1492,6 +1499,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1494,6 +1501,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              spec=utils.get_file_spec())
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -163,7 +163,7 @@
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              mock.MagicMock(), fake_db, fake_driver)
          fake_image_service = fake_image.FakeImageService()
-@@ -1518,6 +1526,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1520,6 +1528,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
                        'cinder_encryption_key_id': None}
  
          fake_driver.clone_image.return_value = (None, False)
@@ -171,7 +171,7 @@
          fake_db.volume_get_all_by_host.return_value = [image_volume]
  
          fake_manager._create_from_image(self.ctxt,
-@@ -1536,6 +1545,69 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1538,6 +1547,69 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              self.assertFalse(fake_driver.create_cloned_volume.called)
          mock_cleanup_cg.assert_called_once_with(volume)
  
@@ -241,7 +241,7 @@
      LEGACY_URI = 'cinder://%s' % fakes.VOLUME_ID
      MULTISTORE_URI = 'cinder://fake-store/%s' % fakes.VOLUME_ID
  
-@@ -1562,6 +1634,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1564,6 +1636,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              spec=utils.get_file_spec())
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -250,7 +250,7 @@
              mock.MagicMock(), fake_db, fake_driver)
          fake_image_service = fake_image.FakeImageService()
 diff --git a/cinder/volume/flows/manager/create_volume.py b/cinder/volume/flows/manager/create_volume.py
-index ac09ed898..7347ac1f8 100644
+index 1f78b3375..5ddeb1a56 100644
 --- a/cinder/volume/flows/manager/create_volume.py
 +++ b/cinder/volume/flows/manager/create_volume.py
 @@ -741,8 +741,12 @@ class CreateVolumeFromSpecTask(flow_utils.CinderTask):
@@ -269,7 +269,7 @@
          for image_volume in image_volumes:
              # For the case image volume is stored in the service tenant,
 diff --git a/cinder/volume/manager.py b/cinder/volume/manager.py
-index 104291563..88c037279 100644
+index 34e6e4cff..7850ed19b 100644
 --- a/cinder/volume/manager.py
 +++ b/cinder/volume/manager.py
 @@ -356,7 +356,8 @@ class VolumeManager(manager.CleanableManager,
@@ -283,7 +283,7 @@
              LOG.info('Image-volume cache enabled for host %(host)s.',
                       {'host': self.host})
 diff --git a/doc/source/reference/support-matrix.ini b/doc/source/reference/support-matrix.ini
-index 6c3af739e..3bb2be72b 100644
+index 4cf4cf655..243993fe8 100644
 --- a/doc/source/reference/support-matrix.ini
 +++ b/doc/source/reference/support-matrix.ini
 @@ -1048,3 +1048,81 @@ driver.win_iscsi=missing
@@ -369,5 +369,5 @@
 +driver.yadro=missing
 +driver.zadara=missing
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-clone-across-pools.patch b/patches/openstack/cinder/sep-sp-clone-across-pools.patch
index 4862989..83b0d5b 100644
--- a/patches/openstack/cinder/sep-sp-clone-across-pools.patch
+++ b/patches/openstack/cinder/sep-sp-clone-across-pools.patch
@@ -1,7 +1,7 @@
-From 381f77449f30d9a860eeef532963e21f895c00e9 Mon Sep 17 00:00:00 2001
+From 74917a3b748324de3f8556dde0b983ecfa77520f Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 22 Jun 2022 10:48:25 +0300
-Subject: [PATCH 09/10] StorPool: declare the clone_across_pools capability
+Subject: [PATCH 8/9] StorPool: declare the clone_across_pools capability
 
 Change-Id: I5338c6c4f53a448e495f695cd64b36b722cd947d
 ---
@@ -12,10 +12,10 @@
  create mode 100644 releasenotes/notes/storpool-clone-across-pools-b3f7923dee35503a.yaml
 
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 5b4ea0d31..b15a201c3 100644
+index 131ba68fb..caa0ce06e 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -362,6 +362,7 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -361,6 +361,7 @@ class StorPoolDriver(driver.VolumeDriver):
              'driver_version': self.VERSION,
              'storage_protocol': constants.STORPOOL,
              # Driver capabilities
@@ -24,7 +24,7 @@
              # The actual pools data
              'pools': pools
 diff --git a/doc/source/reference/support-matrix.ini b/doc/source/reference/support-matrix.ini
-index 3bb2be72b..7964d9807 100644
+index 243993fe8..89c894a41 100644
 --- a/doc/source/reference/support-matrix.ini
 +++ b/doc/source/reference/support-matrix.ini
 @@ -1115,7 +1115,7 @@ driver.rbd=missing
@@ -49,5 +49,5 @@
 +    which allows it to create a volume into an arbitrary StorPool-backed
 +    volume type from a StorPool-backed Glance image.
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-clone-volume.patch b/patches/openstack/cinder/sep-sp-clone-volume.patch
index 6e7f90f..8dbbe2e 100644
--- a/patches/openstack/cinder/sep-sp-clone-volume.patch
+++ b/patches/openstack/cinder/sep-sp-clone-volume.patch
@@ -1,7 +1,7 @@
-From 842b39e2e8e73ea2dda84955d3ab99d9efbfa527 Mon Sep 17 00:00:00 2001
+From 609436981cbd13488eb1345d41ebffcd2347d2de Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 20 Apr 2022 15:47:39 +0300
-Subject: [PATCH 07/10] StorPool: create_cloned_volume() improvements
+Subject: [PATCH 6/9] StorPool: create_cloned_volume() improvements
 
 If the source and destination volumes are in the same StorPool template
 (as defined by either the volume type or the global config setting),
@@ -30,7 +30,7 @@
  create mode 100644 releasenotes/notes/storpool-clone-better-dca90f40c9273de9.yaml
 
 diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
-index 24715fa29..95a1ffffd 100644
+index 8792678ed..94074d218 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
 @@ -14,6 +14,7 @@
@@ -41,7 +41,7 @@
  import re
  import sys
  from unittest import mock
-@@ -110,13 +111,33 @@ class MockAPI(object):
+@@ -109,13 +110,33 @@ class MockAPI(object):
      def snapshotCreate(self, vname, snap):
          snapshots[snap['name']] = dict(volumes[vname])
  
@@ -77,7 +77,7 @@
  
      def volumeDelete(self, name):
          del volumes[name]
-@@ -174,6 +195,23 @@ fakeStorPool.spopenstack.AttachDB = MockAttachDB
+@@ -173,6 +194,23 @@ fakeStorPool.spopenstack.AttachDB = MockAttachDB
  fakeStorPool.sptypes.VolumeUpdateDesc = MockVolumeUpdateDesc
  
  
@@ -101,7 +101,7 @@
  @ddt.ddt
  class StorPoolTestCase(test.TestCase):
  
-@@ -265,6 +303,11 @@ class StorPoolTestCase(test.TestCase):
+@@ -264,6 +302,11 @@ class StorPoolTestCase(test.TestCase):
          self.assertListEqual(sorted([volumeName(n) for n in names]),
                               sorted(data['name'] for data in volumes.values()))
  
@@ -113,7 +113,7 @@
      @mock_volume_types
      def test_create_delete_volume(self):
          self.assertVolumeNames([])
-@@ -277,7 +320,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -276,7 +319,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('1',))
          v = volumes[volumeName('1')]
          self.assertEqual(1 * units.Gi, v['size'])
@@ -122,7 +122,7 @@
          self.assertEqual(3, v['replication'])
  
          caught = False
-@@ -297,7 +340,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -296,7 +339,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('1',))
          v = volumes[volumeName('1')]
          self.assertEqual(2 * units.Gi, v['size'])
@@ -131,7 +131,7 @@
          self.assertEqual(3, v['replication'])
  
          self.driver.create_volume({'id': '2', 'name': 'v2', 'size': 3,
-@@ -305,7 +348,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -304,7 +347,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('1', '2'))
          v = volumes[volumeName('2')]
          self.assertEqual(3 * units.Gi, v['size'])
@@ -140,7 +140,7 @@
          self.assertEqual(3, v['replication'])
  
          self.driver.create_volume({'id': '3', 'name': 'v2', 'size': 4,
-@@ -327,7 +370,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -326,7 +369,7 @@ class StorPoolTestCase(test.TestCase):
          # Make sure the dictionary is not corrupted somehow...
          v = volumes[volumeName('1')]
          self.assertEqual(2 * units.Gi, v['size'])
@@ -149,7 +149,7 @@
          self.assertEqual(3, v['replication'])
  
          for vid in ('1', '2', '3', '4'):
-@@ -395,16 +438,17 @@ class StorPoolTestCase(test.TestCase):
+@@ -392,16 +435,17 @@ class StorPoolTestCase(test.TestCase):
          self.driver.extend_volume({'id': '1'}, 2)
          self.assertEqual(2 * units.Gi, volumes[volumeName('1')]['size'])
  
@@ -175,7 +175,7 @@
  
          self.driver.delete_volume({'id': 1})
          self.driver.delete_volume({'id': 2})
-@@ -412,6 +456,78 @@ class StorPoolTestCase(test.TestCase):
+@@ -409,6 +453,78 @@ class StorPoolTestCase(test.TestCase):
          self.assertDictEqual({}, volumes)
          self.assertDictEqual({}, snapshots)
  
@@ -254,7 +254,7 @@
      @mock_volume_types
      def test_config_replication(self):
          self.assertVolumeNames([])
-@@ -431,7 +547,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -428,7 +544,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('cfgrepl1',))
          v = volumes[volumeName('cfgrepl1')]
          self.assertEqual(3, v['replication'])
@@ -263,7 +263,7 @@
          self.driver.delete_volume({'id': 'cfgrepl1'})
  
          self.driver.configuration.storpool_replication = 2
-@@ -445,7 +561,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -442,7 +558,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('cfgrepl2',))
          v = volumes[volumeName('cfgrepl2')]
          self.assertEqual(2, v['replication'])
@@ -272,7 +272,7 @@
          self.driver.delete_volume({'id': 'cfgrepl2'})
  
          self.driver.create_volume({'id': 'cfgrepl3', 'name': 'v1', 'size': 1,
-@@ -477,7 +593,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -474,7 +590,7 @@ class StorPoolTestCase(test.TestCase):
          self.assertVolumeNames(('cfgtempl1',))
          v = volumes[volumeName('cfgtempl1')]
          self.assertEqual(3, v['replication'])
@@ -282,24 +282,23 @@
  
          self.driver.create_volume({'id': 'cfgtempl2', 'name': 'v1', 'size': 1,
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 97d188fd4..5b4ea0d31 100644
+index c2b566f4a..131ba68fb 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -19,11 +19,13 @@ import platform
+@@ -19,10 +19,12 @@ import platform
  
  from oslo_config import cfg
  from oslo_log import log as logging
 +from oslo_utils import excutils
  from oslo_utils import importutils
  from oslo_utils import units
- import six
  
  from cinder.common import constants
 +from cinder import context
  from cinder import exception
  from cinder.i18n import _
  from cinder import interface
-@@ -197,30 +199,80 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -196,30 +198,80 @@ class StorPoolDriver(driver.VolumeDriver):
  
      def create_cloned_volume(self, volume, src_vref):
          refname = self._attach.volumeName(src_vref['id'])
@@ -397,10 +396,10 @@
      def create_export(self, context, volume, connector):
          pass
 diff --git a/driver-requirements.txt b/driver-requirements.txt
-index 2f05bc94e..2b28d37fd 100644
+index 8cff370ed..aa1211c19 100644
 --- a/driver-requirements.txt
 +++ b/driver-requirements.txt
-@@ -41,7 +41,7 @@ infi.dtypes.wwn # PSF
+@@ -42,7 +42,7 @@ infi.dtypes.wwn # PSF
  infi.dtypes.iqn # PSF
  
  # Storpool
@@ -422,5 +421,5 @@
 +    StorPool templates (exposed as Cinder storage pools) if requested,
 +    eliminating some data duplication in the underlying StorPool cluster.
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-fix-test-rename.patch b/patches/openstack/cinder/sep-sp-fix-test-rename.patch
index 720b62b..1e7b5a4 100644
--- a/patches/openstack/cinder/sep-sp-fix-test-rename.patch
+++ b/patches/openstack/cinder/sep-sp-fix-test-rename.patch
@@ -1,7 +1,7 @@
-From 2835c8aeb39313e927a4c13a7ce78d5386c4d909 Mon Sep 17 00:00:00 2001
+From f4bed5a7db90fa1a7dd5bf098f2f6652fe8b9c53 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Tue, 17 Jan 2023 01:20:59 +0200
-Subject: [PATCH 05/10] StorPool: fix the "rename volume" unit test emulation
+Subject: [PATCH 4/9] StorPool: fix the "rename volume" unit test emulation
 
 Also update the "name" field of the actual data structure in
 the fake list of volumes.
@@ -12,10 +12,10 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
-index 2e6f56526..f878c6d26 100644
+index 0eac3d957..442bdbb88 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
-@@ -135,7 +135,10 @@ class MockAPI(object):
+@@ -134,7 +134,10 @@ class MockAPI(object):
              volumes[name]['size'] = data['size']
  
          if 'rename' in data and data['rename'] != name:
@@ -27,7 +27,7 @@
              del volumes[name]
  
  
-@@ -259,6 +262,8 @@ class StorPoolTestCase(test.TestCase):
+@@ -258,6 +261,8 @@ class StorPoolTestCase(test.TestCase):
      def assertVolumeNames(self, names):
          self.assertListEqual(sorted([volumeName(n) for n in names]),
                               sorted(volumes.keys()))
@@ -37,5 +37,5 @@
      @mock_volume_types
      def test_create_delete_volume(self):
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-iscsi.patch b/patches/openstack/cinder/sep-sp-iscsi.patch
index 8c07013..085e9e8 100644
--- a/patches/openstack/cinder/sep-sp-iscsi.patch
+++ b/patches/openstack/cinder/sep-sp-iscsi.patch
@@ -1,7 +1,7 @@
-From 15fe701cfc698a2d8d3ce12ba33983a42e50411e Mon Sep 17 00:00:00 2001
+From 809a5c657faa1b1cbe26a7ae0aad77840300498f Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 12 Mar 2018 12:00:10 +0200
-Subject: [PATCH 10/10] Add iSCSI export support to the StorPool driver
+Subject: [PATCH 9/9] Add iSCSI export support to the StorPool driver
 
 Add four new driver options:
 - iscsi_cinder_volume: use StorPool iSCSI attachments whenever
@@ -33,10 +33,10 @@
  create mode 100644 releasenotes/notes/storpool-iscsi-cefcfe590a07c5c7.yaml
 
 diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
-index 95a1ffffd..2b76e7c75 100644
+index 94074d218..781d1a0ef 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
-@@ -14,15 +14,25 @@
+@@ -14,14 +14,24 @@
  #    under the License.
  
  
@@ -51,7 +51,6 @@
  
  import ddt
  from oslo_utils import units
- import six
  
 +if TYPE_CHECKING:
 +    if sys.version_info >= (3, 11):
@@ -62,7 +61,7 @@
  
  fakeStorPool = mock.Mock()
  fakeStorPool.spopenstack = mock.Mock()
-@@ -32,12 +42,21 @@ fakeStorPool.sptypes = mock.Mock()
+@@ -31,12 +41,21 @@ fakeStorPool.sptypes = mock.Mock()
  sys.modules['storpool'] = fakeStorPool
  
  
@@ -84,7 +83,7 @@
  volume_types = {
      1: {},
      2: {'storpool_template': 'ssd'},
-@@ -71,6 +90,10 @@ def snapshotName(vtype, vid):
+@@ -70,6 +89,10 @@ def snapshotName(vtype, vid):
      return 'os--snap--{t}--{id}'.format(t=vtype, id=vid)
  
  
@@ -95,7 +94,7 @@
  class MockDisk(object):
      def __init__(self, diskId):
          self.id = diskId
-@@ -181,6 +204,273 @@ def MockVolumeUpdateDesc(size):
+@@ -180,6 +203,273 @@ def MockVolumeUpdateDesc(size):
      return {'size': size}
  
  
@@ -369,7 +368,7 @@
  def MockSPConfig(section = 's01'):
      res = {}
      m = re.match('^s0*([A-Za-z0-9]+)$', section)
-@@ -222,7 +512,15 @@ class StorPoolTestCase(test.TestCase):
+@@ -221,7 +511,15 @@ class StorPoolTestCase(test.TestCase):
          self.cfg.volume_backend_name = 'storpool_test'
          self.cfg.storpool_template = None
          self.cfg.storpool_replication = 3
@@ -385,7 +384,7 @@
          mock_exec = mock.Mock()
          mock_exec.return_value = ('', '')
  
-@@ -231,7 +529,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -230,7 +528,7 @@ class StorPoolTestCase(test.TestCase):
          self.driver.check_for_setup_error()
  
      @ddt.data(
@@ -394,7 +393,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
          ({'host': 's01'}, None),
-@@ -247,7 +545,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -246,7 +544,7 @@ class StorPoolTestCase(test.TestCase):
                                conn)
  
      @ddt.data(
@@ -403,7 +402,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
      )
-@@ -286,7 +584,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -285,7 +583,7 @@ class StorPoolTestCase(test.TestCase):
              self.assertEqual(21, pool['total_capacity_gb'])
              self.assertEqual(5, int(pool['free_capacity_gb']))
  
@@ -412,7 +411,7 @@
              self.assertFalse(pool['QoS_support'])
              self.assertFalse(pool['thick_provisioning_support'])
              self.assertTrue(pool['thin_provisioning_support'])
-@@ -644,3 +942,136 @@ class StorPoolTestCase(test.TestCase):
+@@ -641,3 +939,136 @@ class StorPoolTestCase(test.TestCase):
                           self.driver.get_pool({
                               'volume_type': volume_type
                           }))
@@ -550,7 +549,7 @@
 +            volumeName(fconst.VOLUME_ID),
 +        )
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index b15a201c3..d8c420a66 100644
+index caa0ce06e..cec7589f2 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
 @@ -15,6 +15,7 @@
@@ -561,7 +560,7 @@
  import platform
  
  from oslo_config import cfg
-@@ -44,6 +45,31 @@ if storpool:
+@@ -43,6 +44,31 @@ if storpool:
  
  
  storpool_opts = [
@@ -593,7 +592,7 @@
      cfg.StrOpt('storpool_template',
                 default=None,
                 help='The StorPool template for volumes with no type.'),
-@@ -105,6 +131,7 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -104,6 +130,7 @@ class StorPoolDriver(driver.VolumeDriver):
          self._ourId = None
          self._ourIdInt = None
          self._attach = None
@@ -601,7 +600,7 @@
  
      @staticmethod
      def get_driver_options():
-@@ -162,10 +189,326 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -161,10 +188,326 @@ class StorPoolDriver(driver.VolumeDriver):
              raise StorPoolConfigurationInvalid(
                  section=hostname, param='SP_OURID', error=e)
  
@@ -928,7 +927,7 @@
          return {'driver_volume_type': 'storpool',
                  'data': {
                      'client_id': self._storpool_client_id(connector),
-@@ -174,6 +517,9 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -173,6 +516,9 @@ class StorPoolDriver(driver.VolumeDriver):
                  }}
  
      def terminate_connection(self, volume, connector, **kwargs):
@@ -938,7 +937,7 @@
          pass
  
      def create_snapshot(self, snapshot):
-@@ -275,11 +621,20 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -274,11 +620,20 @@ class StorPoolDriver(driver.VolumeDriver):
                      )
  
      def create_export(self, context, volume, connector):
@@ -960,7 +959,7 @@
      def delete_volume(self, volume):
          name = self._attach.volumeName(volume['id'])
          try:
-@@ -316,6 +671,17 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -315,6 +670,17 @@ class StorPoolDriver(driver.VolumeDriver):
              LOG.error("StorPoolDriver API initialization failed: %s", e)
              raise
  
@@ -978,7 +977,7 @@
      def _update_volume_stats(self):
          try:
              dl = self._attach.api().disksList()
-@@ -341,7 +707,7 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -340,7 +706,7 @@ class StorPoolDriver(driver.VolumeDriver):
              'total_capacity_gb': total / units.Gi,
              'free_capacity_gb': free / units.Gi,
              'reserved_percentage': 0,
@@ -987,7 +986,7 @@
              'QoS_support': False,
              'thick_provisioning_support': False,
              'thin_provisioning_support': True,
-@@ -360,7 +726,9 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -359,7 +725,9 @@ class StorPoolDriver(driver.VolumeDriver):
                  'volume_backend_name') or 'storpool',
              'vendor_name': 'StorPool',
              'driver_version': self.VERSION,
@@ -1105,5 +1104,5 @@
 +    ``iscsi_export_to`` is set to ``*`, that is, all StorPool volumes will be
 +    exported via iSCSI to all initiators.
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch b/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
index e4583e8..29496eb 100644
--- a/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
+++ b/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
@@ -1,7 +1,7 @@
-From 9f79ab1ac4e5392b7c1ad8ab6f327abecea6e528 Mon Sep 17 00:00:00 2001
+From a0fb970b3b8dc3f95e2198d68f1c992f4542119f Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Tue, 20 Apr 2021 17:46:41 +0300
-Subject: [PATCH 02/10] StorPool: drop _attach_volume() and _detach_volume()
+Subject: [PATCH 1/9] StorPool: drop _attach_volume() and _detach_volume()
 
 Our os-brick connector already handles the "keep track of which volume
 is attached for what reason" calls to storpool.spopenstack. However,
@@ -23,10 +23,10 @@
  create mode 100644 releasenotes/notes/bug-1939241-storpool-attach-encrypted-volumes-783c723683b8f9a9.yaml
 
 diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
-index a5f763b96..2e6f56526 100644
+index 4c0241eca..0eac3d957 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
-@@ -225,7 +225,9 @@ class StorPoolTestCase(test.TestCase):
+@@ -224,7 +224,9 @@ class StorPoolTestCase(test.TestCase):
      def test_initialize_connection_good(self, cid, hid, name):
          c = self.driver.initialize_connection({'id': hid}, {'host': name})
          self.assertEqual('storpool', c['driver_volume_type'])
@@ -38,10 +38,10 @@
      def test_noop_functions(self):
          self.driver.terminate_connection(None, None)
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index d42d1c68c..1fc4262b2 100644
+index abfdad160..d21fb52f6 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -168,6 +168,7 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -167,6 +167,7 @@ class StorPoolDriver(driver.VolumeDriver):
                  'data': {
                      'client_id': self._storpool_client_id(connector),
                      'volume': volume['id'],
@@ -49,7 +49,7 @@
                  }}
  
      def terminate_connection(self, volume, connector, **kwargs):
-@@ -314,45 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -313,45 +314,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }
  
@@ -109,5 +109,5 @@
 +    encrypted StorPool volumes by dropping the needlessly and incompletely
 +    overridden `_attach_volume()` and `_detach_volume()` methods.
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-retype-vol.patch b/patches/openstack/cinder/sep-sp-retype-vol.patch
index 0e48852..94caf52 100644
--- a/patches/openstack/cinder/sep-sp-retype-vol.patch
+++ b/patches/openstack/cinder/sep-sp-retype-vol.patch
@@ -1,7 +1,7 @@
-From 816aa85f4b3b081f1e79436b9c6c60d47fb220e5 Mon Sep 17 00:00:00 2001
+From 46d0c4c964abda3c8018e7896acab480502f11b3 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 14 Dec 2022 17:55:56 +0200
-Subject: [PATCH 06/10] StorPool: fix the retype volume flow
+Subject: [PATCH 5/9] StorPool: fix the retype volume flow
 
 Change-Id: I786733aae17dea47e3e6f2a393a947bfb46e70a3
 Closes-Bug: #2002995
@@ -11,10 +11,10 @@
  2 files changed, 47 insertions(+), 16 deletions(-)
 
 diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
-index f878c6d26..24715fa29 100644
+index 442bdbb88..8792678ed 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
-@@ -358,12 +358,6 @@ class StorPoolTestCase(test.TestCase):
+@@ -356,12 +356,6 @@ class StorPoolTestCase(test.TestCase):
                                                   'available')
          self.assertDictEqual({'_name_id': '1'}, res)
  
@@ -27,8 +27,8 @@
          # Success: rename the migrated volume to match the original
          res = self.driver.update_migrated_volume(None, {'id': '3'},
                                                   {'id': '2', '_name_id': '3'},
-@@ -374,6 +368,16 @@ class StorPoolTestCase(test.TestCase):
-                              volumes.keys())
+@@ -371,6 +365,16 @@ class StorPoolTestCase(test.TestCase):
+                               volumes.keys())
          self.assertVolumeNames(('1', '3',))
  
 +        # Success: swap volume names with an existing volume
@@ -45,10 +45,10 @@
              self.driver.delete_volume({'id': vid})
          self.assertVolumeNames([])
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 37e36fd61..97d188fd4 100644
+index 6c67ae567..c2b566f4a 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -353,10 +353,12 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -352,10 +352,12 @@ class StorPoolDriver(driver.VolumeDriver):
                              update['template'] = templ
                          else:
                              update['replication'] = repl
@@ -65,7 +65,7 @@
  
          if update:
              name = self._attach.volumeName(volume['id'])
-@@ -381,21 +383,46 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -380,21 +382,46 @@ class StorPoolDriver(driver.VolumeDriver):
                        'created as part of the migration from '
                        '"%(oid)s".', {'tid': temp_id, 'oid': orig_id})
              return {'_name_id': new_volume['_name_id'] or new_volume['id']}
@@ -119,5 +119,5 @@
 +                      {'tname': temp_name, 'oname': orig_name, 'err': e})
 +            return {'_name_id': new_volume['_name_id'] or new_volume['id']}
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-rm-backup.patch b/patches/openstack/cinder/sep-sp-rm-backup.patch
index 8c7d334..85f0eeb 100644
--- a/patches/openstack/cinder/sep-sp-rm-backup.patch
+++ b/patches/openstack/cinder/sep-sp-rm-backup.patch
@@ -1,7 +1,7 @@
-From a1b26cc52eb2855226052e19301e6e6827dcb699 Mon Sep 17 00:00:00 2001
+From 090fb2fb26ccfe699712c350e2c468f76fbfd560 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 11 May 2020 11:02:53 +0300
-Subject: [PATCH 03/10] StorPool driver: remove the obsolete backup_volume()
+Subject: [PATCH 2/9] StorPool driver: remove the obsolete backup_volume()
 
 Follow suit with I984de3df803f12dbb95e3309e668b3fbd519e70f.
 
@@ -11,10 +11,10 @@
  1 file changed, 29 deletions(-)
 
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 1fc4262b2..d1c6f0ca5 100644
+index d21fb52f6..9414bc62a 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -315,35 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -314,35 +314,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }
  
@@ -51,5 +51,5 @@
          req_id = context.request_id
          volname = self._attach.volumeName(volume['id'])
 -- 
-2.42.0
+2.43.0
 
diff --git a/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch b/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
index 6fe2319..5a68f76 100644
--- a/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
+++ b/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
@@ -1,4 +1,4 @@
-From 7daed00eb1208ed62a9bd7f8432ed6d48b2efb01 Mon Sep 17 00:00:00 2001
+From d2a67266ecc5a9b851b589da1839b74deaec3585 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 26 Sep 2022 16:04:36 +0300
 Subject: [PATCH 3/9] StorPool: drop copy_image_to_volume() and
@@ -14,10 +14,10 @@
  1 file changed, 45 deletions(-)
 
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index c595c1c0c..37e36fd61 100644
+index 9414bc62a..6c67ae567 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -315,51 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -314,51 +314,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }