Fix volume_create to use shared function with a cleanup
delete volume is taken care by self.create_volume Change-Id: Ic4cb5dae7a7165d28df3cab97019c1756a70dfbf
This commit is contained in:
parent
f15dd705a1
commit
8a33ee1117
|
@ -51,8 +51,7 @@ class VolumeTypesV2Test(base.BaseVolumeAdminTest):
|
|||
'size': CONF.volume.volume_size}
|
||||
|
||||
# Create volume
|
||||
volume = self.volumes_client.create_volume(**params)['volume']
|
||||
self.addCleanup(self.delete_volume, self.volumes_client, volume['id'])
|
||||
volume = self.create_volume(**params)
|
||||
self.assertEqual(volume_types[0]['name'], volume["volume_type"])
|
||||
self.assertEqual(volume[self.name_field], vol_name,
|
||||
"The created volume name is not equal "
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
import operator
|
||||
|
||||
from tempest.api.volume import base
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
@ -52,13 +51,7 @@ class VolumeTypesAccessV2Test(base.BaseVolumeAdminTest):
|
|||
project=self.volumes_client.tenant_id)
|
||||
|
||||
# Creating a volume from primary tenant
|
||||
volume = self.volumes_client.create_volume(
|
||||
volume_type=volume_type['id'],
|
||||
size=CONF.volume.volume_size)['volume']
|
||||
self.addCleanup(self.delete_volume, self.volumes_client, volume['id'])
|
||||
waiters.wait_for_volume_status(self.volumes_client, volume['id'],
|
||||
'available')
|
||||
|
||||
volume = self.create_volume(volume_type=volume_type['id'])
|
||||
# Validating the created volume is based on the volume type
|
||||
self.assertEqual(volume_type['name'], volume['volume_type'])
|
||||
|
||||
|
|
|
@ -15,9 +15,7 @@
|
|||
|
||||
from tempest.api.volume.v3 import base
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import exceptions
|
||||
from tempest import test
|
||||
|
||||
CONF = config.CONF
|
||||
|
@ -47,21 +45,11 @@ class UserMessagesTest(base.VolumesV3AdminTest):
|
|||
'vendor_name': bad_vendor}
|
||||
vol_type_name = data_utils.rand_name(
|
||||
self.__class__.__name__ + '-volume-type')
|
||||
bogus_type = self.admin_volume_types_client.create_volume_type(
|
||||
name=vol_type_name,
|
||||
extra_specs=extra_specs)['volume_type']
|
||||
self.addCleanup(self.admin_volume_types_client.delete_volume_type,
|
||||
bogus_type['id'])
|
||||
bogus_type = self.create_volume_type(
|
||||
name=vol_type_name, extra_specs=extra_specs)
|
||||
params = {'volume_type': bogus_type['id'],
|
||||
'size': CONF.volume.volume_size}
|
||||
volume = self.volumes_client.create_volume(**params)['volume']
|
||||
self.addCleanup(self.delete_volume, self.volumes_client, volume['id'])
|
||||
try:
|
||||
waiters.wait_for_volume_status(self.volumes_client, volume['id'],
|
||||
'error')
|
||||
except exceptions.VolumeBuildErrorException:
|
||||
# Error state is expected and desired
|
||||
pass
|
||||
volume = self.create_volume(wait_until="error", **params)
|
||||
messages = self.messages_client.list_messages()['messages']
|
||||
message_id = None
|
||||
for message in messages:
|
||||
|
|
|
@ -108,8 +108,11 @@ class BaseVolumeTest(tempest.test.BaseTestCase):
|
|||
super(BaseVolumeTest, cls).resource_cleanup()
|
||||
|
||||
@classmethod
|
||||
def create_volume(cls, **kwargs):
|
||||
"""Wrapper utility that returns a test volume."""
|
||||
def create_volume(cls, wait_until='available', **kwargs):
|
||||
"""Wrapper utility that returns a test volume.
|
||||
|
||||
:param wait_until: wait till volume status.
|
||||
"""
|
||||
if 'size' not in kwargs:
|
||||
kwargs['size'] = CONF.volume.volume_size
|
||||
|
||||
|
@ -120,8 +123,8 @@ class BaseVolumeTest(tempest.test.BaseTestCase):
|
|||
|
||||
volume = cls.volumes_client.create_volume(**kwargs)['volume']
|
||||
cls.volumes.append(volume)
|
||||
waiters.wait_for_volume_status(cls.volumes_client,
|
||||
volume['id'], 'available')
|
||||
waiters.wait_for_volume_status(cls.volumes_client, volume['id'],
|
||||
wait_until)
|
||||
return volume
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -52,7 +52,8 @@ class VolumesV3Test(api_version_utils.BaseMicroversionTest,
|
|||
self.request_microversion))
|
||||
|
||||
|
||||
class VolumesV3AdminTest(VolumesV3Test):
|
||||
class VolumesV3AdminTest(VolumesV3Test,
|
||||
base.BaseVolumeAdminTest):
|
||||
"""Base test case class for all v3 Volume Admin API tests."""
|
||||
|
||||
credentials = ['primary', 'admin']
|
||||
|
|
|
@ -176,7 +176,7 @@ def wait_for_volume_status(client, volume_id, status):
|
|||
time.sleep(client.build_interval)
|
||||
body = client.show_volume(volume_id)['volume']
|
||||
volume_status = body['status']
|
||||
if volume_status == 'error':
|
||||
if volume_status == 'error' and status != 'error':
|
||||
raise exceptions.VolumeBuildErrorException(volume_id=volume_id)
|
||||
if volume_status == 'error_restoring':
|
||||
raise exceptions.VolumeRestoreErrorException(volume_id=volume_id)
|
||||
|
|
Loading…
Reference in New Issue