def _initialize_thrift_service(self): """ Initialize agents' thrif servers. """ for host_handler in self._hosts_handlers: pseudo_config = host_handler.pseudo_config mux_processor = TMultiplexedProcessor() processor = Host.Processor(host_handler) mux_processor.registerProcessor( "Host", processor, pseudo_config.host_service_threads, 0) transport = TSocket.TServerSocket( pseudo_config.hostname, pseudo_config.host_port) protocol_factory = TCompactProtocol.TCompactProtocolFactory() server = TNonblockingServer( mux_processor, transport, protocol_factory, protocol_factory) self._servers.append(server)
def echo_server(): mp = TMultiplexedProcessor() mp.registerProcessor("echo", Echoer.Processor(EchoHandler())) transport = TSocket.TServerSocket(port=PORT) tf = TTransport.TFramedTransportFactory() pf = TCompactProtocol.TCompactProtocolFactory() return TServer.TThreadedServer(mp, transport, tf, pf, daemon=True)
def test_shutdown(self): m_processor = TMultiplexedProcessor() processor = MagicMock() num_workers = 2 services = ["Fake_1", "Fake_2"] for name in services: m_processor.registerProcessor(name, processor, num_workers) for name in services: self.assertEqual(len(m_processor.services[name].workers), 2) for worker in m_processor.services[name].workers: self.assertTrue(worker.is_alive()) m_processor.shutdown() self.assertTrue(m_processor.shutting_down) for name in services: for worker in m_processor.services[name].workers: self.assertFalse(worker.is_alive())
def _initialize_thrift_service(self): """ Initialize the thrift server. """ mux_processor = TMultiplexedProcessor() for plugin in thrift_services(): self._logger.info("Load thrift services %s (num_threads: %d)", plugin.name, plugin.num_threads) handler = plugin.handler processor = plugin.service.Processor(handler) mux_processor.registerProcessor(plugin.name, processor, plugin.num_threads, plugin.max_entries) transport = TSocket.TServerSocket(port=self._config.host_port) protocol_factory = TCompactProtocol.TCompactProtocolFactory() server = TNonblockingServer(mux_processor, transport, protocol_factory, protocol_factory) self._server = server
def _initialize_thrift_service(self): """ Initialize the thrift server. """ mux_processor = TMultiplexedProcessor() for plugin in thrift_services(): self._logger.info("Load thrift services %s (num_threads: %d)", plugin.name, plugin.num_threads) handler = plugin.handler processor = plugin.service.Processor(handler) mux_processor.registerProcessor(plugin.name, processor, plugin.num_threads, plugin.max_entries) transport = TSocket.TServerSocket(port=self._config.host_port) protocol_factory = TCompactProtocol.TCompactProtocolFactory() server = TNonblockingServer( mux_processor, transport, protocol_factory, protocol_factory) self._server = server
def test_registerProcessor(self, worker, queue): """ Test to check the registration of a thrift service processor. Validates that the right number of threads are created and that all threads created for the same processor share the same synchrnoized Queue. """ test_worker = MagicMock() worker.return_value = test_worker test_queue = MagicMock() queue.return_value = test_queue m_processor = TMultiplexedProcessor() processor = MagicMock() num_workers = 2 service_name = "Fake" m_processor.registerProcessor(service_name, processor, num_workers) queue.assert_called_once_with() self._check_worker_calls(service_name, num_workers, worker, test_queue) # Register a second processor and verify that we have a new queue # created, and is passed to the number of workers specified. num_workers = 3 queue.reset_mock() worker.reset_mock() test_queue_1 = MagicMock() queue.return_value = test_queue_1 m_processor = TMultiplexedProcessor() processor = MagicMock() m_processor.registerProcessor(service_name, processor, num_workers) queue.assert_called_once_with() self._check_worker_calls(service_name, num_workers, worker, test_queue_1) self.assertEqual(m_processor.services[service_name].processor, processor) self.assertEqual(m_processor.services[service_name].name, service_name) self.assertEqual(m_processor.services[service_name].queue, test_queue_1)
def test_registerProcessor(self, worker, queue): """ Test to check the registration of a thrift service processor. Validates that the right number of threads are created and that all threads created for the same processor share the same synchrnoized Queue. """ test_worker = MagicMock() worker.return_value = test_worker test_queue = MagicMock() queue.return_value = test_queue m_processor = TMultiplexedProcessor() processor = MagicMock() num_workers = 2 service_name = "Fake" m_processor.registerProcessor(service_name, processor, num_workers) queue.assert_called_once_with() self._check_worker_calls(service_name, num_workers, worker, test_queue) # Register a second processor and verify that we have a new queue # created, and is passed to the number of workers specified. num_workers = 3 queue.reset_mock() worker.reset_mock() test_queue_1 = MagicMock() queue.return_value = test_queue_1 m_processor = TMultiplexedProcessor() processor = MagicMock() m_processor.registerProcessor(service_name, processor, num_workers) queue.assert_called_once_with() self._check_worker_calls( service_name, num_workers, worker, test_queue_1) self.assertEqual(m_processor.services[service_name].processor, processor) self.assertEqual(m_processor.services[service_name].name, service_name) self.assertEqual(m_processor.services[service_name].queue, test_queue_1)
def _initialize_thrift_service(self): """ Initialize agents' thrif servers. """ for host_handler in self._hosts_handlers: pseudo_config = host_handler.pseudo_config mux_processor = TMultiplexedProcessor() processor = Host.Processor(host_handler) mux_processor.registerProcessor("Host", processor, pseudo_config.host_service_threads, 0) transport = TSocket.TServerSocket(pseudo_config.hostname, pseudo_config.host_port) protocol_factory = TCompactProtocol.TCompactProtocolFactory() server = TNonblockingServer(mux_processor, transport, protocol_factory, protocol_factory) self._servers.append(server)