From f94cf103d6eb82f35d7cd42bf72191127528e643 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Mon, 1 May 2017 14:29:37 -0700 Subject: [PATCH] Fix external secrets serialization Signed-off-by: Joffrey F --- compose/config/serialize.py | 5 ++++- tests/unit/config/config_test.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/compose/config/serialize.py b/compose/config/serialize.py index aaaf053995c..040973ae080 100644 --- a/compose/config/serialize.py +++ b/compose/config/serialize.py @@ -51,7 +51,10 @@ def denormalize_config(config, image_digests=None): del vol_conf['external_name'] if config.version in (V3_1, V3_2): - result['secrets'] = config.secrets + result['secrets'] = config.secrets.copy() + for secret_name, secret_conf in result['secrets'].items(): + if 'external_name' in secret_conf: + del secret_conf['external_name'] return result diff --git a/tests/unit/config/config_test.py b/tests/unit/config/config_test.py index 6bf4986ff56..d3087fffe46 100644 --- a/tests/unit/config/config_test.py +++ b/tests/unit/config/config_test.py @@ -3825,7 +3825,8 @@ def test_serialize_secrets(self): } secrets_dict = { 'one': {'file': '/one.txt'}, - 'source': {'file': '/source.pem'} + 'source': {'file': '/source.pem'}, + 'two': {'external': True}, } config_dict = config.load(build_config_details({ 'version': '3.1', @@ -3837,6 +3838,7 @@ def test_serialize_secrets(self): serialized_service = serialized_config['services']['web'] assert secret_sort(serialized_service['secrets']) == secret_sort(service_dict['secrets']) assert 'secrets' in serialized_config + assert serialized_config['secrets']['two'] == secrets_dict['two'] def test_serialize_ports(self): config_dict = config.Config(version='2.0', services=[