fix parsing errors and sphinx warnings
Signed-off-by: Ryan Lerch <rlerch@redhat.com>
This commit is contained in:
parent
8fb9b2fdf0
commit
ba720c3d77
98 changed files with 4799 additions and 4788 deletions
|
@ -3,70 +3,68 @@
|
|||
Use v2 Code Of kerneltest Application
|
||||
=====================================
|
||||
|
||||
There is already a work in progress rewrite of kerneltest application started by Jeremy Cline,
|
||||
which was never finished. This document is investigating if this option is feasible
|
||||
and we should continue on the code already written.
|
||||
From meeting with Justin Forbes this code is not 100% ready, which is the reason it was never
|
||||
been released.
|
||||
There is already a work in progress rewrite of kerneltest application started by Jeremy
|
||||
Cline, which was never finished. This document is investigating if this option is
|
||||
feasible and we should continue on the code already written. From meeting with Justin
|
||||
Forbes this code is not 100% ready, which is the reason it was never been released.
|
||||
|
||||
What is in v2
|
||||
-------------
|
||||
|
||||
* Some unit tests in `kerneltest/tests` (not covering everything,
|
||||
but at least part of the code is covered) run by tox - failing
|
||||
with never version of libraries
|
||||
* API calls for `/api/v1/results`
|
||||
- Some unit tests in `kerneltest/tests` (not covering everything, but at least part of
|
||||
the code is covered) run by tox - failing with never version of libraries
|
||||
- API calls for `/api/v1/results`
|
||||
|
||||
* GET method to retrieve tests information
|
||||
* POST method to add new test run to db
|
||||
(authentication scopes doesn't seem to be set correctly)
|
||||
* Sending Fedora message when adding a new test run
|
||||
- GET method to retrieve tests information
|
||||
- POST method to add new test run to db (authentication scopes doesn't seem to be set
|
||||
correctly)
|
||||
- Sending Fedora message when adding a new test run
|
||||
|
||||
* Basic OIDC implementation using `flask_oidc` library
|
||||
* Configuration file loading and defaults
|
||||
* Forms for updating/creating release and submitting logs are in place
|
||||
* Web routes implemented
|
||||
- Basic OIDC implementation using `flask_oidc` library
|
||||
- Configuration file loading and defaults
|
||||
- Forms for updating/creating release and submitting logs are in place
|
||||
- Web routes implemented
|
||||
|
||||
* `/index`
|
||||
* `/login`
|
||||
* `/logout`
|
||||
* `/release/<release>` - information about specific fedora release
|
||||
* `/kernel/<kernel>` - information about specific kernel version
|
||||
* `/results/<test_run_id>` - information about specific test
|
||||
* `/upload` - test result uploading
|
||||
* `/stats`
|
||||
* `/admin/new` - add new release (does emit fedora message)
|
||||
* `/admin/<release>/edit` - edit existing release (does emit fedora message)
|
||||
- `/index`
|
||||
- `/login`
|
||||
- `/logout`
|
||||
- `/release/<release>` - information about specific fedora release
|
||||
- `/kernel/<kernel>` - information about specific kernel version
|
||||
- `/results/<test_run_id>` - information about specific test
|
||||
- `/upload` - test result uploading
|
||||
- `/stats`
|
||||
- `/admin/new` - add new release (does emit fedora message)
|
||||
- `/admin/<release>/edit` - edit existing release (does emit fedora message)
|
||||
|
||||
* DB models for Test, TestRun and Release
|
||||
- DB models for Test, TestRun and Release
|
||||
|
||||
What is missing in v2
|
||||
---------------------
|
||||
|
||||
* Documentation
|
||||
* No support for uploading logs yet
|
||||
* Web interface revitalization
|
||||
* Code itself more than 3 years old, there could be some issue with newer libraries
|
||||
- Documentation
|
||||
- No support for uploading logs yet
|
||||
- Web interface revitalization
|
||||
- Code itself more than 3 years old, there could be some issue with newer libraries
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
* There is a `kerneltest/harness.py` source file in the v2. This could be ignored as it's
|
||||
maintained separately and isn't part of the kerneltest application.
|
||||
* The Vagrantfile introduced with v2 rewrite doesn't start with vagrant 2.2.19, see
|
||||
- There is a `kerneltest/harness.py` source file in the v2. This could be ignored as
|
||||
it's maintained separately and isn't part of the kerneltest application.
|
||||
- The Vagrantfile introduced with v2 rewrite doesn't start with vagrant 2.2.19, see
|
||||
https://github.com/hashicorp/vagrant/issues/12878
|
||||
* Ansible for vagrant provisioning is missing installation of some packages for database
|
||||
- Ansible for vagrant provisioning is missing installation of some packages for database
|
||||
creation (python-alembic, python-toml)
|
||||
* Ansible for vagrant provisioning doesn't create config file. Because of this creation of
|
||||
the database fails
|
||||
* The current state of v2 can't be even started, failing on newer version of wtforms library
|
||||
- Ansible for vagrant provisioning doesn't create config file. Because of this creation
|
||||
of the database fails
|
||||
- The current state of v2 can't be even started, failing on newer version of wtforms
|
||||
library
|
||||
|
||||
The Good Points
|
||||
---------------
|
||||
|
||||
1. Not starting from scratch = less work
|
||||
|
||||
|
||||
The Bad points
|
||||
--------------
|
||||
|
||||
|
|
|
@ -3,54 +3,52 @@
|
|||
Current Live Version of Kernel Test App v1.2.1
|
||||
==============================================
|
||||
|
||||
The current version of the Kernel Test App running is v1.2.1
|
||||
The code is no longer maintained and stale since 2017. There was an attempted
|
||||
rewrite but this was never put live
|
||||
The current version of the Kernel Test App running is v1.2.1 The code is no longer
|
||||
maintained and stale since 2017. There was an attempted rewrite but this was never put
|
||||
live
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
Release 1.2.1: https://github.com/jmflinuxtx/kerneltest-harness/tree/c2d807506e2a9ac3ca6bc5b60405b5700a72719c
|
||||
Release 1.2.1:
|
||||
https://github.com/jmflinuxtx/kerneltest-harness/tree/c2d807506e2a9ac3ca6bc5b60405b5700a72719c
|
||||
|
||||
What is in v1.21
|
||||
-------------
|
||||
----------------
|
||||
|
||||
* Tests are in the `tests` folder and appear to cover most functionality
|
||||
* Uses flask `fas_openid` library for authentication
|
||||
* Configuration file loading and defaults
|
||||
* Forms for updating/creating release and submitting logs are in place
|
||||
* Web routes implemented
|
||||
|
||||
* `/` - index
|
||||
* `/release/<release>` - info about release version specified
|
||||
* `/kernel/<kernel>` - info about kernel version specified
|
||||
* `/logs/<logid>`
|
||||
* `/stats`
|
||||
* `/upload`
|
||||
* `/upload/autotest`
|
||||
* `/upload/anonymous`
|
||||
* `/login`
|
||||
* `/logout`
|
||||
* `/admin/new` - Add new release
|
||||
* `/admin/<relnum>/edit` - edit existing release
|
||||
- Tests are in the `tests` folder and appear to cover most functionality
|
||||
- Uses flask `fas_openid` library for authentication
|
||||
- Configuration file loading and defaults
|
||||
- Forms for updating/creating release and submitting logs are in place
|
||||
- Web routes implemented
|
||||
|
||||
- `/` - index
|
||||
- `/release/<release>` - info about release version specified
|
||||
- `/kernel/<kernel>` - info about kernel version specified
|
||||
- `/logs/<logid>`
|
||||
- `/stats`
|
||||
- `/upload`
|
||||
- `/upload/autotest`
|
||||
- `/upload/anonymous`
|
||||
- `/login`
|
||||
- `/logout`
|
||||
- `/admin/new` - Add new release
|
||||
- `/admin/<relnum>/edit` - edit existing release
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
* There is no documentation
|
||||
* This is the live version and it works as is
|
||||
* Web interface outdated
|
||||
* Old unmaintained codebase(all functionality in single file)
|
||||
* Local vagrant solution uses outdated version of Fedora and doesn't currently
|
||||
work
|
||||
- There is no documentation
|
||||
- This is the live version and it works as is
|
||||
- Web interface outdated
|
||||
- Old unmaintained codebase(all functionality in single file)
|
||||
- Local vagrant solution uses outdated version of Fedora and doesn't currently work
|
||||
|
||||
The Good Points
|
||||
---------------
|
||||
|
||||
1. The application works as expected and provides necessary functionality
|
||||
|
||||
|
||||
The Bad points
|
||||
--------------
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
Enhancement of dev env for kerneltest
|
||||
=====================================
|
||||
|
||||
There is plenty of tech debt regarding the kerneltest repository. This document
|
||||
will try to address all the current tech debt tied to kerneltest repository.
|
||||
There is plenty of tech debt regarding the kerneltest repository. This document will try
|
||||
to address all the current tech debt tied to kerneltest repository.
|
||||
|
||||
Investigation
|
||||
-------------
|
||||
|
||||
* CI - Currently using Travis CI, which is no longer working. Recommending to switch
|
||||
to either GitHub action or use Zuul CI
|
||||
* Development environment - There is a vagrant using F25, needs to be updated
|
||||
* Automatic dependency updater - recommending renovate
|
||||
* When moving to OpenShift we can consolidate adding automatic deployment with
|
||||
GitHub webhooks
|
||||
- CI - Currently using Travis CI, which is no longer working. Recommending to switch to
|
||||
either GitHub action or use Zuul CI
|
||||
- Development environment - There is a vagrant using F25, needs to be updated
|
||||
- Automatic dependency updater - recommending renovate
|
||||
- When moving to OpenShift we can consolidate adding automatic deployment with GitHub
|
||||
webhooks
|
||||
|
|
|
@ -4,48 +4,47 @@ kerneltest
|
|||
Purpose
|
||||
-------
|
||||
|
||||
This investigation's goal is to address tech debt of kerneltest application.
|
||||
kerneltest applications is used by Fedora QA for submitting test logs for
|
||||
kernel builds in Fedora. It also provides web interface for users to access
|
||||
and upload logs.
|
||||
Currently there is a partial rewrite v2 in repository, which is not functionality
|
||||
complete and was never released.
|
||||
This investigation's goal is to address tech debt of kerneltest application. kerneltest
|
||||
applications is used by Fedora QA for submitting test logs for kernel builds in Fedora.
|
||||
It also provides web interface for users to access and upload logs. Currently there is a
|
||||
partial rewrite v2 in repository, which is not functionality complete and was never
|
||||
released.
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
* kerneltest repo: https://github.com/jmflinuxtx/kerneltest-harness
|
||||
* kerneltest web: https://apps.fedoraproject.org/kerneltest/
|
||||
* kerneltest ansible: https://pagure.io/fedora-infra/ansible/blob/main/f/roles/kerneltest
|
||||
* kerneltest wiki: http://fedoraproject.org/wiki/KernelTestingInitiative
|
||||
- kerneltest repo: https://github.com/jmflinuxtx/kerneltest-harness
|
||||
- kerneltest web: https://apps.fedoraproject.org/kerneltest/
|
||||
- kerneltest ansible:
|
||||
https://pagure.io/fedora-infra/ansible/blob/main/f/roles/kerneltest
|
||||
- kerneltest wiki: http://fedoraproject.org/wiki/KernelTestingInitiative
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* Be able to upload logs anonymously, authenticated, super user
|
||||
* Superuser should use api token or similar(no password login required)
|
||||
* Be able to view logs on front page showing super user ones
|
||||
* When clicking on the release it should show all logs for a release
|
||||
* Stats: https://apps.fedoraproject.org/kerneltest/stats (currently stored in postgres)
|
||||
* Logs needs to be saved in persistent volume
|
||||
* Send Fedora Messages for badges
|
||||
* Size limitation on the uploaded logs (currently hardcoded in code)
|
||||
* Documentation
|
||||
* OpenShift deployment
|
||||
|
||||
- Be able to upload logs anonymously, authenticated, super user
|
||||
- Superuser should use api token or similar(no password login required)
|
||||
- Be able to view logs on front page showing super user ones
|
||||
- When clicking on the release it should show all logs for a release
|
||||
- Stats: https://apps.fedoraproject.org/kerneltest/stats (currently stored in postgres)
|
||||
- Logs needs to be saved in persistent volume
|
||||
- Send Fedora Messages for badges
|
||||
- Size limitation on the uploaded logs (currently hardcoded in code)
|
||||
- Documentation
|
||||
- OpenShift deployment
|
||||
|
||||
What Needs To Be Addressed?
|
||||
---------------------------
|
||||
|
||||
* Update authentication library
|
||||
* Switch CI
|
||||
* fedmsg -> fedora messaging (some v2 parts could be used)
|
||||
* python2 -> python3
|
||||
* migration to OpenShift
|
||||
* Documentation - Fedora QA has some
|
||||
* Users don't receive any badges
|
||||
* Update development environment
|
||||
* Web interface (should be revitalized)
|
||||
- Update authentication library
|
||||
- Switch CI
|
||||
- fedmsg -> fedora messaging (some v2 parts could be used)
|
||||
- python2 -> python3
|
||||
- migration to OpenShift
|
||||
- Documentation - Fedora QA has some
|
||||
- Users don't receive any badges
|
||||
- Update development environment
|
||||
- Web interface (should be revitalized)
|
||||
|
||||
Investigation
|
||||
-------------
|
||||
|
@ -60,25 +59,23 @@ Here is the list of ideas/things we discussed/looked at:
|
|||
continue_from_v2
|
||||
enhancement_of_repository
|
||||
|
||||
|
||||
Conclusions
|
||||
-----------
|
||||
|
||||
The best approach for the kerneltest initiative will be the complete rewrite
|
||||
with salvaging what could be salvaged from v1.2.1 and v2 rewrite.
|
||||
The best approach for the kerneltest initiative will be the complete rewrite with
|
||||
salvaging what could be salvaged from v1.2.1 and v2 rewrite.
|
||||
|
||||
Proposed Roadmap
|
||||
----------------
|
||||
|
||||
* Step 1 - Update the development environment
|
||||
* Step 2 - Rewrite the kerneltest app with tests + documentation
|
||||
* Step 3 - OpenShift migration
|
||||
* Step 4 - Database migration
|
||||
- Step 1 - Update the development environment
|
||||
- Step 2 - Rewrite the kerneltest app with tests + documentation
|
||||
- Step 3 - OpenShift migration
|
||||
- Step 4 - Database migration
|
||||
|
||||
Estimate of work
|
||||
----------------
|
||||
|
||||
A complete rewrite of the backend and Openshift deployment is estimated to take
|
||||
3 developers 12 weeks.
|
||||
The frontend is estimated to take 3 developers 8 weeks, although it may be a
|
||||
project the Fedora Websites and Apps team could consider.
|
||||
A complete rewrite of the backend and Openshift deployment is estimated to take 3
|
||||
developers 12 weeks. The frontend is estimated to take 3 developers 8 weeks, although it
|
||||
may be a project the Fedora Websites and Apps team could consider.
|
||||
|
|
|
@ -4,19 +4,18 @@ Complete Rewrite Of kerneltest Application
|
|||
==========================================
|
||||
|
||||
One of the options is to completely rewrite the current solution and start from scratch.
|
||||
This will allow us to address all the requirements and get rid of all the existing tech debt.
|
||||
We can also reuse some code from v2 rewrite.
|
||||
This will allow us to address all the requirements and get rid of all the existing tech
|
||||
debt. We can also reuse some code from v2 rewrite.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
See `https://fedora-arc.readthedocs.io/en/latest/kerneltest/index.html#requirements`_.
|
||||
See https://fedora-arc.readthedocs.io/en/latest/kerneltest/index.html#requirements.
|
||||
|
||||
There are also a few other things that need to be addressed:
|
||||
|
||||
* OpenShift deployment
|
||||
* Database migration (in case the DB schema will change)
|
||||
|
||||
- OpenShift deployment
|
||||
- Database migration (in case the DB schema will change)
|
||||
|
||||
The Good Points
|
||||
---------------
|
||||
|
@ -25,7 +24,6 @@ The Good Points
|
|||
2. More freedom in implementation
|
||||
3. It will be easier to write documentation
|
||||
|
||||
|
||||
The Bad points
|
||||
--------------
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue