Virtualenv

Dependencies

sudo dnf install libffi-devel postgresql-devel openssl-devel koji pcaro-hermit-fonts freetype-devel libjpeg-turbo-devel zeromq-devel git gcc redhat-rpm-config fedora-cert python2-dnf yum

Setup virtualenvwrapper

sudo dnf -y install python-virtualenvwrapper python-createrepo_c createrepo_c

Add the following to your ~/.bashrc:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh

Set PYTHONPATH

Add the following to your ~/.bashrc

export PYTHONPATH=$PYTHONPATH:$HOME/.virtualenvs

Then on the terminal

source ~/.bashrc

Clone the source

git clone https://github.com/fedora-infra/bodhi.git
cd bodhi

Bootstrap the virtualenv

./bootstrap.py
workon bodhi-python2.7

Setting up

python setup.py develop

pip install psycopg2 pyramid_debugtoolbar

Create the development.ini file

Copy devel/development.ini.example to development.ini:

cp devel/development.ini.example development.ini

Run the test suite

py.test

Import the bodhi2 database

curl -O https://infrastructure.fedoraproject.org/infra/db-dumps/bodhi2.dump.xz
sudo -u postgres createdb bodhi2
sudo -u postgres psql -c "create role bodhi2;"
xzcat bodhi2.dump.xz | sudo -u postgres psql bodhi2

Note

If you do not have a PostgreSQL server running, please see the instructions at the bottom of the file.

Adjust database configuration in development.ini file

Set the configuration key sqlalchemy.url to point to the postgresql database. Something like:

sqlalchemy.url = postgresql://postgres:anypasswordworkslocally@localhost/bodhi2 # gitleaks:allow

Upgrade the database

alembic upgrade head

Run the web app

pserve development.ini --reload

Setup the postgresql server

1. Install postgresql

dnf install postgresql-server

2. Setup the Database

As a privileged user on a Fedora system run the following:

sudo postgresql-setup initdb

3. Adjust PostgreSQL Connection Settings

As a privileged user on a Fedora system modify the pg_hba.conf file:

vi /var/lib/pgsql/data/pg_hba.conf

Then adjust the content at the bottom of the file to match the following.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections are *trusted*, any password will work.
host    all             all             127.0.0.1/32            trust
# IPv6 local connections are *trusted*, any password will work.
host    all             all             ::1/128                 trust

If you need to make other modifications to postgresql please make them now.

4. Start PostgreSQL

As a privileged user on a Fedora system run the following:

sudo systemctl start postgresql.service