diff options
-rw-r--r-- | docker/Dockerfile | 7 | ||||
-rwxr-xr-x | docker/common.sh | 6 | ||||
-rwxr-xr-x | docker/prepare_env.sh | 19 | ||||
-rw-r--r-- | docker/requirements.pip | 9 | ||||
-rwxr-xr-x | docker/run_tests.sh | 8 | ||||
-rwxr-xr-x | testcases/Controllers/ODL/CI/start_tests.sh | 6 | ||||
-rw-r--r-- | testcases/Controllers/ODL/ODL.md | 28 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/adapters/client.py | 7 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/adapters/connection.py | 7 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/adapters/environment.py | 7 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py | 7 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/dependencies/onos | 6 | ||||
-rw-r--r-- | testcases/Controllers/ONOS/Teston/CI/onosfunctest.py | 138 | ||||
-rw-r--r-- | testcases/VIM/OpenStack/CI/libraries/clean_openstack.py | 6 | ||||
-rw-r--r-- | testcases/VIM/OpenStack/CI/libraries/run_tempest.py | 7 | ||||
-rwxr-xr-x | testcases/VIM/OpenStack/CI/libraries/test_openstack.sh | 6 | ||||
-rw-r--r-- | testcases/functest_utils.py | 6 | ||||
-rwxr-xr-x | testcases/vIMS/CI/create_venv.sh | 8 | ||||
-rw-r--r-- | testcases/vIMS/vIMS.md | 3 |
19 files changed, 244 insertions, 47 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index 0765eb848..3c5a2a657 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,7 +17,12 @@ # # NOTE: providing config_functest.yaml is optional. If not provided, it will # use the default one located in the repo - +# +# 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 +# FROM ubuntu:14.04 MAINTAINER Jose Lausuch <jose.lausuch@ericsson.com> diff --git a/docker/common.sh b/docker/common.sh index 1f1cc75df..c1c783983 100755 --- a/docker/common.sh +++ b/docker/common.sh @@ -23,6 +23,12 @@ # this pull is to be removed right before the B release, once we build # a release candidate docker +# +# 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 +# cd $repos_dir/functest git pull diff --git a/docker/prepare_env.sh b/docker/prepare_env.sh index 48320d4cc..4f1751baa 100755 --- a/docker/prepare_env.sh +++ b/docker/prepare_env.sh @@ -6,6 +6,12 @@ # Installs the Functest framework within the Docker container # and run the tests automatically # +# +# 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 +# usage="Script to prepare the Functest environment. @@ -155,6 +161,19 @@ if [ $offline == false ]; then git reset --hard ${PROMISE_COMMIT} fi + info "Updating OVNO repository...." + cd ${OVNO_REPO_DIR} + if [ ${OVNO_BRANCH} != "master" ]; then + info "OVNO repo: checkout ${OVNO} branch..." + git checkout ${OVNO_BRANCH} + fi + info "OVNO repo: pulling to latest..." + git pull + if [ ${OVNO_COMMIT} != "latest" ]; then + info "OVNO repo: given commit is ${OVNO_COMMIT}. Reseting..." + git reset --hard ${OVNO_COMMIT} + fi + fi # We do this regardless if its online or offline mode. diff --git a/docker/requirements.pip b/docker/requirements.pip index 8644154cf..40e56b9b5 100644 --- a/docker/requirements.pip +++ b/docker/requirements.pip @@ -1,3 +1,12 @@ +# +# +# author: Jose Lausuch (jose.lausuch@ericsson.com) +# +# 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 +# pyyaml==3.10 gitpython==1.0.1 python-neutronclient==2.6.0 diff --git a/docker/run_tests.sh b/docker/run_tests.sh index f5b3b5765..7e8b01206 100755 --- a/docker/run_tests.sh +++ b/docker/run_tests.sh @@ -2,10 +2,16 @@ # # Author: Jose Lausuch (jose.lausuch@ericsson.com) -# +# Morgan Richomme (morgan.richomme@orange.com) # Installs the Functest framework within the Docker container # and run the tests automatically # +# +# 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 +# usage="Script to trigger the tests automatically. diff --git a/testcases/Controllers/ODL/CI/start_tests.sh b/testcases/Controllers/ODL/CI/start_tests.sh index 5e87726b8..a2fd01299 100755 --- a/testcases/Controllers/ODL/CI/start_tests.sh +++ b/testcases/Controllers/ODL/CI/start_tests.sh @@ -1,5 +1,11 @@ #!/bin/bash # it includes python2.7 virtual env with robot packages and git +# +# 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 +# BASEDIR=`dirname $0` RESULTS_DIR='/home/opnfv/functest/results/odl/' diff --git a/testcases/Controllers/ODL/ODL.md b/testcases/Controllers/ODL/ODL.md deleted file mode 100644 index 375f20e6c..000000000 --- a/testcases/Controllers/ODL/ODL.md +++ /dev/null @@ -1,28 +0,0 @@ -# Robotframework test for ODL - -Original ODL testsuites can be found here: https://github.com/opendaylight/integration - -## Environment for running tests - -Create python virtual environment and install following packages into it: - -BeautifulSoup==3.2.1 -PyYAML==3.11 -contextdecorator==0.10.0 -ecdsa==0.11 -ipaddr==2.1.11 -paramiko==1.14.0 -pycrypto==2.6.1 -pystache==0.5.4 -requests==2.3.0 -robotframework==2.8.5 -robotframework-requests==0.3.7 -robotframework-sshlibrary==2.0.2 -six==1.7.3 -vcrpy==1.0.2 -wsgiref==0.1.2 - -## Running tests -For more info: -cd CI -bash start_test.sh -h diff --git a/testcases/Controllers/ONOS/Teston/CI/adapters/client.py b/testcases/Controllers/ONOS/Teston/CI/adapters/client.py index 535b71f85..a61670ef8 100644 --- a/testcases/Controllers/ONOS/Teston/CI/adapters/client.py +++ b/testcases/Controllers/ONOS/Teston/CI/adapters/client.py @@ -2,6 +2,13 @@ Description: This file is used to run testcase lanqinglong@huawei.com + +# +# 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 +# """ from environment import environment import os diff --git a/testcases/Controllers/ONOS/Teston/CI/adapters/connection.py b/testcases/Controllers/ONOS/Teston/CI/adapters/connection.py index c0eb464af..e2788b412 100644 --- a/testcases/Controllers/ONOS/Teston/CI/adapters/connection.py +++ b/testcases/Controllers/ONOS/Teston/CI/adapters/connection.py @@ -5,6 +5,13 @@ Description: it can run without password lanqinglong@huawei.com + +# +# 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 os import time diff --git a/testcases/Controllers/ONOS/Teston/CI/adapters/environment.py b/testcases/Controllers/ONOS/Teston/CI/adapters/environment.py index f0bafd760..8b7ee13fc 100644 --- a/testcases/Controllers/ONOS/Teston/CI/adapters/environment.py +++ b/testcases/Controllers/ONOS/Teston/CI/adapters/environment.py @@ -6,6 +6,13 @@ Description: Set user name/password Onos-push-keys and so on lanqinglong@huawei.com + +# +# 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 os diff --git a/testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py b/testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py index 83cbcb242..486ecfa71 100644 --- a/testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py +++ b/testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py @@ -2,6 +2,13 @@ Description: This file include basis functions lanqinglong@huawei.com + +# +# 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 logging diff --git a/testcases/Controllers/ONOS/Teston/CI/dependencies/onos b/testcases/Controllers/ONOS/Teston/CI/dependencies/onos index d4d59e0f7..bb02fa899 100644 --- a/testcases/Controllers/ONOS/Teston/CI/dependencies/onos +++ b/testcases/Controllers/ONOS/Teston/CI/dependencies/onos @@ -2,6 +2,12 @@ # ----------------------------------------------------------------------------- # ONOS remote command-line client. # ----------------------------------------------------------------------------- +# +# 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 +# [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 . /root/.bashrc diff --git a/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py b/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py index 675b3fc68..ccd49b75b 100644 --- a/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py +++ b/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py @@ -6,19 +6,133 @@ CASE1 - Northbound NBI test network/subnet/ports CASE2 - Ovsdb test&Default configuration&Vm go online lanqinglong@huawei.com +# +# 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 +# """ -from adapters.client import client -if __name__=="__main__": +import os +import time +import sys +import logging +import yaml +import datetime +import re - main = client() - main.getdefaultpara() +""" logging configuration """ - #scripts to run - runhandle = main.onosstart() - main.RunScript(runhandle, "FUNCvirNetNB") -# main.RunScript(runhandle, "FUNCovsdbtest") - main.RunScript(runhandle, "FUNCvirNetNBL3") -# main.RunScript(runhandle, "FUNCovsdbtestL3") - main.onosclean( runhandle ) - main.push_results_to_db(main.GetResult()) +logger = logging.getLogger('onos') +logger.setLevel(logging.DEBUG) + +ch = logging.StreamHandler() + + +formatter = logging.Formatter('%(asctime)s - %(name)s' + '- %(levelname)s - %(message)s') + +ch.setFormatter(formatter) +logger.addHandler(ch) + +with open("/home/opnfv/functest/conf/config_functest.yaml") as f: + functest_yaml = yaml.safe_load(f) +f.close() + +# onos parameters +TEST_DB = functest_yaml.get("results").get("test_db_url") +ONOS_REPO_PATH = functest_yaml.get("general").get("directories").get("dir_repos") +ONOS_CONF_DIR = functest_yaml.get("general").get("directories").get("dir_functest_conf") +REPO_PATH = ONOS_REPO_PATH + '/functest/' +if not os.path.exists(REPO_PATH): + logger.error("Functest repository directory not found '%s'" % REPO_PATH) + exit(-1) +sys.path.append(REPO_PATH + "testcases/") +import functest_utils + +ONOSCI_PATH= REPO_PATH+'testcases/Controllers/ONOS/Teston/CI/' +starttime = datetime.datetime.now() + +HOME = os.environ['HOME'] + "/" + +def RunScript(testname): + """ + Run ONOS Test Script + Parameters: + testname: ONOS Testcase Name + """ + runtest = ONOSCI_PATH + "OnosSystemTest/TestON/bin/cli.py run " + testname + logger.debug( "Run script " + testname ) + os.system(runtest) + +def DownloadCodes(url="https://github.com/sunyulin/OnosSystemTest.git"): + """ + Download Onos Teston codes + Parameters: + url: github url + """ + downloadcode = "git clone " + url + " " + ONOSCI_PATH + "OnosSystemTest" + logger.debug( "Download Onos Teston codes " + url) + os.system(downloadcode) + +def GetResult(): + LOGPATH = ONOSCI_PATH + "OnosSystemTest/TestON/logs" + cmd = "grep -rnh " + "Fail" + " " + LOGPATH + Resultbuffer = os.popen(cmd).read() + duration = datetime.datetime.now() - starttime + time.sleep(2) + + if re.search("\s+[1-9]+\s+", Resultbuffer): + logger.debug("Testcase Fails\n" + Resultbuffer) + Result = "Failed" + else: + logger.debug("Testcases Success") + Result = "Success" + payload={'timestart': str(starttime), + 'duration': str(duration), + 'status': Result} + return payload + +def SetOnosIp(): + onoscreds = ONOS_CONF_DIR + "/openstack.creds" + cmd = "cat " + onoscreds + " | grep OS_AUTH_URL" + cmd_output = os.popen(cmd).read() + print cmd_output + OC1=re.search(r"\d+\.\d+\.\d+\.\d+",cmd_output).group() + os.environ['OC1'] = OC1 + time.sleep(2) + logger.debug( "ONOS IP is " + OC1) + +def CleanOnosTest(): + TESTONPATH = ONOSCI_PATH + "OnosSystemTest/" + cmd = "rm -rf " + TESTONPATH + os.system(cmd) + time.sleep(2) + logger.debug( "Clean ONOS Teston" ) + +def main(): + + DownloadCodes() + SetOnosIp() + RunScript("FUNCvirNetNB") + RunScript("FUNCvirNetNBL3") + + try: + logger.debug("Push result into DB") + # TODO check path result for the file + git_version = functest_utils.get_git_branch(REPO_PATH) + pod_name = functest_utils.get_pod_name(logger) + result = GetResult() + functest_utils.push_results_to_db(TEST_DB, + "ONOS", + logger, pod_name, git_version, + payload=result) + except: + logger.error("Error pushing results into Database") + + CleanOnosTest() + + +if __name__ == '__main__': + main()
\ No newline at end of file diff --git a/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py b/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py index 96bd172b9..8a49843d5 100644 --- a/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py +++ b/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py @@ -13,6 +13,12 @@ # Author: # jose.lausuch@ericsson.com # +# +# 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 logging diff --git a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py index e24697c76..1f5d34cf7 100644 --- a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py @@ -6,8 +6,13 @@ # Authors: # morgan.richomme@orange.com # jose.lausuch@ericsson.com +# viktor.tikkanen@nokia.com +# +# 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 json import logging diff --git a/testcases/VIM/OpenStack/CI/libraries/test_openstack.sh b/testcases/VIM/OpenStack/CI/libraries/test_openstack.sh index 7225796c5..fa1f0fa04 100755 --- a/testcases/VIM/OpenStack/CI/libraries/test_openstack.sh +++ b/testcases/VIM/OpenStack/CI/libraries/test_openstack.sh @@ -4,6 +4,12 @@ # Author: # jose.lausuch@ericsson.com # +# +# 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 +# if [ -z $OS_AUTH_URL ]; then echo "Source credentials first" diff --git a/testcases/functest_utils.py b/testcases/functest_utils.py index d9f43a79e..e76ef991b 100644 --- a/testcases/functest_utils.py +++ b/testcases/functest_utils.py @@ -19,6 +19,7 @@ import json import shutil import re import yaml +import socket from git import Repo @@ -694,8 +695,11 @@ def get_resolvconf_ns(): line = rconf.readline() while line: ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line) + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if ip: - nameservers.append(ip.group()) + result = sock.connect_ex((ip.group(),53)) + if result == 0: + nameservers.append(ip.group()) line = rconf.readline() return nameservers diff --git a/testcases/vIMS/CI/create_venv.sh b/testcases/vIMS/CI/create_venv.sh index 15294f77b..575fd177c 100755 --- a/testcases/vIMS/CI/create_venv.sh +++ b/testcases/vIMS/CI/create_venv.sh @@ -2,6 +2,14 @@ # Script checks that venv exists. If it doesn't it will be created # It requires python2.7 and virtualenv packages installed +# +# Copyright (c) 2015 Orange +# valentin.boucher@orange.com +# +# 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 BASEDIR=`dirname $0` VENV_PATH=$1 diff --git a/testcases/vIMS/vIMS.md b/testcases/vIMS/vIMS.md deleted file mode 100644 index 68f86d9fa..000000000 --- a/testcases/vIMS/vIMS.md +++ /dev/null @@ -1,3 +0,0 @@ -# vIMS README - - |