aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/sdn/odl/odl.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/opnfv_tests/sdn/odl/odl.py')
-rw-r--r--functest/opnfv_tests/sdn/odl/odl.py82
1 files changed, 33 insertions, 49 deletions
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 <cedric.ollivier@orange.com>"
@@ -37,7 +38,7 @@ __author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
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