Permalink
Browse files

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
  • Loading branch information...
1 parent 91ceb59 commit 9742842795e964c7f260aec831665d5cb28cd420 @gabrielhurley gabrielhurley committed Oct 31, 2011
Showing 406 changed files with 21,657 additions and 19,270 deletions.
View
@@ -1,11 +1,11 @@
-django-openstack/.installed.cfg
-django-openstack/bin
-django-openstack/develop-eggs/
-django-openstack/downloads/
-django-openstack/eggs/
-django-openstack/parts/
-django-openstack/src/django_nova.egg-info
-django-openstack/src/django_openstack.egg-info
+horizon/.installed.cfg
+horizon/bin
+horizon/develop-eggs/
+horizon/downloads/
+horizon/eggs/
+horizon/parts/
+horizon/src/django_nova.egg-info
+horizon/src/django_openstack.egg-info
django-nova-syspanel/src/django_nova_syspanel.egg-info
openstack-dashboard/.dashboard-venv
openstack-dashboard/local/dashboard_openstack.sqlite3
View
@@ -5,19 +5,20 @@ coverage.xml
pep8.txt
pylint.txt
reports
-django-openstack/.installed.cfg
-django-openstack/bin
-django-openstack/develop-eggs/
-django-openstack/downloads/
-django-openstack/eggs/
-django-openstack/htmlcov
-django-openstack/launchpad
-django-openstack/parts/
-django-openstack/django_nova.egg-info
-django-openstack/django_openstack.egg-info
+horizon/.installed.cfg
+horizon/bin
+horizon/develop-eggs/
+horizon/downloads/
+horizon/eggs/
+horizon/htmlcov
+horizon/launchpad
+horizon/parts/
+horizon/django_nova.egg-info
+horizon/horizon.egg-info
+horizon/django_openstack.egg-info
django-nova-syspanel/src/django_nova_syspanel.egg-info
openstack-dashboard/.dashboard-venv
openstack-dashboard/local/dashboard_openstack.sqlite3
openstack-dashboard/local/local_settings.py
build/
-doc/source/sourcecode
+docs/source/sourcecode
View
34 README
@@ -4,14 +4,14 @@ OpenStack Dashboard (Horizon)
The OpenStack Dashboard is a Django based reference implementation of a web
based management interface for OpenStack.
-It is based on django-openstack, which is designed to be a generic Django
-module that can be re-used in other sites.
+It is based on the ``horizon`` module, which is designed to be a generic Django
+app that can be re-used in other projects.
For more information about how to get started with the OpenStack Dashboard,
view the README file in the openstack-dashboard folder.
-For more information about working directly with django-openstack, see the
-README file in the django-openstack folder.
+For more information about working directly with ``horizon``, see the
+README file in the ``horizon`` folder.
For release management:
@@ -29,21 +29,21 @@ Project Structure and Testing:
------------------------------
This project is a bit different from other Openstack projects in that it has
-two very distinct components underneath it: django-openstack, and
-openstack-dashboard.
+two very distinct components underneath it: ``horizon``, and
+``openstack-dashboard``.
-django-openstack holds the generic libraries and components that can be
-used in any Django project. In testing, this component is set up with
-buildout (see run_tests.sh), and any dependencies that get added need to
-be added to the django-openstack/buildout.cfg file.
+The ``horizon`` directory holds the generic libraries and components that can
+be used in any Django project. In testing, this component is set up with
+buildout (see ``run_tests.sh``), and any dependencies that get added need to
+be added to the ``horizon/buildout.cfg`` file.
-openstack-dashboard is a reference django project that uses django-openstack
-and is built with a virtualenv and tested through that environment. If
-depdendencies are added that the reference django project needs, they
-should be added to openstack-dashboard/tools/pip-requires.
+The ``openstack-dashboard`` directory contains a reference Django project that
+uses ``horizon`` and is built with a virtualenv and tested through that
+environment. If dependencies are added that ``openstack-dashboard`` requires
+they should be added to ``openstack-dashboard/tools/pip-requires``.
-The run_tests.sh script invokes tests and analysis on both of these
-components in it's process, and is what Jenkins uses to verify the
+The ``run_tests.sh`` script invokes tests and analyses on both of these
+components in its process, and is what Jenkins uses to verify the
stability of the project.
To run the tests::
@@ -55,7 +55,7 @@ Building Contributor Documentation
This documentation is written by contributors, for contributors.
-The source is maintained in the `doc/source` folder using
+The source is maintained in the ``docs/source`` folder using
`reStructuredText`_ and built by `Sphinx`_
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
View
@@ -1,56 +0,0 @@
-Django-OpenStack
----------------------
-
-The Django-OpenStack 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 django-openstack module.
-
-Of course, if you are developing your own Django site using django-openstack, then
-you can disregard this advice.
-
-
-
-Getting Started
----------------
-
-Django-OpenStack 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 django-openstack 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 django_openstack by setting
-NOSE_WITH_COVERAGE:
-
- $ NOSE_WITH_COVERAGE=true bin/test
-
-Get even better coverage info by running coverage directly:
-
- $ coverage run --branch --source django_openstack bin/django test django_openstack && coverage html
Oops, something went wrong.

0 comments on commit 9742842

Please sign in to comment.