heat/heat/objects
Sergey Kraynev 82b744042e Handling concurrent transactions in metadata_set method
There are follow changes in this patch:
 - Using exception ConcurrentTransactions for processing
   concurrent transactions during writing metadata.
 - wrapper @retry_on_conflict was used for metadata_set method to
   allow retrying in the event of a race. The same wrapper was added for
   _push_metadata_software_deployments method.
 - added new parameter for metadata_set method - merge_metadata.
   When RetryRequest exception is raised, oslo_db_api.wrap_db_retry
   re-call metadata_set method and in this case we need to refresh
   old metadata. It's mostly need for signals without data and id.
   For example:
     A and B signals come in the same moment and both get number 1,
   because metadata was empty. Then during write in db RetryRequest
   exception was raised for signal B. Metadata of this signal stores old
   number - 1. So we should re-calculate this value using new length
   of metadata and set number - 2.

Change-Id: I1ddbad7cde3036cfa9310c670609fcde607ffcac
Co-Authored-By: Zane Bitter <zbitter@redhat.com>
Partially-Bug: #1497274
2016-03-23 03:47:46 -04:00
..
__init__.py Fix some files permissions 2015-08-26 12:11:27 +03:00
base.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
event.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
fields.py Make JsonField actually do it's work 2016-01-22 21:53:43 +00:00
raw_template.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
resource.py Handling concurrent transactions in metadata_set method 2016-03-23 03:47:46 -04:00
resource_data.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
service.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
snapshot.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
software_config.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
software_deployment.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
stack.py Optimize nested stack status check 2016-02-24 11:03:43 +01:00
stack_lock.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
stack_tag.py Don't query stack tags twice 2016-02-15 05:53:17 +01:00
sync_point.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
user_creds.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
watch_data.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00
watch_rule.py Add OBJ_PROJECT_NAMESPACE for Heat project 2016-01-22 21:53:51 +00:00