Esempio n. 1
0
def extract_business_key_sbr(file_name, output_dir, logger):
    with open(file_name, "r") as sbr_file:
        business_key_list_success, business_key_list_failure = list(), list()
        pnr_rloc_regex = 'RCI\x1d1A\x1f\w\w\w\w\w\w'
        date_time_regex = '(?<=\x1c)RSI\x1dRP(.*?)(?=\x1c)'
        for line in sbr_file:
            pnr_rloc_regex_list = re.findall(pnr_rloc_regex, line)
            date_time_regex_list = re.findall(date_time_regex, line)
            if len(pnr_rloc_regex_list) >= 1 and len(
                    date_time_regex_list) >= 1:
                pnr_rloc = pnr_rloc_regex_list[0].split("\x1f")[1]
                time = date_time_regex_list[0].split("\x1f")[-1]
                date = date_time_regex_list[0].split("\x1f")[-3]
                #print "PNR: "+ pnr_rloc + " DATE : " + date + " TIME: " + time
                try:
                    pnr_creation_date_millisec = datetime_to_milliseconds(
                        datetime.strptime(date + time, "%d%m%y%H%M"))
                    business_key_list_success.append(
                        pnr_rloc + "," + str(pnr_creation_date_millisec))
                except Exception as errorTrace:
                    logger.error(
                        "Exception in parsing Date column for business Key : Error Trace :%s",
                        errorTrace)
                    business_key_list_failure.append(pnr_rloc + "," + line)
            else:
                business_key_list_failure.append(line)

    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_SUCCESS.csv", business_key_list_success)
    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_FAILURE.csv", business_key_list_failure)
Esempio n. 2
0
def extract_business_key_fld(file_name, output_dir, logger):
    with open(file_name, "r") as fld_file:
        business_key_fld_list_success, business_key_fld_list_failure = list(
        ), list()
        for line in fld_file:
            data = line.split(",")
            flight_code = data[0].strip()
            flight_number = data[1].strip()
            flight_date = data[2].strip()
            if data[3].strip() == "_":
                flight_alpha_suffix = "NULL"
            else:
                flight_alpha_suffix = data[3].strip()
            try:
                fld_date_millisec = datetime_to_milliseconds(
                    datetime.strptime(flight_date, "%d-%b-%y"))
                business_key_fld_list_success.append(flight_code + "," +
                                                     flight_number + "," +
                                                     str(fld_date_millisec) +
                                                     "," + flight_alpha_suffix)
            except Exception as errorTrace:
                logger.error(
                    "Exception in parsing Date column for business Key :" +
                    str(line) + "Error Trace :%s", errorTrace)
                business_key_fld_list_failure.append(line)

    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_SUCCESS.csv", business_key_fld_list_success)
    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_FAILURE.csv", business_key_fld_list_failure)
def compare_tkt_businesskey(input_dir_ckpt_a,input_dir_ckpt_b,output_dir,logger):
    print "Comparing business key for Ticket module"
    for file in os.listdir(input_dir_ckpt_a):
        if 'TOF' in file.upper():
            with open(input_dir_ckpt_a + "//" + file) as lines:
                for line in lines:
                    tof_bk_set_a.add(line.split(",")[0])
        if 'EMD' in file.upper():
            with open(input_dir_ckpt_a + "//" + file) as lines:
                for line in lines:
                    emd_bk_set_a.add(line.split(",")[0])

    for file in os.listdir(input_dir_ckpt_b):
        if 'TOF' in file.upper():
            with open(input_dir_ckpt_b + "//" + file) as lines:
                for line in lines:
                    tof_bk_set_b.add(line.split(",")[0])
        if 'EMD' in file.upper():
            with open(input_dir_ckpt_b + "//" + file) as lines:
                for line in lines:
                    emd_bk_set_b.add(line.split(",")[0])

    data_not_in_b = tof_bk_set_a - tof_bk_set_b
    data_not_in_a = tof_bk_set_b - tof_bk_set_a
    emd_data_not_in_b = emd_bk_set_a - emd_bk_set_b
    emd_data_not_in_a = emd_bk_set_b - emd_bk_set_a

    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_TKT+"_DataNotPresentInB.csv",data_not_in_b)
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_TKT+"_DataNotPresentInA.csv",data_not_in_a)
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_TKT+"_EMDDataNotPresentInB.csv",emd_data_not_in_b)
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_TKT+"_EMDDataNotPresentInA.csv",emd_data_not_in_a)
def extract_business_key(root, output_dir, elem_type):
    parent_list = list()
    elements = root.findall(elem_type)
    for element in elements:
        adsID = element.get("adsUniqueID", "None")
        if (adsID != "None"):
            parent_list.append(adsID)

    elemcount = len(parent_list)
    if (elemcount > 0):
        write_to_file(
            output_dir + DIRECTORY_DELIMETER + elem_type + "_Business_key.csv",
            parent_list)
    return elemcount
