Convergence: Fix to persist stack status in DB
Due to recent code changes stack is marked complete/failed when releasing the lock. But in case of convergence, stack lock is not used. Hence in case of convergence we need to still persist stack status when state_set is called. Change-Id: Ibe8c59a69e8dc8be3f0d15af238e166c852ab675 Closes-Bug: #1503296
This commit is contained in:
parent
0f2359549c
commit
3a02fdcb25
|
@ -717,6 +717,11 @@ class Stack(collections.Mapping):
|
|||
self.status = status
|
||||
self.status_reason = reason
|
||||
|
||||
if cfg.CONF.convergence_engine:
|
||||
# for convergence stack lock is not used, hence persist state
|
||||
self._persist_state()
|
||||
return
|
||||
|
||||
# Persist state to db only if status == IN_PROGRESS
|
||||
# or action == self.DELETE/self.ROLLBACK. Else, it would
|
||||
# be done before releasing the stack lock.
|
||||
|
|
|
@ -14,8 +14,10 @@
|
|||
# limitations under the License.
|
||||
|
||||
import mock
|
||||
from oslo_config import cfg
|
||||
|
||||
from heat.common import exception
|
||||
from heat.engine import dependencies
|
||||
from heat.engine import resource
|
||||
from heat.engine import scheduler
|
||||
from heat.engine import stack
|
||||
|
@ -580,6 +582,18 @@ class MiscMethodsTest(common.HeatTestCase):
|
|||
True)
|
||||
self.assertFalse(mock_sync.called)
|
||||
|
||||
@mock.patch.object(dependencies.Dependencies, 'roots')
|
||||
@mock.patch.object(stack.Stack, '_persist_state')
|
||||
def test_check_stack_complete_persist_called(self, mock_persist_state,
|
||||
mock_dep_roots):
|
||||
cfg.CONF.set_default('convergence_engine', True)
|
||||
mock_dep_roots.return_value = [(1, True)]
|
||||
worker.check_stack_complete(
|
||||
self.ctx, self.stack, self.stack.current_traversal,
|
||||
1, self.stack.convergence_dependencies,
|
||||
True)
|
||||
self.assertTrue(mock_persist_state.called)
|
||||
|
||||
@mock.patch.object(sync_point, 'sync')
|
||||
def test_propagate_check_resource(self, mock_sync):
|
||||
worker.propagate_check_resource(
|
||||
|
|
Loading…
Reference in New Issue