Ejemplo n.º 1
0
def vip_distribution(ver_, area_):
    group_vip_list = []
    lowest = 999
    vip_lowest = ""
    if record_mode == "0":
        tb_vip_status_list = db_test.read_information_from_temp(0)
        tb_vip_relation_list = db_test.read_information_from_temp(1)
    elif record_mode == "1":
        tb_vip_status_list = DB_select_connect(
            "select * from dfh.tb_vip_status")
        tb_vip_relation_list = DB_select_connect(
            "select * from dfh.tb_vip_relation")
    for r in tb_vip_relation_list:
        if r[2] == ver_ and r[3] == area_ and r[6] == 'T':
            group_vip_list.append(r[1])
    #find lowest
    dic_ = {}
    for r in group_vip_list:
        for rr in tb_vip_status_list:
            if r == rr[0]:
                if int(rr[1]) < int(lowest):
                    lowest = int(rr[1])
                    vip_lowest = rr[0]
    #curr_link = lowest+1#new login vip distribution, so count +1
    curr_link = lowest  #20171108 count +0
    dic_.update({'txb_ip': vip_lowest})
    dic_.update({'curr_link': str(curr_link)})
    if vip_distribution_lock.acquire(1):
        db_test.write_temp(dic_, 0, 'update_relation')
        vip_distribution_lock.release()
    #load>80%, 20151224
    #    curr_link/nax_link
    return vip_lowest
Ejemplo n.º 2
0
def tick_to_check_cert_online():
    print('tick_to_check_cert_online now active' +
          str(datetime.datetime.now()))
    cert_collect = []
    dic = {}
    if record_mode == "0":
        tb_vip_certification_list = db_test.read_information_from_temp(2)
    elif record_mode == "1":
        tb_vip_certification_list = db_test.DB_select_connect(
            "select * from dfh.tb_vip_certification")
    for r in tb_vip_certification_list:
        if int(r[4]) >= 2:
            cert_collect.append(r[3])
        elif int(r[4]) < 2:
            if r[1] == 'slogin':
                logout(r[3])
            else:
                if (len(find_cert(r[1], r[2])) > 0):
                    #logout(find_cert(r[1],r[2]))
                    logout(r[3])
                    DB_log("DEBUG", "tick_to_check_cert_online force logout",
                           "id:" + r[1] + ",pwd:" + r[2] + ",cert:" + r[3])
    if len(cert_collect) > 0:
        for item in cert_collect:
            dic.update({'login_cert': item})  #update cert to 1
            db_test.write_temp(dic, 2, 'set')
Ejemplo n.º 3
0
def tick_to_update_curr_link(int_):  # int_ = update seq second
    global login_seq
    ip = ""
    while True:
        time.sleep(int_)
        tick_to_check_cert_online()
        if record_mode == "0":
            status_list = db_test.read_information_from_temp(0)
        elif record_mode == "1":
            status_list = db_test.DB_select_connect(
                "select * from dfh.tb_vip_status")
        for r in status_list:
            curr_link = ""
            ip = r[0]
            if r[3] == "S" and r[4] == 'T':
                try:
                    count_vip_socket(ip, r[1], 73)  #update_curr_link
                except:
                    DB_log("ERROR", "tick_to_update_curr_link",
                           "ip:" + ip + ",count_vip_socket 73 fail")
            elif r[3] == "D" and r[4] == 'T':
                try:
                    count_vip_socket(ip, r[1], 98)  #update_curr_link
                except:
                    DB_log("ERROR", "tick_to_update_curr_link",
                           "ip:" + ip + ",count_vip_socket 98 fail")
Ejemplo n.º 4
0
def broker_index_currlink_result():
    if record_mode == "0":
        currlink_result = db_test.read_information_from_temp(0)
    elif record_mode == "1":
        currlink_result = db_test.DB_select_connect(
            "select ip,curr_link from dfh.tb_vip_status;")
    return currlink_result
Ejemplo n.º 5
0
def query_sn_ip_from_relation():
    if record_mode == "0":
        results = db_test.read_information_from_temp(1)
    if record_mode == "1":
        sqlcmd = "select sn,ip from dfh.tb_vip_relation ORDER BY sn"
        results = db_test.DB_select_connect(sqlcmd)
    return results
Ejemplo n.º 6
0
def find_cert(id_, pwd_):
    have_cert = ""
    if record_mode == "0":
        tb_vip_status_list = db_test.read_information_from_temp(0)
        tb_vip_certification_list = db_test.read_information_from_temp(
            2)  #tb_vip_certification
    elif record_mode == "1":
        # select where have some problem WTF??? 20151229
        tb_vip_status_list = db_test.DB_select_connect(
            "select * from dfh.tb_vip_status")
        tb_vip_certification_list = db_test.DB_select_connect(
            "select ip,account,pwd,cert from dfh.tb_vip_certification")
    for r in tb_vip_certification_list:
        if id_ == r[1] and pwd_ == r[2]:
            have_cert = r[3]
    return have_cert
