diff options
Diffstat (limited to 'heat/common/environment_util.py')
-rw-r--r-- | heat/common/environment_util.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/heat/common/environment_util.py b/heat/common/environment_util.py index 5143719d8..a07015f08 100644 --- a/heat/common/environment_util.py +++ b/heat/common/environment_util.py @@ -110,24 +110,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: param_merge(key, value, param_schemata[key], @@ -137,7 +139,7 @@ def merge_parameters(old, new, param_schemata, strategies_in_file, else: old[key] = value - return old, new_strategies + return old def merge_environments(environment_files, files, @@ -175,11 +177,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) |