浏览代码

Fixed network priorities. Resolves #5042

Signed-off-by: Zal Daroga <[email protected]>
Zal Daroga 7 年之前
父节点
当前提交
55ee95b6d0
共有 4 个文件被更改,包括 6 次插入10 次删除
  1. 1 0
      compose/network.py
  2. 1 0
      compose/service.py
  3. 3 9
      tests/acceptance/cli_test.py
  4. 1 1
      tests/fixtures/networks/ordered-networks.yml

+ 1 - 0
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():
     for name, netdef in get_network_defs_for_service(service_dict).items():
         network = network_definitions.get(name)
         network = network_definitions.get(name)
         if network:
         if network:
+            netdef['priority'] = network.priority
             networks[network.full_name] = netdef
             networks[network.full_name] = netdef
         else:
         else:
             raise ConfigurationError(
             raise ConfigurationError(

+ 1 - 0
compose/service.py

@@ -575,6 +575,7 @@ class Service(object):
                     container.id,
                     container.id,
                     network)
                     network)
 
 
+            print('Connecting to {}'.format(network))
             self.client.connect_container_to_network(
             self.client.connect_container_to_network(
                 container.id, network,
                 container.id, network,
                 aliases=self._get_aliases(netdefs, container),
                 aliases=self._get_aliases(netdefs, container),

+ 3 - 9
tests/acceptance/cli_test.py

@@ -1276,15 +1276,9 @@ class CLITestCase(DockerClientTestCase):
 
 
     def test_up_ordered_networks(self):
     def test_up_ordered_networks(self):
         self.base_dir = 'tests/fixtures/networks'
         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()
     @v3_only()
     def test_up_with_healthcheck(self):
     def test_up_with_healthcheck(self):
@@ -1899,7 +1893,7 @@ class CLITestCase(DockerClientTestCase):
         result = self.dispatch(['run', 'simple'])
         result = self.dispatch(['run', 'simple'])
 
 
         if six.PY2:  # Can't retrieve output on Py3. See issue #3670
         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]
         container = self.project.containers(one_off=OneOffFilter.only, stopped=True)[0]
         environment = container.get('Config.Env')
         environment = container.get('Config.Env')

+ 1 - 1
tests/fixtures/networks/ordered-networks.yml

@@ -1,4 +1,4 @@
-version: "2"
+version: "2.3"
 
 
 services:
 services:
   web:
   web: