summaryrefslogtreecommitdiff
path: root/heat/common/environment_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'heat/common/environment_util.py')
-rw-r--r--heat/common/environment_util.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/heat/common/environment_util.py b/heat/common/environment_util.py
index eb3b8cde1..490802830 100644
--- a/heat/common/environment_util.py
+++ b/heat/common/environment_util.py
@@ -113,24 +113,26 @@ def merge_parameters(old, new, param_schemata, strategies_in_file,
raise exception.InvalidMergeStrategyForParam(strategy=MERGE,
param=p_key)
- new_strategies = {}
-
- if not old:
- return new, new_strategies
-
for key, value in new.items():
# if key not in param_schemata ignore it
if key in param_schemata and value is not None:
param_merge_strategy = get_param_merge_strategy(
strategies_in_file, key, available_strategies)
if key not in available_strategies:
- new_strategies[key] = param_merge_strategy
+ available_strategies[key] = param_merge_strategy
elif param_merge_strategy != available_strategies[key]:
raise exception.ConflictingMergeStrategyForParam(
strategy=param_merge_strategy,
param=key, env_file=env_file)
+ if not old:
+ return new
+
+ for key, value in new.items():
+ # if key not in param_schemata ignore it
+ if key in param_schemata and value is not None:
+ param_merge_strategy = available_strategies[key]
if param_merge_strategy == DEEP_MERGE:
LOG.debug("Deep Merging Parameter: %s", key)
param_merge(key, value,
@@ -143,7 +145,7 @@ def merge_parameters(old, new, param_schemata, strategies_in_file,
LOG.debug("Overriding Parameter: %s", key)
old[key] = value
- return old, new_strategies
+ return old
def merge_environments(environment_files, files,
@@ -181,11 +183,10 @@ def merge_environments(environment_files, files,
if section_value:
if section_key in (env_fmt.PARAMETERS,
env_fmt.PARAMETER_DEFAULTS):
- params[section_key], new_strategies = merge_parameters(
+ params[section_key] = merge_parameters(
params[section_key], section_value,
param_schemata, strategies_in_file,
available_strategies, filename)
- available_strategies.update(new_strategies)
else:
params[section_key] = merge_map(params[section_key],
section_value)