Fix usage of resource_data_get_all in stack-abandon

Stack abandon was failing if any stack resource has resource data
because resource_data was not properly used in resource.py
get_abandon_data method.

Closes-Bug: #1278535
Change-Id: I0f41ddf530d34e7d27f740fb4f56e7ce17a43d1a
This commit is contained in:
Vijendar Komalla 2014-02-10 12:56:33 -06:00
parent 139206d177
commit 0a500c3211
2 changed files with 21 additions and 2 deletions

View File

@ -486,8 +486,7 @@ class Resource(object):
'action': self.action,
'status': self.status,
'metadata': self.metadata,
'resource_data': dict((r.key, r.value)
for r in db_api.resource_data_get_all(self))
'resource_data': db_api.resource_data_get_all(self)
}
def adopt(self, resource_data):

View File

@ -163,6 +163,26 @@ class ResourceTest(HeatTestCase):
actual = res.get_abandon_data()
self.assertEqual(expected, actual)
def test_abandon_with_resource_data(self):
tmpl = {'Type': 'Foo'}
res = generic_rsrc.GenericResource('test_resource', tmpl, self.stack)
self.m.StubOutWithMock(db_api, 'resource_data_get_all')
db_api.resource_data_get_all(res).AndReturn({"test-key": "test-value"})
self.m.ReplayAll()
expected = {
'action': 'INIT',
'metadata': {},
'name': 'test_resource',
'resource_data': {"test-key": "test-value"},
'resource_id': None,
'status': 'COMPLETE',
'type': 'Foo'
}
actual = res.get_abandon_data()
self.assertEqual(expected, actual)
self.m.VerifyAll()
def test_state_set_invalid(self):
tmpl = {'Type': 'Foo'}
res = generic_rsrc.GenericResource('test_resource', tmpl, self.stack)