There are no longer two separate projects living inside the horizon
repository. There is a single project now with a single setup.py,
single README, etc.
The openstack-dashboard/dashboard django project is now named
"openstack_dashboard" and lives as an example project in the
topmost horizon directory.
The "horizon/horizon" directory has been bumped up a level and now
is directly on the path when the root horizon directory is on
your python path.
now ships in the horizon/static dir rather than
All the corresponding setup, installation, build, and env scripts
have been updated accordingly.
Implements blueprint unified-packaging.
* Moves all tests to use a single set of central test data and
Adds a nifty manager for it.
Implements blueprint unified-test-data.
* Cleans up API code and API tests so that we're not testing
code that has no custom logic, or wrapping objects unnecessarily.
Implements blueprint api-simplification.
* Adds lots of docs on testing. It's a good step towards
* Improves API exception handling for duplicate objects and containers.
Fixes bug 930816.
The glance.client.Client.get_image() call returns a
tuple of (metadata, image_iterator). Unfortunately,
Horizon's glance API calls get_image() when it means
to call get_image_meta(). Because the call to get_image()
simply ignores the image iterator returned from get_image(),
when the image iterator is garbage-collected, this causes
the connection to Glance to be closed, however by that time
the socket bound to the iterator has been switched out by
eventlet. The result is lots of these in the Glance API log:
2011-09-28 17:46:12 DEBUG [glance.store.filesystem] Found image at /opt/stack/glance/images/3. Returning in ChunkedFile.
2011-09-28 17:46:12 DEBUG [eventlet.wsgi.server] Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/eventlet/wsgi.py", line 351, in handle_one_response
File "/usr/lib/pymodules/python2.7/eventlet/wsgi.py", line 301, in write
File "/usr/lib/python2.7/socket.py", line 334, in writelines
File "/usr/lib/python2.7/socket.py", line 303, in flush
File "/usr/lib/pymodules/python2.7/eventlet/greenio.py", line 283, in sendall
tail = self.send(data, flags)
File "/usr/lib/pymodules/python2.7/eventlet/greenio.py", line 269, in send
total_sent += fd.send(data[total_sent:], flags)
error: [Errno 104] Connection reset by peer
This patch fixes the improper calls to get_image() by replacing them
with appropriate calls to get_image_meta().
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