2 Description: This test is to run onos Teston VTN scripts
5 CASE1 - Northbound NBI test network/subnet/ports
6 CASE2 - Ovsdb test&Default configuration&Vm go online
10 # All rights reserved. This program and the accompanying materials
11 # are made available under the terms of the Apache License, Version 2.0
12 # which accompanies this distribution, and is available at
13 # http://www.apache.org/licenses/LICENSE-2.0
25 """ logging configuration """
27 logger = logging.getLogger('onos')
28 logger.setLevel(logging.DEBUG)
30 ch = logging.StreamHandler()
33 formatter = logging.Formatter('%(asctime)s - %(name)s'
34 '- %(levelname)s - %(message)s')
36 ch.setFormatter(formatter)
39 with open("/home/opnfv/functest/conf/config_functest.yaml") as f:
40 functest_yaml = yaml.safe_load(f)
44 TEST_DB = functest_yaml.get("results").get("test_db_url")
45 ONOS_REPO_PATH = functest_yaml.get("general").get("directories").get("dir_repos")
46 ONOS_CONF_DIR = functest_yaml.get("general").get("directories").get("dir_functest_conf")
47 REPO_PATH = ONOS_REPO_PATH + '/functest/'
48 if not os.path.exists(REPO_PATH):
49 logger.error("Functest repository directory not found '%s'" % REPO_PATH)
51 sys.path.append(REPO_PATH + "testcases/")
54 ONOSCI_PATH= REPO_PATH+'testcases/Controllers/ONOS/Teston/CI/'
55 starttime = datetime.datetime.now()
57 HOME = os.environ['HOME'] + "/"
59 def RunScript(testname):
63 testname: ONOS Testcase Name
65 runtest = ONOSCI_PATH + "OnosSystemTest/TestON/bin/cli.py run " + testname
66 logger.debug( "Run script " + testname )
69 def DownloadCodes(url="https://github.com/sunyulin/OnosSystemTest.git"):
71 Download Onos Teston codes
75 downloadcode = "git clone " + url + " " + ONOSCI_PATH + "OnosSystemTest"
76 logger.debug( "Download Onos Teston codes " + url)
77 os.system(downloadcode)
80 LOGPATH = ONOSCI_PATH + "OnosSystemTest/TestON/logs"
81 cmd = "grep -rnh " + "Fail" + " " + LOGPATH
82 Resultbuffer = os.popen(cmd).read()
83 duration = datetime.datetime.now() - starttime
86 if re.search("\s+[1-9]+\s+", Resultbuffer):
87 logger.debug("Testcase Fails\n" + Resultbuffer)
90 logger.debug("Testcases Success")
92 payload={'timestart': str(starttime),
93 'duration': str(duration),
98 cmd = "keystone catalog --service network | grep publicURL"
99 cmd_output = os.popen(cmd).read()
101 OC1=re.search(r"\d+\.\d+\.\d+\.\d+",cmd_output).group()
102 os.environ['OC1'] = OC1
104 logger.debug( "ONOS IP is " + OC1)
107 TESTONPATH = ONOSCI_PATH + "OnosSystemTest/"
108 cmd = "rm -rf " + TESTONPATH
111 logger.debug( "Clean ONOS Teston" )
117 RunScript("FUNCvirNetNB")
118 RunScript("FUNCvirNetNBL3")
121 logger.debug("Push result into DB")
122 # TODO check path result for the file
123 git_version = functest_utils.get_git_branch(REPO_PATH)
124 pod_name = functest_utils.get_pod_name(logger)
126 functest_utils.push_results_to_db(TEST_DB,
128 logger, pod_name, git_version,
131 logger.error("Error pushing results into Database")
136 if __name__ == '__main__':