summaryrefslogtreecommitdiff
path: root/heat/objects
diff options
context:
space:
mode:
authorCrag Wolfe <cwolfe@redhat.com>2017-02-09 06:21:37 +0000
committerCrag Wolfe <cwolfe@redhat.com>2017-04-25 08:21:42 -0700
commita7376f7494b310e9367ebe5dcb43b432a4053023 (patch)
tree8b2ed66cf49b9d5369c2cd6ede36710fabeb0c4e /heat/objects
parent132e9a2fea5f89f647db0911d9782daa8fe84766 (diff)
downloadheat-a7376f7494b310e9367ebe5dcb43b432a4053023.tar.gz
Consolidate resource locking with state changes
Change-Id: I261b2f0968e16d35b7d5d791a3edb4b265a4f1d1 Closes-Bug: #1662585
Diffstat (limited to 'heat/objects')
-rw-r--r--heat/objects/resource.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/heat/objects/resource.py b/heat/objects/resource.py
index 0fea6db1b..38b8dc000 100644
--- a/heat/objects/resource.py
+++ b/heat/objects/resource.py
@@ -261,6 +261,14 @@ class Resource(
atomic_key=atomic_key,
expected_engine_id=expected_engine_id)
+ @classmethod
+ def select_and_update_by_id(cls, context, resource_id,
+ values, expected_engine_id=None,
+ atomic_key=0):
+ return db_api.resource_update(context, resource_id, values,
+ atomic_key=atomic_key,
+ expected_engine_id=expected_engine_id)
+
def refresh(self):
resource_db = db_api.resource_get(self._context, self.id, refresh=True)
return self.__class__._from_db_object(
@@ -282,3 +290,6 @@ class Resource(
if not rows_updated:
action = _('metadata setting for resource %s') % self.name
raise exception.ConcurrentTransaction(action=action)
+ return True
+ else:
+ return False