heat/heat/db
Anant Patil fe119a89f6 Convergence: Stack concurrent update
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
2015-09-04 12:00:37 +05:30
..
sqlalchemy Convergence: Stack concurrent update 2015-09-04 12:00:37 +05:30
__init__.py Do not initialize anything during import phase 2013-04-24 10:03:06 -07:00
api.py Convergence: Stack concurrent update 2015-09-04 12:00:37 +05:30
utils.py Support for encrypt/decrypt parameters in heat-manage 2015-06-05 12:06:59 -05:00