Ejemplo n.º 1
0
def return_interface_information(db_connection, internet_address, alias_name):
    if internet_address is not None:
        where_condition = "WHERE INTERNET_ADDRESS = '" + internet_address + "'"
    elif alias_name is not None:
        where_condition = "WHERE UPPER(ALIAS_NAME) = '" + alias_name.upper(
        ) + "'"
    else:
        where_condition = "1 = 2"
    sql = "SELECT CONNECTION_TYPE, INTERNET_ADDRESS, NETWORK_ADDRESS, SUBNET_MASK, " \
          "LINE_DESCRIPTION, INTERFACE_LINE_TYPE, INTERFACE_STATUS, SERVICE_TYPE, VIRTUAL_LAN_ID, " \
          "MAXIMUM_TRANSMISSION_UNIT, CONFIGURED_MAXIMUM_TRANSMISSION_UNIT, AUTOSTART, ALIAS_NAME, " \
          "LAST_CHANGE_TIMESTAMP " \
          "FROM QSYS2.NETSTAT_INTERFACE_INFO " + where_condition
    out_result_set, err = db2i_tools.ibm_dbi_sql_query(db_connection, sql)

    out = []
    for result in out_result_set:
        result_map = {
            "CONNECTION_TYPE": result[0],
            "INTERNET_ADDRESS": result[1],
            "NETWORK_ADDRESS": result[2],
            "SUBNET_MASK": result[3],
            "LINE_DESCRIPTION": result[4],
            "INTERFACE_LINE_TYPE": result[5],
            "INTERFACE_STATUS": result[6],
            "SERVICE_TYPE": result[7],
            "VIRTUAL_LAN_ID": result[8],
            "MAXIMUM_TRANSMISSION_UNIT": result[9],
            "CONFIGURED_MAXIMUM_TRANSMISSION_UNIT": result[10],
            "AUTOSTART": result[11],
            "ALIAS_NAME": result[12],
            "LAST_CHANGE_TIMESTAMP": result[13]
        }
        out.append(result_map)
    return out, err
Ejemplo n.º 2
0
def return_fix_information(db_connection, product_id, ptf_list):
    if ptf_list is None:
        return None, "PTF list contains no PTF."

    # get the version and release info
    release_info, err = db2i_tools.get_ibmi_release(db_connection)

    if release_info["version_release"] < 7.3:
        ptf_temp_apply_time_label = "'NOT SUPPORT'"
    else:
        ptf_temp_apply_time_label = "PTF_TEMPORARY_APPLY_TIMESTAMP"

    str_ptf_list = "','".join(ptf_list)
    str_ptf_list = str_ptf_list.upper()
    sql = "SELECT PTF_PRODUCT_ID, PTF_IDENTIFIER, PTF_LOADED_STATUS, PTF_SAVE_FILE, PTF_IPL_ACTION," \
          " PTF_ACTION_PENDING, PTF_ACTION_REQUIRED, PTF_IPL_REQUIRED,  " \
          " PTF_STATUS_TIMESTAMP, PTF_CREATION_TIMESTAMP, " \
          " " + ptf_temp_apply_time_label + " FROM QSYS2.PTF_INFO " \
          " WHERE 1 = 1 "

    if (ptf_list is None) or ([x.upper() for x in ptf_list] == ["*ALL"]):
        where_ptf_list = ""
    else:
        where_ptf_list = " AND UPPER(PTF_IDENTIFIER) IN ('" + str_ptf_list + "')"

    if (product_id is None) or (product_id.upper() == "*ALL"):
        where_product_id = ""
    else:
        where_product_id = " AND UPPER(PTF_PRODUCT_ID) = UPPER('" + product_id + "') "

    sql = sql + where_ptf_list + where_product_id
    out_result_set, err = db2i_tools.ibm_dbi_sql_query(db_connection, sql)

    out = []
    for result in out_result_set:
        result_map = {
            "PTF_PRODUCT_ID": result[0],
            "PTF_IDENTIFIER": result[1],
            "PTF_LOADED_STATUS": result[2],
            "PTF_SAVE_FILE": result[3],
            "PTF_IPL_ACTION": result[4],
            "PTF_ACTION_PENDING": result[5],
            "PTF_ACTION_REQUIRED": result[6],
            "PTF_IPL_REQUIRED": result[7],
            "PTF_STATUS_TIMESTAMP": result[8],
            "PTF_CREATION_TIMESTAMP": result[9],
            "PTF_TEMPORARY_APPLY_TIMESTAMP": result[10]
        }
        out.append(result_map)
    return out, err
Ejemplo n.º 3
0
def generate_object_name(db_connection, lib_name, type_name, obj_name_prefix):
    name_is_ok = False
    i = 1
    while name_is_ok is not True:
        cur_name = obj_name_prefix + str(i)
        obj_stats_expression = "SELECT COUNT(*) " \
                               " FROM TABLE (QSYS2.OBJECT_STATISTICS('" + lib_name + "','" + type_name + "','"\
                               + cur_name + "')) X "
        out_result_set, err = db2i_tools.ibm_dbi_sql_query(
            db_connection, obj_stats_expression)
        if err is None:
            if out_result_set[0][0] != 0:
                i = i + 1
                continue
            return cur_name
        else:
            break
Ejemplo n.º 4
0
def return_fix_information(db_connection, product_id, start_timestamp,
                           end_timestamp):

    # get the version and release info
    release_info, err = db2i_tools.get_ibmi_release(db_connection)

    if release_info["version_release"] < 7.3:
        ptf_temp_apply_time_label = "'NOT SUPPORT'"
    else:
        ptf_temp_apply_time_label = "PTF_TEMPORARY_APPLY_TIMESTAMP"

    str_product_id_list = "','".join(product_id)
    sql = "SELECT PTF_PRODUCT_ID, PTF_IDENTIFIER, PTF_LOADED_STATUS, PTF_SAVE_FILE, PTF_IPL_ACTION," \
          " PTF_ACTION_PENDING, PTF_ACTION_REQUIRED, PTF_IPL_REQUIRED,  " \
          " PTF_STATUS_TIMESTAMP, PTF_CREATION_TIMESTAMP, " \
          " " + ptf_temp_apply_time_label + " FROM QSYS2.PTF_INFO " \
          " WHERE PTF_IPL_ACTION <> 'NONE' AND " \
          " (PTF_STATUS_TIMESTAMP BETWEEN '" + start_timestamp + "' AND '" + end_timestamp + "') "

    if (product_id is None) or ("*ALL" in product_id):
        where_product_id = ""
    else:
        where_product_id = " AND PTF_PRODUCT_ID IN ('" + str_product_id_list + "') "

    sql = sql + where_product_id

    out_result_set, err = db2i_tools.ibm_dbi_sql_query(db_connection, sql)

    out = []
    if (out_result_set is not None):
        for result in out_result_set:
            result_map = {
                "PTF_PRODUCT_ID": result[0],
                "PTF_IDENTIFIER": result[1],
                "PTF_LOADED_STATUS": result[2],
                "PTF_SAVE_FILE": result[3],
                "PTF_IPL_ACTION": result[4],
                "PTF_ACTION_PENDING": result[5],
                "PTF_ACTION_REQUIRED": result[6],
                "PTF_IPL_REQUIRED": result[7],
                "PTF_STATUS_TIMESTAMP": result[8],
                "PTF_CREATION_TIMESTAMP": result[9],
                "PTF_TEMPORARY_APPLY_TIMESTAMP": result[10]
            }
            out.append(result_map)
    return out, err