From: Angus Salkeld Date: Fri, 22 Feb 2013 09:52:20 +0000 (+1100) Subject: Protect AccessKey deletion from failing X-Git-Tag: 2014.1~863^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f1ce0de322c6719b858d54cc0e8fbbe8b0f61cdb;p=openstack-build%2Fheat-build.git Protect AccessKey deletion from failing The deletion calls _get_user() that calls FnGetRefId for each resource. But since this is the delete most resources have been deleted. bug #1131534 Change-Id: I08ffd27d1d05214b1a8cf86744e7d4f91d7e1558 --- diff --git a/heat/engine/resources/user.py b/heat/engine/resources/user.py index b17427d1..42910592 100644 --- a/heat/engine/resources/user.py +++ b/heat/engine/resources/user.py @@ -138,10 +138,13 @@ class AccessKey(resource.Resource): # into the UserName parameter. Would be cleaner to just make the User # resource return resource_id for FnGetRefId but the AWS definition of # user does say it returns a user name not ID - for r in self.stack.resources: - refid = self.stack.resources[r].FnGetRefId() - if refid == self.properties['UserName']: - return self.stack.resources[r] + for r in self.stack: + # this is to reduce the number of checks without having to + # look for the class name. + if callable(getattr(r, 'access_allowed', None)): + refid = r.FnGetRefId() + if refid == self.properties['UserName']: + return r def handle_create(self): try: