heat/heat/objects
Zane Bitter c9792b96d2 Create replacement resource atomically
Use a single transaction to create the replacement resource and set it as
the replaced_by link in the old resource. Also, ensure that no other
traversal has taken a lock on the old resource before we modify it.

If we end up bailing out and not creating a replacement or sending an RPC
message to check it, make sure we retrigger any new traversal.

Change-Id: I23db4f06a4060f3d26a78f7b26700de426f355e3
Closes-Bug: #1727128
2017-11-03 09:14:46 +05:30
..
__init__.py Fix some files permissions 2015-08-26 12:11:27 +03:00
base.py Merge "Use a weakref for the data object context" 2016-05-26 05:39:52 +00:00
event.py Remove log translations 2017-03-25 17:11:50 +08:00
fields.py Make JsonField actually do it's work 2016-01-22 21:53:43 +00:00
raw_template.py Remove log translations 2017-03-25 17:11:50 +08:00
raw_template_files.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
resource.py Create replacement resource atomically 2017-11-03 09:14:46 +05:30
resource_data.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
resource_properties_data.py Store resource attributes in the DB 2017-06-21 20:18:46 -04:00
service.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
snapshot.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
software_config.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
software_deployment.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
stack.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
stack_lock.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
stack_tag.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
sync_point.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
user_creds.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
watch_data.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00
watch_rule.py Remove db.api wrapper 2016-12-13 09:40:29 +01:00