Merge "Ensure scenario utils creds are cleaned up"
diff --git a/tempest/scenario/test_server_basic_ops.py b/tempest/scenario/test_server_basic_ops.py
index b795775..d9918f3 100644
--- a/tempest/scenario/test_server_basic_ops.py
+++ b/tempest/scenario/test_server_basic_ops.py
@@ -48,7 +48,7 @@
self.image_ref = CONF.compute.image_ref
if not hasattr(self, 'flavor_ref'):
self.flavor_ref = CONF.compute.flavor_ref
- self.image_utils = test_utils.ImageUtils()
+ self.image_utils = test_utils.ImageUtils(self.manager)
if not self.image_utils.is_flavor_enough(self.flavor_ref,
self.image_ref):
raise self.skipException(
diff --git a/tempest/scenario/utils.py b/tempest/scenario/utils.py
index e5613d6..b4f2466 100644
--- a/tempest/scenario/utils.py
+++ b/tempest/scenario/utils.py
@@ -30,28 +30,16 @@
CONF = config.CONF
-@misc.singleton
class ImageUtils(object):
default_ssh_user = 'root'
- def __init__(self):
+ def __init__(self, os):
# Load configuration items
self.ssh_users = json.loads(CONF.input_scenario.ssh_user_regex)
self.non_ssh_image_pattern = \
CONF.input_scenario.non_ssh_image_regex
# Setup clients
- network_resources = {
- 'network': False,
- 'router': False,
- 'subnet': False,
- 'dhcp': False,
- }
- self.isolated_creds = credentials.get_isolated_credentials(
- name='ScenarioImageUtils',
- identity_version=CONF.identity.auth_version,
- network_resources=network_resources)
- os = clients.Manager(self.isolated_creds.get_primary_creds())
self.images_client = os.images_client
self.flavors_client = os.flavors_client
@@ -131,6 +119,9 @@
nname = ''.join(c for c in nname if c in self.validchars)
return nname
+ def clear_creds(self):
+ self.isolated_creds.clear_isolated_creds()
+
@property
def scenario_images(self):
"""
@@ -177,12 +168,19 @@
loader, standard_tests, pattern = args
else:
standard_tests, module, loader = args
+ output = None
+ scenario_utils = None
try:
scenario_utils = InputScenarioUtils()
scenario_flavor = scenario_utils.scenario_flavors
scenario_image = scenario_utils.scenario_images
except (exceptions.InvalidConfiguration, TypeError):
- return standard_tests
+ output = standard_tests
+ finally:
+ if scenario_utils:
+ scenario_utils.clear_creds()
+ if output is not None:
+ return output
for test in testtools.iterate_tests(standard_tests):
setattr(test, 'scenarios', testscenarios.multiply_scenarios(
scenario_image,