def test_stop(self, signal_mock, alarm_mock): signal_mock.SIGTERM = 15 launcher = service.ProcessLauncher(self.conf) self.assertTrue(launcher.running) pid_nums = [22, 222] fakeServiceWrapper = service.ServiceWrapper(service.Service(), 1) launcher.children = { pid_nums[0]: fakeServiceWrapper, pid_nums[1]: fakeServiceWrapper } with mock.patch('oslo_service.service.os.kill') as mock_kill: with mock.patch.object(launcher, '_wait_child') as _wait_child: def fake_wait_child(): pid = pid_nums.pop() return launcher.children.pop(pid) _wait_child.side_effect = fake_wait_child with mock.patch('oslo_service.service.Service.stop') as \ mock_service_stop: mock_service_stop.side_effect = lambda: None launcher.stop() self.assertFalse(launcher.running) self.assertFalse(launcher.children) self.assertEqual([ mock.call(222, signal_mock.SIGTERM), mock.call(22, signal_mock.SIGTERM) ], mock_kill.mock_calls) mock_service_stop.assert_called_once_with()
def test_backdoor_inuse(self): sock = eventlet.listen(('localhost', 0)) port = sock.getsockname()[1] self.config(backdoor_port=port) svc = service.Service() self.assertRaises(socket.error, service.launch, self.conf, svc) sock.close()
def test_launch_invalid_workers_number(self): svc = service.Service() for num_workers in [0, -1]: self.assertRaises(ValueError, service.launch, self.conf, svc, num_workers) for num_workers in ["0", "a", "1"]: self.assertRaises(TypeError, service.launch, self.conf, svc, num_workers)
def audits_initialize(): """Init periodic audit task for pci interrupt affinity check""" srv = service.Service() periodicTasks = periodic_task.PeriodicTasks(CONF) periodicTasks.add_periodic_task(audit_affinity) thread = threading.Thread(target=audit_work, args=(srv, periodicTasks.run_periodic_tasks)) thread.start() return srv
def test_backdoor_port(self): self.config(backdoor_port='1234') sock = self.mox.CreateMockAnything() self.mox.StubOutWithMock(eventlet, 'listen') self.mox.StubOutWithMock(eventlet, 'spawn') eventlet.listen(('localhost', 1234)).AndReturn(sock) sock.getsockname().AndReturn(('127.0.0.1', 1234)) eventlet.spawn(eventlet.backdoor.backdoor_server, sock, locals=mox.IsA(dict)) self.mox.ReplayAll() svc = service.Service() launcher = service.launch(self.conf, svc) self.assertEqual(svc.backdoor_port, 1234) launcher.stop()
def test_backdoor_port_range_one_inuse(self): self.config(backdoor_port='8800:8900') sock = self.mox.CreateMockAnything() self.mox.StubOutWithMock(eventlet, 'listen') self.mox.StubOutWithMock(eventlet, 'spawn') eventlet.listen( ('localhost', 8800)).AndRaise(socket.error(errno.EADDRINUSE, '')) eventlet.listen(('localhost', 8801)).AndReturn(sock) sock.getsockname().AndReturn(('127.0.0.1', 8801)) eventlet.spawn(eventlet.backdoor.backdoor_server, sock, locals=mox.IsA(dict)) self.mox.ReplayAll() svc = service.Service() launcher = service.launch(self.conf, svc) self.assertEqual(svc.backdoor_port, 8801) launcher.stop()
def test_multiple_worker(self, mock_launch, alarm_mock): svc = service.Service() service.launch(self.conf, svc, workers=3) mock_launch.assert_called_with(svc, workers=3)
def _test_launch_single(self, workers, mock_launch): svc = service.Service() service.launch(self.conf, svc, workers=workers) mock_launch.assert_called_with(svc)
time.sleep(0.2) def start(self): print("%s: %s start is called." % (timeutils.strtime(), self.id)) time.sleep(0.2) def stop(self): print("%s: %s stop is called." % (timeutils.strtime(), self.id)) time.sleep(0.2) def wait(self): print("%s: %s wait is called." % (timeutils.strtime(), self.id)) time.sleep(0.2) from oslo_config import cfg from oslo_service import service CONF = cfg.CONF print("=====================================") service_launcher = service.ServiceLauncher(CONF) service_launcher.launch_service(SampleService()) print("=====================================") process_launcher = service.ProcessLauncher(CONF, wait_interval=1.0) process_launcher.launch_service(service.Service(), workers=2) print("=====================================") launcher = service.launch(CONF, SampleService(), workers=3)
def test_backdoor_port_reverse_range(self): # backdoor port should get passed to the service being launched self.config(backdoor_port='8888:7777') svc = service.Service() self.assertRaises(eventlet_backdoor.EventletBackdoorConfigValueError, service.launch, self.conf, svc)