Merge "Convergence: Avoid sync point delete for stack CREATE"

This commit is contained in:
Jenkins 2015-11-24 06:56:43 +00:00 committed by Gerrit Code Review
commit 536f87b957
2 changed files with 29 additions and 2 deletions

View File

@ -1040,12 +1040,14 @@ class Stack(collections.Mapping):
self.store()
# delete the prev traversal sync_points
if previous_traversal:
sync_point.delete_all(self.context, self.id, previous_traversal)
# TODO(later): lifecycle_plugin_utils.do_pre_ops
self.state_set(action, self.IN_PROGRESS,
'Stack %s started' % action)
# delete the prev traversal sync_points
sync_point.delete_all(self.context, self.id, previous_traversal)
self._converge_create_or_update()
def _converge_create_or_update(self):

View File

@ -461,6 +461,31 @@ class StackConvergenceCreateUpdateDeleteTest(common.HeatTestCase):
self.assertIsNotNone(stack.updated_time)
self.assertTrue(mock_ccu.called)
@mock.patch.object(parser.Stack, '_converge_create_or_update')
@mock.patch.object(sync_point_object.SyncPoint,
'delete_all_by_stack_and_traversal')
def test_sync_point_delete_stack_create(self, mock_syncpoint_del,
mock_ccu, mock_cr):
stack = parser.Stack(utils.dummy_context(), 'convg_updated_time_test',
templatem.Template.create_empty_template())
stack.converge_stack(template=stack.t, action=stack.CREATE)
self.assertFalse(mock_syncpoint_del.called)
self.assertTrue(mock_ccu.called)
@mock.patch.object(parser.Stack, '_converge_create_or_update')
@mock.patch.object(sync_point_object.SyncPoint,
'delete_all_by_stack_and_traversal')
def test_sync_point_delete_stack_update(self, mock_syncpoint_del,
mock_ccu, mock_cr):
tmpl = {'HeatTemplateFormatVersion': '2012-12-12',
'Resources': {'R1': {'Type': 'GenericResourceType'}}}
stack = parser.Stack(utils.dummy_context(), 'updated_time_test',
templatem.Template(tmpl))
stack.current_traversal = 'prev_traversal'
stack.converge_stack(template=stack.t, action=stack.UPDATE)
self.assertTrue(mock_syncpoint_del.called)
self.assertTrue(mock_ccu.called)
class TestConvgStackRollback(common.HeatTestCase):