def execute(self, context): if not self.code_block: return limit = helpers.evaluate(self._limit, context) helpers.parallel_select( self.code_block, lambda expr: expr.execute(context.create_child_context()), limit)
def signal_destruction_dependencies(self, *objects): if not objects: return elif len(objects) > 1: return helpers.parallel_select( objects, self.signal_destruction_dependencies) obj = objects[0] if obj.destroyed: return for dependency in obj.destruction_dependencies: try: handler = dependency['handler'] if handler: subscriber = dependency['subscriber'] if subscriber: subscriber = subscriber() if (subscriber and subscriber.initialized and not subscriber.destroyed): method = subscriber.type.find_single_method(handler) self.invoke_method( method, subscriber, None, [obj], {}, invoke_action=False) except Exception as e: LOG.warning('Muted exception during destruction dependency ' 'execution in {0}: {1}'.format(obj, e), exc_info=True) obj.load_dependencies(None)
def destroy_objects(self, *objects): if not objects: return elif len(objects) > 1: return helpers.parallel_select(objects, self.destroy_objects) obj = objects[0] if obj.destroyed: return methods = obj.type.find_methods(lambda m: m.name == '.destroy') for method in methods: try: method.invoke(obj, (), {}, None) except Exception as e: if isinstance(e, dsl_exception.MuranoPlException): tb = e.format(prefix=' ') else: tb = traceback.format_exc() LOG.warning('Muted exception during execution of .destroy ' 'on {0}: {1}'.format(obj, tb), exc_info=True)
def _psuper2(context, value, func): helpers.parallel_select(_super(context, value), func)
def pselect(collection, composer): return helpers.parallel_select(collection, composer)
def psuper(context, object_, func=None): if func is None: return super_(context, object_) return helpers.parallel_select(super_(context, object_), func)
def psuper(context, value, func=None): if func is None: return super_(context, value) return helpers.parallel_select(super_(context, value), func)
def _pselect(collection, composer): if isinstance(collection, types.ListType): return helpers.parallel_select(collection, composer) else: return helpers.parallel_select(collection(), composer)