Gabriel Hurley 9742842795 Re-architects the OpenStack Dashboard for modularity and extensibility.
Implements blueprint extensible-architecture.
Implements blueprint improve-dev-documentation.
Implements blueprint gettext-everywhere.
Implements blueprint sphinx-docs.

Complete re-architecture of the dashboard to transform it from a standalone django-openstack app to a Horizon framework for building dashboards. See the docs for more information.

Incidentally fixes the following bugs:

Fixes bug 845868 -- no PEP8 violations.
Fixes bug 766096 -- the dashboard can now be installed at any arbitrary URL.
Fixes bug 879111 -- tenant id is now controlled solely by the tenant switcher, not the url (which was disregarded anyway)
Fixes bug 794754 -- output of venv installation is considerably reduced.

Due to the scale and scope of this patch I recommend reviewing it on github: https://github.com/gabrielhurley/horizon/tree/extensible_architecture

Change-Id: I8e63f7ea235f904247df40c33cb66338d973df9e
2011-11-07 12:59:21 -08:00

60 lines
1.6 KiB
Plaintext

========================================
Horizon: The OpenStack Dashboard Project
========================================
The Horizon project is a Django module that is used to provide web based
interactions with an OpenStack cloud.
There is a reference implementation that uses this module located at:
http://launchpad.net/horizon
It is highly recommended that you make use of this reference implementation
so that changes you make can be visualized effectively and are consistent.
Using this reference implementation as a development environment will greatly
simplify development of the ``horizon`` module.
Of course, if you are developing your own Django site using Horizon, then
you can disregard this advice.
Getting Started
===============
Horizon uses Buildout (http://www.buildout.org/) to manage local development.
To configure your local Buildout environment first install the following
system-level dependencies:
* python-dev
* git
* bzr
Then instantiate buildout with::
$ python bootstrap.py
$ bin/buildout
This will install all the dependencies of Horizon and provide some useful
scripts in the ``bin/`` directory:
bin/python provides a python shell for the current buildout.
bin/django provides django functions for the current buildout.
You should now be able to run unit tests as follows::
$ bin/django test
or::
$ bin/test
You can run unit tests with code coverage on Horizon by setting
``NOSE_WITH_COVERAGE``::
$ NOSE_WITH_COVERAGE=true bin/test
Get even better coverage info by running coverage directly::
$ coverage run --branch --source horizon bin/django test horizon && coverage html