aboutsummaryrefslogtreecommitdiffstats
path: root/testcases/Controllers/ONOS
diff options
context:
space:
mode:
Diffstat (limited to 'testcases/Controllers/ONOS')
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/adapters/client.py7
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/adapters/connection.py7
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/adapters/environment.py7
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/adapters/foundation.py7
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/dependencies/onos6
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/onosfunctest.py138
6 files changed, 160 insertions, 12 deletions
diff --git a/testcases/Controllers/ONOS/Teston/CI/adapters/client.py b/testcases/Controllers/ONOS/Teston/CI/adapters/client.py
index 535b71f8..a61670ef 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 c0eb464a..e2788b41 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 f0bafd76..8b7ee13f 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 83cbcb24..486ecfa7 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 d4d59e0f..bb02fa89 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 675b3fc6..ccd49b75 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