Example #1
0
    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_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'])
Example #3
0
    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'])
Example #4
0
    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'])
Example #5
0
    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'])
Example #6
0
 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)
Example #7
0
 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'])
Example #10
0
 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))
Example #11
0
    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'])
Example #12
0
 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))