Django application for indexing and searching all plainbox providers
You should run Ubuntu 14.04 (but really only tested on 14.10) with the latest version of python3-plainbox (from the ppa:checkbox-dev/ppa).
You will need python3 versions of python3-whoosh and python3-django-haystack that I've made. You cannot yet get them from the archive. To get them you can rebuild my source packages: https://www.dropbox.com/sh/zvclxmbw8h9u4xk/AADIsl478hQm3VDrowaI2u9qa/packages or wait for me to setup a PPA
The current code is insecure (session cookie secret is in the source code) and inefficient (both database and search engine are not meant for larger deployments) but should be good for a local instance or a demo. Once you have the two special packages installed do this:
$ sudo apt-get install python3-django $ ./manage.py syncdb $ ./manage.py runserver
Now open http://localhost:8000/admin and log in with the username & password you've just created
Go to http://127.0.0.1:8000/admin/providerbackend/repository/add/ and add 'lp:checkbox' (bazaar), then 'lp:cdts' and lp:plainbox-provider-phablet (those are the currently known provider-hosting repositories). You can also add any additional repositories you like, including local directories.
Now go to http://127.0.0.1:8000/admin/providerbackend/repository/ select all the repositories you've created, click on the action combo box (above the first repository) and select 'Probe repository for providers'. This will block for a moment (it should be started through celery but we don't have celery python3 support yet).
Now go back to shell and run ./manage.py update_index
Now you are all set.
You will need to repeat the two steps to update the database and the search index. There is no command-line command to re-probe proviers yet and provider repository checkouts are not cached. This can be improved a lot.
Open http://localhost:8000/ and search for anything you like!
- Add detail pages for various objects
- Add whitelist models
- Add a 'authoritative' flag for repository to indicate that it holds "the best" version of a particular provider
- When probing providers, validate each one and store the problems in a database. Show this on a provider detail page.
- Show a list of flags used anywhere in any provider
- Add a way to download a provider click package
- Make this into pypi for providers? :-)