aboutsummaryrefslogtreecommitdiffstats
path: root/tripleo_heat_merge/merge.py
diff options
context:
space:
mode:
Diffstat (limited to 'tripleo_heat_merge/merge.py')
-rw-r--r--tripleo_heat_merge/merge.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/tripleo_heat_merge/merge.py b/tripleo_heat_merge/merge.py
index 0de27e24..4571d289 100644
--- a/tripleo_heat_merge/merge.py
+++ b/tripleo_heat_merge/merge.py
@@ -33,9 +33,12 @@ def apply_scaling(template, scaling, in_copies=None):
Values are handled via scale_value.
- Keys in dicts are always copied per the scaling rule.
+ Keys in dicts are copied per the scaling rule.
Values are either replaced or copied depending on whether the given
scaling rule is in in_copies.
+
+ in_copies is reset to None when a dict {'Merge::Map': someobject} is
+ encountered.
"""
in_copies = dict(in_copies or {})
# Shouldn't be needed but to avoid unexpected side effects/bugs we short
@@ -43,6 +46,8 @@ def apply_scaling(template, scaling, in_copies=None):
if not scaling:
return template
if isinstance(template, dict):
+ if 'Merge::Map' in template:
+ in_copies = None
new_template = {}
for key, value in template.items():
for prefix, copy_num, new_key in scale_value(