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