How To install ResultsDB

This article describes the installation process of ResultsDB to be used together with AutoQA.

= Prerequisities =

Installed Fedora 14+ or RHEL 6, preferably in a virtual environment.

= Deploying ResultsDB as Apache2/wsgi application =

Install apache and mod_wsgi yum install httpd mod_wsgi

Install and configure mysql yum install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysqladmin -u root password 'new-password'

mysql -u root -p

create database resultsdb; grant usage on *.* to resultsdb@localhost identified by 'TOP_SECRET_PASSWORD'; grant all privileges on resultsdb.* to resultsdb@localhost; exit

Setup base virtualenv yum install python-pycurl python-fedora MySQL-python python-virtualenv gcc mkdir -p /usr/local/pythonenv cd /usr/local/pythonenv virtualenv resultsdb chown -R apache:apache resultsdb

Clone the resultsdb git & initialize the base virtualenv mkdir git chown apache:apache git sudo -u apache bash cd git git clone git://git.fedorahosted.org/ResultsDB.git resultsdb source /usr/local/pythonenv/resultsdb/bin/activate easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools cd /usr/local/pythonenv/git/resultsdb/resultsdb/ python setup.py develop exit source /usr/local/pythonenv/resultsdb/bin/activate

Install modwsgi deploy helper tool cd ~/ easy_install bzr mkdir modwsgideploy cd modwsgideploy bzr branch http://bazaar.launchpad.net/~mcfletch/modwsgideploy/parameterized/ cd parametrized/trunk python setup.py develop Prepare the actual deployment data mkdir /usr/local/turbogears cd /usr/local/pythonenv/git/resultsdb/resultsdb/ cp -r ../resultsdb /usr/local/turbogears/ paster make-config resultsdb production.ini mv production.ini /usr/local/turbogears/resultsdb mkdir /usr/local/turbogears/resultsdb/python-eggs cd /usr/local/pythonenv/ chown -R apache:apache resultsdb

Use the modwsgi_deploy tool to create apache config files cd /usr/local/turbogears/resultsdb paster modwsgi_deploy --logging -b /usr/local/pythonenv/resultsdb

Apacheuser needs to own the deployed directory & files chown -R apache:apache /usr/local/turbogears/resultsdb

And we need to setup the links in virtualenv correctly for the /usr/local/turbogears/resultsdb cd /usr/local/turbogears/resultsdb python setup.py develop deactivate

Config files
Copy apache config file cp /usr/local/turbogears/resultsdb/apache/resultsdb /etc/httpd/conf.d/resultsdb.conf

Edit /usr/local/turbogears/resultsdb/production.ini [Default] -> debug = false [app:main] -> full_stack = false [app:main] -> set debug = false [app:main] -> sqlalchemy.url = mysql://resultsdb:TOP_SECRET_PASSWORD@localhost:3306/resultsdb

 add "WSGISocketPrefix /var/run/wsgi" (without quotes) to /etc/httpd/conf.d/wsgi.conf

Change /etc/httpd/conf.d/resultsdb.conf Original line: WSGIScriptAlias /resultsdb/ /usr/local/turbogears/resultsdb/apache/resultsdb.wsgi Change line to (notice the deleted slash at the end of the originally '/resultsdb/'): WSGIScriptAlias /resultsdb /usr/local/turbogears/resultsdb/apache/resultsdb.wsgi

Change /usr/local/turbogears/resultsdb/apache/resultsdb.wsgi (sometimes, the line is already OK, so just leave it there :)) Original line:    site.addsitedir('/usr/local/pythonenv/resultsdb/resultsdb/lib/python2.6/site-packages') Changed line:     site.addsitedir('/usr/local/pythonenv/resultsdb/lib/python2.6/site-packages') Restart the httpd service, and try to access http://url.of.your.server/resultsdb/ you should see the ResultsDB's "man" page.

Populating MySQL database
source /usr/local/pythonenv/resultsdb/bin/activate cd /usr/local/turbogears/resultsdb paster setup-app production.ini deactivate

= Developer Setup =

Install and configure mysql yum install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysqladmin -u root password 'new-password'

mysql -u root -p

create database resultsdb; grant usage on *.* to resultsdb@localhost identified by '9zWyNtmBmHcUe6Yn'; grant all privileges on resultsdb.* to resultsdb@localhost; exit

Prepare virtualenv environment yum install gcc sqlite-devel python-virtualenv

virtualenv tg2env cd tg2env source bin/activate easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools

Download ResultsDB from GIT git clone git://git.fedorahosted.org/ResultsDB.git resultsdb cd resultsdb/resultsdb

Install dependencies and setup the application yum install python-pycurl python-fedora MySQL-python python setup.py develop paster setup-app development.ini

ResultsDB
Start the ResultsDB instance in screen screen -S resultsdb paster serve development.ini --reload

Turbogears welcome screen should be now visible on http://localhost:8081. Either press  to send screen to background, or open another terminal.

Test the XMLRPC interface
python

import xmlrpclib s = xmlrpclib.ServerProxy("http://localhost:8081/xmlrpc", allow_none = 1) s.get_metadata("https://fedoraproject.org/wiki/User:Jskladan/Sandbox:Rpmlint_Testcase_Metadata")

Expected result: {'required_keyval': ['pkg_name', 'envr', 'arch', 'owner']}

Exit Python shell exit

Stop the application
If you used the screen terminal to run ResultsDB, reattach it using screen -r resultsdb or switch to the terminal window in which you started the application.

Press  to kill the running Turbogears application. Then stop the virtualenv deactivate