Fix resource leaks in IdentityPolicyAssociationRbacTest class

The IdentityPolicyAssociationRbacTest,
IdentityEndpointsV3RbacTest and EndpointFilterProjectsV3RbacTest
test cases were leaking region resources on the endpoint create
and just using tempest- in the region description.
The following changes to fix the leaks and make them easier to
find in the future, if they happen.

1) move setup_test_endpoint to the v3 class to have access to the
region client and get the region id created when the endpoint
created so I can add it to the resource clean-up.
2) add a rand_name for the region id not just the description
so we know that tempest- created it.

Change-Id: I3bd5bf02ef6d434ccba65a5a732e550b007a2309
This commit is contained in:
Doug Schveninger 2019-09-04 21:06:03 -05:00
parent 1099cdf21e
commit cb096146d7
1 changed files with 29 additions and 24 deletions

View File

@ -27,30 +27,6 @@ LOG = logging.getLogger(__name__)
class BaseIdentityRbacTest(rbac_utils.RbacUtilsMixin,
base.BaseIdentityTest):
@classmethod
def setup_test_endpoint(cls, service=None):
"""Creates a service and an endpoint for test."""
interface = 'public'
url = data_utils.rand_url()
region_name = data_utils.rand_name(
cls.__name__ + '-region')
# Endpoint creation requires a service
if service is None:
service = cls.setup_test_service()
params = {
'service_id': service['id'],
'region': region_name,
'interface': interface,
'url': url
}
endpoint = cls.endpoints_client.create_endpoint(**params)['endpoint']
cls.addClassResourceCleanup(
test_utils.call_and_ignore_notfound_exc,
cls.endpoints_client.delete_endpoint, endpoint['id'])
return endpoint
@classmethod
def setup_test_role(cls):
"""Set up a test role."""
@ -181,6 +157,33 @@ class BaseIdentityV3RbacTest(BaseIdentityRbacTest):
super(BaseIdentityV3RbacTest, cls).resource_cleanup()
@classmethod
def setup_test_endpoint(cls, service=None):
"""Creates a service and an endpoint for test."""
interface = 'public'
url = data_utils.rand_url()
region_name = data_utils.rand_name(
cls.__name__ + '-region')
# Endpoint creation requires a service
if service is None:
service = cls.setup_test_service()
params = {
'service_id': service['id'],
'region': region_name,
'interface': interface,
'url': url
}
endpoint = cls.endpoints_client.create_endpoint(**params)['endpoint']
cls.addClassResourceCleanup(
test_utils.call_and_ignore_notfound_exc,
cls.regions_client.delete_region, endpoint['region'])
cls.addClassResourceCleanup(
test_utils.call_and_ignore_notfound_exc,
cls.endpoints_client.delete_endpoint, endpoint['id'])
return endpoint
@classmethod
def setup_test_credential(cls, user=None):
"""Creates a credential for test."""
@ -249,8 +252,10 @@ class BaseIdentityV3RbacTest(BaseIdentityRbacTest):
"""Creates a region for test."""
description = data_utils.rand_name(
cls.__name__ + '-test_region_desc')
id = data_utils.rand_name(cls.__name__)
region = cls.regions_client.create_region(
id=id,
description=description)['region']
cls.regions.append(region)