Add new environment section for merge strategies
This adds a new evironment section 'parameter_merge_strategies'. These strategies would subsequently be used to merge parameters and parameter_defaults from environment files. Change-Id: Ib2b84ecdb2a1516ea0c5ced25a1fed408b954694 Blueprint: environment-merging
This commit is contained in:
parent
0a8d40d909
commit
b65b38db5c
@ -17,10 +17,12 @@ from heat.common import template_format
|
||||
|
||||
SECTIONS = (
|
||||
PARAMETERS, RESOURCE_REGISTRY, PARAMETER_DEFAULTS,
|
||||
ENCRYPTED_PARAM_NAMES, EVENT_SINKS
|
||||
ENCRYPTED_PARAM_NAMES, EVENT_SINKS,
|
||||
PARAMETER_MERGE_STRATEGIES,
|
||||
) = (
|
||||
'parameters', 'resource_registry', 'parameter_defaults',
|
||||
'encrypted_param_names', 'event_sinks'
|
||||
'encrypted_param_names', 'event_sinks',
|
||||
'parameter_merge_strategies',
|
||||
)
|
||||
|
||||
|
||||
@ -63,7 +65,7 @@ def validate(env):
|
||||
def default_for_missing(env):
|
||||
"""Checks a parsed environment for missing sections."""
|
||||
for param in SECTIONS:
|
||||
if param not in env:
|
||||
if param not in env and param != PARAMETER_MERGE_STRATEGIES:
|
||||
if param in (ENCRYPTED_PARAM_NAMES, EVENT_SINKS):
|
||||
env[param] = []
|
||||
else:
|
||||
|
@ -34,6 +34,21 @@ resource_registry: {}
|
||||
tpl2 = environment_format.parse(yaml2)
|
||||
self.assertEqual(tpl1, tpl2)
|
||||
|
||||
def test_param_valid_strategy_section(self):
|
||||
yaml1 = ''
|
||||
yaml2 = '''
|
||||
parameters: {}
|
||||
encrypted_param_names: []
|
||||
parameter_defaults: {}
|
||||
parameter_merge_strategies: {}
|
||||
event_sinks: []
|
||||
resource_registry: {}
|
||||
'''
|
||||
tpl1 = environment_format.parse(yaml1)
|
||||
environment_format.default_for_missing(tpl1)
|
||||
tpl2 = environment_format.parse(yaml2)
|
||||
self.assertNotEqual(tpl1, tpl2)
|
||||
|
||||
def test_wrong_sections(self):
|
||||
env = '''
|
||||
parameters: {}
|
||||
|
Loading…
Reference in New Issue
Block a user