def test_list_running_instances(self, mock_bdms_by_uuid): instances = [{'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': uuids.instance_1, 'vm_state': '', 'task_state': ''}, {'image_ref': '2', 'host': CONF.host, 'id': '2', 'uuid': uuids.instance_2, 'vm_state': '', 'task_state': ''}, {'image_ref': '2', 'kernel_id': '21', 'ramdisk_id': '22', 'host': 'remotehost', 'id': '3', 'uuid': uuids.instance_3, 'vm_state': '', 'task_state': ''}] all_instances = [fake_instance.fake_instance_obj(None, **instance) for instance in instances] image_cache_manager = imagecache.ImageCacheManager() ctxt = context.get_admin_context() swap_bdm_256_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) swap_bdm_128_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_128) mock_bdms_by_uuid.return_value = {uuids.instance_1: swap_bdm_256_list, uuids.instance_2: swap_bdm_128_list, uuids.instance_3: swap_bdm_128_list} # The argument here should be a context, but it's mocked out running = image_cache_manager._list_running_instances(ctxt, all_instances) mock_bdms_by_uuid.assert_called_once_with(ctxt, [uuids.instance_1, uuids.instance_2, uuids.instance_3]) self.assertEqual(4, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual((1, 1, ['instance-00000002', 'instance-00000003']), running['used_images']['2']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['21']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['22']) self.assertIn('instance-00000001', running['instance_names']) self.assertIn(uuids.instance_1, running['instance_names']) self.assertEqual(len(running['used_swap_images']), 2) self.assertIn('swap_128', running['used_swap_images']) self.assertIn('swap_256', running['used_swap_images'])
def test_list_resizing_instances(self): instances = [{'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': '123', 'vm_state': vm_states.RESIZED, 'task_state': None}] all_instances = [fake_instance.fake_instance_obj(None, **instance) for instance in instances] image_cache_manager = imagecache.ImageCacheManager() self.mox.StubOutWithMock(objects.block_device.BlockDeviceMappingList, 'bdms_by_instance_uuid') ctxt = context.get_admin_context() bdms = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) objects.block_device.BlockDeviceMappingList.bdms_by_instance_uuid( ctxt, ['123']).AndReturn({'123': bdms}) self.mox.ReplayAll() running = image_cache_manager._list_running_instances(ctxt, all_instances) self.assertEqual(1, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual(set(['instance-00000001', '123', 'instance-00000001_resize', '123_resize']), running['instance_names'])
def test_list_resizing_instances(self, mock_bdms_by_uuid): instances = [{'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': uuids.instance, 'vm_state': vm_states.RESIZED, 'task_state': None}] all_instances = [fake_instance.fake_instance_obj(None, **instance) for instance in instances] image_cache_manager = imagecache.ImageCacheManager() ctxt = context.get_admin_context() bdms = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) mock_bdms_by_uuid.return_value = {uuids.instance: bdms} running = image_cache_manager._list_running_instances(ctxt, all_instances) mock_bdms_by_uuid.assert_called_once_with(ctxt, [uuids.instance]) self.assertEqual(1, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual(set(['instance-00000001', uuids.instance, 'instance-00000001_resize', '%s_resize' % uuids.instance]), running['instance_names'])
def test_make_list_from_dicts(self): ctx = context.get_admin_context() dicts = [{"id": 1}, {"id": 2}] objs = block_device_obj.block_device_make_list_from_dicts(ctx, dicts) self.assertIsInstance(objs, block_device_obj.BlockDeviceMappingList) self.assertEqual(2, len(objs)) self.assertEqual(1, objs[0].id) self.assertEqual(2, objs[1].id)
def test_make_list_from_dicts(self): ctx = context.get_admin_context() dicts = [{'id': 1}, {'id': 2}] objs = block_device_obj.block_device_make_list_from_dicts(ctx, dicts) self.assertIsInstance(objs, block_device_obj.BlockDeviceMappingList) self.assertEqual(2, len(objs)) self.assertEqual(1, objs[0].id) self.assertEqual(2, objs[1].id)
def test_list_resizing_instances(self): instances = [{ 'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': '123', 'vm_state': vm_states.RESIZED, 'task_state': None }] all_instances = [ fake_instance.fake_instance_obj(None, **instance) for instance in instances ] image_cache_manager = imagecache.ImageCacheManager() self.mox.StubOutWithMock(objects.block_device.BlockDeviceMappingList, 'get_by_instance_uuid') ctxt = context.get_admin_context() bdms = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) objects.block_device.BlockDeviceMappingList.get_by_instance_uuid( ctxt, '123').AndReturn(bdms) self.mox.ReplayAll() running = image_cache_manager._list_running_instances( ctxt, all_instances) self.assertEqual(1, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual( set([ 'instance-00000001', '123', 'instance-00000001_resize', '123_resize' ]), running['instance_names']) self.assertEqual(1, len(running['image_popularity'])) self.assertEqual(1, running['image_popularity']['1'])
def test_list_running_instances(self): instances = [{ 'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': '123', 'vm_state': '', 'task_state': '' }, { 'image_ref': '2', 'host': CONF.host, 'id': '2', 'uuid': '456', 'vm_state': '', 'task_state': '' }, { 'image_ref': '2', 'kernel_id': '21', 'ramdisk_id': '22', 'host': 'remotehost', 'id': '3', 'uuid': '789', 'vm_state': '', 'task_state': '' }] all_instances = [ fake_instance.fake_instance_obj(None, **instance) for instance in instances ] image_cache_manager = imagecache.ImageCacheManager() self.mox.StubOutWithMock(objects.block_device.BlockDeviceMappingList, 'get_by_instance_uuid') ctxt = context.get_admin_context() swap_bdm_256_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) swap_bdm_128_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_128) objects.block_device.BlockDeviceMappingList.get_by_instance_uuid( ctxt, '123').AndReturn(swap_bdm_256_list) objects.block_device.BlockDeviceMappingList.get_by_instance_uuid( ctxt, '456').AndReturn(swap_bdm_128_list) objects.block_device.BlockDeviceMappingList.get_by_instance_uuid( ctxt, '789').AndReturn(swap_bdm_128_list) self.mox.ReplayAll() # The argument here should be a context, but it's mocked out running = image_cache_manager._list_running_instances( ctxt, all_instances) self.assertEqual(4, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual((1, 1, ['instance-00000002', 'instance-00000003']), running['used_images']['2']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['21']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['22']) self.assertIn('instance-00000001', running['instance_names']) self.assertIn('123', running['instance_names']) self.assertEqual(4, len(running['image_popularity'])) self.assertEqual(1, running['image_popularity']['1']) self.assertEqual(2, running['image_popularity']['2']) self.assertEqual(1, running['image_popularity']['21']) self.assertEqual(1, running['image_popularity']['22']) self.assertEqual(len(running['used_swap_images']), 2) self.assertIn('swap_128', running['used_swap_images']) self.assertIn('swap_256', running['used_swap_images'])
def test_make_list_from_dicts_empty(self): ctx = context.get_admin_context() objs = block_device_obj.block_device_make_list_from_dicts(ctx, []) self.assertIsInstance(objs, block_device_obj.BlockDeviceMappingList) self.assertEqual(0, len(objs))
def test_list_running_instances(self): instances = [{'image_ref': '1', 'host': CONF.host, 'id': '1', 'uuid': '123', 'vm_state': '', 'task_state': ''}, {'image_ref': '2', 'host': CONF.host, 'id': '2', 'uuid': '456', 'vm_state': '', 'task_state': ''}, {'image_ref': '2', 'kernel_id': '21', 'ramdisk_id': '22', 'host': 'remotehost', 'id': '3', 'uuid': '789', 'vm_state': '', 'task_state': ''}] all_instances = [fake_instance.fake_instance_obj(None, **instance) for instance in instances] image_cache_manager = imagecache.ImageCacheManager() self.mox.StubOutWithMock(objects.block_device.BlockDeviceMappingList, 'bdms_by_instance_uuid') ctxt = context.get_admin_context() swap_bdm_256_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_256) swap_bdm_128_list = block_device_obj.block_device_make_list_from_dicts( ctxt, swap_bdm_128) objects.block_device.BlockDeviceMappingList.bdms_by_instance_uuid( ctxt, ['123', '456', '789']).AndReturn({'123': swap_bdm_256_list, '456': swap_bdm_128_list, '789': swap_bdm_128_list}) self.mox.ReplayAll() # The argument here should be a context, but it's mocked out running = image_cache_manager._list_running_instances(ctxt, all_instances) self.assertEqual(4, len(running['used_images'])) self.assertEqual((1, 0, ['instance-00000001']), running['used_images']['1']) self.assertEqual((1, 1, ['instance-00000002', 'instance-00000003']), running['used_images']['2']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['21']) self.assertEqual((0, 1, ['instance-00000003']), running['used_images']['22']) self.assertIn('instance-00000001', running['instance_names']) self.assertIn('123', running['instance_names']) self.assertEqual(len(running['used_swap_images']), 2) self.assertIn('swap_128', running['used_swap_images']) self.assertIn('swap_256', running['used_swap_images'])