Skip to content
The Fedora Hosted request system. Now on Fedora Hosted.
Python JavaScript
Find file

Fedora Hosted Processor

This application stores, manages, and processes Fedora Hosted requests.

Project Goals

Web Interface

  • Provide an easy interface for any person to request a project on Fedora Hosted, and store the requests in a database.
  • Be awesome. Don't suck.

CLI Interface

  • Allow administrators to easily process new hosted requests.
  • Allow users to easily create hosted requests (alternative to the web interface).
  • Provide a noop mode to see what would happen without actually doing anything.
  • Be awesome. Don't suck.


  • Admin starts processing the request (./ -p 1)
  • Script asks for admin's FAS username/password.
  • Script creates the new FAS group.
  • Script runs all the commands needed on hostedXX.
  • Script tells the web app to check with FAS and see if the new group exists.
    • This prevents having to send FAS auth info to the web app.
    • If the group exists, the web app sets HostedRequest.completed = true

Dependencies (Fedora packages)

  • python-fedora
  • python-flask
  • python-flask-sqlalchemy
  • python-flask-wtf
  • python-flask-mail
  • python-lamson
  • python-sqlalchemy
  • python-wtforms
  • ansible
  • python-argparse (for CLI, and only for Python <2.7 (needed on RHEL 6))
  • python-pep8 (if you plan on hacking, not needed to deploy)


To set up the app, copy the included etc/ to etc/ and edit its values appropriately.

Then point the FEDORAHOSTED_CONFIG environment variable to this config: export FEDORAHOSTED_CONFIG=`pwd`/etc/

If you're deploying via (the currently non-existent) rpm file, simply edit /etc/fedorahosted/ and: export FEDORAHOSTED_CONFIG=/etc/fedorahosted/

Then, look to Flask's Documentation for figuring out the best way to deploy. In Fedora Infrastructure, we will likely use mod_wsgi, simply for the fact that we already have infrastructure built up around it, and know how to support it.


Please have read and signed the Fedora Project Contributor Agreement before sending patches.

Please follow PEP 8 and ensure all unit tests pass.

A good .git/hooks/pre-commit hook is as follows (and make sure the hook is chmod +x) though it does depend on the package: python-pep8:

find . -type d -name fenv -prune -o \( -name '*.py' -o -name 'fedorahosted' -type f \) -print | xargs pep8 && python

If you plan on contributing often, consider adding FEDORAHOSTED_CONFIG to your .bash_profile. To do this, simply run this command, from the root directory of your clone clone of the git repo. This prevents you from having to export the variable every time you open a new shell and decide to hack on the app.

echo "export FEDORAHOSTED_CONFIG=`pwd`/etc/" >> ~/.bash_profile

Above all, have fun, and don't be afraid to ask for help. We hang out in #fedora-apps on Freenode.



Something went wrong with that request. Please try again.