Bläddra i källkod

Remove external_name from volume def in config output

Signed-off-by: Joffrey F <[email protected]>
Joffrey F 8 år sedan
förälder
incheckning
d83d31889e

+ 6 - 1
compose/config/serialize.py

@@ -32,6 +32,11 @@ def denormalize_config(config):
         if 'external_name' in net_conf:
             del net_conf['external_name']
 
+    volumes = config.volumes.copy()
+    for vol_name, vol_conf in volumes.items():
+        if 'external_name' in vol_conf:
+            del vol_conf['external_name']
+
     version = config.version
     if version == V1:
         version = V2_1
@@ -40,7 +45,7 @@ def denormalize_config(config):
         'version': version,
         'services': services,
         'networks': networks,
-        'volumes': config.volumes,
+        'volumes': volumes,
     }
 
 

+ 14 - 0
tests/acceptance/cli_test.py

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

+ 2 - 0
tests/fixtures/volumes/docker-compose.yml

@@ -0,0 +1,2 @@
+version: '2.1'
+services: {}

+ 16 - 0
tests/fixtures/volumes/external-volumes.yml

@@ -0,0 +1,16 @@
+version: "2.1"
+
+services:
+  web:
+    image: busybox
+    command: top
+    volumes:
+      - foo:/var/lib/
+      - bar:/etc/
+
+volumes:
+  foo:
+    external: true
+  bar:
+    external:
+      name: some_bar