コード例 #1
0
 def setup_class(self):
     haap.get_trace_all(3)
     os.chdir('Trace')
     pwd = os.getcwd()
     ls = os.listdir(pwd)
     self.trace = ls[-1]
     self.analyse = sun.TraceAnalyse(self.trace)
コード例 #2
0
    def home():
        if request.args.get('trace'):
            TRACE = request.args.get('trace')
            haap.get_trace(TRACE, trace_level_cfg)
        else:
            pass

        if mode == 'rt':
            StatusHAAP = haap_rt_info_to_show()
            StatusHAAP.sort(key=operator.itemgetter(0))
            StatusSANSW = sansw_rt_info_to_show()
            StatusSANSW.sort(key=operator.itemgetter(0))
            tlu_haap = s.time_now_to_show()
            tlu_sansw = s.time_now_to_show()
            status_warning = 0

        elif mode == 'db':
            lstWarningList = db.get_unconfirm_warning()
            if request.method == 'GET' and lstWarningList:
                error = 1
            else:
                db.update_warning()
                error = 0

            engine = haap_info_to_show()
            sansw = sansw_info_to_show()
            status_warning = db.get_unconfirm_warning()
            if engine:
                tlu_haap = engine[0]
                StatusHAAP = engine[1]
                StatusHAAP.sort(key=operator.itemgetter(0))

            else:
                tlu_haap = s.time_now_to_show()
                StatusHAAP = [0]

            if sansw:
                tlu_sansw = sansw[0]
                StatusSANSW = sansw[1]
                StatusSANSW.sort(key=operator.itemgetter(0))
            else:
                tlu_sansw = s.time_now_to_show()
                StatusSANSW = [0]

        return render_template("monitor.html",
                               Title_HAAP=lstDescHAAP,
                               Title_SANSW=lstDescSANSW,
                               tlu_haap=tlu_haap,
                               tlu_sansw=tlu_sansw,
                               status_haap=StatusHAAP,
                               status_sansw=StatusSANSW,
                               status_warning=status_warning,
                               interval_web_refresh=interval_web_refresh)
コード例 #3
0
 def test__is_master(self):
     status = haap.Status(ip, t_port, passwd, ftp_port)
     assert status._is_master(None) == 0
     engine1 = "Engine  Status  Serial #  IP Addresses"
     engine2 = ">> 0 (M) Online  11340468  10.203.1.6  15.9.8.2 OR"
     assert status._is_master(engine1) == None
     assert status._is_master(engine2) == 1
コード例 #4
0
 def test_over_all(self):
     status = haap.Status(ip, t_port, passwd, ftp_port)
     assert status.over_all()[1] == 0
     status.AHStatus = 1
     assert status.over_all()[1] == '1'
     status._TN_Connect_Status = None
     assert status.over_all()[1] == '--'
コード例 #5
0
 def test_get_mirror_status(self):
     status = haap.Status(ip, t_port, passwd, ftp_port)
     status.dictInfo[
         'mirror'] = " 33281(0x8201) Operational  67108864  2044 (OK )  2046 (OK )"
     assert status.get_mirror_status() == 0
     status.dictInfo[
         'mirror'] = " 33281(0x8201) Operational  67108864  2044 (deg )  2046 (OK )"
     assert status.get_mirror_status() == 1
     status.dictInfo['mirror'] = None
     assert status.get_mirror_status() == None
コード例 #6
0
def check_all_haap():
    Origin_from_engine, Info_from_engine = haap.data_for_db()
    try:
        Info_from_DB = db.haap_last_record()
        if Info_from_DB:
            for engine in lst_haap_alias:
                lstRT = haap_info_for_judge(Info_from_engine)[engine]
                lstDB = haap_info_for_judge(Info_from_DB.info)[engine]
                haap_judge(lstRT, lstDB, engine).all_judge()
    finally:
        db.haap_insert(datetime.datetime.now(), Origin_from_engine,
                       Info_from_engine)
