""" 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