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