示例#1
0
    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()
示例#2
0
 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()
示例#3
0
 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)
示例#4
0
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
示例#5
0
    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()
示例#6
0
    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()
示例#7
0
 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)
示例#8
0
 def _test_launch_single(self, workers, mock_launch):
     svc = service.Service()
     service.launch(self.conf, svc, workers=workers)
     mock_launch.assert_called_with(svc)
示例#9
0
        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)
示例#10
0
 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)