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() objects.block_device.BlockDeviceMappingList.get_by_instance_uuid( ctxt, '123').AndReturn(swap_bdm_256) 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_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_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() running = image_cache_manager._list_running_instances( None, 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, 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_cache_manager(self): cache_manager = imagecache.ImageCacheManager() self.assertTrue(cache_manager.remove_unused_base_images) self.assertRaises(NotImplementedError, cache_manager.update, None, []) self.assertRaises(NotImplementedError, cache_manager._get_base) self.assertRaises(NotImplementedError, cache_manager._scan_base_images, None) self.assertRaises(NotImplementedError, cache_manager._age_and_verify_cached_images, None, [], None)
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() # The argument here should be a context, but it's mocked out running = image_cache_manager._list_running_instances( None, 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'])
def test_cache_manager(self): cache_manager = imagecache.ImageCacheManager() self.assertTrue(cache_manager.remove_unused_base_images) self.assertRaises(NotImplementedError, cache_manager.update, None, []) self.assertRaises(NotImplementedError, cache_manager._get_base) base_images = cache_manager._list_base_images(None) self.assertEqual([], base_images['unexplained_images']) self.assertEqual([], base_images['originals']) self.assertRaises(NotImplementedError, cache_manager._age_and_verify_cached_images, None, [], None)
def test_list_running_instances(self): all_instances = [{ 'image_ref': '1', 'host': CONF.host, 'name': 'inst-1', 'uuid': '123', 'vm_state': '', 'task_state': '' }, { 'image_ref': '2', 'host': CONF.host, 'name': 'inst-2', 'uuid': '456', 'vm_state': '', 'task_state': '' }, { 'image_ref': '2', 'kernel_id': '21', 'ramdisk_id': '22', 'host': 'remotehost', 'name': 'inst-3', 'uuid': '789', 'vm_state': '', 'task_state': '' }] image_cache_manager = imagecache.ImageCacheManager() # The argument here should be a context, but it's mocked out running = image_cache_manager._list_running_instances( None, all_instances) self.assertEqual(len(running['used_images']), 4) self.assertEqual(running['used_images']['1'], (1, 0, ['inst-1'])) self.assertEqual(running['used_images']['2'], (1, 1, ['inst-2', 'inst-3'])) self.assertEqual(running['used_images']['21'], (0, 1, ['inst-3'])) self.assertEqual(running['used_images']['22'], (0, 1, ['inst-3'])) self.assertIn('inst-1', running['instance_names']) self.assertIn('123', running['instance_names']) self.assertEqual(len(running['image_popularity']), 4) self.assertEqual(running['image_popularity']['1'], 1) self.assertEqual(running['image_popularity']['2'], 2) self.assertEqual(running['image_popularity']['21'], 1) self.assertEqual(running['image_popularity']['22'], 1)
def test_list_resizing_instances(self): all_instances = [{ 'image_ref': '1', 'host': CONF.host, 'name': 'inst-1', 'uuid': '123', 'vm_state': vm_states.RESIZED, 'task_state': None }] image_cache_manager = imagecache.ImageCacheManager() running = image_cache_manager._list_running_instances( None, all_instances) self.assertEqual(len(running['used_images']), 1) self.assertEqual((1, 0, ['inst-1']), running['used_images']['1']) self.assertEqual(set(['inst-1', '123', 'inst-1_resize', '123_resize']), running['instance_names']) self.assertEqual(len(running['image_popularity']), 1) self.assertEqual(running['image_popularity']['1'], 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'])