fe119a89f6
The stack update API needs to know the expected traversal ID of the stack (each update is associated with a unique traversal ID) it is updating. When two updates are triggered simultaneously - for example, in a case where two resources at same level try to rollback the stack when they fail at same time - then the updates need to give the traversal ID they intend to update. If it happens that the resource A triggers the rollback immediately after the rollback of A has started, but before A has persisted in DB, then the system is in erroneous state. Steps to describe the problem: 1. Resource A and B of a Stack S fail. 2. Resource A loads the stack. 3. Resource B loads the stack. 4. Resource A triggers rollback - it takes the previous template as current template, updates the DB. 5. Resource B now again triggers the rollback. It is not aware of update triggered by resource A. If the updates triggered by A and B give the stack traversal they expect to be updated, then update from resource B will fail, since the expected traversal ID will not be found in DB as a result of resource A already updating it. Change-Id: I13b2f5afe8cadf9a2d9ab4139a14718a5481dec4 |
||
---|---|---|
.. | ||
sqlalchemy | ||
__init__.py | ||
api.py | ||
utils.py |