Fixes for non-all-in-one model

Change-Id: I12ee2bc9003ab4738b003c83240ed22e1c53bc1d
diff --git a/_modules/runtest/tempest_sections/heat_plugin.py b/_modules/runtest/tempest_sections/heat_plugin.py
index 7bd1196..46731d9 100644
--- a/_modules/runtest/tempest_sections/heat_plugin.py
+++ b/_modules/runtest/tempest_sections/heat_plugin.py
@@ -58,7 +58,6 @@
         'volume_size',
     ]
 
-
     @property
     def admin_password(self):
         c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
@@ -143,6 +142,8 @@
         c = conditions.BaseRule('neutron.client.enabled', 'eq', True)
         networks = self.get_item_when_condition_match(
             'neutron.client.server.admin_identity.network', c)
+        if not networks:
+            return
         for network_name, network in networks.items():
             if network['router_external'] is True:
                 return network_name
@@ -160,7 +161,12 @@
         c = conditions.BaseRule('nova.client.enabled', 'eq', True)
         flavors = self.get_item_when_condition_match(
             'nova.client.server.admin_identity.flavor', c)
-        instance_type_name, _ = sorted(flavors.items(), key=lambda (k, v): (v, k))[-1]
+        if not flavors:
+            return
+        instance_type_name, _ = sorted(
+            flavors.items(),
+            key=lambda (k, v): (v, k)
+        )[-1]
         return instance_type_name
 
     @property
@@ -180,7 +186,12 @@
         c = conditions.BaseRule('nova.client.enabled', 'eq', True)
         flavors = self.get_item_when_condition_match(
             'nova.client.server.admin_identity.flavor', c)
-        minimal_instance_type_name, _ = sorted(flavors.items(), key=lambda (k, v): (v, k))[0]
+        if not flavors:
+            return
+        minimal_instance_type_name, _ = sorted(
+            flavors.items(),
+            key=lambda (k, v): (v, k)
+        )[0]
         return minimal_instance_type_name
 
     @property
@@ -217,7 +228,6 @@
     def sighup_config_edit_retries(self):
         pass
 
-
     @property
     def sighup_timeout(self):
         pass
diff --git a/_modules/runtest/tempest_sections/network.py b/_modules/runtest/tempest_sections/network.py
index cdf3daa..af1be32 100644
--- a/_modules/runtest/tempest_sections/network.py
+++ b/_modules/runtest/tempest_sections/network.py
@@ -3,6 +3,7 @@
 
 from runtest import conditions
 
+
 class Network(base_section.BaseSection):
 
     name = "network"
@@ -26,7 +27,6 @@
         'shared_physical_network',
     ]
 
-
     @property
     def build_interval(self):
         pass
@@ -56,6 +56,8 @@
         c = conditions.BaseRule('neutron.client.enabled', 'eq', True)
         networks = self.get_item_when_condition_match(
             'neutron.client.server.admin_identity.network', c)
+        if not networks:
+            return
         for network_name, network in networks.items():
             if network['router_external'] is True:
                 return network_name
@@ -95,11 +97,17 @@
             runtest_enable)
 
         if not network_name:
-          return
+            return
 
-        keystone_profile_admin = self.runtest_opts.get('keystone_profile_admin', {})
+        keystone_profile_admin = self.runtest_opts.get(
+            'keystone_profile_admin',
+            {}
+        )
         res = self.authenticated_openstack_module_call(
-            nodes[0], 'neutronng.list_networks', profile=keystone_profile_admin)[nodes[0]]['networks']
+            nodes[0],
+            'neutronng.list_networks',
+            profile=keystone_profile_admin
+        )[nodes[0]]['networks']
         networks = [n['id'] for n in res if n['name'] == network_name]
 
         if len(networks) != 1:
diff --git a/_modules/runtest/tempest_sections/network_feature_enabled.py b/_modules/runtest/tempest_sections/network_feature_enabled.py
index 09d6d59..b608cd4 100644
--- a/_modules/runtest/tempest_sections/network_feature_enabled.py
+++ b/_modules/runtest/tempest_sections/network_feature_enabled.py
@@ -3,6 +3,7 @@
 
 from runtest import conditions
 
+
 class NetworkFeatureEnabled(base_section.BaseSection):
 
     name = "network-feature-enabled"
@@ -22,6 +23,8 @@
         c = conditions.BaseRule(field='keystone.client.enabled', op='eq',
                                 val=True)
         nodes = self.get_nodes_where_condition_match(c)
+        if not nodes:
+            return
         keystone_profile_admin = self.runtest_opts.get(
             'keystone_profile_admin', {})
         res = self.authenticated_openstack_module_call(
@@ -54,7 +57,8 @@
         c = conditions.BaseRule('neutron.server.enabled', 'eq', True)
         ext = self.get_item_when_condition_match(
             'neutron.server.backend.extension', c)
-
+        if not ext:
+            return
         if 'port_security' in ext:
             return ext['port_security'].get('enabled', False)