diff --git a/_modules/runtest/tempest_sections/network.py b/_modules/runtest/tempest_sections/network.py
index 68d4fea..9b4aea0 100644
--- a/_modules/runtest/tempest_sections/network.py
+++ b/_modules/runtest/tempest_sections/network.py
@@ -84,14 +84,17 @@
         c = conditions.BaseRule(field='keystone.client.enabled', op='eq',
                                 val=True)
         nodes = self.get_nodes_where_condition_match(c)
-        network_name = self.runtest_opts.get(
-            'convert_to_uuid', {}).get('public_network_id')
+        runtest_enable = conditions.BaseRule('runtest.enabled', 'eq', True)
+        network_name = self.get_item_when_condition_match(
+            'runtest.tempest.convert_to_uuid.network.public_network_id',
+            runtest_enable)
 
         if not network_name:
           return
 
+        keystone_profile_admin = self.runtest_opts.get('keystone_profile_admin', {})
         res = self.authenticated_openstack_module_call(
-            nodes[0], 'neutronng.list_networks')[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:
