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/sdn/onos/teston/adapters/client.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/sdn/onos/teston/adapters/client.py')
-rw-r--r-- | functest/opnfv_tests/sdn/onos/teston/adapters/client.py | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/functest/opnfv_tests/sdn/onos/teston/adapters/client.py b/functest/opnfv_tests/sdn/onos/teston/adapters/client.py new file mode 100644 index 00000000..81d5f7d7 --- /dev/null +++ b/functest/opnfv_tests/sdn/onos/teston/adapters/client.py @@ -0,0 +1,92 @@ +""" +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 +# +""" +import json +import pexpect +import requests +import time + +from environment import Environment +import functest.utils.functest_logger as ft_logger + + +class Client(Environment): + + logger = ft_logger.Logger("client").getLogger() + + def __init__(self): + Environment.__init__(self) + self.loginfo = Environment() + self.testcase = '' + + def RunScript(self, handle, testname, timeout=300): + """ + Run ONOS Test Script + Parameters: + testname: ONOS Testcase Name + masterusername: The server username of running ONOS + masterpassword: The server password of running ONOS + """ + self.testcase = testname + self.ChangeTestCasePara(testname, self.masterusername, + self.masterpassword) + runhandle = handle + runtest = (self.home + "/OnosSystemTest/TestON/bin/cli.py run " + + testname) + runhandle.sendline(runtest) + circletime = 0 + lastshowscreeninfo = '' + while True: + Result = runhandle.expect(["PEXPECT]#", pexpect.EOF, + pexpect.TIMEOUT]) + curshowscreeninfo = runhandle.before + if(len(lastshowscreeninfo) != len(curshowscreeninfo)): + self.loginfo.log(str(curshowscreeninfo) + [len(lastshowscreeninfo)::]) + lastshowscreeninfo = curshowscreeninfo + if Result == 0: + self.logger.info("Done!") + return + time.sleep(1) + circletime += 1 + if circletime > timeout: + break + self.loginfo.log("Timeout when running the test, please check!") + + def onosstart(self): + # This is the compass run machine user&pass,you need to modify + + self.logger.info("Test Begin.....") + self.OnosConnectionSet() + masterhandle = self.SSHlogin(self.localhost, self.masterusername, + self.masterpassword) + self.OnosEnvSetup(masterhandle) + return masterhandle + + def onosclean(self, handle): + self.SSHRelease(handle) + self.loginfo.log('Release onos handle Successful') + + def push_results_to_db(self, payload, pushornot=1): + if pushornot != 1: + return 1 + url = self.Result_DB + "/results" + params = {"project_name": "functest", "case_name": "ONOS-" + + self.testcase, "pod_name": 'huawei-build-2', + "details": payload} + + headers = {'Content-Type': 'application/json'} + try: + r = requests.post(url, data=json.dumps(params), headers=headers) + self.loginfo.log(r) + except: + self.loginfo.log('Error pushing results into Database') |