Handle deleting status during volume detachment
VolumeAttachment resource is throwing exception during detachment if the volume is in deleting status. This change is to skip detachment if the volume is in deleting status. Change-Id: I8a7f4f1c95d64c123ea76150cc80a6ef12532e8b Closes-Bug: #1426053
This commit is contained in:
parent
002c2a9678
commit
70f8730359
|
@ -174,6 +174,9 @@ class VolumeDetachTask(object):
|
|||
else:
|
||||
raise
|
||||
|
||||
if vol.status == 'deleting':
|
||||
return
|
||||
|
||||
# detach the volume using volume_attachment
|
||||
try:
|
||||
server_api.delete_server_volume(self.server_id, self.attachment_id)
|
||||
|
@ -193,7 +196,7 @@ class VolumeDetachTask(object):
|
|||
|
||||
LOG.info(_LI('%(name)s - status: %(status)s'),
|
||||
{'name': str(self), 'status': vol.status})
|
||||
if vol.status != 'available':
|
||||
if vol.status not in ['available', 'deleting']:
|
||||
LOG.info(_LI("Detachment failed - volume %(vol)s "
|
||||
"is in %(status)s status"),
|
||||
{"vol": vol.id,
|
||||
|
|
|
@ -322,6 +322,30 @@ class VolumeTest(vt_base.BaseVolumeTest):
|
|||
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_volume_detach_deleting_volume(self):
|
||||
fv = vt_base.FakeVolume('creating')
|
||||
fva = vt_base.FakeVolume('deleting')
|
||||
stack_name = 'test_volume_detach_deleting_volume_stack'
|
||||
|
||||
self._mock_create_volume(fv, stack_name)
|
||||
self._mock_create_server_volume_script(fva)
|
||||
self.stub_VolumeConstraint_validate()
|
||||
# delete script
|
||||
self.fc.volumes.get_server_volume(u'WikiDatabase',
|
||||
'vol-123').AndReturn(fva)
|
||||
self.cinder_fc.volumes.get(fva.id).AndReturn(fva)
|
||||
|
||||
self.m.ReplayAll()
|
||||
|
||||
stack = utils.parse_stack(self.t, stack_name=stack_name)
|
||||
|
||||
self.create_volume(self.t, stack, 'DataVolume')
|
||||
rsrc = self.create_attachment(self.t, stack, 'MountPoint')
|
||||
|
||||
scheduler.TaskRunner(rsrc.delete)()
|
||||
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_volume_detach_with_latency(self):
|
||||
stack_name = 'test_volume_detach_latency_stack'
|
||||
|
||||
|
|
Loading…
Reference in New Issue