diff --git a/patches/openstack/cinder/sep-sp-iscsi.patch b/patches/openstack/cinder/sep-sp-iscsi.patch
index 6df5e6e..1ec0908 100644
--- a/patches/openstack/cinder/sep-sp-iscsi.patch
+++ b/patches/openstack/cinder/sep-sp-iscsi.patch
@@ -1,4 +1,4 @@
-From bfc35f997b9ad20ac9a7ad0c363594230ab820c8 Mon Sep 17 00:00:00 2001
+From 2acfdddf0794754aa0e32a56800e77387f75ce38 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] Add iSCSI export support to the StorPool driver
@@ -25,15 +25,15 @@
 
 Change-Id: I9de64306e0e6976268df782053b0651dd1cca96f
 ---
- .../unit/volume/drivers/test_storpool.py      | 522 +++++++++++++++++-
+ .../unit/volume/drivers/test_storpool.py      | 521 +++++++++++++++++-
  cinder/volume/drivers/storpool.py             | 379 ++++++++++++-
  .../drivers/storpool-volume-driver.rst        |  68 ++-
  .../storpool-iscsi-cefcfe590a07c5c7.yaml      |  15 +
- 4 files changed, 973 insertions(+), 11 deletions(-)
+ 4 files changed, 972 insertions(+), 11 deletions(-)
  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 80b68a8af..d0bb568a6 100644
+index 44707d0b8..d6347e1d5 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
 @@ -14,14 +14,24 @@
@@ -61,15 +61,15 @@
  
  fakeStorPool = mock.Mock()
  fakeStorPool.spopenstack = mock.Mock()
-@@ -31,12 +41,21 @@ fakeStorPool.sptypes = mock.Mock()
+@@ -31,6 +41,7 @@ fakeStorPool.sptypes = mock.Mock()
  sys.modules['storpool'] = fakeStorPool
  
  
 +from cinder.common import constants
  from cinder import exception
-+from cinder.tests.unit import fake_constants as fconst
+ from cinder.tests.unit import fake_constants
  from cinder.tests.unit import test
- from cinder.volume import configuration as conf
+@@ -38,6 +49,13 @@ from cinder.volume import configuration as conf
  from cinder.volume.drivers import storpool as driver
  
  
@@ -81,9 +81,9 @@
 +_ISCSI_PORTAL_GROUP = 'openstack_pg'
 +
  volume_types = {
-     1: {},
-     2: {'storpool_template': 'ssd'},
-@@ -70,6 +89,10 @@ def snapshotName(vtype, vid):
+     fake_constants.VOLUME_TYPE_ID: {},
+     fake_constants.VOLUME_TYPE2_ID: {'storpool_template': 'ssd'},
+@@ -71,6 +89,10 @@ def snapshotName(vtype, vid):
      return 'os--snap--{t}--{id}'.format(t=vtype, id=vid)
  
  
@@ -94,7 +94,7 @@
  class MockDisk(object):
      def __init__(self, diskId):
          self.id = diskId
-@@ -194,6 +217,315 @@ def MockVolumeUpdateDesc(size):
+@@ -195,6 +217,315 @@ def MockVolumeUpdateDesc(size):
      return {'size': size}
  
  
@@ -177,8 +177,8 @@
 +
 +        targets = {
 +            '0': MockIscsiTarget(
-+                name=targetName(fconst.VOLUME2_ID),
-+                volume=volumeName(fconst.VOLUME2_ID),
++                name=targetName(fake_constants.VOLUME2_ID),
++                volume=volumeName(fake_constants.VOLUME2_ID),
 +            ),
 +        }
 +        if tcase.volume is not None:
@@ -242,7 +242,7 @@
 +            {
 +                'initiator': _ISCSI_IQN_OURS,
 +                'portalGroup': _ISCSI_PORTAL_GROUP,
-+                'volumeName': volumeName(fconst.VOLUME_ID),
++                'volumeName': volumeName(fake_constants.VOLUME_ID),
 +            },
 +        )
 +        self._asrt.assertEqual(cfg.initiators['1'].name, cmd['initiator'])
@@ -257,7 +257,7 @@
 +                    exports=[
 +                        MockIscsiExport(
 +                            portalGroup=cmd['portalGroup'],
-+                            target=targetName(fconst.VOLUME_ID),
++                            target=targetName(fake_constants.VOLUME_ID),
 +                        ),
 +                    ],
 +                ),
@@ -275,7 +275,7 @@
 +            {
 +                'initiator': _ISCSI_IQN_OURS,
 +                'portalGroup': _ISCSI_PORTAL_GROUP,
-+                'volumeName': volumeName(fconst.VOLUME_ID),
++                'volumeName': volumeName(fake_constants.VOLUME_ID),
 +            },
 +        )
 +        self._asrt.assertEqual(cfg.initiators['1'].name, cmd['initiator'])
@@ -324,7 +324,7 @@
 +        """Add a target for a volume so that it may be exported."""
 +        self._asrt.assertDictEqual(
 +            cmd,
-+            {'volumeName': volumeName(fconst.VOLUME_ID)},
++            {'volumeName': volumeName(fake_constants.VOLUME_ID)},
 +        )
 +        self._asrt.assertListEqual(sorted(cfg.targets), ['0'])
 +        return dataclasses.replace(
@@ -332,8 +332,8 @@
 +            targets={
 +                **cfg.targets,
 +                '1': MockIscsiTarget(
-+                    name=targetName(fconst.VOLUME_ID),
-+                    volume=volumeName(fconst.VOLUME_ID),
++                    name=targetName(fake_constants.VOLUME_ID),
++                    volume=volumeName(fake_constants.VOLUME_ID),
 +                ),
 +            },
 +        )