Ejemplo n.º 7
0
def broker_index_results():
    if record_mode == "0":
        results = db_test.read_information_from_temp(
            1)  # 0: tb_vip_status, 1:tb_vip_relation
    elif record_mode == "1":
        sqlcmd = "select sn,ip,version,area,max_link,pro,act,last_update from dfh.tb_vip_relation ORDER BY sn;"
        results = db_test.DB_select_connect(sqlcmd)
    return results
Ejemplo n.º 8
0
def query_cert(cert_):
    result = ""
    dic_ = {}
    if record_mode == "0":
        tb_vip_certification_list = db_test.read_information_from_temp(
            2)  #tb_vip_certification
    elif record_mode == "1":
        # select where have some problem WTF??? 20151229
        tb_vip_certification_list = db_test.DB_select_connect(
            "select ip,account,pwd,cert from dfh.tb_vip_certification")
    for r in tb_vip_certification_list:
        if cert_ == r[3]:
            result = r[3]
    return result
Ejemplo n.º 9
0
def logout(cert_):
    have_cert = ""
    have_id = ""
    if record_mode == "0":
        tb_vip_status_list = db_test.read_information_from_temp(0)
        tb_vip_certification_list = db_test.read_information_from_temp(
            2)  #tb_vip_certification
    elif record_mode == "1":
        # select where have some problem WTF??? 20151229
        tb_vip_status_list = db_test.DB_select_connect(
            "select * from dfh.tb_vip_status")
        tb_vip_certification_list = db_test.DB_select_connect(
            "select ip,account,pwd,cert from dfh.tb_vip_certification")
    for r in tb_vip_certification_list:
        if cert_ == r[3]:
            vip_ip = r[0]
            have_id = r[1]
            have_cert = r[3]
    if len(have_cert) > 0:
        if record_mode == "0":
            dic = {}
            dic.update({'login_cert': have_cert})
            #db_test.write_temp(dic,0,'del_cert')
            # curr_link -1
            for s in tb_vip_status_list:
                if vip_ip == s[0]:
                    if int(s[1]) > 0:
                        curr_link = int(s[1]) - 1
            dic.update({'txb_ip': vip_ip})
            dic.update({'curr_link': str(curr_link)})
            db_test.write_temp(dic, 0, 'update_relation')
        elif record_mode == "1":
            db_test.DB_update_connect(
                "delete from dfh.tb_vip_certification where cert = \'" +
                have_cert + "\'")
        DB_log("DEBUG", "logout", "id = " + have_id + ", cert = " + cert_)
Ejemplo n.º 10
0
def mod_list(dic_, write_file_TF):
    if write_file_TF:
        txb_sn = db_test.key_exist_in_object('txb_sn', dic_)
        txb_ip = db_test.key_exist_in_object('txb_ip', dic_)
        txb_ver = db_test.key_exist_in_object('txb_ver', dic_)
        txb_area = db_test.key_exist_in_object('txb_area', dic_)
        curr_link = db_test.key_exist_in_object('curr_link', dic_)
        txb_max_link = db_test.key_exist_in_object('txb_max_link', dic_)
        if txb_ver.split(',')[0] == 'Thin':
            txb_pro = 'D'
        else:
            txb_pro = 'S'
        dic_.update({'txb_pro': txb_pro})
        #txb_pro = db_test.key_exist_in_object('txb_pro',dic_)
        txb_act = db_test.key_exist_in_object('txb_act', dic_)
        if record_mode == "0":
            db_test.write_temp(dic_, 0,
                               'update_relation')  # 0 : Overwrite status
            db_test.write_temp(dic_, 1,
                               'update_relation')  # 1 : Overwrite relation
        elif record_mode == "1":
            sqlcmd = 'update dfh.tb_vip_relation set '
            if len(txb_ver) > 0:
                sqlcmd = sqlcmd + 'version = \'' + txb_ver + '\','
            if len(txb_area) > 0:
                sqlcmd = sqlcmd + 'area = \'' + txb_area + '\','
            if txb_max_link != "--" and len(txb_max_link) > 0:
                sqlcmd = sqlcmd + 'max_link = \'' + txb_max_link + '\','
            if txb_pro != "--" and len(txb_pro) > 0:
                sqlcmd = sqlcmd + 'pro = \'' + txb_pro + '\','
            if txb_act != "--" and len(txb_act) > 0:
                sqlcmd = sqlcmd + 'act = \'' + txb_act + '\','
            sqlcmd = sqlcmd + 'last_update = timezone(\'CCT\'::text, now()) where sn =\'' + txb_sn + '\';'
            db_test.DB_update_connect(sqlcmd)
        DB_log('DEBUG', 'mod_list', '==== mod_list complete ====')
    if record_mode == "0":
        results = db_test.read_information_from_temp(
            1)  #0: tb_vip_status, 1: tb_vip_relation
    elif record_mode == "1":
        sqlcmd = 'select sn,ip,version,area,max_link,pro,act,last_update from dfh.tb_vip_relation ORDER BY sn;'
        results = db_test.DB_select_connect(sqlcmd)
    return results