
"""Heat common internal object model"""

from oslo_versionedobjects import base as ovoo_base


class HeatObject(ovoo_base.VersionedObject):
    OBJ_PROJECT_NAMESPACE = 'heat'
    VERSION = '1.0'


"""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

Use a weakref for the data object context
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: #1578854

  
  """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
+ 
Use a weakref for the data object context
## Code Before:

"""Heat common internal object model"""

from oslo_versionedobjects import base as ovoo_base


class HeatObject(ovoo_base.VersionedObject):
    OBJ_PROJECT_NAMESPACE = 'heat'
    VERSION = '1.0'

## Instruction:
Use a weakref for the data object context
## Code After:

"""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
