def start_agent(self, mq=None, procedure=None, force=False): if not force and check_running(self.vm): logging.fatal("already running") exit = True return False class D: pass d = D() if not mq: mq = MQStar(self.host, self.session) d.mq = mq self.pc = Protocol(d, self.vm) else: assert procedure d.mq = mq self.pc = Protocol(d, self.vm, procedure=procedure) mq.protocol = self.pc logging.debug("mq: %s pc:%s" % (mq.protocol.procedure, self.pc.procedure)) mq.add_client(self.vm) mq.notify_connection(self.vm) logging.info("start receiving commands") exit = False while not exit: logging.debug("- CLIENT %s LISTENING" % self.vm) received = self.pc.receive_command() logging.debug("- CLIENT %s EXECUTED: %s" % (self.vm, received)) if received.name == 'STOP_AGENT': exit = True logging.info("stop receiving commands") remove_running(self.vm)