def export_software_information(platform, release): smu_loader = SMUInfoLoader(platform, release) if not smu_loader.is_valid: return jsonify({'status': 'Failed'}) export_format = request.args.get('export_format') export_layout = request.args.get('export_layout') export_filter = request.args.get('filter') if export_filter == 'Optimal': smu_list = smu_loader.get_optimal_smu_list() sp_list = smu_loader.get_optimal_sp_list() else: smu_list = smu_loader.get_smu_list() sp_list = smu_loader.get_sp_list() if export_format == ExportInformationFormat.HTML: if export_layout == ExportSoftwareInformationLayout.CONCISE: writer = ExportSoftwareInfoHTMLConciseWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: writer = ExportSoftwareInfoHTMLDefaultWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: if export_layout == ExportSoftwareInformationLayout.CONCISE: writer = ExportSoftwareInfoExcelConciseWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: writer = ExportSoftwareInfoExcelDefaultWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) return send_file(writer.write_report(), as_attachment=True)
def api_get_sp_list(platform, release): smu_loader = SMUInfoLoader(platform, release, from_cco=False) if not smu_loader.is_valid: return jsonify(**{'data': []}) hostname = request.args.get('hostname') hide_installed_packages = request.args.get('hide_installed_packages') if request.args.get('filter') == 'Optimal': return get_smu_or_sp_list(hostname, hide_installed_packages, smu_loader.get_optimal_sp_list(), smu_loader.file_suffix) else: return get_smu_or_sp_list(hostname, hide_installed_packages, smu_loader.get_sp_list(), smu_loader.file_suffix)
def api_get_cco_software(request): """ http://localhost:5000/api/v1/cco/software?platform=asr9k_px&release=5.3.3 """ validate_url_parameters(request, ['platform', 'release', 'date']) platform = request.args.get('platform') release = request.args.get('release') date = request.args.get('date') if date: date = datetime.datetime.strptime(date, "%m-%d-%Y") else: date = datetime.datetime.strptime('01-01-2000', "%m-%d-%Y") optimal = request.args.get('optimal') rows = [] smu_loader = SMUInfoLoader(platform, release) if smu_loader.is_valid: if optimal and optimal == 'false': smu_list = smu_loader.get_smu_list() sp_list = smu_loader.get_sp_list() else: smu_list = smu_loader.get_optimal_smu_list() sp_list = smu_loader.get_optimal_sp_list() for smu_info in smu_list: if datetime.datetime.strptime(smu_info.posted_date.split()[0], "%m/%d/%Y") >= date: rows.append(get_smu_info(smu_info)) for sp_info in sp_list: if datetime.datetime.strptime(sp_info.posted_date.split()[0], "%m/%d/%Y") >= date: rows.append(get_smu_info(sp_info)) if rows: return jsonify(**{RESPONSE_ENVELOPE: {'software_list': rows}}) return failed_response( ('Unable to get software information for platform {} ' + 'and release {}').format(platform, release))
def export_software_information(platform, release): smu_loader = SMUInfoLoader(platform, release) if not smu_loader.is_valid: return jsonify({'status': 'Failed'}) export_format = request.args.get('export_format') export_layout = request.args.get('export_layout') export_filter = request.args.get('filter') if export_filter == 'Optimal': smu_list = smu_loader.get_optimal_smu_list() sp_list = smu_loader.get_optimal_sp_list() else: smu_list = smu_loader.get_smu_list() sp_list = smu_loader.get_sp_list() if export_format == ExportInformationFormat.HTML: if export_layout == ExportSoftwareInformationLayout.CONCISE: writer = ExportSoftwareInfoHTMLConciseWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: writer = ExportSoftwareInfoHTMLDefaultWriter(user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: if export_layout == ExportSoftwareInformationLayout.CONCISE: writer = ExportSoftwareInfoExcelConciseWriter( user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) else: writer = ExportSoftwareInfoExcelDefaultWriter( user=current_user, smu_loader=smu_loader, smu_list=smu_list, sp_list=sp_list) return send_file(writer.write_report(), as_attachment=True)
def api_get_cco_software(request): """ http://localhost:5000/api/v1/cco/software?platform=asr9k_px&release=5.3.3 """ validate_url_parameters(request, ['platform', 'release', 'date']) platform = request.args.get('platform') release = request.args.get('release') date = request.args.get('date') if date: date = datetime.datetime.strptime(date, "%m-%d-%Y") else: date = datetime.datetime.strptime('01-01-2000', "%m-%d-%Y") optimal = request.args.get('optimal') rows = [] smu_loader = SMUInfoLoader(platform, release) if smu_loader.is_valid: if optimal and optimal == 'false': smu_list = smu_loader.get_smu_list() sp_list = smu_loader.get_sp_list() else: smu_list = smu_loader.get_optimal_smu_list() sp_list = smu_loader.get_optimal_sp_list() for smu_info in smu_list: if datetime.datetime.strptime(smu_info.posted_date.split()[0], "%m/%d/%Y") >= date: rows.append(get_smu_info(smu_info)) for sp_info in sp_list: if datetime.datetime.strptime(sp_info.posted_date.split()[0], "%m/%d/%Y") >= date: rows.append(get_smu_info(sp_info)) if rows: return jsonify(**{RESPONSE_ENVELOPE: {'software_list': rows}}) return failed_response(('Unable to get software information for platform {} ' + 'and release {}').format(platform, release))