As part of the kernel test project, a web interface has been developed
to display results. At this point, the only thing reporting to it is
the internal autotest systems, but we would like to get this site
somewhere public. Once we have a public address for the site, we can
have community users testing and submitting results as well. Once
community users are submitting test results, the front end can start
generating fedmsg messages and badge integration can be done.
The application is very lightweight, and should not require too many
resources. We do however need a web server for the front end which is
capable of sitting on the fedmsg bus as well, and a mysql database on
the back end. I expect load to be very light, and we can remove log
files for releases as they are no longer supported to keep this from
growing infinitely. The logs are stored on the front end, but the
average log size is under 3k at this point.
The application requires python and mysql-connector-python, but doesn't
require any additional framework.
The code for the front end is available in git at:
A quick rundown of the design:
Data is submitted via an http post. The submit_test.py script takes
those logs, and looks for the relevant information. If the information
is found, is entered into the mysql database and the log is stored,
renamed to the testid that the database returns.
The front end will consists of a number of static web pages which are
regenerated whenever the autotest systems submit new results. This was
done to keep the load down, there is no need to do dynamic generation of
the landing page which people will see most often. The main page lists
the most current tested kernel for each supported release, the test
results, and a link to the logs. It has links to each supported release
which is a static page listing every kernel tested for that release so
far. If a kernel version is clicked on, a dynamic page is generated
showing all test results for that kernel version.