コード例 #7
0
def test_change_firmware():
    pwd = os.getcwd()
    ls = os.listdir(pwd)
    if 'FW_15.9.8.2_OR.bin' and 'FW_15.9.8.4_OR.bin' not in ls:
        return
    status = haap.Status(ip, t_port, passwd, ftp_port)
    fw_version = status.get_version()
    if fw_version == None:
        print("Can't get firmware version.")
        return
    elif fw_version == 'V15.9.8.4':
        haap.change_firmware(ip, 'FW_15.9.8.2_OR.bin')
    else:
        haap.change_firmware(ip, 'FW_15.9.8.4_OR.bin')
    time.sleep(60)
    try:
        status = haap.Status(ip, t_port, passwd, ftp_port)
        fw_version_new = status.get_version()
    except:
        fw_version_new = None
    if fw_version_new:
        if fw_version == 'V15.9.8.4':
            assert fw_version_new == 'V15.9.8.2'
        else:
            assert fw_version_new == 'V15.9.8.4'
    else:
        print("Can't get firmware version.")
コード例 #8
0
def haap_rt_info_to_show():
    """
    @note: HAAP网页展示即时数据(status)
    """
    dicALL = haap.data_for_db()[1]
    lstHAAPToShow = []
    if dicALL:
        for engine_alias in dicALL.keys():
            info_status = dicALL[engine_alias]['status']
            info_status.insert(0, engine_alias)
            info_status.append(dicALL[engine_alias]['level'])
            lstHAAPToShow.append(info_status)
        return lstHAAPToShow
コード例 #9
0
ファイル: test_Main.py プロジェクト: Paulbig/VersaTEL_G1_Code
def test_fw():
    status = haap.Status(engineip, t_port, passwd, ftp_port)
    fw_version = status.get_version()
    assert fw_version != None
    pwd = os.getcwd()
    ls = os.listdir(pwd)
    if 'FW_15.9.8.2_OR.bin' and 'FW_15.9.8.4_OR.bin' in ls:
        if fw_version == 'V15.9.8.4':
            output('fw %s FW_15.9.8.2_OR.bin' % engineip)
        else:
            output('fw %s FW_15.9.8.4_OR.bin' % engineip)
        time.sleep(60)
        try:
            status = haap.Status(engineip, t_port, passwd, ftp_port)
            fw_version_new = status.get_version()
        except:
            fw_version_new = None
        if fw_version_new:
            if fw_version == 'V15.9.8.4':
                assert fw_version_new == 'V15.9.8.2'
            else:
                assert fw_version_new == 'V15.9.8.4'
    else:
        pass
コード例 #10
0
def test_backup_config():
    assert haap.backup_config(ip) == None
コード例 #11
0
 def setup_class(self):
     time.sleep(5)
     self.action = haap.Action(ip, t_port, passwd, ftp_port)
コード例 #12
0
def test_show_time():
    assert haap.show_time(ip) == None
コード例 #13
0
def test_show_time_all():
    assert haap.show_time_all() == None
コード例 #14
0
 def test_cluster_status(self):
     status = haap.Status(ip, t_port, passwd, ftp_port)
     status.dictInfo['engine'] = '>> 0 offline'
     assert status.cluster_status() == 1
     status.dictInfo['engine'] = '>> 0 online'
     assert status.cluster_status() == 0
コード例 #15
0
 def test_get_version(self):
     status = haap.Status(ip, t_port, passwd, ftp_port)
     status.dictInfo['vpd'] = "Firmware V15.9.8.2 HA-AP"
     assert status.get_version() == 'V15.9.8.2'
     status.dictInfo['vpd'] = None
     assert status.get_version() == None
コード例 #16
0
def test_backup_config_all():
    assert haap.backup_config_all() == None
コード例 #17
0
def test_periodically_check_all():
    assert haap.periodically_check_all() == None
コード例 #18
0
def test_print_status_in_line():
    lStatus = haap.Status(ip, t_port, passwd, ftp_port).status_to_show()
    assert haap._print_status_in_line(lStatus) == None
コード例 #19
0
def test_periodically_check():
    assert haap.periodically_check(ip) == None
コード例 #20
0
def test_execute_multi_commands():
    with open('cmd.txt', 'w') as f:
        f.write("vpd\nvaai\nport\n")
        f.close()
    assert haap.execute_multi_commands(ip, 'cmd.txt') == None
    os.remove('cmd.txt')
コード例 #21
0
def test_get_trace_all():
    assert haap.get_trace_all(level)
コード例 #22
0
def test_data_for_db():
    data = haap.data_for_db()
    assert data[0].keys() == ['engine0']
    assert data[1].keys() == ['engine0']
コード例 #23
0
def test_info():
    lStatus = haap.Status(ip, t_port, passwd, ftp_port)
    assert haap.info('engine0', lStatus)
