def launch_engine(): profiler.setup('mistral-engine', cfg.CONF.engine.host) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) engine_endpoint = rpc.EngineServer(engine_v2) # Setup scheduler in engine. db_api.setup_db() scheduler.setup() # Setup expiration policy expiration_policy.setup() engine_server = rpc.get_rpc_server_driver()( rpc_utils.get_rpc_info_from_oslo(CONF.engine) ) engine_server.register_endpoint(engine_endpoint) engine_v2.register_membership() try: engine_server.run() except (KeyboardInterrupt, SystemExit): pass finally: print("Stopping engine service...")
def test_scheduler_multi_instance(self, method): def stop_thread_groups(): [tg.stop() for tg in self.tgs] self.tgs = [scheduler.setup(), scheduler.setup()] self.addCleanup(stop_thread_groups) method_args = {'name': 'task', 'id': '321'} scheduler.schedule_call( None, TARGET_METHOD_PATH, DELAY, **method_args ) time_filter = datetime.datetime.now() + datetime.timedelta(seconds=2) calls = db_api.get_delayed_calls_to_start(time_filter) self._assert_single_item(calls, target_method_name=TARGET_METHOD_PATH) eventlet.sleep(WAIT) method.assert_called_once_with(name='task', id='321') time_filter = datetime.datetime.now() + datetime.timedelta(seconds=1) calls = db_api.get_delayed_calls_to_start(time_filter) self.assertEqual(0, len(calls))
def launch_engine(transport): target = messaging.Target(topic=cfg.CONF.engine.topic, server=cfg.CONF.engine.host) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) endpoints = [rpc.EngineServer(engine_v2)] # Setup scheduler in engine. db_api.setup_db() scheduler.setup() # Setup expiration policy expiration_policy.setup() server = messaging.get_rpc_server(transport, target, endpoints, executor='eventlet', serializer=ctx.RpcContextSerializer( ctx.JsonPayloadSerializer())) engine_v2.register_membership() try: server.start() while True: time.sleep(604800) except (KeyboardInterrupt, SystemExit): pass finally: print("Stopping engine service...") server.stop() server.wait()
def launch_engine(): profiler.setup('mistral-engine', cfg.CONF.engine.host) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) engine_endpoint = rpc.EngineServer(engine_v2) # Setup scheduler in engine. db_api.setup_db() scheduler.setup() # Setup expiration policy expiration_policy.setup() engine_server = rpc.get_rpc_server_driver()( rpc_utils.get_rpc_info_from_oslo(CONF.engine)) engine_server.register_endpoint(engine_endpoint) engine_v2.register_membership() try: # Note(ddeja): Engine needs to be run in default (blocking) mode # since using another mode may lead to deadlock. # See https://review.openstack.org/#/c/356343/ # for more info. engine_server.run() except (KeyboardInterrupt, SystemExit): pass finally: print("Stopping engine service...")
def test_scheduler_doesnt_handel_calls_the_failed_on_update(self): def stop_thread_groups(): [tg.stop() for tg in self.tgs] self.tgs = [scheduler.setup(), scheduler.setup()] self.addCleanup(stop_thread_groups) method_args = {'name': 'task', 'id': '321'} scheduler.schedule_call( None, TARGET_METHOD_NAME, DELAY, **method_args ) time_filter = datetime.datetime.now() + datetime.timedelta(seconds=2) calls = db_api.get_delayed_calls_to_start(time_filter) eventlet.sleep(WAIT) # If the scheduler does handel calls that failed on update # NotFoundException will raise. db_api.get_delayed_call(calls[0].id) db_api.delete_delayed_call(calls[0].id)
def test_scheduler_delete_calls(self, method): def stop_thread_groups(): [tg.stop() for tg in self.tgs] self.tgs = [scheduler.setup(), scheduler.setup()] self.addCleanup(stop_thread_groups) method_args = {'name': 'task', 'id': '321'} scheduler.schedule_call( None, TARGET_METHOD_NAME, DELAY, **method_args ) time_filter = datetime.datetime.now() + datetime.timedelta(seconds=2) calls = db_api.get_delayed_calls_to_start(time_filter) self._assert_single_item(calls, target_method_name=TARGET_METHOD_NAME) eventlet.sleep(WAIT) self.assertRaises(exc.NotFoundException, db_api.get_delayed_call, calls[0].id )
def launch_engine(transport): target = messaging.Target( topic=cfg.CONF.engine.topic, server=cfg.CONF.engine.host ) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) endpoints = [rpc.EngineServer(engine_v2)] # Setup scheduler in engine. db_api.setup_db() scheduler.setup() # Setup expiration policy expiration_policy.setup() server = messaging.get_rpc_server( transport, target, endpoints, executor='eventlet', serializer=ctx.RpcContextSerializer(ctx.JsonPayloadSerializer()) ) engine_v2.register_membership() server.start() server.wait()
def setUp(self): super(EngineTestCase, self).setUp() # Get transport here to let oslo.messaging setup default config # before changing the rpc_backend to the fake driver; otherwise, # oslo.messaging will throw exception. messaging.get_transport(cfg.CONF) # Set the transport to 'fake' for Engine tests. cfg.CONF.set_default('rpc_backend', 'fake') # Drop all RPC objects (transport, clients). rpc.cleanup() transport = rpc.get_transport() self.engine_client = rpc.get_engine_client() self.executor_client = rpc.get_executor_client() self.engine = def_eng.DefaultEngine(self.engine_client) self.executor = def_exec.DefaultExecutor(self.engine_client) LOG.info("Starting engine and executor threads...") self.threads = [ eventlet.spawn(launch_engine_server, transport, self.engine), eventlet.spawn(launch_executor_server, transport, self.executor), ] self.addOnException(self.print_executions) # Start scheduler. scheduler_thread_group = scheduler.setup() self.addCleanup(self.kill_threads) self.addCleanup(scheduler_thread_group.stop)
def launch_engine(transport): profiler.setup('mistral-engine', cfg.CONF.engine.host) target = messaging.Target( topic=cfg.CONF.engine.topic, server=cfg.CONF.engine.host ) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) endpoints = [rpc.EngineServer(engine_v2)] # Setup scheduler in engine. db_api.setup_db() scheduler.setup() # Setup expiration policy expiration_policy.setup() get_rpc_server = get_rpc_server_function() server = get_rpc_server( transport, target, endpoints, executor='eventlet', serializer=ctx.RpcContextSerializer(ctx.JsonPayloadSerializer()) ) engine_v2.register_membership() try: server.start() while True: time.sleep(604800) except (KeyboardInterrupt, SystemExit): pass finally: print("Stopping engine service...") server.stop() server.wait()
def launch_engine(transport): target = messaging.Target(topic=cfg.CONF.engine.topic, server=cfg.CONF.engine.host) engine_v2 = def_eng.DefaultEngine(rpc.get_engine_client()) endpoints = [rpc.EngineServer(engine_v2)] # Setup scheduler in engine. db_api.setup_db() scheduler.setup() server = messaging.get_rpc_server(transport, target, endpoints, executor='eventlet', serializer=ctx.RpcContextSerializer( ctx.JsonPayloadSerializer())) server.start() server.wait()
def setUp(self): super(SchedulerServiceTest, self).setUp() self.thread_group = scheduler.setup() self.addCleanup(self.thread_group.stop)
def setUp(self): super(TaskDefaultsReverseWorkflowEngineTest, self).setUp() thread_group = scheduler.setup() self.addCleanup(thread_group.stop)