def handle_message(self, channel, method, header, body): """Handle message.""" LOG.debug("Method: %r", method) LOG.debug("Header: %r", header) LOG.debug("Handling message with Body: %r", body) try: msg = Message.loads(body) except (ValueError, KeyError) as err: # Report error and accept message LOG.error("%s", err) channel.basic_ack(method.delivery_tag) return if msg.target != '': wflow = Workflow.load(msg.target_pid) wflow.process.handle_message(ChannelWrapper(channel), msg) wflow.save() if msg.origin == msg.origin_pid and msg.name == 'completed': LOG.debug("The process %s has finished", msg.origin) Workflow.load(msg.origin).delete() elif msg.origin == msg.origin_pid and msg.name == 'fault': LOG.error("The process %s has faulted with %s. " + \ "The state is preserved.", msg.origin, msg.payload) channel.basic_ack(method.delivery_tag)
def setUp(self): """Set up environment.""" confparser = ConfigParser() confparser.add_section('bureaucrat') confparser.set('bureaucrat', 'storage_dir', STORAGE_DIR) Configs.instance(confparser) self.wflow = Workflow.create_from_string(processdsc, 'fake-id')
def launch_process(self, channel, method, header, body): """Handle delivery.""" LOG.debug("Method: %r", method) LOG.debug("Header: %r", header) LOG.debug("Body: %r", body) wflow = Workflow.create_from_string(body, "%s" % uuid.uuid4()) chwrapper = ChannelWrapper(channel) chwrapper.send( Message(name='start', target=wflow.process.id, origin='')) channel.basic_ack(method.delivery_tag)
def launch_process(self, channel, method, header, body): """Handle delivery.""" LOG.debug("Method: %r", method) LOG.debug("Header: %r", header) LOG.debug("Body: %r", body) wflow = Workflow.create_from_string(body, "%s" % uuid.uuid4()) chwrapper = ChannelWrapper(channel) chwrapper.send(Message(name='start', target=wflow.process.id, origin='')) channel.basic_ack(method.delivery_tag)
def test_load(self): """Test Workflow.load().""" self.wflow.save() wflow = Workflow.load(self.wflow.process.id) self.assertTrue(wflow.process.state == 'ready')