heat/heat/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
..
cfn Supply outputs for reference IDs in StackResources 2018-01-19 15:08:10 -05:00
clients Merge "Fixing Senlin incompatibility with openstacksdk 0.11.x" 2018-04-18 18:54:19 +00:00
constraint Remove broken heat.resource_type custom constraint 2017-08-01 13:35:16 -04:00
hot Fix bypass list length check when all values are None 2018-01-03 16:46:05 +01:00
notification Trivial:Standardize the output format of 'help' in some files 2016-09-21 14:12:27 +08:00
resources Merge "Correct behaviour of update_replace property in test resource" 2018-04-20 20:13:55 +00:00
__init__.py
api.py Merge "Return stack.outputs when stack in DELETE_FAILED" 2018-02-01 06:38:08 +00:00
attributes.py Cache attributes with custom handling 2017-06-27 22:08:03 -04:00
check_resource.py Retry resource check if atomic key incremented 2018-04-25 16:02:24 -04:00
conditions.py Allows condition name using boolean or function 2016-09-12 21:40:06 -04:00
constraints.py Remove broken heat.resource_type custom constraint 2017-08-01 13:35:16 -04:00
dependencies.py Don't use Dependencies repr in tests 2017-09-26 16:46:17 -04:00
environment.py [policy in code] part3 (resource types) 2017-12-01 01:34:55 +08:00
event.py Eager load resource_properties_data in resource 2017-07-31 21:13:49 -04:00
function.py Allow paths as lists in function.validate() 2017-11-16 14:18:11 -05:00
lifecycle_plugin.py Fix garbled docstrings 2015-11-10 11:12:36 -05:00
node_data.py Defer exceptions in calculating node_data() 2017-09-22 12:19:13 -04:00
output.py Define resource/output definition sections with constants 2017-11-16 15:26:40 -05:00
parameter_groups.py Get rid of bogus debug logging in parameter groups 2015-12-04 19:56:56 -05:00
parameters.py Merge "Remove broken heat.resource_type custom constraint" 2017-12-05 21:48:17 +00:00
parent_rsrc.py Separate management of parent resource into separate class 2017-02-24 10:19:21 -05:00
plugin_manager.py Remove log translations 2017-03-25 17:11:50 +08:00
properties.py Include value in string Property type error 2018-01-11 22:21:29 -05:00
properties_group.py Initial PropertiesGroup implementation 2016-11-07 14:29:17 +03:00
resource.py Persist external resources on update 2018-03-16 10:14:50 +01:00
rsrc_defn.py Ensure the whole ResourceDefinition is validated 2017-11-16 18:17:23 -05:00
scheduler.py Make scheduler.Timeout exception hashable 2017-10-18 16:46:39 -04:00
service.py Return nested parameters for resource group. 2018-02-26 14:57:01 +01:00
service_software_config.py Resolve race in providing deployment data to Swift 2018-03-23 18:17:29 +01:00
software_config_io.py Ignore string default for software config input 2017-06-20 16:21:11 +02:00
stack.py Merge "Return nested parameters for resource group." 2018-02-28 16:00:48 +00:00
stack_lock.py Remove log translations 2017-03-25 17:11:50 +08:00
status.py Define resource actions/statuses in a separate class 2017-02-24 10:19:21 -05:00
stk_defn.py Cache dep_attrs for all resources in definitions 2017-07-21 10:44:51 -04:00
support.py Non-destructive upgrade for deprecated resources 2016-09-02 13:09:11 +08:00
sync_point.py Use wait_random_exponential from tenacity 4.4.0 2018-03-26 10:18:22 -04:00
template.py Define resource/output definition sections with constants 2017-11-16 15:26:40 -05:00
template_common.py Allows condition name using boolean or function 2016-09-12 21:40:06 -04:00
template_files.py Allow iteration over files dict before template stored 2018-01-26 21:40:36 -05:00
timestamp.py Fix garbled docstrings 2015-11-10 11:12:36 -05:00
translation.py Remove broken heat.resource_type custom constraint 2017-08-01 13:35:16 -04:00
update.py Add converge flag in stack update for observing on reality 2017-08-07 05:39:29 +00:00
worker.py Use a namedtuple for convergence graph nodes 2017-09-26 16:46:17 -04:00