]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Protect AccessKey deletion from failing
authorAngus Salkeld <asalkeld@redhat.com>
Fri, 22 Feb 2013 09:52:20 +0000 (20:52 +1100)
committerAngus Salkeld <asalkeld@redhat.com>
Fri, 22 Feb 2013 10:25:05 +0000 (21:25 +1100)
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

heat/engine/resources/user.py

index b17427d13870bf059c7f18524431227581c772ee..4291059284922a2c3af53a3a67ff2bbd7d8c0b17 100644 (file)
@@ -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: