diff --git a/.zuul.yaml b/.zuul.yaml
index 2b502c7..276a927 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -254,6 +254,11 @@
       Integration tests that runs with the ceph devstack plugin, py3
       and enable the backup service.
     vars:
+      # FIXME: change I29b1af0a4034decad to tempest added image format tests that
+      # cannot pass in this job because the image data takes a optimized path that
+      # bypasses nova's checks.  Until the nova team decides on a strategy to handle
+      # this issue, we skip these tests.
+      tempest_exclude_regex: (tempest.api.image.v2.test_images_formats.ImagesFormatTest.test_compute_rejects)
       configure_swap_size: 4096
       devstack_local_conf:
         test-config:
@@ -304,7 +309,7 @@
     parent: cinder-tempest-plugin-lvm-barbican-base
     vars:
       devstack_localrc:
-        CINDER_ISCSI_HELPER: lioadm
+        CINDER_TARGET_HELPER: lioadm
 
 - job:
     name: cinder-tempest-plugin-lvm-lio-barbican-centos-9-stream
@@ -368,7 +373,7 @@
     parent: cinder-tempest-plugin-lvm-barbican-base
     vars:
       devstack_localrc:
-        CINDER_ISCSI_HELPER: tgtadm
+        CINDER_TARGET_HELPER: tgtadm
 
 - job:
     name: cinder-tempest-plugin-cbak-s3
diff --git a/babel.cfg b/babel.cfg
deleted file mode 100644
index 15cd6cb..0000000
--- a/babel.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-[python: **.py]
-
diff --git a/cinder_tempest_plugin/rbac/v3/test_snapshots.py b/cinder_tempest_plugin/rbac/v3/test_snapshots.py
index f11da42..14377a9 100644
--- a/cinder_tempest_plugin/rbac/v3/test_snapshots.py
+++ b/cinder_tempest_plugin/rbac/v3/test_snapshots.py
@@ -17,6 +17,8 @@
 from tempest.lib import decorators
 from tempest.lib import exceptions
 
+import testtools
+
 from cinder_tempest_plugin.rbac.v3 import base as rbac_base
 
 CONF = config.CONF
@@ -309,10 +311,15 @@
     def test_force_delete_snapshot(self):
         self._force_delete_snapshot(expected_status=exceptions.Forbidden)
 
+    # We don't need to skip the unmanage because the failure should happen at
+    # the API level, so it should fail regardless of the driver support for
+    # unmanaging snapshots.
     @decorators.idempotent_id('35495666-b663-4c68-ba44-0695e30a6838')
     def test_unmanage_snapshot(self):
         self._unmanage_snapshot(expected_status=exceptions.Forbidden)
 
+    @testtools.skipUnless(CONF.volume_feature_enabled.manage_snapshot,
+                          'manage snapshots are disabled')
     @decorators.idempotent_id('d2d1326d-fb47-4448-a1e1-2d1219d30fd5')
     def test_manage_snapshot(self):
         self._manage_snapshot(
@@ -362,10 +369,15 @@
     def test_force_delete_snapshot(self):
         self._force_delete_snapshot(expected_status=exceptions.Forbidden)
 
+    # We don't need to skip the unmanage because the failure should happen at
+    # the API level, so it should fail regardless of the driver support for
+    # unmanaging snapshots.
     @decorators.idempotent_id('dd7da3da-68ef-42f5-af1d-29803a4a04fd')
     def test_unmanage_snapshot(self):
         self._unmanage_snapshot(expected_status=exceptions.Forbidden)
 
+    @testtools.skipUnless(CONF.volume_feature_enabled.manage_snapshot,
+                          'manage snapshots are disabled')
     @decorators.idempotent_id('c2501d05-9bca-42d7-9ab5-c0d9133e762f')
     def test_manage_snapshot(self):
         self._manage_snapshot(
diff --git a/cinder_tempest_plugin/scenario/test_volume_multiattach.py b/cinder_tempest_plugin/scenario/test_volume_multiattach.py
index e04610f..4fb266e 100644
--- a/cinder_tempest_plugin/scenario/test_volume_multiattach.py
+++ b/cinder_tempest_plugin/scenario/test_volume_multiattach.py
@@ -71,18 +71,25 @@
         # Create a multiattach volume
         volume = self.create_volume(volume_type=multiattach_vol_type['id'])
 
-        # Create encrypted volume
-        encrypted_volume = self.create_encrypted_volume(
-            'luks', volume_type='luks')
+        # Create a volume with the default volume type
+        default_volume = self.create_volume()
 
-        # Create a normal volume
-        simple_volume = self.create_volume()
+        # Create other volume
+        if CONF.compute_feature_enabled.attach_encrypted_volume:
+            other_volume = self.create_encrypted_volume(
+                'luks', volume_type='luks')
+        else:
+            # Create secondary volume type
+            second_vol_type = self.create_volume_type()
 
-        # Attach normal and encrypted volumes (These volumes are not used in
+            other_volume = self.create_volume(
+                volume_type=second_vol_type['id'])
+
+        # Attach default and secondary volumes (These volumes are not used in
         # the current test but is used to emulate a real world scenario
         # where different types of volumes will be attached to the server)
-        self.attach_volume(server_1, simple_volume)
-        self.attach_volume(server_1, encrypted_volume)
+        self.attach_volume(server_1, default_volume)
+        self.attach_volume(server_1, other_volume)
 
         instance_ip = self.get_server_ip(server_1)
 
diff --git a/test-requirements.txt b/test-requirements.txt
index 905ad51..cb279bc 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,7 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking>=3.0.1,<3.1 # Apache-2.0
+hacking>=6.1.0,<7.0 # Apache-2.0
 
 coverage!=4.4,>=4.0 # Apache-2.0
 python-subunit>=1.0.0 # Apache-2.0/BSD
