Merge "Do not use self in classmethod"
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
index 34312e2..a5968ea 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_rbac.py
@@ -18,6 +18,7 @@
 from tempest.common import utils
 from tempest.common import waiters
 from tempest import config
+from tempest.lib.common import fixed_network
 from tempest.lib.common.utils import data_utils
 from tempest.lib.common.utils import test_utils
 from tempest.lib import decorators
@@ -42,6 +43,20 @@
     def resource_setup(cls):
         super(ComputeServersRbacTest, cls).resource_setup()
         cls.server = cls.create_test_server(wait_until='ACTIVE')
+        cls.tenant_network = fixed_network.set_networks_kwarg(
+            cls.get_tenant_network()
+        )
+
+    def _get_instance_config(self):
+        instance_params = {
+            'name': data_utils.rand_name(self.__class__.__name__ + '-Server'),
+            'flavorRef': CONF.compute.flavor_ref,
+            'imageRef': CONF.compute.image_ref
+        }
+        if 'networks' in self.tenant_network:
+            instance_params['networks'] = self.tenant_network['networks']
+
+        return instance_params
 
     @rbac_rule_validation.action(
         service="nova",
@@ -49,10 +64,10 @@
     @decorators.idempotent_id('4f34c73a-6ddc-4677-976f-71320fa855bd')
     def test_create_server(self):
         with self.override_role():
+            instance_params = self._get_instance_config()
             server = self.servers_client.create_server(
-                name=data_utils.rand_name(self.__class__.__name__ + '-Server'),
-                flavorRef=CONF.compute.flavor_ref,
-                imageRef=CONF.compute.image_ref)['server']
+                **instance_params
+            )['server']
         self.addCleanup(waiters.wait_for_server_termination,
                         self.servers_client, server['id'])
         self.addCleanup(self.servers_client.delete_server, server['id'])
@@ -72,13 +87,12 @@
         # The first key of the dictionary specifies the host name.
         host = list(hosts[0].keys())[0]
         availability_zone = 'nova:' + host
-
         with self.override_role():
+            instance_params = self._get_instance_config()
+            instance_params['availability_zone'] = availability_zone
             server = self.servers_client.create_server(
-                name=data_utils.rand_name(self.__class__.__name__ + '-Server'),
-                flavorRef=CONF.compute.flavor_ref,
-                imageRef=CONF.compute.image_ref,
-                availability_zone=availability_zone)['server']
+                **instance_params
+            )['server']
         self.addCleanup(waiters.wait_for_server_termination,
                         self.servers_client, server['id'])
         self.addCleanup(self.servers_client.delete_server, server['id'])
@@ -101,15 +115,14 @@
                       'destination_type': 'volume',
                       'boot_index': 0,
                       'delete_on_termination': False}]
-        device_mapping = {'block_device_mapping_v2': bd_map_v2}
-
         with self.override_role():
-            # Use image_id='' to avoid using the default image in tempest.conf.
+            instance_params = self._get_instance_config()
+            # Use imageRef='' to avoid using the default image in tempest.conf.
+            instance_params['imageRef'] = ''
+            instance_params['block_device_mapping_v2'] = bd_map_v2
             server = self.servers_client.create_server(
-                name=data_utils.rand_name(self.__class__.__name__ + '-Server'),
-                flavorRef=CONF.compute.flavor_ref,
-                imageRef='',
-                **device_mapping)['server']
+                **instance_params
+            )['server']
         waiters.wait_for_server_status(
             self.servers_client, server['id'], 'ACTIVE')
         # Delete the server and wait for the volume to become available to
@@ -152,11 +165,11 @@
         network_id = {'uuid': network['id']}
 
         with self.override_role():
+            instance_params = self._get_instance_config()
+            instance_params['networks'] = [network_id]
             server = self.servers_client.create_server(
-                name=data_utils.rand_name(self.__class__.__name__ + '-Server'),
-                flavorRef=CONF.compute.flavor_ref,
-                imageRef=CONF.compute.image_ref,
-                networks=[network_id])['server']
+                **instance_params
+            )['server']
         self.addCleanup(waiters.wait_for_server_termination,
                         self.servers_client, server['id'])
         self.addCleanup(self.servers_client.delete_server, server['id'])