def setUp(self):
        from unittest import SkipTest
        raise SkipTest("Process dispatcher currently not supported")

        self._start_container()
        self.container.start_rel_from_url('res/deploy/basic.yml')

        self.pd_cli = ProcessDispatcherServiceClient()

        self.process_definition = IonObject(OT.ProcessDefinition,
                                            name='test_process')
        self.process_definition.executable = {
            'module': 'ion.services.test.test_process_state_gate',
            'class': 'TestProcess'
        }
        self.process_definition_id = self.pd_cli.create_process_definition(
            self.process_definition)
        self.event_queue = queue.Queue()

        self.process_schedule = IonObject(OT.ProcessSchedule)
        self.process_schedule.queueing_mode = ProcessQueueingMode.ALWAYS

        self.pid = self.pd_cli.create_process(self.process_definition_id)

        self.event_queue = queue.Queue()

        self.event_sub = EventSubscriber(event_type="ProcessLifecycleEvent",
                                         callback=self._event_callback,
                                         origin=self.pid,
                                         origin_type="DispatchedProcess")
예제 #2
0
 def start(self):
     # Configure  subscriptions for user_cache events
     self.event_subscriber = EventSubscriber(
         event_type=OT.UserRoleModifiedEvent,
         origin_type="Org",
         callback=self._event_callback)
     self.event_subscriber.add_event_subscription(
         event_type=OT.UserRoleCacheResetEvent)
     self.process.add_endpoint(self.event_subscriber)
    def on_start(self):
        self.terminate_loop = Event()
        self.has_lock = False
        self.lock_expires = None
        CoordinatedProcess.evt_count[self.id] = 0

        self.bg_loop = gevent.spawn(self._bg_loop)

        self.evt_sub = EventSubscriber(event_type=OT.ResourceCommandEvent,
                                       callback=self._on_event)
        self.add_endpoint(self.evt_sub)
예제 #4
0
    def start(self):
        # Create our own queue for container heartbeats and broadcasts
        topic = get_safe(self._pd_core.pd_cfg,
                         "aggregator.container_topic") or "bx_containers"
        queue_name = "pd_aggregator_%s_%s" % (
            topic, create_valid_identifier(self.container.id, dot_sub="_"))
        self.sub_cont = Subscriber(binding=topic,
                                   from_name=queue_name,
                                   auto_delete=True,
                                   callback=self._receive_container_info)
        self.sub_cont_gl = spawn(self.sub_cont.listen)
        self.sub_cont.get_ready_event().wait()

        self.evt_sub = EventSubscriber(event_type=OT.ContainerLifecycleEvent,
                                       callback=self._receive_event)
        self.evt_sub.add_event_subscription(
            event_type=OT.ProcessLifecycleEvent)
        self.evt_sub_gl = spawn(self.evt_sub.listen)
        self.evt_sub.get_ready_event().wait()

        log.info("PD Aggregator - event and heartbeat subscribers started")