From 1d2af0b89ecc0fd7e2a97112a0916b287ebfa9e8 Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Tue, 3 Aug 2021 16:45:12 -0400 Subject: [PATCH] ansible-test - allow for the same listening port on multiple interfaces (#75387) --- .../fragments/ansible-test_inspect-ports-on-all-interfaces.yml | 2 ++ test/lib/ansible_test/_internal/containers.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/ansible-test_inspect-ports-on-all-interfaces.yml diff --git a/changelogs/fragments/ansible-test_inspect-ports-on-all-interfaces.yml b/changelogs/fragments/ansible-test_inspect-ports-on-all-interfaces.yml new file mode 100644 index 00000000000..37509724106 --- /dev/null +++ b/changelogs/fragments/ansible-test_inspect-ports-on-all-interfaces.yml @@ -0,0 +1,2 @@ +bugfixes: + - ansible-test - allow the same listening port on all container interfaces diff --git a/test/lib/ansible_test/_internal/containers.py b/test/lib/ansible_test/_internal/containers.py index fbba0a2382c..935282faba3 100644 --- a/test/lib/ansible_test/_internal/containers.py +++ b/test/lib/ansible_test/_internal/containers.py @@ -524,7 +524,7 @@ class ContainerDescriptor: # inspect the support container to locate the published ports tcp_ports = dict((port, container.get_tcp_port(port)) for port in self.ports) - if any(not config or len(config) != 1 for config in tcp_ports.values()): + if any(not config or len(set(conf['HostPort'] for conf in config)) != 1 for config in tcp_ports.values()): raise ApplicationError('Unexpected `docker inspect` results for published TCP ports:\n%s' % json.dumps(tcp_ports, indent=4, sort_keys=True)) published_ports = dict((port, int(config[0]['HostPort'])) for port, config in tcp_ports.items())