コード例 #24
0
def test_origin():
    lStatus = haap.Status(ip, t_port, passwd, ftp_port)
    assert haap.origin('engine0', lStatus)
コード例 #25
0
def test_get_trace():
    assert haap.get_trace(ip, level)
コード例 #26
0
 def test_executeCMD(self):
     action = haap.Action(ip, t_port, passwd, ftp_port)
     assert action._executeCMD('engine') != None
     action._TN_Connect_Status = None
     assert action._executeCMD('engine') == None
コード例 #27
0
def test_print_description():
    assert haap._print_description() == None
コード例 #28
0
 def setup_class(self):
     strtime = 'Uptime : 12d 23:14:23'
     self.uptime = haap.Uptime(strtime)
コード例 #29
0
def main():
    if len(sys.argv) == 1:#用户输入参数是否是本身,如果是
        print(strHelp)#打印帮助
    #OK
    elif sys.argv[1] == 'ptes':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strPTESHelp)
        elif sys.argv[2] == 'all':
            sw.print_porterror_all_formated()
        else:
            if s.is_IP(sys.argv[2]):
                sw.print_porterror_formated(sys.argv[2])
            else:
                print('Please provide correct switch ip...')
    #OK
    elif sys.argv[1] == 'ptcl':#判断执行参数是否为ptcl
        num_argv = len(sys.argv)  #获取参数的个数
        if num_argv == 2 or num_argv > 4:#如果是2个或者大于4个
            print(strPTCLHelp) #打印提示信息
        elif sys.argv[2] == 'all': #如果是3个参数是 all
            sw.clear_all() #调用清除所有交换机端口错误函数
        elif s.is_IP(sys.argv[2]):#如果第3个参数是ip的话,判断是不是ip
            if num_argv == 4:   #判断是否有第4个参数,如果有
                #if _isPort(sys.argv[3]):   错误
                if s.is_port(sys.argv[3]):   #在判断第4个参数是否是正确的端口      
                    sw.clear_one_port(sys.argv[2], sys.argv[3])#调用清除具体ip,端口错误
                else:
                    print('Please provide correct port number...') #请提供正确端口号
            else:
                print(strPTCLHelp) #打印提示
        else:
            print('Please provide correct switch ip...')#请提供正确的交换机ip
    #OK
    elif sys.argv[1] == 'sws':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strSWSHelp)
        elif sys.argv[2] == 'all':
            sw.print_switchshow_all()
        else:
            if s.is_IP(sys.argv[2]):
                sw.print_switchshow(sys.argv[2])
            else:
                print('Please provide correct switch ip...')

    #OK
    elif sys.argv[1] == 'bc':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strBCHelp)
        elif sys.argv[2] == 'all':
            haap.backup_config_all()
        else:
            if s.is_IP(sys.argv[2]):
                haap.backup_config(sys.argv[2])
            else:
                print('Please provide correct engine ip...')

    # get engines' trace files under TraceFolder based on Trace levels
    #trace、primary、seaond
    #OK git Trace   NOT have Primary
    elif sys.argv[1] == 'gt':
        num_argv = len(sys.argv)
        if num_argv > 3:
            trace_level = int(sys.argv[3])
        if num_argv == 2 or num_argv > 4:
            print(strGTHelp)
        elif sys.argv[2] == 'all':
            if num_argv > 3:
                if s.is_trace_level(trace_level):
                    haap.get_trace_all(trace_level)
                else:
                    print('Trace level must be "1" or "2" or "3"')
            else:
                haap.get_trace_all(0)
        elif s.is_IP(sys.argv[2]):
            if num_argv > 3:
                if s.is_trace_level(trace_level):
                    haap.get_trace(sys.argv[2], trace_level)
                else:
                    print('Trace level must be "1" or "2" or "3"')
            else:
                haap.get_trace(sys.argv[2], 0)
        else:
            print('Please provide correct engine ip...')

    # elif sys.argv[1] == 'at':
    #     num_argv = len(sys.argv)
    #     if num_argv > 3:
    #         trace_level = sys.argv[3]
    #     if num_argv == 2 or num_argv > 4:
    #         print(strPTCLHelp)
    #     elif sys.argv[2] == 'all':
    #         if num_argv > 3:
    #             if s.is_trace_level(trace_level):
    #                 haap.analyse_trace_all(trace_level)
    #             else:
    #                 print('Trace Level Must Be "1" or "2" or "3"')
    #         else:
    #             haap.analyse_trace_all(0)
    #     elif s.is_IP(sys.argv[2]):
    #         if num_argv > 3:
    #             if s.is_trace_level(trace_level):
    #                 haap.analyse_trace(sys.argv[2], trace_level)
    #             else:
    #                 print('Trace Level Must Be "1" or "2" or "3"')
    #         else:
    #             haap.analyse_trace(sys.argv[2], 0)
    #     else:
    #         print('Please Provide Correct Engine IP...')
    #OK python Main.py at Trace\2019-00-00
    elif sys.argv[1] == 'at':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strATHelp)
        else:
            if s.is_folder(sys.argv[2]):
                s.TraceAnalyse(sys.argv[2]).run()
            else:
                print('Please provide correct trace folder')
    #OK  python Main.py ec 10.203.1.223 cmd.txt
    elif sys.argv[1] == 'ec':
        if len(sys.argv) != 4:
            print(strECHelp)
        else:
            ip = sys.argv[2]
            command_file = sys.argv[3]
            if not s.is_IP(ip):
                print('Please provide correct engine ip...')
            if not s.is_file(command_file):
                print('File not exists. please provide correct file...')
            haap.execute_multi_commands(ip, command_file)
    #OK  python Main.py fw 10.203.1.223 FW15.9.7.7_OR.bin
    elif sys.argv[1] == 'fw':
        if len(sys.argv) != 4:
            print(strFWHelp)
        else:
            ip = sys.argv[2]
            fw_file = sys.argv[3]
            if not s.is_IP(ip):
                print('Please provide correct engine ip...')
            if not s.is_file(fw_file):
                print('File not exists. please provide correct file...')
            haap.change_firmware(ip, fw_file)
    #OK-
    elif sys.argv[1] == 'sts':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strSTSHelp)
        elif sys.argv[2] == 'all':
            haap.show_stauts_all()
        else:
            if s.is_IP(sys.argv[2]):
                haap.show_stauts(sys.argv[2])
            else:
                print('Please provide correct engine ip...')
    #OK
    elif sys.argv[1] == 'st':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strSTHelp)
        elif sys.argv[2] == 'all':
            haap.set_time_all()
        else:
            if s.is_IP(sys.argv[2]):
                haap.set_time(sys.argv[2])
            else:
                print('Please provide correct engine ip...')
    #OK    
    elif sys.argv[1] == 'stm':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 3:
            print(strSTMHelp)
        elif sys.argv[2] == 'all':
            haap.show_time_all()
        else:
            if s.is_IP(sys.argv[2]):
                haap.show_time(sys.argv[2])
            else:
                print('Please provide correct engine ip...')
    #OK
    elif sys.argv[1] == 'pc':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 4:
            print(strPCHelp)
