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
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 = {}
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)
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)
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
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)