Correct the usage on listing neutron ports

The test case uses 'fixed_ip' as a query parameter, but the usage
is not correct. In before, the test passed because neutron
server ignored this parameter, and returned all the
ports, which happened to make the test pass.

This patch fixes the usage of this parameter. If there is no ip_address
then not to filter the list using the filter. Otherwise,
we use 'fixed_ips' parameter and populate its value correctly.

Change-Id: If4e9b364b0971b56e9c15ea65d3b3c9177d0bf22
This commit is contained in:
Hongbin Lu 2018-07-19 15:17:19 +00:00
parent bfc4506e25
commit 43015f0239

View File

@ -504,8 +504,13 @@ class NetworkScenarioTest(ScenarioTest):
return network
def _get_server_port_id_and_ip4(self, server, ip_addr=None):
ports = self.os_admin.ports_client.list_ports(
device_id=server['id'], fixed_ip=ip_addr)['ports']
if ip_addr:
ports = self.os_admin.ports_client.list_ports(
device_id=server['id'],
fixed_ips='ip_address=%s' % ip_addr)['ports']
else:
ports = self.os_admin.ports_client.list_ports(
device_id=server['id'])['ports']
# A port can have more than one IP address in some cases.
# If the network is dual-stack (IPv4 + IPv6), this port is associated
# with 2 subnets