def prepare_for_debug(btsid='1703', tm500_id='233', instance_id='586999'): from pet_bts import read_bts_config gv.master_bts_c = read_bts_config(btsid) gv.master_bts = gv.mbts()[0] gv.case.curr_case = pettool.get_case_config_new(instance_id) from petcasebase import re_organize_case re_organize_case() print gv.case.curr_case pet_bts.pet_bts_read_scf_file(btsid) tm500path = os.path.sep.join([resource_path(), 'config', 'tm500']) import sys, importlib sys.path.append(tm500path) model = importlib.import_module('tm500_%s' % (tm500_id)) tm500config = IpaMmlItem() for key in model.TOOLS_VAR: setattr(tm500config, key.lower(), model.TOOLS_VAR[key]) tm500config.shenick_volte_group_name = 'TA_VOLTE_IMS_FTP' if 'volte_load' in [ x.lower().strip() for x in dir(gv.case.curr_case) if x[0] <> '_' ]: if gv.case.curr_case.volte_load: tm500config.shenick_volte_group_name = 'TA_VOLTE_IMS_LOAD'
def get_hw(btsid, btss1ip, flag): hwinfo = '' version = '' if not ping_s1(btss1ip): return hwinfo, version bts = IpaMmlItem() bts.btsid = str(btsid) bts.bts_ip = btss1ip bts.is5g = 1 if flag == '5g' else 0 bts.iscoam = bts.is5g bts.sran = 1 bts.admin_api = None bts.dire_snap = '/home/work/temp/bts/' bts.dire_admin = '/home/work/temp/bts/' print('get bts hw info...{}'.format(btsid)) hwinfo, version = hw_version(bts) return hwinfo, version
def get_table_content(self, tablename='', condition=''): gv.logger.info('Retrieve data from table: ' + tablename) fields = self.get_table_fields(tablename) self.cursor.execute('select * from %s %s' % (tablename, condition)) result = [] from pet_ipalib import IpaMmlItem for record in self.cursor.fetchall(): p = IpaMmlItem() for i in range(len(fields)): if record[i] <> None: setattr(p, fields[i].lower(), str(record[i])) else: setattr(p, fields[i].lower(), '') result.append(p) return result
from petcasebase import re_organize_case re_organize_case() # print gv.case.curr_case for attr in [x for x in dir(gv.case.curr_case) if x[0] <> '_']: setattr(gv.master_bts, attr, getattr(gv.case.curr_case, attr)) setattr(gv.slave_bts, attr, getattr(gv.case.curr_case, attr)) pet_bts.pet_bts_read_scf_file(btsid) pet_bts.pet_bts_read_scf_file(sbtsid) tm500path = os.path.sep.join([resource_path(), 'config', 'tm500']) import sys, importlib sys.path.append(tm500path) model = importlib.import_module('tm500_%s' % (tm500_id)) tm500config = IpaMmlItem() for key in model.TOOLS_VAR: setattr(tm500config, key.lower(), model.TOOLS_VAR[key]) tm500config.shenick_volte_group_name = 'TA_VOLTE_IMS_FTP' if gv.case.curr_case.codec.strip(): tm500config.shenick_volte_group_name += '_' + gv.case.curr_case.codec.upper( ) if 'volte_load' in [ x.lower().strip() for x in dir(gv.case.curr_case) if x[0] <> '_' ]: if gv.case.curr_case.volte_load: tm500config.shenick_volte_group_name = 'TA_VOLTE_IMS_LOAD' if gv.case.curr_case.case_type == 'MIX_MR': tm500config.shenick_volte_group_name = 'TA_Mixed_UDP_FTP' if gv.case.curr_case.case_type.strip().upper() in [
def commandthread(sock): allprocess = [] def _cleanup(): try: for handler in allprocess: try: os.system('kill -9 ' + handler.process.pid) except: pass except: pass gv.done = True while True: if time.time() - gv.inittime > gv.timeout: log('Client timeout, Server will quit') _cleanup() return 0 try: line = sock.recv(4096) except: log('Connection lost') _cleanup() return 0 if line.strip(): log('Received : %s' % (line)) if line.strip().lower() == 'quit': log("client quit") sock.close() _cleanup() return 0 if line.strip().lower() == 'log': log("log: %s" % (' '.join(line.split()[1:]))) if line.lower().startswith('run'): # run iperf xx dda xx - daf cmdhander = IpaMmlItem() cmd = ' '.join(line.split()[1:]) import datetime tracefile = os.sep.join([ '/home/work/temp/ta', datetime.datetime.now().strftime('%M%S%f.log') ]) if os.path.exists(tracefile): os.system('rm -rf ' + tracefile) cmd += ' >' + tracefile cmdhander.command = cmd log('Run command: [%s]' % (cmd)) cmdhander.process = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) output = [] for i in range(5): if os.path.exists(tracefile): output = open(tracefile).readlines() break else: time.sleep(1) for line in output: log('Process output: ' + line.splitlines()[0]) if os.path.exists(tracefile): os.system('rm -rf ' + tracefile) sock.sendall('PID: ' + str(cmdhander.process.pid) + ' done') log('Process ID: %s' % (cmdhander.process.pid)) allprocess.append(cmdhander) if line.lower().startswith('stop'): pid = line.split()[1].strip() cmdhander = [ x for x in allprocess if str(x.process.pid) == pid ] if cmdhander: log('Try to stop pid: ' + pid) import signal cmdhander[0].process.send_signal(signal.SIGINT) log('Stop process: %s' % (cmdhander[0].process.pid)) if line.lower().startswith('sendkey'): pid = line.split()[1].strip() cmdhander = [ x for x in allprocess if str(x.process.pid) == pid ] if cmdhander: key = line.split()[2].strip() log('Send key process: %s' % (cmdhander[0].process.pid)) if key.lower() == 'return': log('POLL: [%s]' % (str(cmdhander[0].process.poll()))) if cmdhander[0].process.poll() == None: try: cmdhander[0].process.stdin.write('\n') log(str(cmdhander[0].process.communicate())) except: log('Process communicate failed.') log('Deal with key done.') allprocess.remove(cmdhander[0]) else: cmdhander[0].process.stdin.write(key)
import time, socket, sys from optparse import * import os from thread import * from pet_ipalib import IpaMmlItem from threading import Thread from Queue import Queue, Empty def log(info): with open(gv.logfile, 'a') as logf: logf.write('%s %s %s\n' % (time.ctime(), gv.master, info)) gv = IpaMmlItem() gv.done = False gv.master = '' def commandthread(sock): allprocess = [] def _cleanup(): try: for handler in allprocess: try: os.system('kill -9 ' + handler.process.pid) except: pass except:
def load_config(btsip, sran): btsid = btsip.replace('.', '') print('Log config for {}'.format(btsip)) # if bts: # self._config = bts[0] # for attr in [x for x in dir(self._config) if not x.startswith('_')]: # setattr(self, attr, getattr(self._config, attr)) from pet_ipalib import IpaMmlItem bts = IpaMmlItem() bts.sran = sran bts.btsid = btsid bts.btsip = btsip bts.bts_id = btsid bts.bts_ip = btsip bts.workcell = 1 bts.airscale = 1 bts.is5g = 0 # bts.sran = bts.airscale == '1' bts.bts_fcm_ip = '192.168.255.1' bts.bts_fcm_username = '******' bts.bts_fcm_password = '******' bts.bts_ftm_ip = '192.168.255.129' bts.bts_ftm_username = '******' bts.bts_ftm_password = '******' bts.mr_paging_ioc, bts.mr_paging_impair_ioc = '140', '84' bts.mr_call_drop_ioc, bts.mr_call_drop_impair_ioc = '140', '84' bts.mr_ho_ioc, bts.mr_ho_impair_ioc = '140', '89' bts.mr_volte_ioc, bts.mr_volte_impair_ioc = '140', '84' bts.conn_bts = None bts.ftmctrl = None bts.config_id = '' bts.cell_count = 0 bts.used = True bts.infomodel_pid = [] bts.new_earfcn_list = [] bts.new_eutraCarrierInfo_list = [] # bts.pcap_interface = (r'\Device\NPF_' + # bts.pcap_interface.upper().split('NPF_')[-1]) bts.scf_filename = '' bts.infomodel = None bts.ute_admin = None bts.error_log_list = [] bts.monitor_error_log = False bts.btslog_buffer = [] bts.pm_counter_path = '/tmp' if bts.sran else '/ram' bts.scf_change_is_differ = True bts.btsmode = 'S' bts.cpc = None bts.btslogger = None bts.infomodel = None bts.admin_api = None bts.ftmctrl = None bts.fct_cpu_manager = None bts.fct_memory_manager = None bts.tti = None bts.bts_control_pc_lab = "" bts.admin_port = 3600 if bts.sran == 1 else 443 return bts
# empty_col2 = empty_col*(int(self.outport_count) - int(outport)) # cmdlist.append('$TA,G,%s%s%s*' %(empty_col*(int(outport)-1),'78'* int(self.inport_count), empty_col2)) port = str((int(outport)-1)*int(self.inport_count)+ int(inport)) self.logger.info('Adjust HB Matrix signal for signal port %s ' %(port)) # OnePortOperate(self.ip, port, str(int(signal))) cmdlist.append('$TA,A,%0.2d%0.2d%0.2X*' %(int(inport), int(outport), 2*int(signal))) self.execute_commands(cmdlist) if __name__ == '__main__': c = c_jx_pa('10.69.82.163', '23', 8, 2) try: c.connect() print 'connected' rfconnections = [] from pet_ipalib import IpaMmlItem line = IpaMmlItem() line.inport = 1 line.outport = 1 rfconnections.append(line) c.clear_all() finally: c.disconnect() pass
'MACTX', ] tm500_log_type_for_volte = [ 'MACRX', # 'MACTX', ] tm500_version_for_throughput = 'TM500_APPLICATION_K_VERSION_DIR' tm500_version_for_volte = 'TM500_APPLICATION_L_VERSION_DIR' all_cases = IpaMmlDict() #Case_throughput #Case_FTP_TEST this case is kept for RL55 case = IpaMmlItem() case.case_name = 'THROUGHPUT' case.tm500_version = tm500_version_for_throughput case.tm500_log_types = tm500_log_type_for_through case.ta_steps = { 'setup': 'common_test_case_setup_for_throughput', 'document': 'Document about this case', 'tags': ['FTP_TEST'], 'Timeout': '30 minute', 'steps': [ ['Pet ue attach'], ['set_tm500_log_types'], ['setup_pppoe_on_data_device'],