Merge "Delete volume transfer in volume_destroy function"

This commit is contained in:
Jenkins 2014-01-25 14:23:31 +00:00 committed by Gerrit Code Review
commit 033302345b
2 changed files with 22 additions and 0 deletions

View File

@ -1097,6 +1097,11 @@ def volume_destroy(context, volume_id):
update({'deleted': True,
'deleted_at': now,
'updated_at': literal_column('updated_at')})
model_query(context, models.Transfer, session=session).\
filter_by(volume_id=volume_id).\
update({'deleted': True,
'deleted_at': now,
'updated_at': literal_column('updated_at')})
@require_admin_context

View File

@ -118,3 +118,20 @@ class VolumeTransferTestCase(test.TestCase):
ts = tx_api.get_all(nctxt)
self.assertEqual(len(ts), 0, 'Unexpected transfers listed.')
def test_delete_transfer_with_deleted_volume(self):
#create a volume
volume = utils.create_volume(self.ctxt, id='1',
updated_at=self.updated_at)
#create a transfer
tx_api = transfer_api.API()
transfer = tx_api.create(self.ctxt, volume['id'], 'Description')
t = tx_api.get(self.ctxt, transfer['id'])
self.assertEqual(t['id'], transfer['id'], 'Unexpected transfer id')
#force delete volume
db.volume_destroy(context.get_admin_context(), volume['id'])
#Make sure transfer has been deleted.
self.assertRaises(exception.TransferNotFound,
tx_api.get,
self.ctxt,
transfer['id'])