diff --git a/_modules/runtest/tempest_sections/auth.py b/_modules/runtest/tempest_sections/auth.py
index be7e38d..3d9b4ba 100644
--- a/_modules/runtest/tempest_sections/auth.py
+++ b/_modules/runtest/tempest_sections/auth.py
@@ -53,10 +53,11 @@
         # Barbican may be enabled in several components like nova,glance,cinder.
         # Look for nova only as it is core openstack service and present on each installation.
         # Assume if barbican is enabled in nova, its integration enabled globally.
+
         roles = []
-        contrail_enabled = conditions.BaseRule('opencontrail.control.enabled',
+        contrail_enabled = conditions.BaseRule('*.opencontrail.control.enabled',
                                                'eq', True, multiple='any')
-        if contrail_enabled:
+        if contrail_enabled.check(self.pillar):
             roles.append("admin")
         c = conditions.BaseRule('nova.controller.enabled', 'eq', True)
         if self.get_item_when_condition_match('nova.controller.barbican.enabled', c):
diff --git a/_modules/runtest/tempest_sections/compute.py b/_modules/runtest/tempest_sections/compute.py
index 6ae4439..783f997 100644
--- a/_modules/runtest/tempest_sections/compute.py
+++ b/_modules/runtest/tempest_sections/compute.py
@@ -162,7 +162,10 @@
 
     @property
     def min_compute_nodes(self):
-        pass
+        c = conditions.BaseRule(field='nova.compute.enabled', op='eq',
+                                val=True)
+        nodes = self.get_nodes_where_condition_match(c)
+        return len(nodes)
 
     @property
     def min_microversion(self):
diff --git a/_modules/runtest/tempest_sections/patrole_plugin.py b/_modules/runtest/tempest_sections/patrole_plugin.py
index f74284b..20f6a76 100644
--- a/_modules/runtest/tempest_sections/patrole_plugin.py
+++ b/_modules/runtest/tempest_sections/patrole_plugin.py
@@ -25,9 +25,9 @@
 
     @property
     def custom_policy_files(self):
-        contrail_enabled = conditions.BaseRule('opencontrail.control.enabled',
+        contrail_enabled = conditions.BaseRule('*.opencontrail.control.enabled',
                                                'eq', True, multiple='any')
-        if contrail_enabled:
+        if contrail_enabled.check(self.pillar):
             return '/etc/opencontrail/policy.json'
         else:
             pass
diff --git a/_modules/runtest/tempest_sections/tungsten_plugin.py b/_modules/runtest/tempest_sections/tungsten_plugin.py
index 8b477ae..2b86029 100644
--- a/_modules/runtest/tempest_sections/tungsten_plugin.py
+++ b/_modules/runtest/tempest_sections/tungsten_plugin.py
@@ -23,9 +23,9 @@
 
     @property
     def catalog_type(self):
-        contrail_enabled = conditions.BaseRule('opencontrail.control.enabled',
+        contrail_enabled = conditions.BaseRule('*.opencontrail.control.enabled',
                                                'eq', True, multiple='any')
-        if contrail_enabled:
+        if contrail_enabled.check(self.pillar):
             c = conditions.BaseRule('keystone.client.enabled', 'eq', True)
             return self.get_item_when_condition_match(
                 'keystone.client.server.identity.service.opencontrail.type', c)
