summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/volume/v2/test_volume.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/functional/volume/v2/test_volume.py')
-rw-r--r--openstackclient/tests/functional/volume/v2/test_volume.py48
1 files changed, 13 insertions, 35 deletions
diff --git a/openstackclient/tests/functional/volume/v2/test_volume.py b/openstackclient/tests/functional/volume/v2/test_volume.py
index f936907c..2930d483 100644
--- a/openstackclient/tests/functional/volume/v2/test_volume.py
+++ b/openstackclient/tests/functional/volume/v2/test_volume.py
@@ -11,11 +11,8 @@
# under the License.
import json
-import time
import uuid
-from tempest.lib import exceptions
-
from openstackclient.tests.functional.volume.v2 import common
@@ -46,8 +43,8 @@ class VolumeTests(common.BaseVolumeTests):
cmd_output["size"],
)
- self.wait_for("volume", name1, "available")
- self.wait_for("volume", name2, "available")
+ self.wait_for_status("volume", name1, "available")
+ self.wait_for_status("volume", name2, "available")
del_output = self.openstack('volume delete ' + name1 + ' ' + name2)
self.assertOutput('', del_output)
@@ -64,7 +61,7 @@ class VolumeTests(common.BaseVolumeTests):
1,
cmd_output["size"],
)
- self.wait_for("volume", name1, "available")
+ self.wait_for_status("volume", name1, "available")
name2 = uuid.uuid4().hex
cmd_output = json.loads(self.openstack(
@@ -77,7 +74,7 @@ class VolumeTests(common.BaseVolumeTests):
2,
cmd_output["size"],
)
- self.wait_for("volume", name2, "available")
+ self.wait_for_status("volume", name2, "available")
raw_output = self.openstack(
'volume set ' +
'--state error ' +
@@ -138,7 +135,7 @@ class VolumeTests(common.BaseVolumeTests):
'false',
cmd_output["bootable"],
)
- self.wait_for("volume", name, "available")
+ self.wait_for_status("volume", name, "available")
# Test volume set
raw_output = self.openstack(
@@ -218,7 +215,7 @@ class VolumeTests(common.BaseVolumeTests):
'--size 1 ' +
volume_name
))
- self.wait_for("volume", volume_name, "available")
+ self.wait_for_status("volume", volume_name, "available")
self.assertEqual(
volume_name,
cmd_output["name"],
@@ -228,9 +225,10 @@ class VolumeTests(common.BaseVolumeTests):
snapshot_name +
' --volume ' + volume_name
))
- self.wait_for("volume snapshot", snapshot_name, "available")
+ self.wait_for_status("volume snapshot", snapshot_name, "available")
name = uuid.uuid4().hex
+ # Create volume from snapshot
cmd_output = json.loads(self.openstack(
'volume create -f json ' +
'--snapshot ' + snapshot_name +
@@ -242,12 +240,15 @@ class VolumeTests(common.BaseVolumeTests):
name,
cmd_output["name"],
)
- self.wait_for("volume", name, "available")
+ self.wait_for_status("volume", name, "available")
# Delete snapshot
raw_output = self.openstack(
'volume snapshot delete ' + snapshot_name)
self.assertOutput('', raw_output)
+ # Deleting snapshot may take time. If volume snapshot still exists when
+ # a parent volume delete is requested, the volume deletion will fail.
+ self.wait_for_delete('volume snapshot', snapshot_name)
def test_volume_list_backward_compatibility(self):
"""Test backward compatibility of list command"""
@@ -262,7 +263,7 @@ class VolumeTests(common.BaseVolumeTests):
1,
cmd_output["size"],
)
- self.wait_for("volume", name1, "available")
+ self.wait_for_status("volume", name1, "available")
# Test list -c "Display Name"
cmd_output = json.loads(self.openstack(
@@ -279,26 +280,3 @@ class VolumeTests(common.BaseVolumeTests):
))
for each_volume in cmd_output:
self.assertIn('Name', each_volume)
-
- def wait_for(self, check_type, check_name, desired_status, wait=120,
- interval=5, failures=['ERROR']):
- status = "notset"
- total_sleep = 0
- opts = self.get_opts(['status'])
- while total_sleep < wait:
- try:
- status = self.openstack(
- check_type + ' show ' + check_name + opts
- )
- except exceptions.CommandFailed:
- # Show command raise Exception when object had been deleted
- status = 'disappear'
- status = status.rstrip()
- print('Checking {} {} Waiting for {} current status: {}'
- .format(check_type, check_name, desired_status, status))
- if status == desired_status:
- break
- self.assertNotIn(status, failures)
- time.sleep(interval)
- total_sleep += interval
- self.assertEqual(desired_status, status)