Exemplo n.º 1
0
    routing_key=action_constants.LIVEACTION_STATUS_RESUMING)

# Used by the exporter service
EXPORTER_WORK_QUEUE = execution.get_queue('st2.exporter.work',
                                          routing_key=publishers.UPDATE_RK)

# Used by the notifier service
NOTIFIER_ACTIONUPDATE_WORK_QUEUE = execution.get_queue(
    'st2.notifiers.execution.work', routing_key=publishers.UPDATE_RK)

# Used by the results tracker service
RESULTSTRACKER_ACTIONSTATE_WORK_QUEUE = actionexecutionstate.get_queue(
    'st2.resultstracker.work', routing_key=publishers.CREATE_RK)

# Used by the rules engine service
RULESENGINE_WORK_QUEUE = reactor.get_trigger_instances_queue(
    name='st2.trigger_instances_dispatch.rules_engine', routing_key='#')

# Used by the stream service
STREAM_ANNOUNCEMENT_WORK_QUEUE = announcement.get_queue(
    routing_key=publishers.ANY_RK, exclusive=True, auto_delete=True)

STREAM_EXECUTION_ALL_WORK_QUEUE = execution.get_queue(
    routing_key=publishers.ANY_RK, exclusive=True, auto_delete=True)

STREAM_EXECUTION_UPDATE_WORK_QUEUE = execution.get_queue(
    routing_key=publishers.UPDATE_RK, exclusive=True, auto_delete=True)

STREAM_LIVEACTION_WORK_QUEUE = Queue(None,
                                     liveaction.LIVEACTION_XCHG,
                                     routing_key=publishers.ANY_RK,
                                     exclusive=True,
Exemplo n.º 2
0
import datetime

from kombu import Connection
from oslo.config import cfg

from st2common import log as logging
from st2common.transport import consumers, reactor
import st2reactor.container.utils as container_utils
from st2reactor.rules.engine import RulesEngine


LOG = logging.getLogger(__name__)

RULESENGINE_WORK_Q = reactor.get_trigger_instances_queue(
    name='st2.trigger_instances_dispatch.rules_engine', routing_key='#')


class TriggerInstanceDispatcher(consumers.MessageHandler):
    message_type = dict

    def __init__(self, connection, queues):
        super(TriggerInstanceDispatcher, self).__init__(connection, queues)
        self.rules_engine = RulesEngine()

    def process(self, instance):
        trigger = instance['trigger']
        payload = instance['payload']

        try:
            trigger_instance = container_utils.create_trigger_instance(
                trigger,