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
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
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
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