Pass the stack_id into the resource_metadata_update

Change-Id: I2b98592cf3970e3cd79ae7002504fb34cf2d42cd
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
This commit is contained in:
Angus Salkeld 2012-06-26 18:57:54 +10:00
parent 1a43f5e609
commit 8623ba8dbd
4 changed files with 13 additions and 17 deletions

View File

@ -433,19 +433,15 @@ class EngineManager(manager.Manager):
return [None, r.rsrc_metadata] return [None, r.rsrc_metadata]
def metadata_update(self, context, stack_name, resource_id, metadata): def metadata_update(self, context, stack_id, resource_name, metadata):
""" """
Update the metadata for the given resource. Update the metadata for the given resource.
""" """
s = db_api.stack_get_by_name(None, stack_name) r = db_api.resource_get_by_name_and_stack(None, resource_name,
if not s: stack_id)
logger.warn("Stack not found %s." % (stack_name))
return ['stack', None]
r = db_api.resource_get_by_name_and_stack(None, resource_id, s.id)
if r is None: if r is None:
logger.warn("Resource not found %s:%s." % (stack_name, logger.warn("Resource not found %s:%s." % (stack_id,
resource_id)) resource_name))
return ['resource', None] return ['resource', None]
r.update_and_save({'rsrc_metadata': metadata}) r.update_and_save({'rsrc_metadata': metadata})

View File

@ -40,7 +40,7 @@ class WaitConditionHandle(Resource):
def handle_create(self): def handle_create(self):
self.instance_id = '%s/stacks/%s/resources/%s' % \ self.instance_id = '%s/stacks/%s/resources/%s' % \
(self.stack.metadata_server, (self.stack.metadata_server,
self.stack.name, self.stack.id,
self.name) self.name)

View File

@ -45,7 +45,7 @@ class API(wsgi.Router):
mapper.connect('/stacks/:stack_name', mapper.connect('/stacks/:stack_name',
controller=metadata_controller, action='create_stack', controller=metadata_controller, action='create_stack',
conditions=dict(method=['PUT'])) conditions=dict(method=['PUT']))
mapper.connect('/stacks/:stack_name/resources/:resource_id', mapper.connect('/stacks/:stack_id/resources/:resource_name',
controller=metadata_controller, controller=metadata_controller,
action='update_metadata', action='update_metadata',
conditions=dict(method=['PUT'])) conditions=dict(method=['PUT']))

View File

@ -78,22 +78,22 @@ class MetadataController:
'The resource "%s" does not exist.' % resource_id) 'The resource "%s" does not exist.' % resource_id)
return metadata return metadata
def update_metadata(self, req, body, stack_name, resource_id): def update_metadata(self, req, body, stack_id, resource_name):
con = context.get_admin_context() con = context.get_admin_context()
[error, metadata] = rpc.call(con, 'engine', [error, metadata] = rpc.call(con, 'engine',
{'method': 'metadata_update', {'method': 'metadata_update',
'args': {'stack_name': stack_name, 'args': {'stack_id': stack_id,
'resource_id': resource_id, 'resource_name': resource_name,
'metadata': body}}) 'metadata': body}})
if error: if error:
if error == 'stack': if error == 'stack':
return json_error(404, return json_error(404,
'The stack "%s" does not exist.' % stack_name) 'The stack "%s" does not exist.' % stack_id)
else: else:
return json_error(404, return json_error(404,
'The resource "%s" does not exist.' % resource_id) 'The resource "%s" does not exist.' % resource_name)
return json_response(201, { return json_response(201, {
'resource': resource_id, 'resource': resource_name,
'metadata': body, 'metadata': body,
}) })