add 'stop instance' operation before volume detach

to prevent volume stuck in busy state.
From AWS: Make sure to unmount any file systems on the device
within your operating system before detaching the volume. Failure
to do so results in the volume being stuck in a busy state while detaching.

Change-Id: I6e96c0125a07c09b5f36a9e086d58075cc47e98b
This commit is contained in:
Andrey Pavlov 2016-02-13 11:05:53 +03:00
parent 22ab3782fa
commit f4464ac305
1 changed files with 15 additions and 0 deletions

View File

@ -189,6 +189,11 @@ class VolumeTest(base.EC2TestCase):
self.assertIn('DeviceName', bdms[0])
self.assertIn('Ebs', bdms[0])
# stop instance to prevent 'busy' state of detached volume
data = self.client.stop_instances(InstanceIds=[instance_id])
self.get_instance_waiter().wait_available(instance_id,
final_set=('stopped'))
self.client.detach_volume(VolumeId=volume_id)
self.get_volume_attachment_waiter().wait_delete(volume_id)
self.cancelResourceCleanUp(clean_vi)
@ -244,6 +249,11 @@ class VolumeTest(base.EC2TestCase):
clean_i = self.addResourceCleanUp(self.client.terminate_instances,
InstanceIds=[instance_id])
# stop instance to prevent 'busy' state of detached volume
data = self.client.stop_instances(InstanceIds=[instance_id])
self.get_instance_waiter().wait_available(instance_id,
final_set=('stopped'))
self.client.detach_volume(VolumeId=volume_id)
self.get_volume_attachment_waiter().wait_delete(volume_id)
self.cancelResourceCleanUp(clean_vi)
@ -296,6 +306,11 @@ class VolumeTest(base.EC2TestCase):
self.client.delete_volume,
VolumeId=volume_id)
# stop instance to prevent 'busy' state of detached volume
data = self.client.stop_instances(InstanceIds=[instance_id])
self.get_instance_waiter().wait_available(instance_id,
final_set=('stopped'))
self.client.detach_volume(VolumeId=volume_id)
self.cancelResourceCleanUp(clean_vi)
self.get_volume_attachment_waiter().wait_delete(volume_id)