Refactor resource cleanup methods in compute.base

This commit refactors the cleanup methods in compute.base to reduce
duplications.

Change-Id: Ib322b78a3d969a2ecd1fb20c26755cf5d5e04bd0
This commit is contained in:
Masayuki Igawa 2017-03-10 18:57:00 +09:00
parent b86de8898f
commit 77d3f0f5dd
No known key found for this signature in database
GPG Key ID: 251CCDE9053850E4
1 changed files with 14 additions and 34 deletions

View File

@ -120,10 +120,13 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
@classmethod
def resource_cleanup(cls):
cls.clear_images()
cls.clear_resources('images', cls.images,
cls.compute_images_client.delete_image)
cls.clear_servers()
cls.clear_security_groups()
cls.clear_server_groups()
cls.clear_resources('security groups', cls.security_groups,
cls.security_groups_client.delete_security_group)
cls.clear_resources('server groups', cls.server_groups,
cls.server_groups_client.delete_server_group)
cls.clear_volumes()
super(BaseV2ComputeTest, cls).resource_cleanup()
@ -169,41 +172,18 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
raise
@classmethod
def clear_images(cls):
LOG.debug('Clearing images: %s', ','.join(cls.images))
for image_id in cls.images:
def clear_resources(cls, resource_name, resources, resource_del_func):
LOG.debug('Clearing %s: %s', resource_name,
','.join(map(str, resources)))
for res_id in resources:
try:
test_utils.call_and_ignore_notfound_exc(
cls.compute_images_client.delete_image, image_id)
except Exception:
LOG.exception('Exception raised deleting image %s', image_id)
@classmethod
def clear_security_groups(cls):
LOG.debug('Clearing security groups: %s', ','.join(
str(sg['id']) for sg in cls.security_groups))
for sg in cls.security_groups:
try:
test_utils.call_and_ignore_notfound_exc(
cls.security_groups_client.delete_security_group, sg['id'])
resource_del_func, res_id)
except Exception as exc:
LOG.info('Exception raised deleting security group %s',
sg['id'])
LOG.exception('Exception raised deleting %s: %s',
resource_name, res_id)
LOG.exception(exc)
@classmethod
def clear_server_groups(cls):
LOG.debug('Clearing server groups: %s', ','.join(cls.server_groups))
for server_group_id in cls.server_groups:
try:
test_utils.call_and_ignore_notfound_exc(
cls.server_groups_client.delete_server_group,
server_group_id
)
except Exception:
LOG.exception('Exception raised deleting server-group %s',
server_group_id)
@classmethod
def create_test_server(cls, validatable=False, volume_backed=False,
**kwargs):
@ -240,7 +220,7 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
description = data_utils.rand_name('description')
body = cls.security_groups_client.create_security_group(
name=name, description=description)['security_group']
cls.security_groups.append(body)
cls.security_groups.append(body['id'])
return body