Beispiel #1
0
def metadata():
    """
    Show all metadata available to this user.
    """

    # show static lists based on QA group
    qa_url = 'firmware-%s.xml.gz' % _qa_hash(session['qa_group'])
    qa_disp = 'firmware-%s….xml.gz' % _qa_hash(session['qa_group'])[0:8]
    return render_template('metadata.html',
                           qa_group=session['qa_group'],
                           qa_url=qa_url,
                           qa_desc=qa_disp)
Beispiel #2
0
def metadata_update_qa_group(qa_group):
    """ updates metadata for a specific qa_group """

    # explicit
    affidavit = create_affidavit()
    if qa_group:
        filename = 'firmware-%s.xml.gz' % _qa_hash(qa_group)
        _generate_metadata_kind(filename,
                                qa_group=qa_group,
                                affidavit=affidavit)
        return

    # do for all
    db = LvfsDatabase(os.environ)
    db_firmware = LvfsDatabaseFirmware(db)
    qa_groups = db_firmware.get_qa_groups()
    for qa_group in qa_groups:
        filename_qa = 'firmware-%s.xml.gz' % _qa_hash(qa_group)
        _generate_metadata_kind(filename_qa,
                                qa_group=qa_group,
                                affidavit=affidavit)
Beispiel #3
0
def metadata_update_qa_group(qa_group):
    """ updates metadata for a specific qa_group """

    # explicit
    if qa_group:
        filename = 'firmware-%s.xml.gz' % _qa_hash(qa_group)
        _generate_metadata_kind(filename, qa_group=qa_group)
        return [os.path.join(DOWNLOAD_DIR, filename)]

    # do for all
    db = LvfsDatabase(os.environ)
    db_firmware = LvfsDatabaseFirmware(db)
    qa_groups = db_firmware.get_qa_groups()
    filenames = []
    for qa_group in qa_groups:
        filename_qa = 'firmware-%s.xml.gz' % _qa_hash(qa_group)
        filename = _generate_metadata_kind(filename_qa, qa_group=qa_group)
        filenames.append(filename)

    # return all the files we have to sign
    return filenames
Beispiel #4
0
def firmware_id(fwid):
    """ Show firmware information """

    # get details about the firmware
    db = LvfsDatabase(os.environ)
    db_firmware = LvfsDatabaseFirmware(db)
    try:
        item = db_firmware.get_item(fwid)
    except CursorError as e:
        return error_internal(str(e))
    if not item:
        return error_internal('No firmware matched!')

    # we can only view our own firmware, unless admin
    qa_group = item.qa_group
    if qa_group != session['qa_group'] and session['username'] != 'admin':
        return error_permission_denied('Unable to view other vendor firmware')
    if not qa_group:
        embargo_url = '/downloads/firmware.xml.gz'
        qa_group = 'None'
    else:
        embargo_url = '/downloads/firmware-%s.xml.gz' % _qa_hash(qa_group)

    db = LvfsDatabase(os.environ)
    db_clients = LvfsDatabaseClients(db)
    cnt_fn = db_clients.get_firmware_count_filename(item.filename)
    data_fw = db_clients.get_stats_for_fn(12, 30, item.filename)
    return render_template('firmware-details.html',
                           fw=item,
                           qa_capability=session['qa_capability'],
                           orig_filename='-'.join(item.filename.split('-')[1:]),
                           embargo_url=embargo_url,
                           qa_group=qa_group,
                           cnt_fn=cnt_fn,
                           fwid=fwid,
                           graph_labels=_get_chart_labels_months()[::-1],
                           graph_data=data_fw[::-1])