diff options
Diffstat (limited to 'testcases/Controllers/ONOS/Teston/adapters/foundation.py')
-rw-r--r-- | testcases/Controllers/ONOS/Teston/adapters/foundation.py | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/testcases/Controllers/ONOS/Teston/adapters/foundation.py b/testcases/Controllers/ONOS/Teston/adapters/foundation.py new file mode 100644 index 00000000..47605eb7 --- /dev/null +++ b/testcases/Controllers/ONOS/Teston/adapters/foundation.py @@ -0,0 +1,104 @@ +""" +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 +import os +import time +import yaml +import re +import datetime + + +class foundation: + + def __init__(self): + + # currentpath = os.getcwd() + REPO_PATH = os.environ['repos_dir'] + '/functest/' + currentpath = REPO_PATH + 'testcases/Controllers/ONOS/Teston/CI' + self.cipath = currentpath + self.logdir = os.path.join(currentpath, 'log') + self.workhome = currentpath[0: currentpath.rfind('testcases') - 1] + self.Result_DB = '' + filename = time.strftime('%Y-%m-%d-%H-%M-%S') + '.log' + self.logfilepath = os.path.join(self.logdir, filename) + self.starttime = datetime.datetime.now() + + def log(self, loginfo): + """ + Record log in log directory for deploying test environment + parameters: + loginfo(input): record info + """ + logging.basicConfig(level=logging.INFO, + format='%(asctime)s %(filename)s:%(message)s', + datefmt='%d %b %Y %H:%M:%S', + filename=self.logfilepath, + filemode='w') + filelog = logging.FileHandler(self.logfilepath) + logging.getLogger('Functest').addHandler(filelog) + print loginfo + logging.info(loginfo) + + def getdefaultpara(self): + """ + Get Default Parameters value + """ + with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f: + functest_yaml = yaml.safe_load(f) + + self.Result_DB = str(functest_yaml.get("results").get("test_db_url")) + self.masterusername = str(functest_yaml.get("ONOS").get("general"). + get('onosbench_username')) + self.masterpassword = str(functest_yaml.get("ONOS").get("general"). + get("onosbench_password")) + self.agentusername = str(functest_yaml.get("ONOS").get("general"). + get("onoscli_username")) + self.agentpassword = str(functest_yaml.get("ONOS").get("general"). + get("onoscli_password")) + self.runtimeout = functest_yaml.get("ONOS").get("general").get( + "runtimeout") + self.OCT = str(functest_yaml.get("ONOS").get("environment").get("OCT")) + self.OC1 = str(functest_yaml.get("ONOS").get("environment").get("OC1")) + self.OC2 = str(functest_yaml.get("ONOS").get("environment").get("OC2")) + self.OC3 = str(functest_yaml.get("ONOS").get("environment").get("OC3")) + self.OCN = str(functest_yaml.get("ONOS").get("environment").get("OCN")) + self.OCN2 = str(functest_yaml.get("ONOS"). + get("environment").get("OCN2")) + self.installer_master = str(functest_yaml.get("ONOS"). + get("environment").get("installer_master")) + self.installer_master_username = str(functest_yaml.get("ONOS"). + get("environment"). + get("installer_master_username")) + self.installer_master_password = str(functest_yaml.get("ONOS"). + get("environment"). + get("installer_master_password")) + self.hosts = [self.OC1, self.OCN, self.OCN2] + self.localhost = self.OCT + + def GetResult(self): + cmd = "cat " + self.logfilepath + " | grep Fail" + Resultbuffer = os.popen(cmd).read() + duration = datetime.datetime.now() - self.starttime + time.sleep(2) + + if re.search("[1-9]+", Resultbuffer): + self.log("Testcase Fails\n" + Resultbuffer) + Result = "POK" + else: + self.log("Testcases Pass") + Result = "OK" + payload = {'timestart': str(self.starttime), + 'duration': str(duration), 'status': Result} + + return payload |