Merge pull request #2620 from dbonev/2607-ulimits-not-merged-in-extended-services

Ulimits are now merged into extended services
This commit is contained in:
Aanand Prasad 2016-01-13 21:05:38 +00:00
commit 3aba5bb67e
3 changed files with 48 additions and 8 deletions

View file

@ -547,8 +547,15 @@ def merge_service_dicts(base, override, version):
base.get(field, default),
override.get(field, default))
merge_field('environment', merge_environment)
merge_field('labels', merge_labels)
def merge_mapping(mapping, parse_func):
if mapping in base or mapping in override:
merged = parse_func(base.get(mapping, None))
merged.update(parse_func(override.get(mapping, None)))
d[mapping] = merged
merge_mapping('environment', parse_environment)
merge_mapping('labels', parse_labels)
merge_mapping('ulimits', parse_ulimits)
for field in ['volumes', 'devices']:
merge_field(field, merge_path_mappings)
@ -723,12 +730,6 @@ def join_path_mapping(pair):
return ":".join((host, container))
def merge_labels(base, override):
labels = parse_labels(base)
labels.update(parse_labels(override))
return labels
def parse_labels(labels):
if not labels:
return {}
@ -747,6 +748,14 @@ def split_label(label):
return label, ''
def parse_ulimits(ulimits):
if not ulimits:
return {}
if isinstance(ulimits, dict):
return dict(ulimits)
def expand_path(working_dir, path):
return os.path.abspath(os.path.join(working_dir, os.path.expanduser(path)))