Merge "Convergence: in resource_by_refid() don't check the state"

This commit is contained in:
Jenkins 2015-09-01 13:11:21 +00:00 committed by Gerrit Code Review
commit 0c460f88df
2 changed files with 13 additions and 9 deletions

View File

@ -569,15 +569,16 @@ class Stack(collections.Mapping):
refid, or None if not found
'''
for r in six.itervalues(self):
if r.state in (
(r.INIT, r.COMPLETE),
(r.CREATE, r.IN_PROGRESS),
(r.CREATE, r.COMPLETE),
(r.RESUME, r.IN_PROGRESS),
(r.RESUME, r.COMPLETE),
(r.UPDATE, r.IN_PROGRESS),
(r.UPDATE, r.COMPLETE)) and r.FnGetRefId() == refid:
return r
if r.FnGetRefId() == refid:
if self.has_cache_data(r.name) or r.state in (
(r.INIT, r.COMPLETE),
(r.CREATE, r.IN_PROGRESS),
(r.CREATE, r.COMPLETE),
(r.RESUME, r.IN_PROGRESS),
(r.RESUME, r.COMPLETE),
(r.UPDATE, r.IN_PROGRESS),
(r.UPDATE, r.COMPLETE)):
return r
def register_access_allowed_handler(self, credential_id, handler):
'''

View File

@ -919,6 +919,9 @@ class StackTest(common.HeatTestCase):
try:
self.assertIsNone(self.stack.resource_by_refid('aaaa'))
self.assertIsNone(self.stack.resource_by_refid('bbbb'))
# if there is cached data, we should ignore the state
self.stack.cache_data = {'AResource': {'reference_id': 'aaaa'}}
self.assertEqual(rsrc, self.stack.resource_by_refid('aaaa'))
finally:
rsrc.state_set(rsrc.CREATE, rsrc.COMPLETE)