Skip to content

The test results store engine for (not only) Fedora QA tools

License

Notifications You must be signed in to change notification settings

hluk/resultsdb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResultsDB

logo of ResultsDB

What is ResultsDB

ResultsDB is a results store engine for (not only) Fedora QA tools.

The API v2 documentation can be found at http://docs.resultsdb20.apiary.io/.

Repositories

Quick development setup

If you encounter any installation issues, it's possible that you don't have gcc and necessary C development headers installed to compile C extensions from PyPI. Either install those based on the error messages, or install the necessary packages directly to your system. See requirements.txt to learn how.

Install the project:

$ poetry run python -m ensurepip --upgrade
$ poetry install

Initialize your database:

$ DEV=true poetry run ./init_db.sh

Run the server:

$ DEV=true poetry run python runapp.py

The server is now running with a very simple frontend at http://localhost:5001. API calls can be sent to http://localhost:5001/api/v2.0. All data is stored inside /var/tmp/resultsdb_db.sqlite.

Adjusting configuration

You can configure this app by copying conf/settings.py.example into conf/setting.py and adjusting values as you see fit. It overrides default values in resultsdb/config.py.

Using with libtaskotron

You might want to use this tool together with libtaskotron. To use your own ResultsDB server in libtaskotron, edit /etc/taskotron/taskotron.yaml and set the following value::

resultsdb_server: http://localhost:5001/api/v2.0

You might also need to adjust reporting_enabled and report_to_resultsdb, depending on your local settings.

Using real-life data from Fedora Infra dumps

Sometimes, you might want to check some performance tweaks with real-life data. The easy solution might be using our daily dumps and a Postgres instance in Docker::

docker run --name postgres_resultsdb -e POSTGRES_USER=resultsdb -e POSTGRES_PASSWORD=resultsdb -d -p 65432:5432 postgres
wget https://infrastructure.fedoraproject.org/infra/db-dumps/resultsdb.dump.xz
xzcat resultsdb.dump.xz | docker exec -i postgres_resultsdb psql -Uresultsdb

Then just change your config (for DEV environment, you can use conf/settings.py file) to contain this db connector::

SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://resultsdb:resultsdb@localhost:65432/resultsdb'

And run as usual.

Running test suite

After making changes run tox -e black-format to reformat the code.

You can run the test suite with the following command::

$ tox

Note, that in order for some of the tests to work properly, tox is configured to spin-up PostgreSQL in a docker container using the tox-docker plugin, which needs to be installed separately. The best option probably is::

$ pip install --user tox-docker
$ pip3 install --user tox-docker

Should you, for some reason avoid docker, you could run the following command (with virtualenv active)::

$ NO_CAN_HAS_POSTGRES=sadly pytest

To use tox-docker with podman without requiring root, you can use tox-podman.sh script that wraps tox::

$ ./tox-podman.sh -e py39

Deployment

If you're trying to deploy ResultsDB, you might find some helpful instructions in the Fedora infra docs.

About

The test results store engine for (not only) Fedora QA tools

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Python 90.7%
  • HTML 3.4%
  • Makefile 2.2%
  • Dockerfile 1.9%
  • Shell 1.2%
  • CSS 0.3%
  • Mako 0.3%