Use a weakref for the data object context
There are no known circular reference issues caused by storing the context in data objects, but the following changes will refer to data objects in the context, so this change prevents any later issues. Change-Id: I3680e5678003cf339a98fbb7a2b1b387fb2243c0 Related-Bug: #1578854changes/17/317217/4
parent
0ef5d601c0
commit
c62e1b325a
|
@ -14,9 +14,26 @@
|
|||
|
||||
"""Heat common internal object model"""
|
||||
|
||||
import weakref
|
||||
|
||||
from oslo_versionedobjects import base as ovoo_base
|
||||
|
||||
|
||||
class HeatObject(ovoo_base.VersionedObject):
|
||||
OBJ_PROJECT_NAMESPACE = 'heat'
|
||||
VERSION = '1.0'
|
||||
|
||||
@property
|
||||
def _context(self):
|
||||
if self._contextref is None:
|
||||
return
|
||||
ctxt = self._contextref()
|
||||
assert ctxt is not None, "Need a reference to the context"
|
||||
return ctxt
|
||||
|
||||
@_context.setter
|
||||
def _context(self, context):
|
||||
if context:
|
||||
self._contextref = weakref.ref(context)
|
||||
else:
|
||||
self._contextref = None
|
||||
|
|
Loading…
Reference in New Issue