Exemple #1
0
 def get_meta(self, context):
     if self._meta is None:
         executor = helpers.get_executor(context)
         store = object_store.ObjectStore(executor)
         self._meta = list(map(
             lambda x: x(context, store),
             self._meta_factories))
     return self._meta
Exemple #2
0
 def __init__(self, package_loader, context_manager, session=None):
     self._package_loader = package_loader
     self._context_manager = context_manager
     self._session = session
     self._attribute_store = attribute_store.AttributeStore()
     self._object_store = object_store.ObjectStore(self)
     self._locks = {}
     self._root_context_cache = {}
 def __init__(self, package_loader, context_manager, environment=None):
     self._package_loader = package_loader
     self._context_manager = context_manager
     self._environment = environment
     self._attribute_store = attribute_store.AttributeStore()
     self._object_store = object_store.ObjectStore(self)
     self._locks = {}
     self._root_context_cache = {}
Exemple #4
0
 def __init__(self, class_loader, environment=None):
     self._class_loader = class_loader
     self._object_store = object_store.ObjectStore(class_loader)
     self._attribute_store = attribute_store.AttributeStore()
     self._root_context = class_loader.create_root_context()
     self._root_context.set_data(self, '?executor')
     self._root_context.set_data(self._class_loader, '?classLoader')
     self._root_context.set_data(environment, '?environment')
     self._root_context.set_data(self._object_store, '?objectStore')
     self._root_context.set_data(self._attribute_store, '?attributeStore')
     self._locks = {}
     yaql_functions.register(self._root_context)
     self._root_context = yaql.context.Context(self._root_context)
Exemple #5
0
 def _cleanup(self, data):
     objects_copy = data.get(constants.DM_OBJECTS_COPY)
     if not objects_copy:
         return
     gc_object_store = object_store.ObjectStore(self)
     gc_object_store.load(objects_copy, None)
     objects_to_clean = []
     for object_id in self._list_potential_object_ids(objects_copy):
         if (gc_object_store.has(object_id)
                 and not self._object_store.has(object_id)):
             obj = gc_object_store.get(object_id)
             objects_to_clean.append(obj)
     if objects_to_clean:
         for obj in objects_to_clean:
             self._destroy_object(obj)
Exemple #6
0
 def cleanup(self, data):
     objects_copy = data.get('ObjectsCopy')
     if not objects_copy:
         return
     gc_object_store = object_store.ObjectStore(self._class_loader)
     gc_object_store.load(objects_copy, None, self._root_context)
     objects_to_clean = []
     for object_id in self._list_potential_object_ids(objects_copy):
         if gc_object_store.has(object_id) \
                 and not self._object_store.has(object_id):
             obj = gc_object_store.get(object_id)
             objects_to_clean.append(obj)
     if objects_to_clean:
         backup = self._object_store
         try:
             self._object_store = gc_object_store
             for obj in objects_to_clean:
                 methods = obj.type.find_all_methods('destroy')
                 for method in methods:
                     method.invoke(self, obj, {})
         finally:
             self._object_store = backup
Exemple #7
0
 def _cleanup(self, data):
     objects_copy = data.get(constants.DM_OBJECTS_COPY)
     if not objects_copy:
         return
     gc_object_store = object_store.ObjectStore(self)
     gc_object_store.load(objects_copy, None)
     objects_to_clean = []
     for object_id in self._list_potential_object_ids(objects_copy):
         if (gc_object_store.has(object_id) and
                 not self._object_store.has(object_id)):
             obj = gc_object_store.get(object_id)
             objects_to_clean.append(obj)
     if objects_to_clean:
         for obj in objects_to_clean:
             methods = obj.type.find_methods(lambda m: m.name == '.destroy')
             for method in methods:
                 try:
                     method.invoke(self, obj, (), {}, None)
                 except Exception as e:
                     LOG.warning(_LW(
                         'Muted exception during execution of .destroy '
                         'on {0}: {1}').format(obj, e), exc_info=True)