diff options
author | Crag Wolfe <cwolfe@redhat.com> | 2017-02-09 06:21:37 +0000 |
---|---|---|
committer | Crag Wolfe <cwolfe@redhat.com> | 2017-04-25 08:21:42 -0700 |
commit | a7376f7494b310e9367ebe5dcb43b432a4053023 (patch) | |
tree | 8b2ed66cf49b9d5369c2cd6ede36710fabeb0c4e /heat/objects | |
parent | 132e9a2fea5f89f647db0911d9782daa8fe84766 (diff) | |
download | heat-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.py | 11 |
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 |