From dcb3f2aa81e94036ca24f79ac1cdbc8d3bad3207 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Wed, 6 Mar 2013 09:45:56 +1100 Subject: [PATCH] When updating the metadata load the stack with the stored context bug 1144996 Signed-off-by: Angus Salkeld Change-Id: I2b0547f4867f19f8319e2c4b79ac325ae8cd6bd8 --- heat/engine/service.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/heat/engine/service.py b/heat/engine/service.py index 451f2687..d84ca175 100644 --- a/heat/engine/service.py +++ b/heat/engine/service.py @@ -481,11 +481,19 @@ class EngineService(service.Service): resource = stack[resource_name] resource.metadata_update(new_metadata=metadata) + # This is not "nice" converting to the stored context here, + # but this happens because the keystone user associated with the + # WaitCondition doesn't have permission to read the secret key of + # the user associated with the cfn-credentials file + user_creds = db_api.user_creds_get(s.user_creds_id) + stack_context = context.RequestContext.from_dict(user_creds) + refresh_stack = parser.Stack.load(stack_context, stack=s) + # Refresh the metadata for all other resources, since we expect # resource_name to be a WaitCondition resource, and other # resources may refer to WaitCondition Fn::GetAtt Data, which # is updated here. - for res in stack: + for res in refresh_stack: if res.name != resource_name: res.metadata_update() -- 2.45.2