Exemplo n.º 1
0
 def test_service_with_min_down_time(self):
     CONF.set_override('service_down_time', 10)
     CONF.set_override('report_interval', 10)
     serv = service.Service('test', 'test', 'test',
                            'patron.tests.unit.test_service.FakeManager')
     serv.start()
     self.assertEqual(CONF.service_down_time, 25)
Exemplo n.º 2
0
    def test_parent_graceful_shutdown(self):
        self.manager_mock = self.mox.CreateMock(FakeManager)
        self.mox.StubOutWithMock(sys.modules[__name__],
                                 'FakeManager',
                                 use_mock_anything=True)
        self.mox.StubOutWithMock(self.manager_mock, 'init_host')
        self.mox.StubOutWithMock(self.manager_mock, 'pre_start_hook')
        self.mox.StubOutWithMock(self.manager_mock, 'post_start_hook')

        self.mox.StubOutWithMock(_service.Service, 'stop')

        FakeManager(host=self.host).AndReturn(self.manager_mock)

        self.manager_mock.service_name = self.topic
        self.manager_mock.additional_endpoints = []

        # init_host is called before any service record is created
        self.manager_mock.init_host()
        self._service_start_mocks()
        # pre_start_hook is called after service record is created,
        # but before RPC consumer is created
        self.manager_mock.pre_start_hook()
        # post_start_hook is called after RPC consumer is created.
        self.manager_mock.post_start_hook()

        _service.Service.stop()

        self.mox.ReplayAll()

        serv = service.Service(self.host, self.binary, self.topic,
                               'patron.tests.unit.test_service.FakeManager')
        serv.start()

        serv.stop()
Exemplo n.º 3
0
    def _test_service_check_create_race(self, ex):
        self.manager_mock = self.mox.CreateMock(FakeManager)
        self.mox.StubOutWithMock(sys.modules[__name__],
                                 'FakeManager',
                                 use_mock_anything=True)
        self.mox.StubOutWithMock(self.manager_mock, 'init_host')
        self.mox.StubOutWithMock(self.manager_mock, 'pre_start_hook')
        self.mox.StubOutWithMock(self.manager_mock, 'post_start_hook')

        FakeManager(host=self.host).AndReturn(self.manager_mock)

        # init_host is called before any service record is created
        self.manager_mock.init_host()

        db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host,
                                          self.binary).AndRaise(
                                              exception.NotFound)
        db.service_create(mox.IgnoreArg(), mox.IgnoreArg()).AndRaise(ex)

        class TestException(Exception):
            pass

        db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host,
                                          self.binary).AndRaise(TestException)

        self.mox.ReplayAll()

        serv = service.Service(self.host, self.binary, self.topic,
                               'patron.tests.unit.test_service.FakeManager')
        self.assertRaises(TestException, serv.start)
Exemplo n.º 4
0
 def test_service_stop_waits_for_rpcserver(self, mock_rpc,
                                           mock_svc_get_by_host_and_binary,
                                           mock_API):
     mock_svc_get_by_host_and_binary.return_value = {'id': 'some_value'}
     serv = service.Service(self.host, self.binary, self.topic,
                            'patron.tests.unit.test_service.FakeManager')
     serv.start()
     serv.stop()
     serv.rpcserver.start.assert_called_once_with()
     serv.rpcserver.stop.assert_called_once_with()
     serv.rpcserver.wait.assert_called_once_with()
Exemplo n.º 5
0
    def test_parent_graceful_shutdown_with_cleanup_host(
            self, mock_svc_get_by_host_and_binary, mock_API):
        mock_svc_get_by_host_and_binary.return_value = {'id': 'some_value'}
        mock_manager = mock.Mock()

        serv = service.Service(self.host, self.binary, self.topic,
                               'patron.tests.unit.test_service.FakeManager')

        serv.manager = mock_manager
        serv.manager.additional_endpoints = []

        serv.start()
        serv.manager.init_host.assert_called_with()

        serv.stop()
        serv.manager.cleanup_host.assert_called_with()
Exemplo n.º 6
0
 def test_message_gets_to_manager(self):
     serv = service.Service('test', 'test', 'test',
                            'patron.tests.unit.test_service.FakeManager')
     serv.start()
     self.assertEqual(serv.test_method(), 'manager')