Use a consistent stack ID

Generate the StackId field of various API responses in the same place, so
it is consistent and can be easily modified later.

Change-Id: I09a3e170b5825533d8cf9c7dbf08a0ef6700a682
Signed-off-by: Zane Bitter <zbitter@redhat.com>
This commit is contained in:
Zane Bitter 2012-07-03 14:55:30 +02:00
parent 5b4a403f51
commit de02376d54
2 changed files with 11 additions and 4 deletions

View File

@ -107,7 +107,7 @@ class EngineManager(manager.Manager):
for s in stacks: for s in stacks:
stack = parser.Stack.load(context, s.id) stack = parser.Stack.load(context, s.id)
mem = {} mem = {}
mem['StackId'] = "/".join([s.name, str(s.id)]) mem['StackId'] = stack.stack_id()
mem['StackName'] = s.name mem['StackName'] = s.name
mem['CreationTime'] = heat_utils.strtime(s.created_at) mem['CreationTime'] = heat_utils.strtime(s.created_at)
mem['TemplateDescription'] = stack.t[parser.DESCRIPTION] mem['TemplateDescription'] = stack.t[parser.DESCRIPTION]
@ -143,7 +143,7 @@ class EngineManager(manager.Manager):
if s: if s:
stack = parser.Stack.load(context, s.id) stack = parser.Stack.load(context, s.id)
mem = {} mem = {}
mem['StackId'] = "/".join([s.name, str(s.id)]) mem['StackId'] = stack.stack_id()
mem['StackName'] = s.name mem['StackName'] = s.name
mem['CreationTime'] = heat_utils.strtime(s.created_at) mem['CreationTime'] = heat_utils.strtime(s.created_at)
mem['LastUpdatedTimestamp'] = heat_utils.strtime(s.updated_at) mem['LastUpdatedTimestamp'] = heat_utils.strtime(s.updated_at)
@ -191,7 +191,7 @@ class EngineManager(manager.Manager):
stack_id = stack.store() stack_id = stack.store()
greenpool.spawn_n(stack.create, **_extract_args(params)) greenpool.spawn_n(stack.create, **_extract_args(params))
return {'StackId': "/".join([stack.name, str(stack.id)])} return {'StackId': stack.stack_id()}
def validate_template(self, context, template, params): def validate_template(self, context, template, params):
""" """
@ -519,7 +519,7 @@ def format_stack_resource(resource):
rs = db_api.resource_get(resource.stack.context, resource.id) rs = db_api.resource_get(resource.stack.context, resource.id)
last_updated_time = rs.updated_at or rs.created_at last_updated_time = rs.updated_at or rs.created_at
return { return {
'StackId': resource.stack.id, 'StackId': resource.stack.stack_id(),
'StackName': resource.stack.name, 'StackName': resource.stack.name,
'LogicalResourceId': resource.name, 'LogicalResourceId': resource.name,
'PhysicalResourceId': resource.instance_id or '', 'PhysicalResourceId': resource.instance_id or '',

View File

@ -328,6 +328,13 @@ class Stack(object):
'''Return a human-readable string representation of the stack''' '''Return a human-readable string representation of the stack'''
return 'Stack "%s"' % self.name return 'Stack "%s"' % self.name
def stack_id(self):
'''
Return a unique ID for this stack suitable for displaying to the
user
'''
return '/'.join([self.name, str(self.id)])
def validate(self): def validate(self):
''' '''
http://docs.amazonwebservices.com/AWSCloudFormation/latest/\ http://docs.amazonwebservices.com/AWSCloudFormation/latest/\