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:
Benny Kopilov 2016-11-09 10:35:23 +02:00 committed by Jordan Pittier
parent f15dd705a1
commit 8a33ee1117
6 changed files with 15 additions and 31 deletions

View File

@ -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 "

View File

@ -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'])

View File

@ -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:

View File

@ -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

View File

@ -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']

View File

@ -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)