Merge "Add option to specify metadata for RG resources"

This commit is contained in:
Jenkins 2015-08-14 07:43:22 +00:00 committed by Gerrit Code Review
commit a21614438c
2 changed files with 36 additions and 2 deletions

View File

@ -83,9 +83,9 @@ class ResourceGroup(stack_resource.StackResource):
)
_RESOURCE_DEF_KEYS = (
RESOURCE_DEF_TYPE, RESOURCE_DEF_PROPERTIES,
RESOURCE_DEF_TYPE, RESOURCE_DEF_PROPERTIES, RESOURCE_DEF_METADATA,
) = (
'type', 'properties',
'type', 'properties', 'metadata',
)
_REMOVAL_POLICIES_KEYS = (
@ -146,6 +146,12 @@ class ResourceGroup(stack_resource.StackResource):
properties.Schema.MAP,
_('Property values for the resources in the group')
),
RESOURCE_DEF_METADATA: properties.Schema(
properties.Schema.MAP,
_('Supplied metadata for the resources in the group'),
support_status=support.SupportStatus(version='5.0.0')
),
},
required=True,
update_allowed=True
@ -411,6 +417,8 @@ class ResourceGroup(stack_resource.StackResource):
res_def = self.properties[self.RESOURCE_DEF]
if res_def[self.RESOURCE_DEF_PROPERTIES] is None:
res_def[self.RESOURCE_DEF_PROPERTIES] = {}
if res_def[self.RESOURCE_DEF_METADATA] is None:
del res_def[self.RESOURCE_DEF_METADATA]
if not include_all:
resource_def_props = res_def[self.RESOURCE_DEF_PROPERTIES]
clean = dict((k, v) for k, v in resource_def_props.items()

View File

@ -187,6 +187,32 @@ class ResourceGroupTest(common.HeatTestCase):
}
self.assertEqual(expect, resg._assemble_nested([]))
def test_assemble_nested_with_metadata(self):
templ = copy.deepcopy(template)
res_def = templ["resources"]["group1"]["properties"]['resource_def']
res_def['properties']['Foo'] = None
res_def['metadata'] = {
'priority': 'low',
'role': 'webserver'
}
stack = utils.parse_stack(templ)
snip = stack.t.resource_definitions(stack)['group1']
resg = resource_group.ResourceGroup('test', snip, stack)
expect = {
"heat_template_version": "2013-05-23",
"resources": {
"0": {
"type": "OverwrittenFnGetRefIdType",
"properties": {},
"metadata": {
'priority': 'low',
'role': 'webserver'
}
}
}
}
self.assertEqual(expect, resg._assemble_nested(['0']))
def test_assemble_nested_rolling_update(self):
expect = {
"heat_template_version": "2013-05-23",