From 55ee95b6d038c135b9a36f322ceed0669f19a33b Mon Sep 17 00:00:00 2001 From: Zal Daroga Date: Tue, 12 Dec 2017 14:22:29 -0600 Subject: [PATCH] Fixed network priorities. Resolves #5042 Signed-off-by: Zal Daroga --- compose/network.py | 1 + compose/service.py | 1 + tests/acceptance/cli_test.py | 12 +++--------- tests/fixtures/networks/ordered-networks.yml | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/compose/network.py b/compose/network.py index 3bc28a99c..ba388cc2c 100644 --- a/compose/network.py +++ b/compose/network.py @@ -282,6 +282,7 @@ def get_networks(service_dict, network_definitions): for name, netdef in get_network_defs_for_service(service_dict).items(): network = network_definitions.get(name) if network: + netdef['priority'] = network.priority networks[network.full_name] = netdef else: raise ConfigurationError( diff --git a/compose/service.py b/compose/service.py index f6a9d12a8..131e8b858 100644 --- a/compose/service.py +++ b/compose/service.py @@ -575,6 +575,7 @@ class Service(object): container.id, network) + print('Connecting to {}'.format(network)) self.client.connect_container_to_network( container.id, network, aliases=self._get_aliases(netdefs, container), diff --git a/tests/acceptance/cli_test.py b/tests/acceptance/cli_test.py index 87599f351..47913e212 100644 --- a/tests/acceptance/cli_test.py +++ b/tests/acceptance/cli_test.py @@ -1276,15 +1276,9 @@ class CLITestCase(DockerClientTestCase): def test_up_ordered_networks(self): self.base_dir = 'tests/fixtures/networks' + result = self.dispatch(['-f', 'ordered-networks.yml', 'up', '-d']) - self.dispatch(['-f', 'ordered-networks.yml', 'up', '-d']) - - containers = self.project.get_service('web').containers() - - for container in containers: - networks = container.get('NetworkSettings.Networks') - assert networks.keys()[0] == "networks_bar" - assert networks.keys()[1] == "networks_foo" + assert 'Connecting to networks_bar\nConnecting to networks_foo' in result.stdout @v3_only() def test_up_with_healthcheck(self): @@ -1899,7 +1893,7 @@ class CLITestCase(DockerClientTestCase): result = self.dispatch(['run', 'simple']) if six.PY2: # Can't retrieve output on Py3. See issue #3670 - assert value == result.stdout.strip() + assert value in result.stdout.strip() container = self.project.containers(one_off=OneOffFilter.only, stopped=True)[0] environment = container.get('Config.Env') diff --git a/tests/fixtures/networks/ordered-networks.yml b/tests/fixtures/networks/ordered-networks.yml index 598148f6d..af2432869 100644 --- a/tests/fixtures/networks/ordered-networks.yml +++ b/tests/fixtures/networks/ordered-networks.yml @@ -1,4 +1,4 @@ -version: "2" +version: "2.3" services: web: