import subprocess
import time
+from six.moves import configparser
from xtesting.core import testcase
import yaml
subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
+ def update_rally_regex(self, rally_conf='/etc/rally/rally.conf'):
+ """Set image name as tempest img_name_regex"""
+ rconfig = configparser.RawConfigParser()
+ rconfig.read(rally_conf)
+ rconfig.add_section('tempest')
+ rconfig.set('tempest', 'img_name_regex', '^{}$'.format(
+ self.image.name))
+ with open(rally_conf, 'wb') as config_file:
+ rconfig.write(config_file)
+
def configure(self, **kwargs): # pylint: disable=unused-argument
"""
Create all openstack resources for tempest-based testcases and write
def run(self, **kwargs):
self.start_time = time.time()
try:
- super(TempestCommon, self).run(**kwargs)
+ assert super(TempestCommon, self).run(
+ **kwargs) == testcase.TestCase.EX_OK
+ self.update_rally_regex()
self.configure(**kwargs)
self.generate_test_list(**kwargs)
self.apply_tempest_blacklist()
res = testcase.TestCase.EX_OK
except Exception: # pylint: disable=broad-except
LOGGER.exception('Error with run')
+ self.result = 0
res = testcase.TestCase.EX_RUN_ERROR
self.stop_time = time.time()
return res
Cleanup all OpenStack objects. Should be called on completion.
"""
super(TempestCommon, self).clean()
- self.cloud.delete_image(self.image_alt)
- self.orig_cloud.delete_flavor(self.flavor_alt.id)
+ if self.image_alt:
+ self.cloud.delete_image(self.image_alt)
+ if self.flavor_alt:
+ self.orig_cloud.delete_flavor(self.flavor_alt.id)