""" 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(self.workhome + "/testcases/config_functest.yaml") as f: functest_yaml = yaml.safe_load(f) f.close() 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