瀏覽代碼

Merge pull request #3475 from shin-/3429-networks-config-serialize

Output valid config in config command
Aanand Prasad 9 年之前
父節點
當前提交
e502417df2
共有 2 個文件被更改,包括 19 次插入1 次删除
  1. 5 1
      compose/config/serialize.py
  2. 14 0
      tests/acceptance/cli_test.py

+ 5 - 1
compose/config/serialize.py

@@ -27,11 +27,15 @@ def serialize_config(config):
         service_dict.pop('name'): service_dict
         for service_dict in denormalized_services
     }
+    networks = config.networks.copy()
+    for net_name, net_conf in networks.items():
+        if 'external_name' in net_conf:
+            del net_conf['external_name']
 
     output = {
         'version': V2_0,
         'services': services,
-        'networks': config.networks,
+        'networks': networks,
         'volumes': config.volumes,
     }
 

+ 14 - 0
tests/acceptance/cli_test.py

@@ -224,6 +224,20 @@ class CLITestCase(DockerClientTestCase):
             'volumes': {},
         }
 
+    def test_config_external_network(self):
+        self.base_dir = 'tests/fixtures/networks'
+        result = self.dispatch(['-f', 'external-networks.yml', 'config'])
+        json_result = yaml.load(result.stdout)
+        assert 'networks' in json_result
+        assert json_result['networks'] == {
+            'networks_foo': {
+                'external': True  # {'name': 'networks_foo'}
+            },
+            'bar': {
+                'external': {'name': 'networks_bar'}
+            }
+        }
+
     def test_config_v1(self):
         self.base_dir = 'tests/fixtures/v1-config'
         result = self.dispatch(['config'])