Merge "Use addClassResourceCleanup for cleanup of volume resources"
This commit is contained in:
commit
e4976924ff
@ -101,19 +101,11 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest,
|
||||
cls.min_microversion,
|
||||
CONF.volume.min_microversion))
|
||||
|
||||
cls.snapshots = []
|
||||
cls.volumes = []
|
||||
cls.image_ref = CONF.compute.image_ref
|
||||
cls.flavor_ref = CONF.compute.flavor_ref
|
||||
cls.build_interval = CONF.volume.build_interval
|
||||
cls.build_timeout = CONF.volume.build_timeout
|
||||
|
||||
@classmethod
|
||||
def resource_cleanup(cls):
|
||||
cls.clear_snapshots()
|
||||
cls.clear_volumes()
|
||||
super(BaseVolumeTest, cls).resource_cleanup()
|
||||
|
||||
@classmethod
|
||||
def create_volume(cls, wait_until='available', **kwargs):
|
||||
"""Wrapper utility that returns a test volume.
|
||||
@ -133,7 +125,9 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest,
|
||||
kwargs['name'] = name
|
||||
|
||||
volume = cls.volumes_client.create_volume(**kwargs)['volume']
|
||||
cls.volumes.append(volume)
|
||||
cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,
|
||||
cls.delete_volume, cls.volumes_client,
|
||||
volume['id'])
|
||||
waiters.wait_for_volume_resource_status(cls.volumes_client,
|
||||
volume['id'], wait_until)
|
||||
return volume
|
||||
@ -147,7 +141,8 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest,
|
||||
|
||||
snapshot = cls.snapshots_client.create_snapshot(
|
||||
volume_id=volume_id, **kwargs)['snapshot']
|
||||
cls.snapshots.append(snapshot['id'])
|
||||
cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,
|
||||
cls.delete_snapshot, snapshot['id'])
|
||||
waiters.wait_for_volume_resource_status(cls.snapshots_client,
|
||||
snapshot['id'], 'available')
|
||||
return snapshot
|
||||
@ -176,14 +171,13 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest,
|
||||
client.delete_volume(volume_id)
|
||||
client.wait_for_resource_deletion(volume_id)
|
||||
|
||||
def delete_snapshot(self, snapshot_id, snapshots_client=None):
|
||||
@classmethod
|
||||
def delete_snapshot(cls, snapshot_id, snapshots_client=None):
|
||||
"""Delete snapshot by the given client"""
|
||||
if snapshots_client is None:
|
||||
snapshots_client = self.snapshots_client
|
||||
snapshots_client = cls.snapshots_client
|
||||
snapshots_client.delete_snapshot(snapshot_id)
|
||||
snapshots_client.wait_for_resource_deletion(snapshot_id)
|
||||
if snapshot_id in self.snapshots:
|
||||
self.snapshots.remove(snapshot_id)
|
||||
|
||||
def attach_volume(self, server_id, volume_id):
|
||||
"""Attach a volume to a server"""
|
||||
@ -197,31 +191,6 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest,
|
||||
self.addCleanup(self.servers_client.detach_volume, server_id,
|
||||
volume_id)
|
||||
|
||||
@classmethod
|
||||
def clear_volumes(cls):
|
||||
for volume in cls.volumes:
|
||||
try:
|
||||
cls.volumes_client.delete_volume(volume['id'])
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for volume in cls.volumes:
|
||||
try:
|
||||
cls.volumes_client.wait_for_resource_deletion(volume['id'])
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def clear_snapshots(cls):
|
||||
for snapshot in cls.snapshots:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.snapshots_client.delete_snapshot, snapshot)
|
||||
|
||||
for snapshot in cls.snapshots:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.snapshots_client.wait_for_resource_deletion,
|
||||
snapshot)
|
||||
|
||||
def create_server(self, wait_until='ACTIVE', **kwargs):
|
||||
name = kwargs.pop(
|
||||
'name',
|
||||
@ -302,19 +271,6 @@ class BaseVolumeAdminTest(BaseVolumeTest):
|
||||
cls.admin_scheduler_stats_client = \
|
||||
cls.os_admin.volume_scheduler_stats_v2_client
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(BaseVolumeAdminTest, cls).resource_setup()
|
||||
|
||||
cls.qos_specs = []
|
||||
cls.volume_types = []
|
||||
|
||||
@classmethod
|
||||
def resource_cleanup(cls):
|
||||
cls.clear_qos_specs()
|
||||
super(BaseVolumeAdminTest, cls).resource_cleanup()
|
||||
cls.clear_volume_types()
|
||||
|
||||
@classmethod
|
||||
def create_test_qos_specs(cls, name=None, consumer=None, **kwargs):
|
||||
"""create a test Qos-Specs."""
|
||||
@ -322,7 +278,7 @@ class BaseVolumeAdminTest(BaseVolumeTest):
|
||||
consumer = consumer or 'front-end'
|
||||
qos_specs = cls.admin_volume_qos_client.create_qos(
|
||||
name=name, consumer=consumer, **kwargs)['qos_specs']
|
||||
cls.qos_specs.append(qos_specs['id'])
|
||||
cls.addClassResourceCleanup(cls.clear_qos_spec, qos_specs['id'])
|
||||
return qos_specs
|
||||
|
||||
@classmethod
|
||||
@ -331,7 +287,7 @@ class BaseVolumeAdminTest(BaseVolumeTest):
|
||||
name = name or data_utils.rand_name(cls.__name__ + '-volume-type')
|
||||
volume_type = cls.admin_volume_types_client.create_volume_type(
|
||||
name=name, **kwargs)['volume_type']
|
||||
cls.volume_types.append(volume_type['id'])
|
||||
cls.addClassResourceCleanup(cls.clear_volume_type, volume_type['id'])
|
||||
return volume_type
|
||||
|
||||
def create_group_type(self, name=None, **kwargs):
|
||||
@ -345,22 +301,18 @@ class BaseVolumeAdminTest(BaseVolumeTest):
|
||||
return group_type
|
||||
|
||||
@classmethod
|
||||
def clear_qos_specs(cls):
|
||||
for qos_id in cls.qos_specs:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_qos_client.delete_qos, qos_id)
|
||||
def clear_qos_spec(cls, qos_id):
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_qos_client.delete_qos, qos_id)
|
||||
|
||||
for qos_id in cls.qos_specs:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_qos_client.wait_for_resource_deletion, qos_id)
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_qos_client.wait_for_resource_deletion, qos_id)
|
||||
|
||||
@classmethod
|
||||
def clear_volume_types(cls):
|
||||
for vol_type in cls.volume_types:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_types_client.delete_volume_type, vol_type)
|
||||
def clear_volume_type(cls, vol_type_id):
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_types_client.delete_volume_type, vol_type_id)
|
||||
|
||||
for vol_type in cls.volume_types:
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_types_client.wait_for_resource_deletion,
|
||||
vol_type)
|
||||
test_utils.call_and_ignore_notfound_exc(
|
||||
cls.admin_volume_types_client.wait_for_resource_deletion,
|
||||
vol_type_id)
|
||||
|
@ -40,7 +40,7 @@ class VolumesBackupsTest(base.BaseVolumeTest):
|
||||
backup_id)['restore']
|
||||
|
||||
# Delete backup
|
||||
self.addCleanup(self.volumes_client.delete_volume,
|
||||
self.addCleanup(self.delete_volume, self.volumes_client,
|
||||
restored_volume['volume_id'])
|
||||
self.assertEqual(backup_id, restored_volume['backup_id'])
|
||||
waiters.wait_for_volume_resource_status(self.backups_client,
|
||||
@ -59,8 +59,7 @@ class VolumesBackupsTest(base.BaseVolumeTest):
|
||||
"vol-meta2": "value2",
|
||||
"vol-meta3": "value3"}
|
||||
volume = self.create_volume(metadata=metadata)
|
||||
self.addCleanup(self.volumes_client.delete_volume,
|
||||
volume['id'])
|
||||
self.addCleanup(self.delete_volume, self.volumes_client, volume['id'])
|
||||
|
||||
# Create a backup
|
||||
backup_name = data_utils.rand_name(
|
||||
@ -109,8 +108,7 @@ class VolumesBackupsTest(base.BaseVolumeTest):
|
||||
"""
|
||||
# Create a server
|
||||
volume = self.create_volume()
|
||||
self.addCleanup(self.volumes_client.delete_volume,
|
||||
volume['id'])
|
||||
self.addCleanup(self.delete_volume, self.volumes_client, volume['id'])
|
||||
server = self.create_server()
|
||||
# Attach volume to instance
|
||||
self.attach_volume(server['id'], volume['id'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user