def test_extract_availability_zone_without_fallback( self, fake_get_type_id, fake_get_qos, fake_is_encrypted): fake_image_service = fake_image.FakeImageService() image_id = 3 image_meta = {} image_meta['id'] = image_id image_meta['status'] = 'active' image_meta['size'] = 1 fake_image_service.create(self.ctxt, image_meta) fake_key_manager = mock_key_mgr.MockKeyManager() volume_type = 'type1' task = create_volume.ExtractVolumeRequestTask(fake_image_service, {'nova'}) fake_is_encrypted.return_value = False fake_get_type_id.return_value = 1 fake_get_qos.return_value = {'qos_specs': None} self.assertRaises(exception.InvalidInput, task.execute, self.ctxt, size=1, snapshot=None, image_id=image_id, source_volume=None, availability_zone='notnova', volume_type=volume_type, metadata=None, key_manager=fake_key_manager, source_replica=None, consistencygroup=None, cgsnapshot=None)
def test_extract_volume_request_from_image_encrypted( self, fake_get_qos, fake_get_encryption_key, fake_get_volume_type_id, fake_is_encrypted): fake_image_service = fake_image.FakeImageService() image_id = 1 image_meta = {} image_meta['id'] = image_id image_meta['status'] = 'active' image_meta['size'] = 1 fake_image_service.create(self.ctxt, image_meta) fake_key_manager = mock_key_manager.MockKeyManager() task = create_volume.ExtractVolumeRequestTask(fake_image_service, {'nova'}) fake_is_encrypted.return_value = True fake_get_volume_type_id.return_value = fakes.VOLUME_TYPE_ID task.execute(self.ctxt, size=1, snapshot=None, image_id=image_id, source_volume=None, availability_zone='nova', volume_type=None, metadata=None, key_manager=fake_key_manager, source_replica=None, consistencygroup=None, cgsnapshot=None, group=None) fake_get_encryption_key.assert_called_once_with( fake_key_manager, self.ctxt, fakes.VOLUME_TYPE_ID, None, None)
def test_extract_image_volume_type_from_image(self, fake_get_type_id, fake_get_vol_type, fake_get_def_vol_type, fake_get_qos, fake_is_encrypted): image_volume_type = 'type_from_image' fake_image_service = fake_image.FakeImageService() image_id = 6 image_meta = {} image_meta['id'] = image_id image_meta['status'] = 'active' image_meta['size'] = 1 image_meta['properties'] = {} image_meta['properties']['cinder_img_volume_type'] = image_volume_type fake_image_service.create(self.ctxt, image_meta) fake_key_manager = mock_key_manager.MockKeyManager() task = create_volume.ExtractVolumeRequestTask(fake_image_service, {'nova'}) fake_is_encrypted.return_value = False fake_get_type_id.return_value = 1 fake_get_vol_type.return_value = image_volume_type fake_get_def_vol_type.return_value = 'fake_vol_type' fake_get_qos.return_value = {'qos_specs': None} result = task.execute(self.ctxt, size=1, snapshot=None, image_id=image_id, source_volume=None, availability_zone='nova', volume_type=None, metadata=None, key_manager=fake_key_manager, source_replica=None, consistencygroup=None, cgsnapshot=None, group=None) expected_result = { 'size': 1, 'snapshot_id': None, 'source_volid': None, 'availability_zone': 'nova', 'volume_type': image_volume_type, 'volume_type_id': 1, 'encryption_key_id': None, 'qos_specs': None, 'source_replicaid': None, 'consistencygroup_id': None, 'cgsnapshot_id': None, 'group_id': None, } self.assertEqual(expected_result, result)
def test_extract_availability_zone_with_fallback(self, fake_get_type_id, fake_get_qos, fake_is_encrypted): self.override_config('allow_availability_zone_fallback', True) fake_image_service = fake_image.FakeImageService() image_id = 4 image_meta = {} image_meta['id'] = image_id image_meta['status'] = 'active' image_meta['size'] = 1 fake_image_service.create(self.ctxt, image_meta) fake_key_manager = mock_key_manager.MockKeyManager() volume_type = 'type1' task = create_volume.ExtractVolumeRequestTask(fake_image_service, {'nova'}) fake_is_encrypted.return_value = False fake_get_type_id.return_value = 1 fake_get_qos.return_value = {'qos_specs': None} result = task.execute(self.ctxt, size=1, snapshot=None, image_id=image_id, source_volume=None, availability_zone='does_not_exist', volume_type=volume_type, metadata=None, key_manager=fake_key_manager, source_replica=None, consistencygroup=None, cgsnapshot=None, group=None) expected_result = { 'size': 1, 'snapshot_id': None, 'source_volid': None, 'availability_zone': 'nova', 'volume_type': volume_type, 'volume_type_id': 1, 'encryption_key_id': None, 'qos_specs': None, 'source_replicaid': None, 'consistencygroup_id': None, 'cgsnapshot_id': None, 'group_id': None, } self.assertEqual(expected_result, result)
def test_extract_volume_request_from_image_encrypted( self, fake_get_volume_type_id, fake_is_encrypted): fake_image_service = fake_image.FakeImageService() image_id = 1 image_meta = {} image_meta['id'] = image_id image_meta['status'] = 'active' image_meta['size'] = 1 fake_image_service.create(self.ctxt, image_meta) fake_key_manager = mock_key_mgr.MockKeyManager() task = create_volume.ExtractVolumeRequestTask(fake_image_service, {'nova'}, rebind={ 'size': 1, 'availability_zone': 'nova', 'volume_type': 'my_type' }) fake_is_encrypted.return_value = True self.assertRaises(exception.InvalidInput, task.execute, self.ctxt, size=1, snapshot=None, image_id=image_id, source_volume=None, availability_zone='nova', volume_type=None, metadata=None, key_manager=fake_key_manager, source_replica=None, consistencygroup=None, cgsnapshot=None)