mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	lf_check.py : logger updates, lf_check_config.ini updates for files run
Signed-off-by: Chuck SmileyRekiere <chuck.smileyrekiere@candelatech.com>
This commit is contained in:
		@@ -137,55 +137,55 @@ class lf_check():
 | 
			
		||||
            section = config_file['LF_MGR']
 | 
			
		||||
            self.lf_mgr_ip = section['LF_MGR_IP']
 | 
			
		||||
            self.lf_mgr_port = section['LF_MGR_PORT']
 | 
			
		||||
            print("lf_mgr_ip {}".format(self.lf_mgr_ip))
 | 
			
		||||
            print("lf_mgr_port {}".format(self.lf_mgr_port))
 | 
			
		||||
            self.logger.info("lf_mgr_ip {}".format(self.lf_mgr_ip))
 | 
			
		||||
            self.logger.info("lf_mgr_port {}".format(self.lf_mgr_port))
 | 
			
		||||
 | 
			
		||||
        if 'TEST_NETWORK' in config_file.sections():
 | 
			
		||||
            section = config_file['TEST_NETWORK']
 | 
			
		||||
            self.http_test_ip = section['HTTP_TEST_IP']
 | 
			
		||||
            print("http_test_ip {}".format(self.http_test_ip))
 | 
			
		||||
            self.logger.info("http_test_ip {}".format(self.http_test_ip))
 | 
			
		||||
            self.ftp_test_ip = section['FTP_TEST_IP']
 | 
			
		||||
            print("ftp_test_ip {}".format(self.ftp_test_ip))
 | 
			
		||||
            self.logger.info("ftp_test_ip {}".format(self.ftp_test_ip))
 | 
			
		||||
            self.test_ip = section['TEST_IP']
 | 
			
		||||
            print("test_ip {}".format(self.test_ip))
 | 
			
		||||
            self.logger.info("test_ip {}".format(self.test_ip))
 | 
			
		||||
 | 
			
		||||
        if 'TEST_GENERIC' in config_file.sections():
 | 
			
		||||
            section = config_file['TEST_GENERIC']
 | 
			
		||||
            self.radio_lf = section['RADIO_USED']
 | 
			
		||||
            print("radio_lf {}".format(self.radio_lf))
 | 
			
		||||
            self.logger.info("radio_lf {}".format(self.radio_lf))
 | 
			
		||||
            self.ssid = section['SSID_USED']
 | 
			
		||||
            print("ssid {}".format(self.ssid))
 | 
			
		||||
            self.logger.info("ssid {}".format(self.ssid))
 | 
			
		||||
            self.ssid_pw = section['SSID_PW_USED']
 | 
			
		||||
            print("ssid_pw {}".format(self.ssid_pw))
 | 
			
		||||
            self.logger.info("ssid_pw {}".format(self.ssid_pw))
 | 
			
		||||
            self.security = section['SECURITY_USED']
 | 
			
		||||
            print("secruity {}".format(self.security))
 | 
			
		||||
            self.logger.info("secruity {}".format(self.security))
 | 
			
		||||
            self.num_sta = section['NUM_STA']
 | 
			
		||||
            print("num_sta {}".format(self.num_sta))
 | 
			
		||||
            self.logger.info("num_sta {}".format(self.num_sta))
 | 
			
		||||
            self.col_names = section['COL_NAMES']
 | 
			
		||||
            print("col_names {}".format(self.col_names))
 | 
			
		||||
            self.logger.info("col_names {}".format(self.col_names))
 | 
			
		||||
            self.upstream_port = section['UPSTREAM_PORT']
 | 
			
		||||
            print("upstream_port {}".format(self.upstream_port))
 | 
			
		||||
            self.logger.info("upstream_port {}".format(self.upstream_port))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if 'RADIO_DICTIONARY' in config_file.sections():
 | 
			
		||||
            section = config_file['RADIO_DICTIONARY']
 | 
			
		||||
            self.radio_dict = json.loads(section.get('RADIO_DICT', self.radio_dict))
 | 
			
		||||
            print("self.radio_dict {}".format(self.radio_dict))
 | 
			
		||||
            self.logger.info("self.radio_dict {}".format(self.radio_dict))
 | 
			
		||||
 | 
			
		||||
        if 'TEST_DICTIONARY' in config_file.sections():
 | 
			
		||||
            section = config_file['TEST_DICTIONARY']
 | 
			
		||||
            # for json replace the \n and \r they are invalid json characters, allows for multiple line args 
 | 
			
		||||
            self.test_dict = json.loads(section.get('TEST_DICT', self.test_dict).replace('\n',' ').replace('\r',' '))
 | 
			
		||||
            #print("test_dict {}".format(self.test_dict))
 | 
			
		||||
            #self.logger.info("test_dict {}".format(self.test_dict))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def load_factory_default_db(self):
 | 
			
		||||
        #print("file_wd {}".format(self.scripts_wd))
 | 
			
		||||
        #self.logger.info("file_wd {}".format(self.scripts_wd))
 | 
			
		||||
        try:
 | 
			
		||||
            os.chdir(self.scripts_wd)
 | 
			
		||||
            #print("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
            #self.logger.info("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
        except:
 | 
			
		||||
            print("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
            self.logger.info("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
 | 
			
		||||
        # no spaces after FACTORY_DFLT
 | 
			
		||||
        command = "./{} {}".format("scenario.py", "--load FACTORY_DFLT")
 | 
			
		||||
@@ -196,12 +196,12 @@ class lf_check():
 | 
			
		||||
 | 
			
		||||
    # Not currently used
 | 
			
		||||
    def load_blank_db(self):
 | 
			
		||||
        #print("file_wd {}".format(self.scripts_wd))
 | 
			
		||||
        #self.logger.info("file_wd {}".format(self.scripts_wd))
 | 
			
		||||
        try:
 | 
			
		||||
            os.chdir(self.scripts_wd)
 | 
			
		||||
            #print("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
            #self.logger.info("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
        except:
 | 
			
		||||
            print("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
            self.logger.info("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
 | 
			
		||||
        # no spaces after FACTORY_DFLT
 | 
			
		||||
        command = "./{} {}".format("scenario.py", "--load BLANK")
 | 
			
		||||
@@ -214,7 +214,7 @@ class lf_check():
 | 
			
		||||
 | 
			
		||||
        for test in self.test_dict:
 | 
			
		||||
            if self.test_dict[test]['enabled'] == "FALSE":
 | 
			
		||||
                print("test: {}  skipped".format(test))
 | 
			
		||||
                self.logger.info("test: {}  skipped".format(test))
 | 
			
		||||
            # load the default database 
 | 
			
		||||
            elif self.test_dict[test]['enabled'] == "TRUE":
 | 
			
		||||
                # Make the command replace ment a separate method call.
 | 
			
		||||
@@ -255,22 +255,22 @@ class lf_check():
 | 
			
		||||
 | 
			
		||||
                try:
 | 
			
		||||
                    os.chdir(self.scripts_wd)
 | 
			
		||||
                    #print("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
                    #self.logger.info("Current Working Directory {}".format(os.getcwd()))
 | 
			
		||||
                except:
 | 
			
		||||
                    print("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
                    self.logger.info("failed to change to {}".format(self.scripts_wd))
 | 
			
		||||
                cmd_args = "{}".format(self.test_dict[test]['args'])
 | 
			
		||||
                command = "./{} {}".format(self.test_dict[test]['command'], cmd_args)
 | 
			
		||||
                print("command: {}".format(command))
 | 
			
		||||
                print("cmd_args {}".format(cmd_args))
 | 
			
		||||
                self.logger.info("command: {}".format(command))
 | 
			
		||||
                self.logger.info("cmd_args {}".format(cmd_args))
 | 
			
		||||
 | 
			
		||||
                if self.outfile is not None:
 | 
			
		||||
                    stdout_log_txt = self.outfile
 | 
			
		||||
                    stdout_log_txt = stdout_log_txt + "-{}-stdout.txt".format(test)
 | 
			
		||||
                    #print("stdout_log_txt: {}".format(stdout_log_txt))
 | 
			
		||||
                    #self.logger.info("stdout_log_txt: {}".format(stdout_log_txt))
 | 
			
		||||
                    stdout_log = open(stdout_log_txt, 'a')
 | 
			
		||||
                    stderr_log_txt = self.outfile
 | 
			
		||||
                    stderr_log_txt = stderr_log_txt + "-{}-stderr.txt".format(test)                    
 | 
			
		||||
                    #print("stderr_log_txt: {}".format(stderr_log_txt))
 | 
			
		||||
                    #self.logger.info("stderr_log_txt: {}".format(stderr_log_txt))
 | 
			
		||||
                    stderr_log = open(stderr_log_txt, 'a')
 | 
			
		||||
 | 
			
		||||
                process = subprocess.Popen((command).split(' '), shell=False, stdout=stdout_log, stderr=stderr_log, universal_newlines=True)
 | 
			
		||||
@@ -278,34 +278,22 @@ class lf_check():
 | 
			
		||||
                    out, err = process.communicate(timeout=20)
 | 
			
		||||
                except:
 | 
			
		||||
                    #if err:
 | 
			
		||||
                    print("command Test timed out: {}".format(command))
 | 
			
		||||
                    self.logger.info("command Test timed out: {}".format(command))
 | 
			
		||||
 | 
			
		||||
                stdout_log.flush()
 | 
			
		||||
                stdout_log.close()
 | 
			
		||||
                stderr_log.flush()
 | 
			
		||||
                stderr_log.close()
 | 
			
		||||
                '''
 | 
			
		||||
                stdout_log_size = os.path.getsize(stdout_log_txt)
 | 
			
		||||
                stdout_log_st_size = os.stat(stdout_log_txt).st_size
 | 
			
		||||
                print("stdout_log_size {}".format(stdout_log_size))
 | 
			
		||||
                print("stdout_log_st_size {}".format(stdout_log_st_size))
 | 
			
		||||
                print("stdout {}".format(os.stat(stdout_log_txt)))
 | 
			
		||||
 | 
			
		||||
                stderr_log_size = os.path.getsize(stderr_log_txt)
 | 
			
		||||
                stderr_log_st_size = os.stat(stderr_log_txt).st_size
 | 
			
		||||
                print("stderr_log_size {}".format(stderr_log_size))
 | 
			
		||||
                print("stderr_log_st_size {}".format(stderr_log_st_size))
 | 
			
		||||
                print("stderr {}".format(os.stat(stderr_log_txt)))
 | 
			
		||||
                '''
 | 
			
		||||
                #print(stderr_log_txt)
 | 
			
		||||
                #self.logger.info(stderr_log_txt)
 | 
			
		||||
                stderr_log_size = os.path.getsize(stderr_log_txt)
 | 
			
		||||
                if stderr_log_size > 0 :
 | 
			
		||||
                    print("File: {} is not empty: {}".format(stderr_log_txt,str(stderr_log_size)))
 | 
			
		||||
                    self.logger.info("File: {} is not empty: {}".format(stderr_log_txt,str(stderr_log_size)))
 | 
			
		||||
 | 
			
		||||
                    self.test_result = "Failure"
 | 
			
		||||
                    background = self.background_red
 | 
			
		||||
                else:
 | 
			
		||||
                    print("File: {} is empty: {}".format(stderr_log_txt,str(stderr_log_size)))
 | 
			
		||||
                    self.logger.info("File: {} is empty: {}".format(stderr_log_txt,str(stderr_log_size)))
 | 
			
		||||
                    self.test_result = "Success"
 | 
			
		||||
                    background = self.background_green
 | 
			
		||||
 | 
			
		||||
@@ -322,11 +310,11 @@ class lf_check():
 | 
			
		||||
                row = [test,command,self.test_result,stdout_log_txt,stderr_log_txt]
 | 
			
		||||
                self.csv_results_writer.writerow(row)
 | 
			
		||||
                self.csv_results_file.flush()
 | 
			
		||||
                #print("row: {}".format(row))
 | 
			
		||||
                print("test: {} executed".format(test))
 | 
			
		||||
                #self.logger.info("row: {}".format(row))
 | 
			
		||||
                self.logger.info("test: {} executed".format(test))
 | 
			
		||||
 | 
			
		||||
            else:
 | 
			
		||||
                print("enable value {} invalid for test: {}, test skipped".format(self.test_dict[test]['enabled'],test))
 | 
			
		||||
                self.logger.info("enable value {} invalid for test: {}, test skipped".format(self.test_dict[test]['enabled'],test))
 | 
			
		||||
 | 
			
		||||
        self.finish_html_results()        
 | 
			
		||||
 | 
			
		||||
@@ -358,10 +346,8 @@ for running scripts listed in lf_check_config.ini
 | 
			
		||||
    current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
 | 
			
		||||
    csv_results = "lf_check{}-{}.csv".format(args.outfile,current_time)
 | 
			
		||||
    csv_results = report.file_add_path(csv_results)
 | 
			
		||||
    #print("csv output file : {}".format(csv_results))
 | 
			
		||||
    outfile = "lf_check-{}-{}".format(args.outfile,current_time)
 | 
			
		||||
    outfile = report.file_add_path(outfile)
 | 
			
		||||
    #print("output file : {}".format(outfile))
 | 
			
		||||
 | 
			
		||||
    # lf_check() class created
 | 
			
		||||
    check = lf_check(_csv_results = csv_results,
 | 
			
		||||
@@ -374,16 +360,18 @@ for running scripts listed in lf_check_config.ini
 | 
			
		||||
    git_sha = commit_hash.decode('utf-8','ignore')
 | 
			
		||||
 | 
			
		||||
    # set up logging 
 | 
			
		||||
    logfile = args.logfile
 | 
			
		||||
    logfile = args.logfile[:-4]
 | 
			
		||||
    print("logfile: {}".format(logfile))
 | 
			
		||||
    logfile = "{}-{}.log".format(logfile,current_time)
 | 
			
		||||
    logfile = report.file_add_path(logfile)
 | 
			
		||||
    print("logfile {}".format(logfile))
 | 
			
		||||
    formatter = logging.Formatter(FORMAT)
 | 
			
		||||
    logger = logging.getLogger(__name__)
 | 
			
		||||
    logger.setLevel(logging.INFO)
 | 
			
		||||
    file_handler = logging.FileHandler(logfile, "w")
 | 
			
		||||
    file_handler.setFormatter(formatter)
 | 
			
		||||
    logger.addHandler(file_handler)
 | 
			
		||||
    logger.addHandler(logging.StreamHandler(sys.stdout)) # allows to logging to file and stderr
 | 
			
		||||
 | 
			
		||||
    logger.addHandler(logging.StreamHandler(sys.stdout)) # allows to logging to file and stdout
 | 
			
		||||
 | 
			
		||||
    logger.info("commit_hash: {}".format(commit_hash))
 | 
			
		||||
    logger.info("commit_hash2: {}".format(commit_hash.decode('utf-8','ignore')))
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ TEST_TIMEOUT = "120"
 | 
			
		||||
 | 
			
		||||
# TEST_DICTIONARY used by lf_check, Other section names will be ignored so can save other test lists
 | 
			
		||||
# USE TEST_DICTIONARY_NOT_RUN to ignore tests
 | 
			
		||||
[TEST_DICTIONARY]
 | 
			
		||||
[TEST_DICTIONARY_NOT]
 | 
			
		||||
TEST_DICT: {
 | 
			
		||||
    "create_vr.py":{"enabled":"TRUE","command":"create_vr.py","args":"--vr_name 2.vr0 --ports 2.br0,2.vap2 --services"},    
 | 
			
		||||
    "create_l3":{"enabled":"TRUE","command":"create_l3.py","args":"RADIO_0_CFG --debug"},
 | 
			
		||||
@@ -54,7 +54,7 @@ TEST_DICT: {
 | 
			
		||||
 | 
			
		||||
# CHANGE above TEST_DICTIONARY to TEST_DICIONARY_NOT_RUN and TEST_DICTIONARY_NOT_RUN below to TEST_DICTIONARY
 | 
			
		||||
# Feature update pass in the DICTIONARY name to be run
 | 
			
		||||
[TEST_DICTIONARY_NOT]
 | 
			
		||||
[TEST_DICTIONARY]
 | 
			
		||||
TEST_DICT: {
 | 
			
		||||
    "example_security_connection0":{"enabled":"TRUE","command":"example_security_connection.py","args":"RADIO_0_CFG --debug"},
 | 
			
		||||
    "example_security_connection1":{"enabled":"TRUE","command":"example_security_connection.py","args":"RADIO_2_CFG --debug"},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user