Fix. Do not create port if vnic_type defined and port is passed.
If we are passing a preexisting port during server create
there is no need to create networks or port again.
We need to create a server using preexisting port.
Change-Id: I25266d3641202c3099fd603c57945b718004cfd7
Co-Authored-By: Moshe Levi <moshele@mellanox.com>
Closes-Bug: 1603758
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index f889c44..77679f1 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -183,7 +183,7 @@
# every network
if vnic_type:
ports = []
- networks = []
+
create_port_body = {'binding:vnic_type': vnic_type,
'namestart': 'port-smoke'}
if kwargs:
@@ -204,7 +204,9 @@
if security_groups_ids:
create_port_body[
'security_groups'] = security_groups_ids
- networks = kwargs.pop('networks')
+ networks = kwargs.pop('networks', [])
+ else:
+ networks = []
# If there are no networks passed to us we look up
# for the project's private networks and create a port
@@ -219,10 +221,13 @@
" network for the tenant")
for net in networks:
net_id = net['uuid']
- port = self._create_port(network_id=net_id,
- client=clients.ports_client,
- **create_port_body)
- ports.append({'port': port['id']})
+ if 'port' not in net:
+ port = self._create_port(network_id=net_id,
+ client=clients.ports_client,
+ **create_port_body)
+ ports.append({'port': port['id']})
+ else:
+ ports.append({'port': net['port']})
if ports:
kwargs['networks'] = ports
self.ports = ports