Beispiel #1
0
def admin_edit_release(relnum):
    release = dbtools.get_release(SESSION, relnum)
    if not release:
        flask.flash('No release %s found' % relnum)
        return flask.redirect(flask.url_for('index'))

    form = ReleaseForm(obj=release)
    if form.validate_on_submit():
        form.populate_obj(obj=release)
        SESSION.commit()

        dbtools.fedmsg_publish(
            'release.edit',
            dict(
                agent=flask.g.fas_user.username,
                release=release.to_json(),
            ))

        flask.flash('Release "%s" updated' % release.releasenum)
        return flask.redirect(flask.url_for('index'))
    return flask.render_template(
        'release_new.html',
        form=form,
        release=release,
        submit_text='Edit release')
Beispiel #2
0
def upload_results(test_result, username, authenticated=False):
    ''' Actually try to upload the results into the database.
    '''
    allowed_file(test_result)

    logdir = APP.config.get('LOG_DIR', 'logs')
    if not os.path.exists(logdir) and not os.path.isdir(logdir):
        os.mkdir(logdir)

    try:
        (testdate, testset, testkver, testrel,
         testresult, failedtests) = parseresults(test_result)
    except Exception as err:
        APP.logger.debug(err)
        raise InvalidInputException('Could not parse these results')

    relarch = testkver.split(".")
    fver = relarch[-2].replace("fc", "", 1)
    testarch = relarch[-1]
    # Work around for F19 and older kver conventions
    if testarch == "PAE":
        testarch = "i686+PAE"
        fver = relarch[-3].replace("fc", "", 1)

    username = username
    if is_authenticated():
        username = flask.g.fas_user.username

    test = dbtools.KernelTest(
        tester=username,
        testdate=testdate,
        testset=testset,
        kver=testkver,
        fver=fver,
        testarch=testarch,
        testrel=testrel.decode('utf-8'),
        testresult=testresult,
        failedtests=failedtests,
        authenticated=authenticated,
    )

    SESSION.add(test)
    SESSION.flush()

    if authenticated:
        dbtools.fedmsg_publish(
            'upload.new',
            dict(
                agent=username,
                test=test.to_json(),
            ))

    filename = '%s.log' % test.testid
    test_result.seek(0)
    test_result.save(os.path.join(logdir, filename))

    return test
Beispiel #3
0
def admin_new_release():
    form = ReleaseForm()
    if form.validate_on_submit():

        release = dbtools.Release()
        SESSION.add(release)
        form.populate_obj(obj=release)
        SESSION.commit()

        dbtools.fedmsg_publish(
            'release.new',
            dict(
                agent=flask.g.fas_user.username,
                release=release.to_json(),
            ))

        flask.flash('Release "%s" added' % release.releasenum)
        return flask.redirect(flask.url_for('index'))
    return flask.render_template(
        'release_new.html',
        form=form,
        submit_text='Create release')