#             print(strPTCLHelp) 原
        elif num_argv > 2:
            if sys.argv[2] == 'all':
                haap.periodically_check_all()
                sw.periodically_check_all()
            elif sys.argv[2] == 'haap':
                if num_argv == 3:
                    haap.periodically_check_all()
                elif num_argv > 3:
                    if s.is_IP(sys.argv[3]):
                        haap.periodically_check(sys.argv[3])
                    else:
                        print('Please provide correct engine ip...')
            elif sys.argv[2] == 'sw':
                if num_argv == 3:
                    sw.periodically_check_all()
                elif num_argv > 3:
                    if s.is_IP(sys.argv[3]):
                        sw.periodically_check(sys.argv[3])
                    else:
                        print('Please provide correct SAN switch ip...')
            else:
                print(strPCHelp)
    #OK
    elif sys.argv[1] == 'mnt':
        num_argv = len(sys.argv)
        if num_argv == 2 or num_argv > 4:
            print(strMNTHelp)
        elif sys.argv[2] == 'rt':
            m.monitor_rt_1_thread()
        elif sys.argv[2] == 'db':
            m.monitor_db_4_thread()
        else:
            print('rt(realtime) or db(datarase)')
            
    elif sys.argv[1] == 'v':
        print("VersaTEL G1",Version)
    else:
        print(strHelp)
コード例 #30
0
 def setup_class(self):
     self.status = haap.Status(ip, t_port, passwd, ftp_port)