heat/heat/tests/engine
Zane Bitter 22eb2e2538 Retry resource check if atomic key incremented
When updating a resource that hasn't changed, we didn't previously retry
the write when the atomic_key of the resource didn't match what we expect.
In addition to locking a resource to update it, the atomic key is also
incremented when modifying metadata and storing cached attribute values.
Apparently there is some mechanism that can cause this to happen in the
time between when the resource is loaded and when we attempt to update the
template ID &c. in the DB.

When the resource is not locked and its template ID hasn't changed since we
loaded it, we can assume that the update failed due to a mismatched atomic
key alone. Handle this case by sending another resource-check RPC message,
so that the operation check will be retried with fresh data from the DB.

Change-Id: I5afd5602096be54af5da256927fe828366dbd63b
Closes-Bug: #1763021
2018-04-25 16:02:24 -04:00
..
service Resolve race in providing deployment data to Swift 2018-03-23 18:17:29 +01:00
__init__.py Split engine service test case 2015-04-20 10:19:58 -04:00
test_check_resource.py Retry resource check if atomic key incremented 2018-04-25 16:02:24 -04:00
test_dependencies.py Use more specific asserts in tests 2016-11-22 08:12:35 +01:00
test_engine_worker.py Add converge flag in stack update for observing on reality 2017-08-07 05:39:29 +00:00
test_node_data.py Add a NodeData class to roll up resource data 2017-02-24 10:10:26 -05:00
test_plugin_manager.py Move core engine related unit tests to tests/engine 2015-07-21 17:37:20 +05:30
test_resource_type.py Remove OS::Heat::HARestarter 2018-01-29 08:59:00 +00:00
test_scheduler.py Remove mox from test_scheduler.WrapperTaskTest 2018-04-02 11:33:30 -04:00
test_sync_point.py Support tenacity exponential backoff retry on resource sync 2017-07-25 03:45:57 +00:00
tools.py Move FakeKeystoneClient to engine.clients 2017-10-24 11:45:31 -04:00