Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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))
Beispiel #5
0
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)
Beispiel #6
0
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))