diff options
author | Morgan Richomme <morgan.richomme@orange.com> | 2016-11-24 18:25:52 +0100 |
---|---|---|
committer | Morgan Richomme <morgan.richomme@orange.com> | 2016-11-25 15:09:35 +0100 |
commit | 165ff17205d99b18df36e5ac6f34ede858e3da17 (patch) | |
tree | 3199a34b651204cd62bdc78b5c5fc19c73ca3f02 /functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py | |
parent | 96aef41089d2c62913320028dd9618197d0e75c5 (diff) |
file/dir renaming for consistency
JIRA: FUNCTEST-579
Change-Id: Iaa545db70bfb76770df0a3d17871e29ce518ff2d
Signed-off-by: Morgan Richomme <morgan.richomme@orange.com>
Diffstat (limited to 'functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py')
-rwxr-xr-x | functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py | 241 |
1 files changed, 0 insertions, 241 deletions
diff --git a/functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py b/functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py deleted file mode 100755 index b78db8b1..00000000 --- a/functest/opnfv_tests/Controllers/ODL/OpenDaylightTesting.py +++ /dev/null @@ -1,241 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2016 Orange and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 - -import argparse -import errno -import fileinput -import os -import re -import sys -import urlparse - -from robot.api import ExecutionResult, ResultVisitor -from robot.errors import RobotError -import robot.run -from robot.utils.robottime import timestamp_to_secs - -from functest.core import TestCasesBase -import functest.utils.functest_logger as ft_logger -import functest.utils.openstack_utils as op_utils -import functest.utils.functest_constants as ft_constants - - -class ODLResultVisitor(ResultVisitor): - - def __init__(self): - self._data = [] - - def visit_test(self, test): - output = {} - output['name'] = test.name - output['parent'] = test.parent.name - output['status'] = test.status - output['startime'] = test.starttime - output['endtime'] = test.endtime - output['critical'] = test.critical - output['text'] = test.message - output['elapsedtime'] = test.elapsedtime - self._data.append(output) - - def get_data(self): - return self._data - - -class ODLTestCases(TestCasesBase.TestCasesBase): - - repos = ft_constants.REPOS_DIR - odl_test_repo = os.path.join(repos, "odl_test") - neutron_suite_dir = os.path.join(odl_test_repo, - "csit/suites/openstack/neutron") - basic_suite_dir = os.path.join(odl_test_repo, - "csit/suites/integration/basic") - res_dir = os.path.join(ft_constants.FUNCTEST_RESULTS_DIR, "odl") - - logger = ft_logger.Logger("opendaylight").getLogger() - - def __init__(self): - self.case_name = "odl" - - @classmethod - def set_robotframework_vars(cls, odlusername="admin", odlpassword="admin"): - odl_variables_files = os.path.join(cls.odl_test_repo, - 'csit/variables/Variables.py') - try: - for line in fileinput.input(odl_variables_files, - inplace=True): - print re.sub("AUTH = .*", - ("AUTH = [u'" + odlusername + "', u'" + - odlpassword + "']"), - line.rstrip()) - return True - except Exception as e: - cls.logger.error("Cannot set ODL creds: %s" % str(e)) - return False - - def parse_results(self): - output_dir = os.path.join(self.res_dir, 'output.xml') - result = ExecutionResult(output_dir) - visitor = ODLResultVisitor() - result.visit(visitor) - self.criteria = result.suite.status - self.start_time = timestamp_to_secs(result.suite.starttime) - self.stop_time = timestamp_to_secs(result.suite.endtime) - self.details = {} - self.details['description'] = result.suite.name - self.details['tests'] = visitor.get_data() - return self.criteria - - def main(self, **kwargs): - dirs = [self.basic_suite_dir, self.neutron_suite_dir] - try: - odlusername = kwargs['odlusername'] - odlpassword = kwargs['odlpassword'] - variables = ['KEYSTONE:' + kwargs['keystoneip'], - 'NEUTRON:' + kwargs['neutronip'], - 'OSUSERNAME:"' + kwargs['osusername'] + '"', - 'OSTENANTNAME:"' + kwargs['ostenantname'] + '"', - 'OSPASSWORD:"' + kwargs['ospassword'] + '"', - 'ODL_SYSTEM_IP:' + kwargs['odlip'], - 'PORT:' + kwargs['odlwebport'], - 'RESTCONFPORT:' + kwargs['odlrestconfport']] - except KeyError as e: - self.logger.error("Cannot run ODL testcases. Please check " - "%s" % str(e)) - return self.EX_RUN_ERROR - if self.set_robotframework_vars(odlusername, odlpassword): - try: - os.makedirs(self.res_dir) - except OSError as e: - if e.errno != errno.EEXIST: - self.logger.exception( - "Cannot create {}".format(self.res_dir)) - return self.EX_RUN_ERROR - stdout_file = os.path.join(self.res_dir, 'stdout.txt') - output_dir = os.path.join(self.res_dir, 'output.xml') - with open(stdout_file, 'w+') as stdout: - robot.run(*dirs, variable=variables, - output=output_dir, - log='NONE', - report='NONE', - stdout=stdout) - stdout.seek(0, 0) - self.logger.info("\n" + stdout.read()) - self.logger.info("ODL results were successfully generated") - try: - test_res = self.parse_results() - self.logger.info("ODL results were successfully parsed") - if test_res is not "PASS": - return self.EX_RUN_ERROR - except RobotError as e: - self.logger.error("Run tests before publishing: %s" % - e.message) - return self.EX_RUN_ERROR - try: - os.remove(stdout_file) - except OSError: - self.logger.warning("Cannot remove {}".format(stdout_file)) - return self.EX_OK - else: - return self.EX_RUN_ERROR - - def run(self): - try: - kclient = op_utils.get_keystone_client() - keystone_url = kclient.service_catalog.url_for( - service_type='identity', endpoint_type='publicURL') - neutron_url = kclient.service_catalog.url_for( - service_type='network', endpoint_type='publicURL') - kwargs = {'keystoneip': urlparse.urlparse(keystone_url).hostname} - kwargs['neutronip'] = urlparse.urlparse(neutron_url).hostname - kwargs['odlip'] = kwargs['neutronip'] - kwargs['odlwebport'] = '8080' - kwargs['odlrestconfport'] = '8181' - kwargs['odlusername'] = 'admin' - kwargs['odlpassword'] = 'admin' - - installer_type = ft_constants.CI_INSTALLER_TYPE - kwargs['osusername'] = ft_constants.OS_USERNAME - kwargs['ostenantname'] = ft_constants.OS_TENANT_NAME - kwargs['ospassword'] = ft_constants.OS_PASSWORD - - if installer_type == 'fuel': - kwargs['odlwebport'] = '8282' - elif installer_type == 'apex': - if ft_constants.SDN_CONTROLLER_IP is None: - return self.EX_RUN_ERROR - kwargs['odlip'] = ft_constants.SDN_CONTROLLER_IP - kwargs['odlwebport'] = '8181' - elif installer_type == 'joid': - if ft_constants.SDN_CONTROLLER is None: - return self.EX_RUN_ERROR - kwargs['odlip'] = ft_constants.SDN_CONTROLLER - elif installer_type == 'compass': - kwargs['odlwebport'] = '8181' - else: - if ft_constants.SDN_CONTROLLER_IP is None: - return self.EX_RUN_ERROR - kwargs['odlip'] = ft_constants.SDN_CONTROLLER_IP - except KeyError as e: - self.logger.error("Cannot run ODL testcases. " - "Please check env var: " - "%s" % str(e)) - return self.EX_RUN_ERROR - except Exception: - self.logger.exception("Cannot run ODL testcases.") - return self.EX_RUN_ERROR - - return self.main(**kwargs) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('-k', '--keystoneip', - help='Keystone IP', - default='127.0.0.1') - parser.add_argument('-n', '--neutronip', - help='Neutron IP', - default='127.0.0.1') - parser.add_argument('-a', '--osusername', - help='Username for OpenStack', - default='admin') - parser.add_argument('-b', '--ostenantname', - help='Tenantname for OpenStack', - default='admin') - parser.add_argument('-c', '--ospassword', - help='Password for OpenStack', - default='admin') - parser.add_argument('-o', '--odlip', - help='OpenDaylight IP', - default='127.0.0.1') - parser.add_argument('-w', '--odlwebport', - help='OpenDaylight Web Portal Port', - default='8080') - parser.add_argument('-r', '--odlrestconfport', - help='OpenDaylight RESTConf Port', - default='8181') - parser.add_argument('-d', '--odlusername', - help='Username for ODL', - default='admin') - parser.add_argument('-e', '--odlpassword', - help='Password for ODL', - default='admin') - parser.add_argument('-p', '--pushtodb', - help='Push results to DB', - action='store_true') - - args = vars(parser.parse_args()) - odl = ODLTestCases() - try: - result = odl.main(**args) - if result != TestCasesBase.TestCasesBase.EX_OK: - sys.exit(result) - if args['pushtodb']: - sys.exit(odl.push_to_db()) - except Exception: - sys.exit(TestCasesBase.TestCasesBase.EX_RUN_ERROR) |