Example #1
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,
                               'nova.tests.unit.test_service.FakeManager')
        self.assertRaises(TestException, serv.start)
Example #2
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,
                               'nova.tests.unit.test_service.FakeManager')
        self.assertRaises(TestException, serv.start)
Example #3
0
 def get_by_host_and_binary(cls, context, host, binary):
     try:
         db_service = db.service_get_by_host_and_binary(
             context, host, binary)
     except exception.HostBinaryNotFound:
         return
     return cls._from_db_object(context, cls(), db_service)
Example #4
0
 def get_by_host_and_binary(cls, context, host, binary):
     try:
         db_service = db.service_get_by_host_and_binary(context,
                                                        host, binary)
     except exception.HostBinaryNotFound:
         return
     return cls._from_db_object(context, cls(), db_service)
Example #5
0
    def _service_start_mocks(self):
        service_create = {'host': self.host,
                          'binary': self.binary,
                          'topic': self.topic,
                          'report_count': 0}
        service_ref = {'host': self.host,
                          'binary': self.binary,
                          'topic': self.topic,
                          'report_count': 0,
                          'id': 1}

        db.service_get_by_host_and_binary(mox.IgnoreArg(),
                self.host, self.binary).AndRaise(exception.NotFound())
        db.service_create(mox.IgnoreArg(),
                service_create).AndReturn(service_ref)
        return service_ref
Example #6
0
    def _service_start_mocks(self):
        service_create = {
            'host': self.host,
            'binary': self.binary,
            'topic': self.topic,
            'report_count': 0
        }
        service_ref = {
            'host': self.host,
            'binary': self.binary,
            'topic': self.topic,
            'report_count': 0,
            'id': 1
        }

        db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host,
                                          self.binary).AndRaise(
                                              exception.NotFound())
        db.service_create(mox.IgnoreArg(),
                          service_create).AndReturn(service_ref)
        return service_ref
Example #7
0
 def get_by_args(cls, context, host, binary):
     db_service = db.service_get_by_host_and_binary(context, host, binary)
     return cls._from_db_object(context, cls(), db_service)
Example #8
0
 def get_by_args(cls, context, host, binary):
     db_service = db.service_get_by_host_and_binary(context, host, binary)
     return cls._from_db_object(context, cls(), db_service)