Просмотр исходного кода

Merge pull request #4784 from shin-/4779-serialize-secrets

Fix external secrets serialization
Joffrey F 8 лет назад
Родитель
Сommit
6f4107aa70
2 измененных файлов с 7 добавлено и 2 удалено
  1. 4 1
      compose/config/serialize.py
  2. 3 1
      tests/unit/config/config_test.py

+ 4 - 1
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
 
 

+ 3 - 1
tests/unit/config/config_test.py

@@ -3825,7 +3825,8 @@ class SerializeTest(unittest.TestCase):
         }
         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 @@ class SerializeTest(unittest.TestCase):
         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=[