commit 0e56e3293382841ee2cd776e953b1de001ef13f1
Author: Stan Lagun <email address hidden>
Date: Tue Dec 22 03:15:19 2015 +0300
Wait for state progress of Heat stack upon delete
When Murano deletes Heat stack it waits for stack to
disappear handling intermediate DELETE_IN_PROGRESS
status. However if Heat doesn't immediately starts stack
deletion the first status observed might be UPDATE_COMPLETE
or CREATE_COMPLETE. This unexpected stack will cause exception
to be thrown and internal variable holding stack content no to
be reset. As a result subsequent stack.push() calls can recreate the
stack.
The solution is to wait for stack progress before waiting for
terminal state. This ability was added earlier and used for stack updates
but not for delete(). However delete() brings another corner case that
need to be handled - attempt to delete stack that is not exist. In this
case there is not going to be any status progress so Murano must not
wait for it (because otherwise it will wait forever). This case needs special
handling.
Change-Id: I6f4782879b85ac5691d3c3a7203e8fa60fdbbeaf
Closes-Bug: #1526876
(cherry picked from commit cc3739d021c5393a12f41e95655c982c4500efe6)
Reviewed: https:/ /review. openstack. org/267988 /git.openstack. org/cgit/ openstack/ murano/ commit/ ?id=0e56e329338 2841ee2cd776e95 3b1de001ef13f1
Committed: https:/
Submitter: Jenkins
Branch: stable/liberty
commit 0e56e3293382841 ee2cd776e953b1d e001ef13f1
Author: Stan Lagun <email address hidden>
Date: Tue Dec 22 03:15:19 2015 +0300
Wait for state progress of Heat stack upon delete
When Murano deletes Heat stack it waits for stack to
disappear handling intermediate DELETE_IN_PROGRESS
status. However if Heat doesn't immediately starts stack
deletion the first status observed might be UPDATE_COMPLETE
or CREATE_COMPLETE. This unexpected stack will cause exception
to be thrown and internal variable holding stack content no to
be reset. As a result subsequent stack.push() calls can recreate the
stack.
The solution is to wait for stack progress before waiting for
terminal state. This ability was added earlier and used for stack updates
but not for delete(). However delete() brings another corner case that
need to be handled - attempt to delete stack that is not exist. In this
case there is not going to be any status progress so Murano must not
wait for it (because otherwise it will wait forever). This case needs special
handling.
Change-Id: I6f4782879b85ac 5691d3c3a7203e8 fa60fdbbeaf a12f41e95655c98 2c4500efe6)
Closes-Bug: #1526876
(cherry picked from commit cc3739d021c5393