Merge "Adding ability to run tempest tests for multinode"
diff --git a/_modules/runtest/tempest_sections/image.py b/_modules/runtest/tempest_sections/image.py
index 6d9913e..7b94f1f 100644
--- a/_modules/runtest/tempest_sections/image.py
+++ b/_modules/runtest/tempest_sections/image.py
@@ -1,6 +1,8 @@
 
 import base_section
 
+from runtest import conditions
+
 class Image(base_section.BaseSection):
 
     name = "image"
@@ -46,4 +48,6 @@
 
     @property
     def region(self):
-        pass
+        c = conditions.BaseRule('glance.server.enabled', 'eq', True)
+        return self.get_item_when_condition_match(
+            'glance.server.identity.region', c)
diff --git a/_modules/runtest/tempest_sections/orchestration.py b/_modules/runtest/tempest_sections/orchestration.py
index 7bd3374..e280481 100644
--- a/_modules/runtest/tempest_sections/orchestration.py
+++ b/_modules/runtest/tempest_sections/orchestration.py
@@ -1,6 +1,8 @@
 
 import base_section
 
+from runtest import conditions
+
 class Orchestration(base_section.BaseSection):
 
     name = "orchestration"
@@ -15,6 +17,7 @@
         'max_template_size',
         'region',
         'stack_owner_role',
+        'stack_user_role',
     ]
 
 
@@ -57,3 +60,9 @@
     @property
     def stack_owner_role(self):
         pass
+
+    @property
+    def stack_user_role(self):
+        c = conditions.BaseRule('heat.server.enabled', 'eq', True)
+        return self.get_item_when_condition_match(
+            'heat.server.identity.user', c)
diff --git a/_modules/runtest/tempest_sections/volume.py b/_modules/runtest/tempest_sections/volume.py
index 4df5fbb..8a2ef73 100644
--- a/_modules/runtest/tempest_sections/volume.py
+++ b/_modules/runtest/tempest_sections/volume.py
@@ -1,6 +1,8 @@
 
 import base_section
 
+from runtest import conditions
+
 class Volume(base_section.BaseSection):
 
     name = "volume"
@@ -64,7 +66,9 @@
 
     @property
     def region(self):
-        pass
+        c = conditions.BaseRule('cinder.controller.enabled', 'eq', True)
+        return self.get_item_when_condition_match(
+            'cinder.controller.identity.region', c)
 
     @property
     def storage_protocol(self):
diff --git a/_modules/runtest/tempest_sections/volume_feature_enabled.py b/_modules/runtest/tempest_sections/volume_feature_enabled.py
index 22a754c..0386a06 100644
--- a/_modules/runtest/tempest_sections/volume_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/volume_feature_enabled.py
@@ -1,6 +1,8 @@
 
 import base_section
 
+from runtest import conditions
+
 class VolumeFeatureEnabled(base_section.BaseSection):
 
     name = "volume-feature-enabled"
@@ -37,7 +39,11 @@
 
     @property
     def backup(self):
-        pass
+        # Currently our cinder formula supports only cinder backend
+        # collocated together with cinder volume.
+        c = conditions.BaseRule('cinder.volume.enabled', 'eq', True)
+        return bool(self.get_item_when_condition_match(
+            'cinder.volume.backup.engine', c))
 
     @property
     def clone(self):