def _create_instance_with_availability_zone(self, zone_name): def create(*args, **kwargs): self.assertIn('availability_zone', kwargs) self.assertEqual('patron', kwargs['availability_zone']) return old_create(*args, **kwargs) old_create = compute_api.API.create self.stubs.Set(compute_api.API, 'create', create) image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = ('http://localhost' + self.base_url + 'flavors/3') body = { 'server': { 'name': 'server_test', 'imageRef': image_href, 'flavorRef': flavor_ref, 'metadata': { 'hello': 'world', 'open': 'stack', }, 'availability_zone': zone_name, }, } admin_context = context.get_admin_context() db.service_create( admin_context, { 'host': 'host1_zones', 'binary': "patron-compute", 'topic': 'compute', 'report_count': 0 }) agg = db.aggregate_create(admin_context, {'name': 'agg1'}, {'availability_zone': 'patron'}) db.aggregate_host_add(admin_context, agg['id'], 'host1_zones') return self.req, body
def _create_instance_with_availability_zone(self, zone_name): def create(*args, **kwargs): self.assertIn('availability_zone', kwargs) self.assertEqual('patron', kwargs['availability_zone']) return old_create(*args, **kwargs) old_create = compute_api.API.create self.stubs.Set(compute_api.API, 'create', create) image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = ('http://localhost' + self.base_url + 'flavors/3') body = { 'server': { 'name': 'server_test', 'imageRef': image_href, 'flavorRef': flavor_ref, 'metadata': { 'hello': 'world', 'open': 'stack', }, 'availability_zone': zone_name, }, } admin_context = context.get_admin_context() db.service_create(admin_context, {'host': 'host1_zones', 'binary': "patron-compute", 'topic': 'compute', 'report_count': 0}) agg = db.aggregate_create(admin_context, {'name': 'agg1'}, {'availability_zone': 'patron'}) db.aggregate_host_add(admin_context, agg['id'], 'host1_zones') return self.req, body
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)
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)
def test_recreate_fails(self): self.mox.StubOutWithMock(db, 'service_create') db.service_create(self.context, {'host': 'fake-host'}).AndReturn( fake_service) self.mox.ReplayAll() service_obj = service.Service(context=self.context) service_obj.host = 'fake-host' service_obj.create() self.assertRaises(exception.ObjectActionError, service_obj.create)
def test_create(self): self.mox.StubOutWithMock(db, 'service_create') db.service_create(self.context, {'host': 'fake-host'}).AndReturn( fake_service) self.mox.ReplayAll() service_obj = service.Service(context=self.context) service_obj.host = 'fake-host' service_obj.create() self.assertEqual(fake_service['id'], service_obj.id)
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
def create(self): if self.obj_attr_is_set('id'): raise exception.ObjectActionError(action='create', reason='already created') updates = self.obj_get_changes() db_service = db.service_create(self._context, updates) self._from_db_object(self._context, self, db_service)
def _create_service_with_topic(self, topic, host, disabled=False): values = { 'binary': 'bin', 'host': host, 'topic': topic, 'disabled': disabled, } return db.service_create(self.context, values)
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
def _create_compute_service(self): """Create compute-manager(ComputeNode and Service record).""" ctxt = self.req.environ["patron.context"] dic = {'host': 'dummy', 'binary': 'patron-compute', 'topic': 'compute', 'report_count': 0} s_ref = db.service_create(ctxt, dic) dic = {'service_id': s_ref['id'], 'host': s_ref['host'], 'vcpus': 16, 'memory_mb': 32, 'local_gb': 100, 'vcpus_used': 16, 'memory_mb_used': 32, 'local_gb_used': 10, 'hypervisor_type': 'qemu', 'hypervisor_version': 12003, 'cpu_info': '', 'stats': ''} db.compute_node_create(ctxt, dic) return db.service_get(ctxt, s_ref['id'])