Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
def _psuper2(context, value, func):
    helpers.parallel_select(_super(context, value), func)
Beispiel #6
0
def pselect(collection, composer):
    return helpers.parallel_select(collection, composer)
Beispiel #7
0
def pselect(collection, composer):
    return helpers.parallel_select(collection, composer)
Beispiel #8
0
def psuper(context, object_, func=None):
    if func is None:
        return super_(context, object_)
    return helpers.parallel_select(super_(context, object_), func)
Beispiel #9
0
def psuper(context, value, func=None):
    if func is None:
        return super_(context, value)
    return helpers.parallel_select(super_(context, value), func)
Beispiel #10
0
def psuper(context, value, func=None):
    if func is None:
        return super_(context, value)
    return helpers.parallel_select(super_(context, value), func)
Beispiel #11
0
def _pselect(collection, composer):
    if isinstance(collection, types.ListType):
        return helpers.parallel_select(collection, composer)
    else:
        return helpers.parallel_select(collection(), composer)
Beispiel #12
0
def psuper(context, object_, func=None):
    if func is None:
        return super_(context, object_)
    return helpers.parallel_select(super_(context, object_), func)
Beispiel #13
0
def _psuper2(context, value, func):
    helpers.parallel_select(_super(context, value), func)
Beispiel #14
0
def _pselect(collection, composer):
    if isinstance(collection, types.ListType):
        return helpers.parallel_select(collection, composer)
    else:
        return helpers.parallel_select(collection(), composer)