Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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')
Example #4
0
    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')
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    def test_load(self):
        """Test Workflow.load()."""

        self.wflow.save()
        wflow = Workflow.load(self.wflow.process.id)
        self.assertTrue(wflow.process.state == 'ready')
Example #8
0
    def test_load(self):
        """Test Workflow.load()."""

        self.wflow.save()
        wflow = Workflow.load(self.wflow.process.id)
        self.assertTrue(wflow.process.state == 'ready')