Fix scenario test fails when port_vnic_type is set

test_preserv_preexisting_port fails when port_vnic_type
is set in create_server method.if port_vnic_type is set,
ports in the passing create_kwargs will be override,
which cause the inconsistence.

Change-Id: I557b888ca0fc3978699d96d1b02bbe60e58f8c2f
Closes-Bug: #1453818
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index 03e572f..fefd9c5 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -1077,6 +1077,11 @@
                 port = self._create_port(network_id=net_id,
                                          client=net_client,
                                          **create_port_body)
+                # if port_vnic_type is set, ports in the passing
+                # create_kwargs will be override, which cause the
+                # inconsistence. Set the port_id according to network id
+                if net_id == self.network['id']:
+                    self.port_id = port.id
                 ports.append({'port': port.id})
             if ports:
                 create_kwargs['networks'] = ports
diff --git a/tempest/scenario/test_network_basic_ops.py b/tempest/scenario/test_network_basic_ops.py
index ff58eea..d643485 100644
--- a/tempest/scenario/test_network_basic_ops.py
+++ b/tempest/scenario/test_network_basic_ops.py
@@ -101,6 +101,7 @@
         self.servers = []
 
     def _setup_network_and_servers(self, **kwargs):
+        vnic_type = CONF.network.port_vnic_type
         boot_with_port = kwargs.pop('boot_with_port', False)
         self.security_group = \
             self._create_security_group(tenant_id=self.tenant_id)
@@ -108,7 +109,9 @@
         self.check_networks()
 
         self.port_id = None
-        if boot_with_port:
+        # when vnic_type is set, ports will be created in create_server.
+        # So no need to create a port here in this case.
+        if boot_with_port and not vnic_type:
             # create a port on the network and boot with that
             self.port_id = self._create_port(self.network['id']).id