Merge pull request #4004 from shin-/4000-extend-logging

Properly merge logging dictionaries in overriding configs
This commit is contained in:
Joffrey F 2016-10-11 12:00:06 -07:00 • committed by GitHub
commit 7f1606545d
2 changed files with 169 additions and 1 deletions

View file

@ -764,6 +764,8 @@ def merge_service_dicts(base, override, version):
for field in ['dns', 'dns_search', 'env_file', 'tmpfs']:
md.merge_field(field, merge_list_or_string)
md.merge_field('logging', merge_logging)
for field in set(ALLOWED_KEYS) - set(md):
md.merge_scalar(field)
@ -793,6 +795,16 @@ def merge_build(output, base, override):
return dict(md)
def merge_logging(base, override):
md = MergeDict(base, override)
md.merge_scalar('driver')
if md.get('driver') == base.get('driver') or base.get('driver') is None:
md.merge_mapping('options', lambda m: m or {})
else:
md['options'] = override.get('options')
return dict(md)
def legacy_v1_merge_image_or_build(output, base, override):
output.pop('image', None)
output.pop('build', None)