tempest: Use kwargs for create_server

As create_server() method is a wrapper around create_server() for compute
API, this patch adds support to pass kwargs parameters down to compute
API.

Change-Id: I0c970944c8f4de5c00e25f37e60206717cea4761
diff --git a/neutron_tempest_plugin/scenario/base.py b/neutron_tempest_plugin/scenario/base.py
index 50f6b54..2bb6344 100644
--- a/neutron_tempest_plugin/scenario/base.py
+++ b/neutron_tempest_plugin/scenario/base.py
@@ -76,28 +76,24 @@
                 zone, and Y is the compute host name.
         """
 
-        name = kwargs.get('name', data_utils.rand_name('server-test'))
-        security_groups = kwargs.get('security_groups')
-        if not security_groups:
-            security_groups = [{'name': 'default'}]
-        availability_zone = kwargs.get('availability_zone')
+        kwargs.setdefault('name', data_utils.rand_name('server-test'))
 
-        server_args = {
-            'name': name,
-            'flavorRef': flavor_ref,
-            'imageRef': image_ref,
-            'key_name': key_name,
-            'networks': networks,
-            'security_groups': security_groups
-        }
+        # We cannot use setdefault() here because caller could have passed
+        # security_groups=None and we don't want to pass None to
+        # client.create_server()
+        if not kwargs.get('security_groups'):
+            kwargs['security_groups'] = [{'name': 'default'}]
 
-        if availability_zone:
-            server_args['availability_zone'] = availability_zone
+        client = self.os_primary.servers_client
+        if kwargs.get('availability_zone'):
             client = self.os_admin.servers_client
-        else:
-            client = self.os_primary.servers_client
 
-        server = client.create_server(**server_args)
+        server = client.create_server(
+            flavorRef=flavor_ref,
+            imageRef=image_ref,
+            key_name=key_name,
+            networks=networks,
+            **kwargs)
 
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         waiters.wait_for_server_termination,