@@ -346,7 +346,7 @@
 +        """Remove a target for a volume."""
 +        self._asrt.assertDictEqual(
 +            cmd,
-+            {'volumeName': volumeName(fconst.VOLUME_ID)},
++            {'volumeName': volumeName(fake_constants.VOLUME_ID)},
 +        )
 +
 +        self._asrt.assertListEqual(sorted(cfg.targets), ['0', '1'])
@@ -402,15 +402,15 @@
 +_ISCSI_TEST_CASES = [
 +    IscsiTestCase(None, None, False, 4),
 +    IscsiTestCase(_ISCSI_IQN_OURS, None, False, 2),
-+    IscsiTestCase(_ISCSI_IQN_OURS, fconst.VOLUME_ID, False, 1),
-+    IscsiTestCase(_ISCSI_IQN_OURS, fconst.VOLUME_ID, True, 0),
++    IscsiTestCase(_ISCSI_IQN_OURS, fake_constants.VOLUME_ID, False, 1),
++    IscsiTestCase(_ISCSI_IQN_OURS, fake_constants.VOLUME_ID, True, 0),
 +]
 +
 +
  def MockSPConfig(section = 's01'):
      res = {}
      m = re.match('^s0*([A-Za-z0-9]+)$', section)
-@@ -236,7 +568,15 @@ class StorPoolTestCase(test.TestCase):
+@@ -237,7 +568,15 @@ class StorPoolTestCase(test.TestCase):
          self.cfg.volume_backend_name = 'storpool_test'
          self.cfg.storpool_template = None
          self.cfg.storpool_replication = 3
@@ -426,7 +426,7 @@
          mock_exec = mock.Mock()
          mock_exec.return_value = ('', '')
  
-@@ -245,7 +585,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -246,7 +585,7 @@ class StorPoolTestCase(test.TestCase):
          self.driver.check_for_setup_error()
  
      @ddt.data(
@@ -435,7 +435,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
          ({'host': 's01'}, None),
-@@ -261,7 +601,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -262,7 +601,7 @@ class StorPoolTestCase(test.TestCase):
                                conn)
  
      @ddt.data(
@@ -444,7 +444,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
      )
-@@ -300,7 +640,7 @@ class StorPoolTestCase(test.TestCase):
+@@ -301,7 +640,7 @@ class StorPoolTestCase(test.TestCase):
              self.assertEqual(21, pool['total_capacity_gb'])
              self.assertEqual(5, int(pool['free_capacity_gb']))
  
@@ -453,7 +453,7 @@
              self.assertFalse(pool['QoS_support'])
              self.assertFalse(pool['thick_provisioning_support'])
              self.assertTrue(pool['thin_provisioning_support'])
-@@ -703,3 +1043,179 @@ class StorPoolTestCase(test.TestCase):
+@@ -720,3 +1059,179 @@ class StorPoolTestCase(test.TestCase):
                                 'No such volume',
                                 self.driver.revert_to_snapshot, None,
                                 {'id': vol_id}, {'id': snap_id})
@@ -556,7 +556,7 @@
 +        with mock.patch.object(self.driver._attach, 'api', new=lambda: iapi):
 +            res = self.driver._get_iscsi_config(
 +                _ISCSI_IQN_OURS,
-+                fconst.VOLUME_ID,
++                fake_constants.VOLUME_ID,
 +            )
 +
 +        self._validate_iscsi_config(cfg_orig, res, tcase)
@@ -570,8 +570,8 @@
 +        with mock.patch.object(self.driver._attach, 'api', new=lambda: iapi):
 +            self.driver._create_iscsi_export(
 +                {
-+                    'id': fconst.VOLUME_ID,
-+                    'display_name': fconst.VOLUME_NAME,
++                    'id': fake_constants.VOLUME_ID,
++                    'display_name': fake_constants.VOLUME_NAME,
 +                },
 +                {
 +                    # Yeah, okay, so we cheat a little bit here...
@@ -585,11 +585,11 @@
 +        self.assertEqual(cfg_final.initiators['1'].name, _ISCSI_IQN_OURS)
 +        self.assertEqual(
 +            cfg_final.initiators['1'].exports[0].target,
-+            targetName(fconst.VOLUME_ID),
++            targetName(fake_constants.VOLUME_ID),
 +        )
 +        self.assertEqual(
 +            cfg_final.targets['1'].volume,
-+            volumeName(fconst.VOLUME_ID),
++            volumeName(fake_constants.VOLUME_ID),
 +        )
 +
 +    @ddt.data(*_ISCSI_TEST_CASES)
@@ -620,8 +620,8 @@
 +        with mock.patch.object(self.driver._attach, 'api', new=lambda: iapi):
 +            self.driver._remove_iscsi_export(
 +                {
-+                    'id': fconst.VOLUME_ID,
-+                    'display_name': fconst.VOLUME_NAME,
++                    'id': fake_constants.VOLUME_ID,
++                    'display_name': fake_constants.VOLUME_NAME,
 +                },
 +                {
 +                    'host': _ISCSI_IQN_OURS + '.hostname',
