Example #1
0
    def __init__(self, access_details, host, tag):
        self.thread = None
        self.host = host
        self.tag = tag
        self.exception = None  # TODO: duplicate

        self.accum = {}
        self.accum["metadata"] = {"host": host, "tag": tag}

        if host:
            self.access_details = access_details(host)
            logger.debug("setting up connected slave %s" % self.access_details)
            self.srv = Connection(**self.access_details)
        else:
            logger.debug("setting up unconnected slave %s" % access_details)
            self.srv = Null()
Example #2
0
            def inner(srv, run_id, accum):
                try:
                    logger.info("executing " + run_id)
                    result = f(srv, run_id, accum)

                    # accumulate the output for the next execution
                    if result:
                        # expects the result to specify a result and a namespace.
                        (namespace, result) = result
                        logger.debug("namespace: " + namespace)
                        logger.debug("content: " + str(result))

                        if isinstance(result, dict):
                            if not namespace in accum:
                                logger.debug("new namespace added to accum: " + namespace)
                                accum[namespace] = {}
                            self.accum[namespace].update(result)
                        else:
                            self.accum[namespace] = result
                except:
                    self.exception = sys.exc_info()