X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Fopnfv_tests%2Fsdn%2Fodl%2Fodl.py;h=72c38ce2c8e1659135db5da9cf752383eb0c9a1d;hb=4fdbdd34fb5fea55571a18b2438ececa953928ff;hp=6c05c0181f0262af78354f2eff7f547e0ffcc902;hpb=c9b458f4cdfd3a101943bc0e47dbbb895b5b4dd0;p=functest.git diff --git a/functest/opnfv_tests/sdn/odl/odl.py b/functest/opnfv_tests/sdn/odl/odl.py index 6c05c0181..72c38ce2c 100644 --- a/functest/opnfv_tests/sdn/odl/odl.py +++ b/functest/opnfv_tests/sdn/odl/odl.py @@ -25,11 +25,12 @@ import os import re import sys +import os_client_config from six.moves import urllib +from xtesting.core import robotframework -from functest.core import robotframework -from functest.utils import constants -import functest.utils.openstack_utils as op_utils +from functest.utils import config +from functest.utils import env __author__ = "Cedric Ollivier " @@ -37,7 +38,7 @@ __author__ = "Cedric Ollivier " class ODLTests(robotframework.RobotFramework): """ODL test runner.""" - odl_test_repo = constants.CONST.__getattribute__('dir_repo_odl_test') + odl_test_repo = getattr(config.CONF, 'dir_repo_odl_test') neutron_suite_dir = os.path.join( odl_test_repo, "csit/suites/openstack/neutron") basic_suite_dir = os.path.join( @@ -48,9 +49,9 @@ class ODLTests(robotframework.RobotFramework): __logger = logging.getLogger(__name__) def __init__(self, **kwargs): - super(ODLTests, self).__init__(**kwargs) + super().__init__(**kwargs) self.res_dir = os.path.join( - constants.CONST.__getattribute__('dir_results'), 'odl') + getattr(config.CONF, 'dir_results'), 'odl') self.xml_file = os.path.join(self.res_dir, 'output.xml') @classmethod @@ -65,10 +66,10 @@ class ODLTests(robotframework.RobotFramework): try: for line in fileinput.input(cls.odl_variables_file, inplace=True): - print(re.sub("@{AUTH}.*", - "@{{AUTH}} {} {}".format( - odlusername, odlpassword), - line.rstrip())) + print(re.sub( + "@{AUTH}.*", + f"@{{AUTH}} {odlusername} {odlpassword}", + line.rstrip())) return True except Exception: # pylint: disable=broad-except cls.__logger.exception("Cannot set ODL creds:") @@ -110,9 +111,8 @@ class ODLTests(robotframework.RobotFramework): odlusername = kwargs['odlusername'] odlpassword = kwargs['odlpassword'] osauthurl = kwargs['osauthurl'] - keystoneurl = "{}://{}".format( - urllib.parse.urlparse(osauthurl).scheme, - urllib.parse.urlparse(osauthurl).netloc) + keystoneurl = (f"{urllib.parse.urlparse(osauthurl).scheme}://" + f"{urllib.parse.urlparse(osauthurl).netloc}") variable = ['KEYSTONEURL:' + keystoneurl, 'NEUTRONURL:' + kwargs['neutronurl'], 'OS_AUTH_URL:"' + osauthurl + '"', @@ -134,12 +134,12 @@ class ODLTests(robotframework.RobotFramework): else: if not self.set_robotframework_vars(odlusername, odlpassword): return self.EX_RUN_ERROR - return super(ODLTests, self).run(variable=variable, suites=suites) + return super().run(variable=variable, suites=suites) def run(self, **kwargs): """Run suites in OPNFV environment - It basically check env vars to call main() with the keywords + It basically checks env vars to call main() with the keywords required. Args: @@ -155,17 +155,19 @@ class ODLTests(robotframework.RobotFramework): suites = kwargs["suites"] except KeyError: pass - kwargs = {'neutronurl': op_utils.get_endpoint( - service_type='network')} - kwargs['odlip'] = urllib.parse.urlparse( - kwargs['neutronurl']).hostname - kwargs['odlwebport'] = '8080' - kwargs['odlrestconfport'] = '8181' - kwargs['odlusername'] = 'admin' - kwargs['odlpassword'] = 'admin' - installer_type = None - if 'INSTALLER_TYPE' in os.environ: - installer_type = os.environ['INSTALLER_TYPE'] + cloud = os_client_config.make_shade() + neutron_id = cloud.search_services('neutron')[0].id + endpoint = cloud.search_endpoints( + filters={ + 'interface': os.environ.get( + 'OS_INTERFACE', 'public').replace('URL', ''), + 'service_id': neutron_id})[0].url + kwargs = {'neutronurl': endpoint} + kwargs['odlip'] = env.get('SDN_CONTROLLER_IP') + kwargs['odlwebport'] = env.get('SDN_CONTROLLER_WEBPORT') + kwargs['odlrestconfport'] = env.get('SDN_CONTROLLER_RESTCONFPORT') + kwargs['odlusername'] = env.get('SDN_CONTROLLER_USER') + kwargs['odlpassword'] = env.get('SDN_CONTROLLER_PASSWORD') kwargs['osusername'] = os.environ['OS_USERNAME'] kwargs['osuserdomainname'] = os.environ.get( 'OS_USER_DOMAIN_NAME', 'Default') @@ -174,27 +176,10 @@ class ODLTests(robotframework.RobotFramework): 'OS_PROJECT_DOMAIN_NAME', 'Default') kwargs['osauthurl'] = os.environ['OS_AUTH_URL'] kwargs['ospassword'] = os.environ['OS_PASSWORD'] - if installer_type == 'fuel': - kwargs['odlwebport'] = '8181' - kwargs['odlrestconfport'] = '8282' - elif installer_type == 'apex' or installer_type == 'netvirt': - kwargs['odlip'] = os.environ['SDN_CONTROLLER_IP'] - kwargs['odlwebport'] = '8081' - kwargs['odlrestconfport'] = '8081' - elif installer_type == 'joid': - kwargs['odlip'] = os.environ['SDN_CONTROLLER'] - elif installer_type == 'compass': - kwargs['odlrestconfport'] = '8080' - elif installer_type == 'daisy': - kwargs['odlip'] = os.environ['SDN_CONTROLLER_IP'] - kwargs['odlwebport'] = '8181' - kwargs['odlrestconfport'] = '8087' - else: - kwargs['odlip'] = os.environ['SDN_CONTROLLER_IP'] + assert kwargs['odlip'] except KeyError as ex: - self.__logger.error("Cannot run ODL testcases. " - "Please check env var: " - "%s", str(ex)) + self.__logger.error( + "Cannot run ODL testcases. Please check env var: %s", str(ex)) return self.EX_RUN_ERROR except Exception: # pylint: disable=broad-except self.__logger.exception("Cannot run ODL testcases.") @@ -203,7 +188,7 @@ class ODLTests(robotframework.RobotFramework): return self.run_suites(suites, **kwargs) -class ODLParser(object): # pylint: disable=too-few-public-methods +class ODLParser(): # pylint: disable=too-few-public-methods """Parser to run ODL test suites.""" def __init__(self): @@ -274,7 +259,6 @@ def main(): return result if args['pushtodb']: return odl.push_to_db() - else: - return result + return result except Exception: # pylint: disable=broad-except return robotframework.RobotFramework.EX_RUN_ERROR