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")
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)
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")