Delete related encryption provider when a volume type is deleting
Currently volume_type_destroy() in api.py does not delete related encryption provider (if it exists). As a result, 'encryption' table accumulates orphaned records. This patch fixes to delete related encryption provider when a volume type is deleting. Change-Id: I90962108ced5043d74b7a7984196b14b2a13eeab Closes-Bug: 1797640
This commit is contained in:
parent
94202a2464
commit
f3bc40ec34
|
@ -4163,6 +4163,11 @@ def volume_type_destroy(context, id):
|
|||
update({'deleted': True,
|
||||
'deleted_at': utcnow,
|
||||
'updated_at': literal_column('updated_at')})
|
||||
model_query(context, models.Encryption, session=session).\
|
||||
filter_by(volume_type_id=id).\
|
||||
update({'deleted': True,
|
||||
'deleted_at': utcnow,
|
||||
'updated_at': literal_column('updated_at')})
|
||||
model_query(context, models.VolumeTypeProjects, session=session,
|
||||
read_deleted="int_no").filter_by(
|
||||
volume_type_id=id).soft_delete(synchronize_session=False)
|
||||
|
|
|
@ -47,6 +47,25 @@ class VolumeTypeTestCase(test.TestCase):
|
|||
visible="True")
|
||||
self.vol_type1_description = self.vol_type1_name + '_desc'
|
||||
|
||||
def test_volume_type_destroy_with_encryption(self):
|
||||
volume_type = volume_types.create(self.ctxt, "type1")
|
||||
volume_type_id = volume_type.get('id')
|
||||
|
||||
encryption = {
|
||||
'control_location': 'front-end',
|
||||
'provider': 'fake_provider',
|
||||
}
|
||||
db_api.volume_type_encryption_create(self.ctxt, volume_type_id,
|
||||
encryption)
|
||||
ret = volume_types.get_volume_type_encryption(self.ctxt,
|
||||
volume_type_id)
|
||||
self.assertIsNotNone(ret)
|
||||
|
||||
volume_types.destroy(self.ctxt, volume_type_id)
|
||||
ret = volume_types.get_volume_type_encryption(self.ctxt,
|
||||
volume_type_id)
|
||||
self.assertIsNone(ret)
|
||||
|
||||
def test_get_volume_type_by_name_with_uuid_name(self):
|
||||
"""Ensure volume types can be created and found."""
|
||||
uuid_format_name = uuidutils.generate_uuid()
|
||||
|
|
Loading…
Reference in New Issue