def compare_fld_businesskey(input_dir_ckpt_a,input_dir_ckpt_b,output_dir,logger):
    print "Comparing business key for Flight module"
    for file in os.listdir(input_dir_ckpt_a):
        if 'FLD' in file.upper():
            with open(input_dir_ckpt_a + "//" + file,"r") as lines:
                for line in lines:
                    fld_bk_set_a.add(line.replace("\n",""))
    for file in os.listdir(input_dir_ckpt_b):
        if 'FLD' in file.upper():
            with open(input_dir_ckpt_b + "//" + file,"r") as lines:
                for line in lines:
                    fld_bk_set_b.add(line.replace("\n",""))

    data_not_in_b = fld_bk_set_a - fld_bk_set_b
    data_not_in_a = fld_bk_set_b - fld_bk_set_a
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_FLT+"_DataNotPresentInB.csv",data_not_in_b)
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_FLT+"_DataNotPresentInA.csv",data_not_in_a)
def compare_sbr_businesskey(input_dir_ckpt_a,input_dir_ckpt_b,output_dir,logger):
    print "Comparing business key for SBR module"
    for file in os.listdir(input_dir_ckpt_a):
        if 'SBR' in file.upper():
            with open(input_dir_ckpt_a + "//" + file) as lines:
                for line in lines:
                    sbr_bk_set_a.add(line.split(",")[0])

    for file in os.listdir(input_dir_ckpt_b):
        if 'SBR' in file.upper():
            with open(input_dir_ckpt_b + "//" + file) as lines:
                for line in lines:
                    sbr_bk_set_b.add(line.split(",")[0])

    data_not_in_b = sbr_bk_set_a - sbr_bk_set_b
    data_not_in_a = sbr_bk_set_b - sbr_bk_set_a
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_SBR+"_DataNotPresentInB.csv",data_not_in_b)
    write_to_file(output_dir+DIRECTORY_DELIMETER+MESSAGE_TYPE_SBR+"_DataNotPresentInA.csv",data_not_in_a)
Esempio n. 7
0
def extract_business_key_tof(file_name, output_dir, logger):
    with open(file_name, "r") as tof_file:
        logger.info("Processing file name :" + str(file_name))
        business_key_tof_list_success, business_key_tof_list_failure = list(
        ), list()
        business_key_emd_list_success, business_key_emd_list_failure = list(
        ), list()
        tkt_grep_reg = 'TCN.TKTT'
        emd_grep_reg = 'TCN.EMD'
        tkt_id_regex = 'TKT\x1d\d\d\d\d\d\d\d\d\d\d\d\d\d(?=.T)'
        emd_id_regex = 'TKT\x1d\d\d\d\d\d\d\d\d\d\d\d\d\d(?=.Y|.J)'
        #tkt_dt_regex = 'IGD\x1f\d\d\d\d\d\d'
        tkt_dt_regex = 'PTK\x1d.*?\x1d\d\d\d\d\d\d(?=\x1c)'
        #(\d|\d{2}|\d{3}|\d{4}|\d{5})?\D

        for line in tof_file:
            tkt_id_list = re.findall(tkt_id_regex, line)
            tkt_emd_dt_list = re.findall(tkt_dt_regex, line)
            emd_id_list = re.findall(emd_id_regex, line)
            message_tkt = re.findall(tkt_grep_reg, line)
            message_emd = re.findall(emd_grep_reg, line)
            message_type_tkt, message_type_emd = False, False
            #print tkt_emd_dt_list
            if (len(message_tkt) > 0 and message_tkt[0].endswith("TKTT")):
                message_type_tkt = True
            elif (len(message_emd) > 0 and message_emd[0].endswith("EMD")):
                message_type_emd = True

            if (message_type_tkt and len(tkt_id_list) >= 1
                    and len(tkt_emd_dt_list) >= 1):
                tkt_id = tkt_id_list[0].split("\x1d")[1]
                #tkt_dt = tkt_emd_dt_list[0].split("\x1f")[1]
                tkt_dt = tkt_emd_dt_list[0].split("\x1d")[-1]
                try:
                    tkt_creation_date_millisec = datetime_to_milliseconds(
                        datetime.strptime(tkt_dt, "%d%m%y"))
                    business_key_tof_list_success.append(
                        tkt_id + "," + str(tkt_creation_date_millisec))
                except Exception as errorTrace:
                    logger.error(
                        "Exception in parsing Date column for business Key :" +
                        "Error Trace :%s", errorTrace)
                    business_key_tof_list_failure.append(tkt_id + "," +
                                                         str(line))
            elif (message_type_emd and len(emd_id_list) >= 1
                  and len(tkt_emd_dt_list) >= 1):
                emd_id = emd_id_list[0].split("\x1d")[1]
                #emd_dt = tkt_emd_dt_list[0].split("\x1f")[1]
                emd_dt = tkt_emd_dt_list[0].split("\x1d")[-1]
                try:
                    emd_creation_date_millisec = datetime_to_milliseconds(
                        datetime.strptime(emd_dt, "%d%m%y"))
                    business_key_emd_list_success.append(
                        emd_id + "," + str(emd_creation_date_millisec))
                except Exception as errorTrace:
                    logger.error(
                        "Exception in parsing Date column for business Key :" +
                        "Error Trace :%s", errorTrace)
                    business_key_emd_list_failure.append(emd_id + "," +
                                                         str(line))
            else:
                business_key_tof_list_failure.append(line)

    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_SUCCESS.csv", business_key_tof_list_success)
    write_to_file(
        output_dir + DIRECTORY_DELIMETER + message_type +
        "_BUSINESS_KEY_FAILURE.csv", business_key_tof_list_failure)
    write_to_file(
        output_dir + DIRECTORY_DELIMETER + "EMD_BUSINESS_KEY_SUCCESS.csv",
        business_key_emd_list_success)
    write_to_file(
        output_dir + DIRECTORY_DELIMETER + "EMD_BUSINESS_KEY_FAILURE.csv",
        business_key_emd_list_failure)