diff --git a/_modules/runtest/tempest_sections/compute_feature_enabled.py b/_modules/runtest/tempest_sections/compute_feature_enabled.py
index 70d5242..16366ef 100644
--- a/_modules/runtest/tempest_sections/compute_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/compute_feature_enabled.py
@@ -54,11 +54,32 @@
 
     @property
     def block_migrate_cinder_iscsi(self):
-        pass
+        c = conditions.BaseRule('cinder.volume.enabled', 'eq', True)
+        backends = self.get_item_when_condition_match(
+            'cinder.volume.backend', c)
+        if not backends:
+            return False
+
+        for backend_name,backend in backends.iteritems():
+            res = backend['engine']
+            if res == 'lvm':
+              return True
+        return False
+
 
     @property
     def block_migration_for_live_migration(self):
-        pass
+        c = conditions.BaseRule('cinder.volume.enabled', 'eq', True)
+        backends = self.get_item_when_condition_match(
+            'cinder.volume.backend', c)
+        if not backends:
+            return False
+
+        for backend_name,backend in backends.iteritems():
+            res = backend['engine']
+            if res == 'ceph':
+              return True
+        return False
 
     @property
     def change_password(self):
