diff --git a/.gitignore b/.gitignore index d5a8e80262..f0e1ef517e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,10 +8,8 @@ coverage.xml pep8.txt pylint.txt reports -horizon/horizon.egg-info -.horizon-venv -openstack-dashboard/local/dashboard_openstack.sqlite3 -openstack-dashboard/local/local_settings.py +horizon.egg-info +openstack_dashboard/local/local_settings.py docs/build/ docs/source/sourcecode .venv diff --git a/horizon/Makefile b/Makefile similarity index 100% rename from horizon/Makefile rename to Makefile diff --git a/README.rst b/README.rst index 804bcc48eb..2eb3cdfa7e 100644 --- a/README.rst +++ b/README.rst @@ -1,17 +1,12 @@ -OpenStack Dashboard (Horizon) ------------------------------ +============================= +Horizon (OpenStack Dashboard) +============================= -The OpenStack Dashboard is a Django based reference implementation of a web -based management interface for OpenStack. - -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 ``horizon``, see the -README file in the ``horizon`` folder. +Horizon is a Django-based project aimed at providing a complete OpenStack +Dashboard along with an extensible framework for building new dashboards +from reusable components. The ``openstack_dashboard`` module is a reference +implementation of a Django site that uses the ``horizon`` app to provide +web-based interactions with the various OpenStack projects. For release management: @@ -25,38 +20,62 @@ For issue tracking: * https://bugs.launchpad.net/horizon +Getting Started +=============== -Project Structure and Testing: ------------------------------- +For local development, first create a virtualenv for the project. +In the ``tools`` directory there is a script to create one for you: -This project is a bit different from other OpenStack projects in that it has -two very distinct components underneath it: ``horizon``, and -``openstack-dashboard``. + $ python tools/install_venv.py -The ``horizon`` directory holds the generic libraries and components that can -be used in any Django project. +Alternatively, the ``run_tests.sh`` script will also install the environment +for you and then run the full test suite to verify everything is installed +and functioning correctly. -The ``openstack-dashboard`` directory contains a reference Django project that -uses ``horizon``. +Now that the virtualenv is created, you need to configure your local +environment. To do this, create a ``local_settings.py`` file in the ``local/`` +directory. There is a ``local_settings.py.example`` file there that may be +used as a template. -For development, both pieces share an environment which (by default) is -built with the ``tools/install_venv.py`` script. That script creates a -virtualenv and installs all the necessary packages. +If all is well you should able to run the development server locally: + + $ tools/with_venv.sh manage.py runserver + +or, as a shortcut:: + + $ ./run_tests.sh --runserver + + +Settings Up OpenStack +===================== + +The recommended tool for installing and configuring the core OpenStack +components is `Devstack`_. Refer to their documentation for getting +Nova, Keystone, Glance, etc. up and running. + +.. _Devstack: http://devstack.org/ + + +Development +=========== + +For development, start with the getting started instructions above. +Once you have a working virtualenv and all the necessary packages, read on. If dependencies are added to either ``horizon`` or ``openstack-dashboard``, they should be added to ``tools/pip-requires``. 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 +components in its process, and it is what Jenkins uses to verify the stability of the project. If run before an environment is set up, it will ask if you wish to install one. -To run the tests:: +To run the unit tests:: $ ./run_tests.sh Building Contributor Documentation ----------------------------------- +================================== This documentation is written by contributors, for contributors. diff --git a/docs/source/conf.py b/docs/source/conf.py index 8f3dbab2bd..3b2e651e9b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -15,14 +15,12 @@ import sys import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -HORIZON_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "..", "horizon")) -DASHBOARD_DIR = os.path.abspath(os.path.join(BASE_DIR, "..", "..", "openstack-dashboard")) +ROOT = os.path.abspath(os.path.join(BASE_DIR, "..", "..")) -sys.path.insert(0, HORIZON_DIR) -sys.path.insert(0, DASHBOARD_DIR) +sys.path.insert(0, ROOT) # This is required for ReadTheDocs.org, but isn't a bad idea anyway. -os.environ['DJANGO_SETTINGS_MODULE'] = 'dashboard.settings' +os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' import horizon.version @@ -37,8 +35,6 @@ def write_autodoc_index(): for root, dirs, files in os.walk("."): for filename in files: if filename.endswith(".py"): - # root = ./dashboard/test/unit - # filename = base.py # remove the pieces of the root elements = root.split(os.path.sep) # replace the leading "." with the module name @@ -53,10 +49,10 @@ def write_autodoc_index(): return modlist RSTDIR = os.path.abspath(os.path.join(BASE_DIR, "sourcecode")) - SRCS = {'horizon': HORIZON_DIR, - 'dashboard': DASHBOARD_DIR} + SRCS = {'horizon': ROOT, + 'openstack_dashboard': ROOT} - EXCLUDED_MODULES = ('horizon.tests', 'dashboard.tests',) + EXCLUDED_MODULES = ('horizon.tests', 'openstack_dashboard.tests',) CURRENT_SOURCES = {} if not(os.path.exists(RSTDIR)): @@ -118,7 +114,7 @@ def write_autodoc_index(): # Delete auto-generated .rst files for sources which no longer exist for directory, subdirs, files in list(os.walk(RSTDIR)): for old_file in files: - if old_file not in CURRENT_SOURCES[directory]: + if old_file not in CURRENT_SOURCES.get(directory, []): print "Removing outdated file for %s" % old_file os.remove(os.path.join(directory, old_file)) diff --git a/horizon/LICENSE b/horizon/LICENSE deleted file mode 100644 index 68c771a099..0000000000 --- a/horizon/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - diff --git a/horizon/README b/horizon/README deleted file mode 100644 index 76f9607bec..0000000000 --- a/horizon/README +++ /dev/null @@ -1,30 +0,0 @@ -======================================== -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 the common environment configured by ``tools/install_venv.py`` -based on the dependencies listed in ``tools/pip-requires`` for local -development. - -The simplest way to get going is to simply run the ``run_tests.sh`` script -included with the Horizon project. This will set up your local environment -and run the full test suite to verify that everything is working properly. diff --git a/horizon/horizon/__init__.py b/horizon/__init__.py similarity index 100% rename from horizon/horizon/__init__.py rename to horizon/__init__.py diff --git a/horizon/horizon/api/__init__.py b/horizon/api/__init__.py similarity index 100% rename from horizon/horizon/api/__init__.py rename to horizon/api/__init__.py diff --git a/horizon/horizon/api/base.py b/horizon/api/base.py similarity index 100% rename from horizon/horizon/api/base.py rename to horizon/api/base.py diff --git a/horizon/horizon/api/glance.py b/horizon/api/glance.py similarity index 100% rename from horizon/horizon/api/glance.py rename to horizon/api/glance.py diff --git a/horizon/horizon/api/keystone.py b/horizon/api/keystone.py similarity index 100% rename from horizon/horizon/api/keystone.py rename to horizon/api/keystone.py diff --git a/horizon/horizon/api/nova.py b/horizon/api/nova.py similarity index 100% rename from horizon/horizon/api/nova.py rename to horizon/api/nova.py diff --git a/horizon/horizon/api/quantum.py b/horizon/api/quantum.py similarity index 100% rename from horizon/horizon/api/quantum.py rename to horizon/api/quantum.py diff --git a/horizon/horizon/api/swift.py b/horizon/api/swift.py similarity index 100% rename from horizon/horizon/api/swift.py rename to horizon/api/swift.py diff --git a/horizon/horizon/base.py b/horizon/base.py similarity index 100% rename from horizon/horizon/base.py rename to horizon/base.py diff --git a/horizon/horizon/context_processors.py b/horizon/context_processors.py similarity index 100% rename from horizon/horizon/context_processors.py rename to horizon/context_processors.py diff --git a/horizon/horizon/dashboards/__init__.py b/horizon/dashboards/__init__.py similarity index 100% rename from horizon/horizon/dashboards/__init__.py rename to horizon/dashboards/__init__.py diff --git a/horizon/horizon/dashboards/nova/__init__.py b/horizon/dashboards/nova/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/__init__.py rename to horizon/dashboards/nova/__init__.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/__init__.py b/horizon/dashboards/nova/access_and_security/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/__init__.py rename to horizon/dashboards/nova/access_and_security/__init__.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/__init__.py b/horizon/dashboards/nova/access_and_security/floating_ips/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/__init__.py rename to horizon/dashboards/nova/access_and_security/floating_ips/__init__.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/forms.py b/horizon/dashboards/nova/access_and_security/floating_ips/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/forms.py rename to horizon/dashboards/nova/access_and_security/floating_ips/forms.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/tables.py b/horizon/dashboards/nova/access_and_security/floating_ips/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/tables.py rename to horizon/dashboards/nova/access_and_security/floating_ips/tables.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/tests.py b/horizon/dashboards/nova/access_and_security/floating_ips/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/tests.py rename to horizon/dashboards/nova/access_and_security/floating_ips/tests.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/urls.py b/horizon/dashboards/nova/access_and_security/floating_ips/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/urls.py rename to horizon/dashboards/nova/access_and_security/floating_ips/urls.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/floating_ips/views.py b/horizon/dashboards/nova/access_and_security/floating_ips/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/floating_ips/views.py rename to horizon/dashboards/nova/access_and_security/floating_ips/views.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/__init__.py b/horizon/dashboards/nova/access_and_security/keypairs/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/__init__.py rename to horizon/dashboards/nova/access_and_security/keypairs/__init__.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/forms.py b/horizon/dashboards/nova/access_and_security/keypairs/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/forms.py rename to horizon/dashboards/nova/access_and_security/keypairs/forms.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/tables.py b/horizon/dashboards/nova/access_and_security/keypairs/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/tables.py rename to horizon/dashboards/nova/access_and_security/keypairs/tables.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/tests.py b/horizon/dashboards/nova/access_and_security/keypairs/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/tests.py rename to horizon/dashboards/nova/access_and_security/keypairs/tests.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/urls.py b/horizon/dashboards/nova/access_and_security/keypairs/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/urls.py rename to horizon/dashboards/nova/access_and_security/keypairs/urls.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/keypairs/views.py b/horizon/dashboards/nova/access_and_security/keypairs/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/keypairs/views.py rename to horizon/dashboards/nova/access_and_security/keypairs/views.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/panel.py b/horizon/dashboards/nova/access_and_security/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/panel.py rename to horizon/dashboards/nova/access_and_security/panel.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/__init__.py b/horizon/dashboards/nova/access_and_security/security_groups/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/__init__.py rename to horizon/dashboards/nova/access_and_security/security_groups/__init__.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/forms.py b/horizon/dashboards/nova/access_and_security/security_groups/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/forms.py rename to horizon/dashboards/nova/access_and_security/security_groups/forms.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/tables.py b/horizon/dashboards/nova/access_and_security/security_groups/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/tables.py rename to horizon/dashboards/nova/access_and_security/security_groups/tables.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/tests.py b/horizon/dashboards/nova/access_and_security/security_groups/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/tests.py rename to horizon/dashboards/nova/access_and_security/security_groups/tests.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/urls.py b/horizon/dashboards/nova/access_and_security/security_groups/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/urls.py rename to horizon/dashboards/nova/access_and_security/security_groups/urls.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/security_groups/views.py b/horizon/dashboards/nova/access_and_security/security_groups/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/security_groups/views.py rename to horizon/dashboards/nova/access_and_security/security_groups/views.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/tests.py b/horizon/dashboards/nova/access_and_security/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/tests.py rename to horizon/dashboards/nova/access_and_security/tests.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/urls.py b/horizon/dashboards/nova/access_and_security/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/urls.py rename to horizon/dashboards/nova/access_and_security/urls.py diff --git a/horizon/horizon/dashboards/nova/access_and_security/views.py b/horizon/dashboards/nova/access_and_security/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/access_and_security/views.py rename to horizon/dashboards/nova/access_and_security/views.py diff --git a/horizon/horizon/dashboards/nova/containers/__init__.py b/horizon/dashboards/nova/containers/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/__init__.py rename to horizon/dashboards/nova/containers/__init__.py diff --git a/horizon/horizon/dashboards/nova/containers/forms.py b/horizon/dashboards/nova/containers/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/forms.py rename to horizon/dashboards/nova/containers/forms.py diff --git a/horizon/horizon/dashboards/nova/containers/panel.py b/horizon/dashboards/nova/containers/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/panel.py rename to horizon/dashboards/nova/containers/panel.py diff --git a/horizon/horizon/dashboards/nova/containers/tables.py b/horizon/dashboards/nova/containers/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/tables.py rename to horizon/dashboards/nova/containers/tables.py diff --git a/horizon/horizon/dashboards/nova/containers/tests.py b/horizon/dashboards/nova/containers/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/tests.py rename to horizon/dashboards/nova/containers/tests.py diff --git a/horizon/horizon/dashboards/nova/containers/urls.py b/horizon/dashboards/nova/containers/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/urls.py rename to horizon/dashboards/nova/containers/urls.py diff --git a/horizon/horizon/dashboards/nova/containers/views.py b/horizon/dashboards/nova/containers/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/containers/views.py rename to horizon/dashboards/nova/containers/views.py diff --git a/horizon/horizon/dashboards/nova/dashboard.py b/horizon/dashboards/nova/dashboard.py similarity index 100% rename from horizon/horizon/dashboards/nova/dashboard.py rename to horizon/dashboards/nova/dashboard.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/__init__.py b/horizon/dashboards/nova/images_and_snapshots/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/__init__.py rename to horizon/dashboards/nova/images_and_snapshots/__init__.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/__init__.py b/horizon/dashboards/nova/images_and_snapshots/images/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/__init__.py rename to horizon/dashboards/nova/images_and_snapshots/images/__init__.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/forms.py b/horizon/dashboards/nova/images_and_snapshots/images/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/forms.py rename to horizon/dashboards/nova/images_and_snapshots/images/forms.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/panel.py b/horizon/dashboards/nova/images_and_snapshots/images/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/panel.py rename to horizon/dashboards/nova/images_and_snapshots/images/panel.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/tables.py b/horizon/dashboards/nova/images_and_snapshots/images/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/tables.py rename to horizon/dashboards/nova/images_and_snapshots/images/tables.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/tests.py b/horizon/dashboards/nova/images_and_snapshots/images/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/tests.py rename to horizon/dashboards/nova/images_and_snapshots/images/tests.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/urls.py b/horizon/dashboards/nova/images_and_snapshots/images/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/urls.py rename to horizon/dashboards/nova/images_and_snapshots/images/urls.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/images/views.py b/horizon/dashboards/nova/images_and_snapshots/images/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/images/views.py rename to horizon/dashboards/nova/images_and_snapshots/images/views.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/panel.py b/horizon/dashboards/nova/images_and_snapshots/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/panel.py rename to horizon/dashboards/nova/images_and_snapshots/panel.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/__init__.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/__init__.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/__init__.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/forms.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/forms.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/forms.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/panel.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/panel.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/panel.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/tables.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/tables.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/tables.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/tests.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/tests.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/tests.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/urls.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/urls.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/urls.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/views.py b/horizon/dashboards/nova/images_and_snapshots/snapshots/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/snapshots/views.py rename to horizon/dashboards/nova/images_and_snapshots/snapshots/views.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/tests.py b/horizon/dashboards/nova/images_and_snapshots/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/tests.py rename to horizon/dashboards/nova/images_and_snapshots/tests.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/urls.py b/horizon/dashboards/nova/images_and_snapshots/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/urls.py rename to horizon/dashboards/nova/images_and_snapshots/urls.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/views.py b/horizon/dashboards/nova/images_and_snapshots/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/views.py rename to horizon/dashboards/nova/images_and_snapshots/views.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/__init__.py b/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/__init__.py rename to horizon/dashboards/nova/images_and_snapshots/volume_snapshots/__init__.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/panel.py b/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/panel.py rename to horizon/dashboards/nova/images_and_snapshots/volume_snapshots/panel.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tables.py b/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tables.py rename to horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tables.py diff --git a/horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tests.py b/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tests.py rename to horizon/dashboards/nova/images_and_snapshots/volume_snapshots/tests.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/__init__.py b/horizon/dashboards/nova/instances_and_volumes/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/__init__.py rename to horizon/dashboards/nova/instances_and_volumes/__init__.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/__init__.py b/horizon/dashboards/nova/instances_and_volumes/instances/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/__init__.py rename to horizon/dashboards/nova/instances_and_volumes/instances/__init__.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/forms.py b/horizon/dashboards/nova/instances_and_volumes/instances/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/forms.py rename to horizon/dashboards/nova/instances_and_volumes/instances/forms.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/tables.py b/horizon/dashboards/nova/instances_and_volumes/instances/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/tables.py rename to horizon/dashboards/nova/instances_and_volumes/instances/tables.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/tabs.py b/horizon/dashboards/nova/instances_and_volumes/instances/tabs.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/tabs.py rename to horizon/dashboards/nova/instances_and_volumes/instances/tabs.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/tests.py b/horizon/dashboards/nova/instances_and_volumes/instances/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/tests.py rename to horizon/dashboards/nova/instances_and_volumes/instances/tests.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/urls.py b/horizon/dashboards/nova/instances_and_volumes/instances/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/urls.py rename to horizon/dashboards/nova/instances_and_volumes/instances/urls.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/instances/views.py b/horizon/dashboards/nova/instances_and_volumes/instances/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/instances/views.py rename to horizon/dashboards/nova/instances_and_volumes/instances/views.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/panel.py b/horizon/dashboards/nova/instances_and_volumes/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/panel.py rename to horizon/dashboards/nova/instances_and_volumes/panel.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/tests.py b/horizon/dashboards/nova/instances_and_volumes/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/tests.py rename to horizon/dashboards/nova/instances_and_volumes/tests.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/urls.py b/horizon/dashboards/nova/instances_and_volumes/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/urls.py rename to horizon/dashboards/nova/instances_and_volumes/urls.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/views.py b/horizon/dashboards/nova/instances_and_volumes/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/views.py rename to horizon/dashboards/nova/instances_and_volumes/views.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/__init__.py b/horizon/dashboards/nova/instances_and_volumes/volumes/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/__init__.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/__init__.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/forms.py b/horizon/dashboards/nova/instances_and_volumes/volumes/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/forms.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/forms.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/tables.py b/horizon/dashboards/nova/instances_and_volumes/volumes/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/tables.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/tables.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/tests.py b/horizon/dashboards/nova/instances_and_volumes/volumes/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/tests.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/tests.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/urls.py b/horizon/dashboards/nova/instances_and_volumes/volumes/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/urls.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/urls.py diff --git a/horizon/horizon/dashboards/nova/instances_and_volumes/volumes/views.py b/horizon/dashboards/nova/instances_and_volumes/volumes/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/instances_and_volumes/volumes/views.py rename to horizon/dashboards/nova/instances_and_volumes/volumes/views.py diff --git a/horizon/horizon/dashboards/nova/models.py b/horizon/dashboards/nova/models.py similarity index 100% rename from horizon/horizon/dashboards/nova/models.py rename to horizon/dashboards/nova/models.py diff --git a/horizon/horizon/dashboards/nova/networks/__init__.py b/horizon/dashboards/nova/networks/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/__init__.py rename to horizon/dashboards/nova/networks/__init__.py diff --git a/horizon/horizon/dashboards/nova/networks/forms.py b/horizon/dashboards/nova/networks/forms.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/forms.py rename to horizon/dashboards/nova/networks/forms.py diff --git a/horizon/horizon/dashboards/nova/networks/panel.py b/horizon/dashboards/nova/networks/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/panel.py rename to horizon/dashboards/nova/networks/panel.py diff --git a/horizon/horizon/dashboards/nova/networks/tables.py b/horizon/dashboards/nova/networks/tables.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/tables.py rename to horizon/dashboards/nova/networks/tables.py diff --git a/horizon/horizon/dashboards/nova/networks/tests.py b/horizon/dashboards/nova/networks/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/tests.py rename to horizon/dashboards/nova/networks/tests.py diff --git a/horizon/horizon/dashboards/nova/networks/urls.py b/horizon/dashboards/nova/networks/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/urls.py rename to horizon/dashboards/nova/networks/urls.py diff --git a/horizon/horizon/dashboards/nova/networks/views.py b/horizon/dashboards/nova/networks/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/networks/views.py rename to horizon/dashboards/nova/networks/views.py diff --git a/horizon/horizon/dashboards/nova/overview/__init__.py b/horizon/dashboards/nova/overview/__init__.py similarity index 100% rename from horizon/horizon/dashboards/nova/overview/__init__.py rename to horizon/dashboards/nova/overview/__init__.py diff --git a/horizon/horizon/dashboards/nova/overview/panel.py b/horizon/dashboards/nova/overview/panel.py similarity index 100% rename from horizon/horizon/dashboards/nova/overview/panel.py rename to horizon/dashboards/nova/overview/panel.py diff --git a/horizon/horizon/dashboards/nova/overview/tests.py b/horizon/dashboards/nova/overview/tests.py similarity index 100% rename from horizon/horizon/dashboards/nova/overview/tests.py rename to horizon/dashboards/nova/overview/tests.py diff --git a/horizon/horizon/dashboards/nova/overview/urls.py b/horizon/dashboards/nova/overview/urls.py similarity index 100% rename from horizon/horizon/dashboards/nova/overview/urls.py rename to horizon/dashboards/nova/overview/urls.py diff --git a/horizon/horizon/dashboards/nova/overview/views.py b/horizon/dashboards/nova/overview/views.py similarity index 100% rename from horizon/horizon/dashboards/nova/overview/views.py rename to horizon/dashboards/nova/overview/views.py diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html b/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html rename to horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_allocate.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html b/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html rename to horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/_associate.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html b/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html rename to horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/allocate.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html b/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html rename to horizon/dashboards/nova/templates/nova/access_and_security/floating_ips/associate.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/index.html b/horizon/dashboards/nova/templates/nova/access_and_security/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/index.html rename to horizon/dashboards/nova/templates/nova/access_and_security/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_create.html b/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_create.html rename to horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_import.html b/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_import.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_import.html rename to horizon/dashboards/nova/templates/nova/access_and_security/keypairs/_import.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/create.html b/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/create.html rename to horizon/dashboards/nova/templates/nova/access_and_security/keypairs/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/download.html b/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/download.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/download.html rename to horizon/dashboards/nova/templates/nova/access_and_security/keypairs/download.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/import.html b/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/import.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/keypairs/import.html rename to horizon/dashboards/nova/templates/nova/access_and_security/keypairs/import.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_create.html b/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_create.html rename to horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html b/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html rename to horizon/dashboards/nova/templates/nova/access_and_security/security_groups/_edit_rules.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/create.html b/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/create.html rename to horizon/dashboards/nova/templates/nova/access_and_security/security_groups/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html b/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html rename to horizon/dashboards/nova/templates/nova/access_and_security/security_groups/edit_rules.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/base.html b/horizon/dashboards/nova/templates/nova/base.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/base.html rename to horizon/dashboards/nova/templates/nova/base.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/containers/_create.html b/horizon/dashboards/nova/templates/nova/containers/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/containers/_create.html rename to horizon/dashboards/nova/templates/nova/containers/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/containers/create.html b/horizon/dashboards/nova/templates/nova/containers/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/containers/create.html rename to horizon/dashboards/nova/templates/nova/containers/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/containers/index.html b/horizon/dashboards/nova/templates/nova/containers/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/containers/index.html rename to horizon/dashboards/nova/templates/nova/containers/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_launch.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_launch.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_launch.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_launch.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_update.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_update.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_update.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/images/_update.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/launch.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/launch.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/launch.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/images/launch.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/update.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/update.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/images/update.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/images/update.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/index.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/index.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html b/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html rename to horizon/dashboards/nova/templates/nova/images_and_snapshots/snapshots/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/index.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/index.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_log.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_instance_ips.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_instance_ips.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_instance_ips.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_instance_ips.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_update.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/detail.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/update.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/update.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/update.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/update.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_attach.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/_create_snapshot.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/attach.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/create_snapshot.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html b/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html rename to horizon/dashboards/nova/templates/nova/instances_and_volumes/volumes/detail.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/_create.html b/horizon/dashboards/nova/templates/nova/networks/_create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/_create.html rename to horizon/dashboards/nova/templates/nova/networks/_create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/_rename.html b/horizon/dashboards/nova/templates/nova/networks/_rename.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/_rename.html rename to horizon/dashboards/nova/templates/nova/networks/_rename.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/create.html b/horizon/dashboards/nova/templates/nova/networks/create.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/create.html rename to horizon/dashboards/nova/templates/nova/networks/create.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/detail.html b/horizon/dashboards/nova/templates/nova/networks/detail.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/detail.html rename to horizon/dashboards/nova/templates/nova/networks/detail.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/index.html b/horizon/dashboards/nova/templates/nova/networks/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/index.html rename to horizon/dashboards/nova/templates/nova/networks/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/networks/rename.html b/horizon/dashboards/nova/templates/nova/networks/rename.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/networks/rename.html rename to horizon/dashboards/nova/templates/nova/networks/rename.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/objects/_copy.html b/horizon/dashboards/nova/templates/nova/objects/_copy.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/objects/_copy.html rename to horizon/dashboards/nova/templates/nova/objects/_copy.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/objects/_upload.html b/horizon/dashboards/nova/templates/nova/objects/_upload.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/objects/_upload.html rename to horizon/dashboards/nova/templates/nova/objects/_upload.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/objects/copy.html b/horizon/dashboards/nova/templates/nova/objects/copy.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/objects/copy.html rename to horizon/dashboards/nova/templates/nova/objects/copy.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/objects/index.html b/horizon/dashboards/nova/templates/nova/objects/index.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/objects/index.html rename to horizon/dashboards/nova/templates/nova/objects/index.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/objects/upload.html b/horizon/dashboards/nova/templates/nova/objects/upload.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/objects/upload.html rename to horizon/dashboards/nova/templates/nova/objects/upload.html diff --git a/horizon/horizon/dashboards/nova/templates/nova/overview/usage.csv b/horizon/dashboards/nova/templates/nova/overview/usage.csv similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/overview/usage.csv rename to horizon/dashboards/nova/templates/nova/overview/usage.csv diff --git a/horizon/horizon/dashboards/nova/templates/nova/overview/usage.html b/horizon/dashboards/nova/templates/nova/overview/usage.html similarity index 100% rename from horizon/horizon/dashboards/nova/templates/nova/overview/usage.html rename to horizon/dashboards/nova/templates/nova/overview/usage.html diff --git a/horizon/horizon/dashboards/settings/__init__.py b/horizon/dashboards/settings/__init__.py similarity index 100% rename from horizon/horizon/dashboards/settings/__init__.py rename to horizon/dashboards/settings/__init__.py diff --git a/horizon/horizon/dashboards/settings/dashboard.py b/horizon/dashboards/settings/dashboard.py similarity index 100% rename from horizon/horizon/dashboards/settings/dashboard.py rename to horizon/dashboards/settings/dashboard.py diff --git a/horizon/horizon/dashboards/settings/ec2/__init__.py b/horizon/dashboards/settings/ec2/__init__.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/__init__.py rename to horizon/dashboards/settings/ec2/__init__.py diff --git a/horizon/horizon/dashboards/settings/ec2/forms.py b/horizon/dashboards/settings/ec2/forms.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/forms.py rename to horizon/dashboards/settings/ec2/forms.py diff --git a/horizon/horizon/dashboards/settings/ec2/panel.py b/horizon/dashboards/settings/ec2/panel.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/panel.py rename to horizon/dashboards/settings/ec2/panel.py diff --git a/horizon/horizon/dashboards/settings/ec2/tests.py b/horizon/dashboards/settings/ec2/tests.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/tests.py rename to horizon/dashboards/settings/ec2/tests.py diff --git a/horizon/horizon/dashboards/settings/ec2/urls.py b/horizon/dashboards/settings/ec2/urls.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/urls.py rename to horizon/dashboards/settings/ec2/urls.py diff --git a/horizon/horizon/dashboards/settings/ec2/views.py b/horizon/dashboards/settings/ec2/views.py similarity index 100% rename from horizon/horizon/dashboards/settings/ec2/views.py rename to horizon/dashboards/settings/ec2/views.py diff --git a/horizon/horizon/dashboards/settings/models.py b/horizon/dashboards/settings/models.py similarity index 100% rename from horizon/horizon/dashboards/settings/models.py rename to horizon/dashboards/settings/models.py diff --git a/horizon/horizon/dashboards/settings/project/__init__.py b/horizon/dashboards/settings/project/__init__.py similarity index 100% rename from horizon/horizon/dashboards/settings/project/__init__.py rename to horizon/dashboards/settings/project/__init__.py diff --git a/horizon/horizon/dashboards/settings/project/forms.py b/horizon/dashboards/settings/project/forms.py similarity index 100% rename from horizon/horizon/dashboards/settings/project/forms.py rename to horizon/dashboards/settings/project/forms.py diff --git a/horizon/horizon/dashboards/settings/project/panel.py b/horizon/dashboards/settings/project/panel.py similarity index 100% rename from horizon/horizon/dashboards/settings/project/panel.py rename to horizon/dashboards/settings/project/panel.py diff --git a/horizon/horizon/dashboards/settings/project/urls.py b/horizon/dashboards/settings/project/urls.py similarity index 100% rename from horizon/horizon/dashboards/settings/project/urls.py rename to horizon/dashboards/settings/project/urls.py diff --git a/horizon/horizon/dashboards/settings/project/views.py b/horizon/dashboards/settings/project/views.py similarity index 100% rename from horizon/horizon/dashboards/settings/project/views.py rename to horizon/dashboards/settings/project/views.py diff --git a/horizon/horizon/dashboards/settings/templates/settings/base.html b/horizon/dashboards/settings/templates/settings/base.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/base.html rename to horizon/dashboards/settings/templates/settings/base.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/ec2/download_form.html b/horizon/dashboards/settings/templates/settings/ec2/download_form.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/ec2/download_form.html rename to horizon/dashboards/settings/templates/settings/ec2/download_form.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/ec2/ec2rc.sh.template b/horizon/dashboards/settings/templates/settings/ec2/ec2rc.sh.template similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/ec2/ec2rc.sh.template rename to horizon/dashboards/settings/templates/settings/ec2/ec2rc.sh.template diff --git a/horizon/horizon/dashboards/settings/templates/settings/ec2/index.html b/horizon/dashboards/settings/templates/settings/ec2/index.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/ec2/index.html rename to horizon/dashboards/settings/templates/settings/ec2/index.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/project/_openrc.html b/horizon/dashboards/settings/templates/settings/project/_openrc.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/project/_openrc.html rename to horizon/dashboards/settings/templates/settings/project/_openrc.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/project/openrc.sh.template b/horizon/dashboards/settings/templates/settings/project/openrc.sh.template similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/project/openrc.sh.template rename to horizon/dashboards/settings/templates/settings/project/openrc.sh.template diff --git a/horizon/horizon/dashboards/settings/templates/settings/project/settings.html b/horizon/dashboards/settings/templates/settings/project/settings.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/project/settings.html rename to horizon/dashboards/settings/templates/settings/project/settings.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/user/_language.html b/horizon/dashboards/settings/templates/settings/user/_language.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/user/_language.html rename to horizon/dashboards/settings/templates/settings/user/_language.html diff --git a/horizon/horizon/dashboards/settings/templates/settings/user/settings.html b/horizon/dashboards/settings/templates/settings/user/settings.html similarity index 100% rename from horizon/horizon/dashboards/settings/templates/settings/user/settings.html rename to horizon/dashboards/settings/templates/settings/user/settings.html diff --git a/horizon/horizon/dashboards/settings/user/__init__.py b/horizon/dashboards/settings/user/__init__.py similarity index 100% rename from horizon/horizon/dashboards/settings/user/__init__.py rename to horizon/dashboards/settings/user/__init__.py diff --git a/horizon/horizon/dashboards/settings/user/panel.py b/horizon/dashboards/settings/user/panel.py similarity index 100% rename from horizon/horizon/dashboards/settings/user/panel.py rename to horizon/dashboards/settings/user/panel.py diff --git a/horizon/horizon/dashboards/settings/user/urls.py b/horizon/dashboards/settings/user/urls.py similarity index 100% rename from horizon/horizon/dashboards/settings/user/urls.py rename to horizon/dashboards/settings/user/urls.py diff --git a/horizon/horizon/dashboards/settings/user/views.py b/horizon/dashboards/settings/user/views.py similarity index 100% rename from horizon/horizon/dashboards/settings/user/views.py rename to horizon/dashboards/settings/user/views.py diff --git a/horizon/horizon/dashboards/syspanel/__init__.py b/horizon/dashboards/syspanel/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/__init__.py rename to horizon/dashboards/syspanel/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/dashboard.py b/horizon/dashboards/syspanel/dashboard.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/dashboard.py rename to horizon/dashboards/syspanel/dashboard.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/__init__.py b/horizon/dashboards/syspanel/flavors/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/__init__.py rename to horizon/dashboards/syspanel/flavors/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/forms.py b/horizon/dashboards/syspanel/flavors/forms.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/forms.py rename to horizon/dashboards/syspanel/flavors/forms.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/panel.py b/horizon/dashboards/syspanel/flavors/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/panel.py rename to horizon/dashboards/syspanel/flavors/panel.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/tables.py b/horizon/dashboards/syspanel/flavors/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/tables.py rename to horizon/dashboards/syspanel/flavors/tables.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/tests.py b/horizon/dashboards/syspanel/flavors/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/tests.py rename to horizon/dashboards/syspanel/flavors/tests.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/urls.py b/horizon/dashboards/syspanel/flavors/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/urls.py rename to horizon/dashboards/syspanel/flavors/urls.py diff --git a/horizon/horizon/dashboards/syspanel/flavors/views.py b/horizon/dashboards/syspanel/flavors/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/flavors/views.py rename to horizon/dashboards/syspanel/flavors/views.py diff --git a/horizon/horizon/dashboards/syspanel/images/__init__.py b/horizon/dashboards/syspanel/images/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/__init__.py rename to horizon/dashboards/syspanel/images/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/images/panel.py b/horizon/dashboards/syspanel/images/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/panel.py rename to horizon/dashboards/syspanel/images/panel.py diff --git a/horizon/horizon/dashboards/syspanel/images/tables.py b/horizon/dashboards/syspanel/images/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/tables.py rename to horizon/dashboards/syspanel/images/tables.py diff --git a/horizon/horizon/dashboards/syspanel/images/tests.py b/horizon/dashboards/syspanel/images/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/tests.py rename to horizon/dashboards/syspanel/images/tests.py diff --git a/horizon/horizon/dashboards/syspanel/images/urls.py b/horizon/dashboards/syspanel/images/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/urls.py rename to horizon/dashboards/syspanel/images/urls.py diff --git a/horizon/horizon/dashboards/syspanel/images/views.py b/horizon/dashboards/syspanel/images/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/images/views.py rename to horizon/dashboards/syspanel/images/views.py diff --git a/horizon/horizon/dashboards/syspanel/instances/__init__.py b/horizon/dashboards/syspanel/instances/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/__init__.py rename to horizon/dashboards/syspanel/instances/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/instances/panel.py b/horizon/dashboards/syspanel/instances/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/panel.py rename to horizon/dashboards/syspanel/instances/panel.py diff --git a/horizon/horizon/dashboards/syspanel/instances/tables.py b/horizon/dashboards/syspanel/instances/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/tables.py rename to horizon/dashboards/syspanel/instances/tables.py diff --git a/horizon/horizon/dashboards/syspanel/instances/tests.py b/horizon/dashboards/syspanel/instances/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/tests.py rename to horizon/dashboards/syspanel/instances/tests.py diff --git a/horizon/horizon/dashboards/syspanel/instances/urls.py b/horizon/dashboards/syspanel/instances/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/urls.py rename to horizon/dashboards/syspanel/instances/urls.py diff --git a/horizon/horizon/dashboards/syspanel/instances/views.py b/horizon/dashboards/syspanel/instances/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/instances/views.py rename to horizon/dashboards/syspanel/instances/views.py diff --git a/horizon/horizon/dashboards/syspanel/models.py b/horizon/dashboards/syspanel/models.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/models.py rename to horizon/dashboards/syspanel/models.py diff --git a/horizon/horizon/dashboards/syspanel/overview/__init__.py b/horizon/dashboards/syspanel/overview/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/overview/__init__.py rename to horizon/dashboards/syspanel/overview/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/overview/panel.py b/horizon/dashboards/syspanel/overview/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/overview/panel.py rename to horizon/dashboards/syspanel/overview/panel.py diff --git a/horizon/horizon/dashboards/syspanel/overview/urls.py b/horizon/dashboards/syspanel/overview/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/overview/urls.py rename to horizon/dashboards/syspanel/overview/urls.py diff --git a/horizon/horizon/dashboards/syspanel/overview/views.py b/horizon/dashboards/syspanel/overview/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/overview/views.py rename to horizon/dashboards/syspanel/overview/views.py diff --git a/horizon/horizon/dashboards/syspanel/projects/__init__.py b/horizon/dashboards/syspanel/projects/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/__init__.py rename to horizon/dashboards/syspanel/projects/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/projects/forms.py b/horizon/dashboards/syspanel/projects/forms.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/forms.py rename to horizon/dashboards/syspanel/projects/forms.py diff --git a/horizon/horizon/dashboards/syspanel/projects/panel.py b/horizon/dashboards/syspanel/projects/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/panel.py rename to horizon/dashboards/syspanel/projects/panel.py diff --git a/horizon/horizon/dashboards/syspanel/projects/tables.py b/horizon/dashboards/syspanel/projects/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/tables.py rename to horizon/dashboards/syspanel/projects/tables.py diff --git a/horizon/horizon/dashboards/syspanel/projects/tests.py b/horizon/dashboards/syspanel/projects/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/tests.py rename to horizon/dashboards/syspanel/projects/tests.py diff --git a/horizon/horizon/dashboards/syspanel/projects/urls.py b/horizon/dashboards/syspanel/projects/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/urls.py rename to horizon/dashboards/syspanel/projects/urls.py diff --git a/horizon/horizon/dashboards/syspanel/projects/views.py b/horizon/dashboards/syspanel/projects/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/projects/views.py rename to horizon/dashboards/syspanel/projects/views.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/__init__.py b/horizon/dashboards/syspanel/quotas/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/__init__.py rename to horizon/dashboards/syspanel/quotas/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/panel.py b/horizon/dashboards/syspanel/quotas/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/panel.py rename to horizon/dashboards/syspanel/quotas/panel.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/tables.py b/horizon/dashboards/syspanel/quotas/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/tables.py rename to horizon/dashboards/syspanel/quotas/tables.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/tests.py b/horizon/dashboards/syspanel/quotas/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/tests.py rename to horizon/dashboards/syspanel/quotas/tests.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/urls.py b/horizon/dashboards/syspanel/quotas/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/urls.py rename to horizon/dashboards/syspanel/quotas/urls.py diff --git a/horizon/horizon/dashboards/syspanel/quotas/views.py b/horizon/dashboards/syspanel/quotas/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/quotas/views.py rename to horizon/dashboards/syspanel/quotas/views.py diff --git a/horizon/horizon/dashboards/syspanel/services/__init__.py b/horizon/dashboards/syspanel/services/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/__init__.py rename to horizon/dashboards/syspanel/services/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/services/panel.py b/horizon/dashboards/syspanel/services/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/panel.py rename to horizon/dashboards/syspanel/services/panel.py diff --git a/horizon/horizon/dashboards/syspanel/services/tables.py b/horizon/dashboards/syspanel/services/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/tables.py rename to horizon/dashboards/syspanel/services/tables.py diff --git a/horizon/horizon/dashboards/syspanel/services/tests.py b/horizon/dashboards/syspanel/services/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/tests.py rename to horizon/dashboards/syspanel/services/tests.py diff --git a/horizon/horizon/dashboards/syspanel/services/urls.py b/horizon/dashboards/syspanel/services/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/urls.py rename to horizon/dashboards/syspanel/services/urls.py diff --git a/horizon/horizon/dashboards/syspanel/services/views.py b/horizon/dashboards/syspanel/services/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/services/views.py rename to horizon/dashboards/syspanel/services/views.py diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/base.html b/horizon/dashboards/syspanel/templates/syspanel/base.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/base.html rename to horizon/dashboards/syspanel/templates/syspanel/base.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/_create.html b/horizon/dashboards/syspanel/templates/syspanel/flavors/_create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/_create.html rename to horizon/dashboards/syspanel/templates/syspanel/flavors/_create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/create.html b/horizon/dashboards/syspanel/templates/syspanel/flavors/create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/create.html rename to horizon/dashboards/syspanel/templates/syspanel/flavors/create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/index.html b/horizon/dashboards/syspanel/templates/syspanel/flavors/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/flavors/index.html rename to horizon/dashboards/syspanel/templates/syspanel/flavors/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/images/_update.html b/horizon/dashboards/syspanel/templates/syspanel/images/_update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/images/_update.html rename to horizon/dashboards/syspanel/templates/syspanel/images/_update.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/images/index.html b/horizon/dashboards/syspanel/templates/syspanel/images/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/images/index.html rename to horizon/dashboards/syspanel/templates/syspanel/images/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/images/update.html b/horizon/dashboards/syspanel/templates/syspanel/images/update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/images/update.html rename to horizon/dashboards/syspanel/templates/syspanel/images/update.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/instances/index.html b/horizon/dashboards/syspanel/templates/syspanel/instances/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/instances/index.html rename to horizon/dashboards/syspanel/templates/syspanel/instances/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/overview/usage.csv b/horizon/dashboards/syspanel/templates/syspanel/overview/usage.csv similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/overview/usage.csv rename to horizon/dashboards/syspanel/templates/syspanel/overview/usage.csv diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/overview/usage.html b/horizon/dashboards/syspanel/templates/syspanel/overview/usage.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/overview/usage.html rename to horizon/dashboards/syspanel/templates/syspanel/overview/usage.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_add_user.html b/horizon/dashboards/syspanel/templates/syspanel/projects/_add_user.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_add_user.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/_add_user.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_create.html b/horizon/dashboards/syspanel/templates/syspanel/projects/_create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_create.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/_create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_quotas.html b/horizon/dashboards/syspanel/templates/syspanel/projects/_quotas.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_quotas.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/_quotas.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_update.html b/horizon/dashboards/syspanel/templates/syspanel/projects/_update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/_update.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/_update.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/add_user.html b/horizon/dashboards/syspanel/templates/syspanel/projects/add_user.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/add_user.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/add_user.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/create.html b/horizon/dashboards/syspanel/templates/syspanel/projects/create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/create.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/index.html b/horizon/dashboards/syspanel/templates/syspanel/projects/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/index.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/quotas.html b/horizon/dashboards/syspanel/templates/syspanel/projects/quotas.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/quotas.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/quotas.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/update.html b/horizon/dashboards/syspanel/templates/syspanel/projects/update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/update.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/update.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/usage.csv b/horizon/dashboards/syspanel/templates/syspanel/projects/usage.csv similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/usage.csv rename to horizon/dashboards/syspanel/templates/syspanel/projects/usage.csv diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/usage.html b/horizon/dashboards/syspanel/templates/syspanel/projects/usage.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/usage.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/usage.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/projects/users.html b/horizon/dashboards/syspanel/templates/syspanel/projects/users.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/projects/users.html rename to horizon/dashboards/syspanel/templates/syspanel/projects/users.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/quotas/index.html b/horizon/dashboards/syspanel/templates/syspanel/quotas/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/quotas/index.html rename to horizon/dashboards/syspanel/templates/syspanel/quotas/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/services/index.html b/horizon/dashboards/syspanel/templates/syspanel/services/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/services/index.html rename to horizon/dashboards/syspanel/templates/syspanel/services/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/users/_create.html b/horizon/dashboards/syspanel/templates/syspanel/users/_create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/users/_create.html rename to horizon/dashboards/syspanel/templates/syspanel/users/_create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/users/_update.html b/horizon/dashboards/syspanel/templates/syspanel/users/_update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/users/_update.html rename to horizon/dashboards/syspanel/templates/syspanel/users/_update.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/users/create.html b/horizon/dashboards/syspanel/templates/syspanel/users/create.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/users/create.html rename to horizon/dashboards/syspanel/templates/syspanel/users/create.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/users/index.html b/horizon/dashboards/syspanel/templates/syspanel/users/index.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/users/index.html rename to horizon/dashboards/syspanel/templates/syspanel/users/index.html diff --git a/horizon/horizon/dashboards/syspanel/templates/syspanel/users/update.html b/horizon/dashboards/syspanel/templates/syspanel/users/update.html similarity index 100% rename from horizon/horizon/dashboards/syspanel/templates/syspanel/users/update.html rename to horizon/dashboards/syspanel/templates/syspanel/users/update.html diff --git a/horizon/horizon/dashboards/syspanel/users/__init__.py b/horizon/dashboards/syspanel/users/__init__.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/__init__.py rename to horizon/dashboards/syspanel/users/__init__.py diff --git a/horizon/horizon/dashboards/syspanel/users/forms.py b/horizon/dashboards/syspanel/users/forms.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/forms.py rename to horizon/dashboards/syspanel/users/forms.py diff --git a/horizon/horizon/dashboards/syspanel/users/panel.py b/horizon/dashboards/syspanel/users/panel.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/panel.py rename to horizon/dashboards/syspanel/users/panel.py diff --git a/horizon/horizon/dashboards/syspanel/users/tables.py b/horizon/dashboards/syspanel/users/tables.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/tables.py rename to horizon/dashboards/syspanel/users/tables.py diff --git a/horizon/horizon/dashboards/syspanel/users/tests.py b/horizon/dashboards/syspanel/users/tests.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/tests.py rename to horizon/dashboards/syspanel/users/tests.py diff --git a/horizon/horizon/dashboards/syspanel/users/urls.py b/horizon/dashboards/syspanel/users/urls.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/urls.py rename to horizon/dashboards/syspanel/users/urls.py diff --git a/horizon/horizon/dashboards/syspanel/users/views.py b/horizon/dashboards/syspanel/users/views.py similarity index 100% rename from horizon/horizon/dashboards/syspanel/users/views.py rename to horizon/dashboards/syspanel/users/views.py diff --git a/horizon/horizon/decorators.py b/horizon/decorators.py similarity index 100% rename from horizon/horizon/decorators.py rename to horizon/decorators.py diff --git a/horizon/horizon/exceptions.py b/horizon/exceptions.py similarity index 100% rename from horizon/horizon/exceptions.py rename to horizon/exceptions.py diff --git a/horizon/horizon/forms/__init__.py b/horizon/forms/__init__.py similarity index 100% rename from horizon/horizon/forms/__init__.py rename to horizon/forms/__init__.py diff --git a/horizon/horizon/forms/base.py b/horizon/forms/base.py similarity index 100% rename from horizon/horizon/forms/base.py rename to horizon/forms/base.py diff --git a/horizon/horizon/forms/views.py b/horizon/forms/views.py similarity index 100% rename from horizon/horizon/forms/views.py rename to horizon/forms/views.py diff --git a/horizon/horizon/locale/es/LC_MESSAGES/django.mo b/horizon/locale/es/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/es/LC_MESSAGES/django.mo rename to horizon/locale/es/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/es/LC_MESSAGES/django.po b/horizon/locale/es/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/es/LC_MESSAGES/django.po rename to horizon/locale/es/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/fr/LC_MESSAGES/django.mo b/horizon/locale/fr/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/fr/LC_MESSAGES/django.mo rename to horizon/locale/fr/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/fr/LC_MESSAGES/django.po b/horizon/locale/fr/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/fr/LC_MESSAGES/django.po rename to horizon/locale/fr/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/ja/LC_MESSAGES/django.mo b/horizon/locale/ja/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/ja/LC_MESSAGES/django.mo rename to horizon/locale/ja/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/ja/LC_MESSAGES/django.po b/horizon/locale/ja/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/ja/LC_MESSAGES/django.po rename to horizon/locale/ja/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/pl/LC_MESSAGES/django.mo b/horizon/locale/pl/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/pl/LC_MESSAGES/django.mo rename to horizon/locale/pl/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/pl/LC_MESSAGES/django.po b/horizon/locale/pl/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/pl/LC_MESSAGES/django.po rename to horizon/locale/pl/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/pt/LC_MESSAGES/django.mo b/horizon/locale/pt/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/pt/LC_MESSAGES/django.mo rename to horizon/locale/pt/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/pt/LC_MESSAGES/django.po b/horizon/locale/pt/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/pt/LC_MESSAGES/django.po rename to horizon/locale/pt/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/zh-cn/LC_MESSAGES/django.mo b/horizon/locale/zh-cn/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/zh-cn/LC_MESSAGES/django.mo rename to horizon/locale/zh-cn/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/zh-cn/LC_MESSAGES/django.po b/horizon/locale/zh-cn/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/zh-cn/LC_MESSAGES/django.po rename to horizon/locale/zh-cn/LC_MESSAGES/django.po diff --git a/horizon/horizon/locale/zh-tw/LC_MESSAGES/django.mo b/horizon/locale/zh-tw/LC_MESSAGES/django.mo similarity index 100% rename from horizon/horizon/locale/zh-tw/LC_MESSAGES/django.mo rename to horizon/locale/zh-tw/LC_MESSAGES/django.mo diff --git a/horizon/horizon/locale/zh-tw/LC_MESSAGES/django.po b/horizon/locale/zh-tw/LC_MESSAGES/django.po similarity index 100% rename from horizon/horizon/locale/zh-tw/LC_MESSAGES/django.po rename to horizon/locale/zh-tw/LC_MESSAGES/django.po diff --git a/horizon/horizon/middleware.py b/horizon/middleware.py similarity index 100% rename from horizon/horizon/middleware.py rename to horizon/middleware.py diff --git a/horizon/horizon/models.py b/horizon/models.py similarity index 100% rename from horizon/horizon/models.py rename to horizon/models.py diff --git a/horizon/setup.py b/horizon/setup.py deleted file mode 100644 index a278f8a5e5..0000000000 --- a/horizon/setup.py +++ /dev/null @@ -1,54 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import os -from setuptools import setup, find_packages, findall -from horizon import version - -def read(fname): - return open(os.path.join(os.path.dirname(__file__), fname)).read() - -setup( - name = "horizon", - version = version.canonical_version_string(), - url = 'https://github.com/openstack/horizon/', - license = 'Apache 2.0', - description = "A Django interface for OpenStack.", - long_description = read('README'), - author = 'Devin Carlen', - author_email = 'devin.carlen@gmail.com', - packages = find_packages(), - package_data = {'horizon': - [s[len('horizon/'):] for s in - findall('horizon/templates') \ - + findall('horizon/dashboards/nova/templates') \ - + findall('horizon/dashboards/syspanel/templates') \ - + findall('horizon/dashboards/settings/templates')]}, - install_requires = [], - classifiers = [ - 'Development Status :: 4 - Beta', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Internet :: WWW/HTTP', - ] -) diff --git a/horizon/horizon/site_urls.py b/horizon/site_urls.py similarity index 100% rename from horizon/horizon/site_urls.py rename to horizon/site_urls.py diff --git a/openstack-dashboard/dashboard/static/dashboard/js/form_examples.js b/horizon/static/horizon/js/form_examples.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/form_examples.js rename to horizon/static/horizon/js/form_examples.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/forms.js b/horizon/static/horizon/js/forms.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/forms.js rename to horizon/static/horizon/js/forms.js diff --git a/horizon/horizon/static/horizon/js/hogan-1.0.5.min.js b/horizon/static/horizon/js/hogan-1.0.5.min.js similarity index 100% rename from horizon/horizon/static/horizon/js/hogan-1.0.5.min.js rename to horizon/static/horizon/js/hogan-1.0.5.min.js diff --git a/horizon/horizon/static/horizon/js/horizon.js b/horizon/static/horizon/js/horizon.js similarity index 100% rename from horizon/horizon/static/horizon/js/horizon.js rename to horizon/static/horizon/js/horizon.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery-ui.min.js b/horizon/static/horizon/js/jquery/jquery-ui.min.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery-ui.min.js rename to horizon/static/horizon/js/jquery/jquery-ui.min.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.example.min.js b/horizon/static/horizon/js/jquery/jquery.example.min.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.example.min.js rename to horizon/static/horizon/js/jquery/jquery.example.min.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.min.js b/horizon/static/horizon/js/jquery/jquery.min.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.min.js rename to horizon/static/horizon/js/jquery/jquery.min.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.quicksearch.js b/horizon/static/horizon/js/jquery/jquery.quicksearch.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.quicksearch.js rename to horizon/static/horizon/js/jquery/jquery.quicksearch.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.table-sorter.js b/horizon/static/horizon/js/jquery/jquery.table-sorter.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/jquery/jquery.table-sorter.js rename to horizon/static/horizon/js/jquery/jquery.table-sorter.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/modals.js b/horizon/static/horizon/js/modals.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/modals.js rename to horizon/static/horizon/js/modals.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/plugins.js b/horizon/static/horizon/js/plugins.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/plugins.js rename to horizon/static/horizon/js/plugins.js diff --git a/openstack-dashboard/dashboard/static/dashboard/js/tables.js b/horizon/static/horizon/js/tables.js similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/js/tables.js rename to horizon/static/horizon/js/tables.js diff --git a/horizon/horizon/static/horizon/js/tabs.js b/horizon/static/horizon/js/tabs.js similarity index 100% rename from horizon/horizon/static/horizon/js/tabs.js rename to horizon/static/horizon/js/tabs.js diff --git a/horizon/horizon/tables/__init__.py b/horizon/tables/__init__.py similarity index 100% rename from horizon/horizon/tables/__init__.py rename to horizon/tables/__init__.py diff --git a/horizon/horizon/tables/actions.py b/horizon/tables/actions.py similarity index 100% rename from horizon/horizon/tables/actions.py rename to horizon/tables/actions.py diff --git a/horizon/horizon/tables/base.py b/horizon/tables/base.py similarity index 100% rename from horizon/horizon/tables/base.py rename to horizon/tables/base.py diff --git a/horizon/horizon/tables/views.py b/horizon/tables/views.py similarity index 100% rename from horizon/horizon/tables/views.py rename to horizon/tables/views.py diff --git a/horizon/horizon/tabs/__init__.py b/horizon/tabs/__init__.py similarity index 100% rename from horizon/horizon/tabs/__init__.py rename to horizon/tabs/__init__.py diff --git a/horizon/horizon/tabs/base.py b/horizon/tabs/base.py similarity index 100% rename from horizon/horizon/tabs/base.py rename to horizon/tabs/base.py diff --git a/horizon/horizon/tabs/views.py b/horizon/tabs/views.py similarity index 100% rename from horizon/horizon/tabs/views.py rename to horizon/tabs/views.py diff --git a/horizon/horizon/templates/horizon/_messages.html b/horizon/templates/horizon/_messages.html similarity index 100% rename from horizon/horizon/templates/horizon/_messages.html rename to horizon/templates/horizon/_messages.html diff --git a/horizon/horizon/templates/horizon/_nav_list.html b/horizon/templates/horizon/_nav_list.html similarity index 100% rename from horizon/horizon/templates/horizon/_nav_list.html rename to horizon/templates/horizon/_nav_list.html diff --git a/horizon/horizon/templates/horizon/_subnav_list.html b/horizon/templates/horizon/_subnav_list.html similarity index 100% rename from horizon/horizon/templates/horizon/_subnav_list.html rename to horizon/templates/horizon/_subnav_list.html diff --git a/horizon/horizon/templates/horizon/auth/_login.html b/horizon/templates/horizon/auth/_login.html similarity index 100% rename from horizon/horizon/templates/horizon/auth/_login.html rename to horizon/templates/horizon/auth/_login.html diff --git a/horizon/horizon/templates/horizon/auth/_switch.html b/horizon/templates/horizon/auth/_switch.html similarity index 100% rename from horizon/horizon/templates/horizon/auth/_switch.html rename to horizon/templates/horizon/auth/_switch.html diff --git a/horizon/horizon/templates/horizon/auth/login.html b/horizon/templates/horizon/auth/login.html similarity index 100% rename from horizon/horizon/templates/horizon/auth/login.html rename to horizon/templates/horizon/auth/login.html diff --git a/horizon/horizon/templates/horizon/client_side/_modal.html b/horizon/templates/horizon/client_side/_modal.html similarity index 100% rename from horizon/horizon/templates/horizon/client_side/_modal.html rename to horizon/templates/horizon/client_side/_modal.html diff --git a/horizon/horizon/templates/horizon/client_side/template.html b/horizon/templates/horizon/client_side/template.html similarity index 100% rename from horizon/horizon/templates/horizon/client_side/template.html rename to horizon/templates/horizon/client_side/template.html diff --git a/horizon/horizon/templates/horizon/common/_data_table.html b/horizon/templates/horizon/common/_data_table.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_data_table.html rename to horizon/templates/horizon/common/_data_table.html diff --git a/horizon/horizon/templates/horizon/common/_data_table_row.html b/horizon/templates/horizon/common/_data_table_row.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_data_table_row.html rename to horizon/templates/horizon/common/_data_table_row.html diff --git a/horizon/horizon/templates/horizon/common/_data_table_row_action.html b/horizon/templates/horizon/common/_data_table_row_action.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_data_table_row_action.html rename to horizon/templates/horizon/common/_data_table_row_action.html diff --git a/horizon/horizon/templates/horizon/common/_data_table_row_actions.html b/horizon/templates/horizon/common/_data_table_row_actions.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_data_table_row_actions.html rename to horizon/templates/horizon/common/_data_table_row_actions.html diff --git a/horizon/horizon/templates/horizon/common/_data_table_table_actions.html b/horizon/templates/horizon/common/_data_table_table_actions.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_data_table_table_actions.html rename to horizon/templates/horizon/common/_data_table_table_actions.html diff --git a/horizon/horizon/templates/horizon/common/_form_fields.html b/horizon/templates/horizon/common/_form_fields.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_form_fields.html rename to horizon/templates/horizon/common/_form_fields.html diff --git a/horizon/horizon/templates/horizon/common/_modal_form.html b/horizon/templates/horizon/common/_modal_form.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_modal_form.html rename to horizon/templates/horizon/common/_modal_form.html diff --git a/horizon/horizon/templates/horizon/common/_page_header.html b/horizon/templates/horizon/common/_page_header.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_page_header.html rename to horizon/templates/horizon/common/_page_header.html diff --git a/horizon/horizon/templates/horizon/common/_progress_bar.html b/horizon/templates/horizon/common/_progress_bar.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_progress_bar.html rename to horizon/templates/horizon/common/_progress_bar.html diff --git a/horizon/horizon/templates/horizon/common/_region_selector.html b/horizon/templates/horizon/common/_region_selector.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_region_selector.html rename to horizon/templates/horizon/common/_region_selector.html diff --git a/horizon/horizon/templates/horizon/common/_sidebar.html b/horizon/templates/horizon/common/_sidebar.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_sidebar.html rename to horizon/templates/horizon/common/_sidebar.html diff --git a/horizon/horizon/templates/horizon/common/_sidebar_module.html b/horizon/templates/horizon/common/_sidebar_module.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_sidebar_module.html rename to horizon/templates/horizon/common/_sidebar_module.html diff --git a/horizon/horizon/templates/horizon/common/_tab_group.html b/horizon/templates/horizon/common/_tab_group.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_tab_group.html rename to horizon/templates/horizon/common/_tab_group.html diff --git a/horizon/horizon/templates/horizon/common/_usage_summary.html b/horizon/templates/horizon/common/_usage_summary.html similarity index 100% rename from horizon/horizon/templates/horizon/common/_usage_summary.html rename to horizon/templates/horizon/common/_usage_summary.html diff --git a/horizon/horizon/templatetags/__init__.py b/horizon/templatetags/__init__.py similarity index 100% rename from horizon/horizon/templatetags/__init__.py rename to horizon/templatetags/__init__.py diff --git a/horizon/horizon/templatetags/branding.py b/horizon/templatetags/branding.py similarity index 100% rename from horizon/horizon/templatetags/branding.py rename to horizon/templatetags/branding.py diff --git a/horizon/horizon/templatetags/horizon.py b/horizon/templatetags/horizon.py similarity index 100% rename from horizon/horizon/templatetags/horizon.py rename to horizon/templatetags/horizon.py diff --git a/horizon/horizon/templatetags/parse_date.py b/horizon/templatetags/parse_date.py similarity index 100% rename from horizon/horizon/templatetags/parse_date.py rename to horizon/templatetags/parse_date.py diff --git a/horizon/horizon/templatetags/sizeformat.py b/horizon/templatetags/sizeformat.py similarity index 100% rename from horizon/horizon/templatetags/sizeformat.py rename to horizon/templatetags/sizeformat.py diff --git a/horizon/horizon/templatetags/truncate_filter.py b/horizon/templatetags/truncate_filter.py similarity index 100% rename from horizon/horizon/templatetags/truncate_filter.py rename to horizon/templatetags/truncate_filter.py diff --git a/horizon/horizon/test.py b/horizon/test.py similarity index 100% rename from horizon/horizon/test.py rename to horizon/test.py diff --git a/horizon/horizon/tests/__init__.py b/horizon/tests/__init__.py similarity index 100% rename from horizon/horizon/tests/__init__.py rename to horizon/tests/__init__.py diff --git a/horizon/horizon/tests/api_tests/__init__.py b/horizon/tests/api_tests/__init__.py similarity index 100% rename from horizon/horizon/tests/api_tests/__init__.py rename to horizon/tests/api_tests/__init__.py diff --git a/horizon/horizon/tests/api_tests/base_tests.py b/horizon/tests/api_tests/base_tests.py similarity index 100% rename from horizon/horizon/tests/api_tests/base_tests.py rename to horizon/tests/api_tests/base_tests.py diff --git a/horizon/horizon/tests/api_tests/glance_tests.py b/horizon/tests/api_tests/glance_tests.py similarity index 100% rename from horizon/horizon/tests/api_tests/glance_tests.py rename to horizon/tests/api_tests/glance_tests.py diff --git a/horizon/horizon/tests/api_tests/keystone_tests.py b/horizon/tests/api_tests/keystone_tests.py similarity index 100% rename from horizon/horizon/tests/api_tests/keystone_tests.py rename to horizon/tests/api_tests/keystone_tests.py diff --git a/horizon/horizon/tests/api_tests/nova_tests.py b/horizon/tests/api_tests/nova_tests.py similarity index 100% rename from horizon/horizon/tests/api_tests/nova_tests.py rename to horizon/tests/api_tests/nova_tests.py diff --git a/horizon/horizon/tests/api_tests/swift_tests.py b/horizon/tests/api_tests/swift_tests.py similarity index 100% rename from horizon/horizon/tests/api_tests/swift_tests.py rename to horizon/tests/api_tests/swift_tests.py diff --git a/horizon/horizon/tests/auth_tests.py b/horizon/tests/auth_tests.py similarity index 100% rename from horizon/horizon/tests/auth_tests.py rename to horizon/tests/auth_tests.py diff --git a/horizon/horizon/tests/authors_tests.py b/horizon/tests/authors_tests.py similarity index 96% rename from horizon/horizon/tests/authors_tests.py rename to horizon/tests/authors_tests.py index 20fa4d3928..a7779e242f 100644 --- a/horizon/horizon/tests/authors_tests.py +++ b/horizon/tests/authors_tests.py @@ -40,7 +40,7 @@ def str_dict_replace(s, mapping): class AuthorsTestCase(unittest.TestCase): def test_authors_up_to_date(self): - path_bits = (os.path.dirname(__file__), '..', '..', '..') + path_bits = (os.path.dirname(__file__), '..', '..') root = os.path.normpath(os.path.join(*path_bits)) contributors = set() missing = set() diff --git a/horizon/horizon/tests/base_tests.py b/horizon/tests/base_tests.py similarity index 100% rename from horizon/horizon/tests/base_tests.py rename to horizon/tests/base_tests.py diff --git a/horizon/horizon/tests/context_processor_tests.py b/horizon/tests/context_processor_tests.py similarity index 100% rename from horizon/horizon/tests/context_processor_tests.py rename to horizon/tests/context_processor_tests.py diff --git a/horizon/horizon/tests/table_tests.py b/horizon/tests/table_tests.py similarity index 100% rename from horizon/horizon/tests/table_tests.py rename to horizon/tests/table_tests.py diff --git a/horizon/horizon/tests/tabs_tests.py b/horizon/tests/tabs_tests.py similarity index 100% rename from horizon/horizon/tests/tabs_tests.py rename to horizon/tests/tabs_tests.py diff --git a/horizon/horizon/tests/templates/404.html b/horizon/tests/templates/404.html similarity index 100% rename from horizon/horizon/tests/templates/404.html rename to horizon/tests/templates/404.html diff --git a/horizon/horizon/tests/templates/_tab.html b/horizon/tests/templates/_tab.html similarity index 100% rename from horizon/horizon/tests/templates/_tab.html rename to horizon/tests/templates/_tab.html diff --git a/horizon/horizon/tests/templates/base-sidebar.html b/horizon/tests/templates/base-sidebar.html similarity index 100% rename from horizon/horizon/tests/templates/base-sidebar.html rename to horizon/tests/templates/base-sidebar.html diff --git a/horizon/horizon/tests/templates/base.html b/horizon/tests/templates/base.html similarity index 100% rename from horizon/horizon/tests/templates/base.html rename to horizon/tests/templates/base.html diff --git a/horizon/horizon/tests/templates/splash.html b/horizon/tests/templates/splash.html similarity index 100% rename from horizon/horizon/tests/templates/splash.html rename to horizon/tests/templates/splash.html diff --git a/horizon/horizon/tests/templates/switch_tenants.html b/horizon/tests/templates/switch_tenants.html similarity index 100% rename from horizon/horizon/tests/templates/switch_tenants.html rename to horizon/tests/templates/switch_tenants.html diff --git a/horizon/horizon/tests/templatetag_tests.py b/horizon/tests/templatetag_tests.py similarity index 100% rename from horizon/horizon/tests/templatetag_tests.py rename to horizon/tests/templatetag_tests.py diff --git a/horizon/horizon/tests/test_data/__init__.py b/horizon/tests/test_data/__init__.py similarity index 100% rename from horizon/horizon/tests/test_data/__init__.py rename to horizon/tests/test_data/__init__.py diff --git a/horizon/horizon/tests/test_data/glance_data.py b/horizon/tests/test_data/glance_data.py similarity index 100% rename from horizon/horizon/tests/test_data/glance_data.py rename to horizon/tests/test_data/glance_data.py diff --git a/horizon/horizon/tests/test_data/keystone_data.py b/horizon/tests/test_data/keystone_data.py similarity index 100% rename from horizon/horizon/tests/test_data/keystone_data.py rename to horizon/tests/test_data/keystone_data.py diff --git a/horizon/horizon/tests/test_data/nova_data.py b/horizon/tests/test_data/nova_data.py similarity index 100% rename from horizon/horizon/tests/test_data/nova_data.py rename to horizon/tests/test_data/nova_data.py diff --git a/horizon/horizon/tests/test_data/quantum_data.py b/horizon/tests/test_data/quantum_data.py similarity index 100% rename from horizon/horizon/tests/test_data/quantum_data.py rename to horizon/tests/test_data/quantum_data.py diff --git a/horizon/horizon/tests/test_data/swift_data.py b/horizon/tests/test_data/swift_data.py similarity index 100% rename from horizon/horizon/tests/test_data/swift_data.py rename to horizon/tests/test_data/swift_data.py diff --git a/horizon/horizon/tests/test_data/utils.py b/horizon/tests/test_data/utils.py similarity index 100% rename from horizon/horizon/tests/test_data/utils.py rename to horizon/tests/test_data/utils.py diff --git a/horizon/horizon/tests/test_panel_urls.py b/horizon/tests/test_panel_urls.py similarity index 100% rename from horizon/horizon/tests/test_panel_urls.py rename to horizon/tests/test_panel_urls.py diff --git a/horizon/horizon/tests/testsettings.py b/horizon/tests/testsettings.py similarity index 100% rename from horizon/horizon/tests/testsettings.py rename to horizon/tests/testsettings.py diff --git a/horizon/horizon/tests/testurls.py b/horizon/tests/testurls.py similarity index 100% rename from horizon/horizon/tests/testurls.py rename to horizon/tests/testurls.py diff --git a/horizon/horizon/tests/utils_tests.py b/horizon/tests/utils_tests.py similarity index 100% rename from horizon/horizon/tests/utils_tests.py rename to horizon/tests/utils_tests.py diff --git a/horizon/horizon/tests/views.py b/horizon/tests/views.py similarity index 100% rename from horizon/horizon/tests/views.py rename to horizon/tests/views.py diff --git a/horizon/horizon/time.py b/horizon/time.py similarity index 100% rename from horizon/horizon/time.py rename to horizon/time.py diff --git a/horizon/horizon/usage/__init__.py b/horizon/usage/__init__.py similarity index 100% rename from horizon/horizon/usage/__init__.py rename to horizon/usage/__init__.py diff --git a/horizon/horizon/usage/base.py b/horizon/usage/base.py similarity index 100% rename from horizon/horizon/usage/base.py rename to horizon/usage/base.py diff --git a/horizon/horizon/usage/tables.py b/horizon/usage/tables.py similarity index 100% rename from horizon/horizon/usage/tables.py rename to horizon/usage/tables.py diff --git a/horizon/horizon/usage/views.py b/horizon/usage/views.py similarity index 100% rename from horizon/horizon/usage/views.py rename to horizon/usage/views.py diff --git a/horizon/horizon/users.py b/horizon/users.py similarity index 100% rename from horizon/horizon/users.py rename to horizon/users.py diff --git a/horizon/horizon/utils/__init__.py b/horizon/utils/__init__.py similarity index 100% rename from horizon/horizon/utils/__init__.py rename to horizon/utils/__init__.py diff --git a/horizon/horizon/utils/html.py b/horizon/utils/html.py similarity index 100% rename from horizon/horizon/utils/html.py rename to horizon/utils/html.py diff --git a/horizon/horizon/utils/reverse_bugfix.py b/horizon/utils/reverse_bugfix.py similarity index 100% rename from horizon/horizon/utils/reverse_bugfix.py rename to horizon/utils/reverse_bugfix.py diff --git a/horizon/horizon/utils/validators.py b/horizon/utils/validators.py similarity index 100% rename from horizon/horizon/utils/validators.py rename to horizon/utils/validators.py diff --git a/horizon/horizon/version.py b/horizon/version.py similarity index 100% rename from horizon/horizon/version.py rename to horizon/version.py diff --git a/horizon/horizon/views/__init__.py b/horizon/views/__init__.py similarity index 100% rename from horizon/horizon/views/__init__.py rename to horizon/views/__init__.py diff --git a/horizon/horizon/views/auth.py b/horizon/views/auth.py similarity index 100% rename from horizon/horizon/views/auth.py rename to horizon/views/auth.py diff --git a/horizon/horizon/views/auth_forms.py b/horizon/views/auth_forms.py similarity index 100% rename from horizon/horizon/views/auth_forms.py rename to horizon/views/auth_forms.py diff --git a/horizon/horizon/views/base.py b/horizon/views/base.py similarity index 100% rename from horizon/horizon/views/base.py rename to horizon/views/base.py diff --git a/openstack-dashboard/manage.py b/manage.py similarity index 59% rename from openstack-dashboard/manage.py rename to manage.py index ca19504702..33d7ac7dd4 100755 --- a/openstack-dashboard/manage.py +++ b/manage.py @@ -1,8 +1,11 @@ #!/usr/bin/env python -import os, sys + +import os +import sys + if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "openstack_dashboard.settings") from django.core.management import execute_from_command_line diff --git a/openstack-dashboard/Makefile b/openstack-dashboard/Makefile deleted file mode 100644 index 39a309eb45..0000000000 --- a/openstack-dashboard/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -PYTHON=`which python` -DESTDIR=/ -PROJECT=openstack-dashboard - -all: - @echo "make test - Run tests" - @echo "make source - Create source package" - @echo "make install - Install on local system" - @echo "make buildrpm - Generate a rpm package" - @echo "make clean - Get rid of scratch and byte files" - -source: - $(PYTHON) setup.py sdist $(COMPILE) - -install: - $(PYTHON) setup.py install --root $(DESTDIR) $(COMPILE) - -buildrpm: - $(PYTHON) setup.py bdist_rpm --post-install=rpm/postinstall --pre-uninstall=rpm/preuninstall - -clean: - $(PYTHON) setup.py clean - $(MAKE) -f $(CURDIR)/debian/rules clean - rm -rf build/ MANIFEST - find . -name '*.pyc' -delete diff --git a/openstack-dashboard/README b/openstack-dashboard/README deleted file mode 100644 index 276bc9e0b4..0000000000 --- a/openstack-dashboard/README +++ /dev/null @@ -1,42 +0,0 @@ -=================== -OpenStack Dashboard -=================== - -The OpenStack Dashboard is a reference implementation of a Django site that -uses the Horizon project to provide web based interactions with the various -OpenStack projects. - - -Getting Started -=============== - -For local development, first create a virtualenv for the project. -In the Horizon ``tools`` directory there is a script to create one for you: - - $ python tools/install_venv.py - -Alternatively, the ``run_tests.sh`` script will also install the environment -for you and then run the full test suite to verify everything is installed -and functioning correctly. - -Now that the virtualenv is created, you need to configure your local -environment. To do this, create a ``local_settings.py`` file in the ``local/`` -directory. There is a ``local_settings.py.example`` file there that may be -used as a template. - -If all is well you should now able to run the development server locally: - - $ tools/with_venv.sh openstack-dashboard/manage.py runserver - -or, as a shortcut:: - - $ ./run_tests.sh --runserver - -Settings Up OpenStack -===================== - -The recommended tool for installing and configuring the core OpenStack -components is `Devstack`_. Refer to their documentation for getting -Nova, Keystone, Glance, etc. up and running. - -.. _Devstack: http://devstack.org/ diff --git a/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.mo deleted file mode 100644 index c96a8ec1a2..0000000000 Binary files a/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.po deleted file mode 100644 index c894de7666..0000000000 --- a/openstack-dashboard/dashboard/locale/es/LC_MESSAGES/django.po +++ /dev/null @@ -1,159 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" diff --git a/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.mo deleted file mode 100644 index 849e9570f8..0000000000 Binary files a/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.po deleted file mode 100644 index 71116a7801..0000000000 --- a/openstack-dashboard/dashboard/locale/fr/LC_MESSAGES/django.po +++ /dev/null @@ -1,159 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n>1;\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" diff --git a/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.mo deleted file mode 100644 index a01aed2cf1..0000000000 Binary files a/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.po deleted file mode 100644 index 7ef0e73b88..0000000000 --- a/openstack-dashboard/dashboard/locale/it/LC_MESSAGES/django.po +++ /dev/null @@ -1,167 +0,0 @@ -# Italian Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Carlo Impagliazzo @ CRS4 -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboardN\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Carlo Impagliazzo \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: settings.py:105 -msgid "English" -msgstr "Inglese" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "Spagnolo" - -#: settings.py:108 -msgid "French" -msgstr "Francese" - -#: settings.py:109 -msgid "Japanese" -msgstr "Giapponese" - -#: settings.py:110 -msgid "Portuguese" -msgstr "Portoghese" - -#: settings.py:111 -#, fuzzy -msgid "Polish" -msgstr "Inglese" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "Cinese Semplificato" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "Cinese Tradizionale" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "Proibito" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "Pagina Non Trovata" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "La pagina che stavi cercando non esiste" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" -"Puoi aver digitato non correttamente l'indirizzo o la pagina è stata " -"spostata." - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" -"Si è verificato un errore inatteso elaborando la tua richesta. Riprova più " -"tardi." - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "Permesso Negato" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "Non hai i permessi per vedere la pagina richiesta." - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "Servizio Non Disponibile" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "Questo servizio è temporaneamente non disponibile. Riprova più tardi." - -#~ msgid "British English" -#~ msgstr "Inglese Britannico" diff --git a/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.mo deleted file mode 100644 index 81eba344bf..0000000000 Binary files a/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.po deleted file mode 100644 index a250d0037d..0000000000 --- a/openstack-dashboard/dashboard/locale/ja/LC_MESSAGES/django.po +++ /dev/null @@ -1,216 +0,0 @@ -# Japanese Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Takeshi Nakajima \n" -"Language-Team: LANGUAGE \n" -"Language: Japanese\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: settings.py:105 -msgid "English" -msgstr "英語" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "スペイン語" - -#: settings.py:108 -msgid "French" -msgstr "フランス語" - -#: settings.py:109 -msgid "Japanese" -msgstr "日本語" - -#: settings.py:110 -msgid "Portuguese" -msgstr "ポルトガル語" - -#: settings.py:111 -#, fuzzy -msgid "Polish" -msgstr "英語" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "簡体字中国語" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "繁体字中国語" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "アクセスを許可されていません。" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "ページが見つかりません。" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "あなたがお探しのページは存在しません。" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "アドレスの入力間違えか、ページが移動された可能性があります。" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "内部サーバーエラー" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" -"リクエストの処理中に予期しないエラーが発生しました。もう一度お試しください。" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "サインイン" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -#, fuzzy -msgid "OpenStack Dashboard" -msgstr "OpenStack Dashboard Launchpadのリポジトリー" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "サインアウト" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "アクセスが拒否されました。" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "あなたは、要求されたページを閲覧する権限がありません。" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "サービスが現在ご利用頂けません。" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "このサービスは一時的に利用できなくなっています。後ほどお試し下さい。" - -#~ msgid "British English" -#~ msgstr "英語(UK)" - -#~ msgid "Images" -#~ msgstr "イメージ" - -#~ msgid "Signed in as" -#~ msgstr "現在のユーザ" - -#~ msgid "Change Password" -#~ msgstr "パスワード変更" - -#~ msgid "

Welcome to the %(site_brand)s Dashboard

" -#~ msgstr "

%(site_brand)sのダッシュポードにようこそ。

" - -#~ msgid "" -#~ "Through the %(site_brand)s Dashboard you can manage your cloud\n" -#~ " through a crisp, clean, and easy to use interface." -#~ msgstr "" -#~ "この使いやすい%(site_brand)sのダッシュポードであなたの\n" -#~ " クラウドインフラを構築することができます。" - -#~ msgid "Your username and password didn't match. Please try again." -#~ msgstr "" -#~ "あなたのユーザー名とパスワードが一致しませんでした。もう一度やり直してくだ" -#~ "さい。" - -#~ msgid "Forgot Password?" -#~ msgstr "パスワードを忘れましたか?" - -#~ msgid "Models available in the %(name)s application." -#~ msgstr "モデルは、%(name)sアプリケーションにて提供されております。" - -#~ msgid "Add" -#~ msgstr "追加" - -#~ msgid "Change" -#~ msgstr "変更" - -#~ msgid "You don't have permission to edit anything." -#~ msgstr "編集する権限がありません。" - -#~ msgid "Recent Actions" -#~ msgstr "最近のアクション" - -#~ msgid "My Actions" -#~ msgstr "私のアクション" - -#~ msgid "None available" -#~ msgstr "利用不可" - -#~ msgid "Unknown content" -#~ msgstr "不明なコンテンツ" diff --git a/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.mo deleted file mode 100644 index 0945694477..0000000000 Binary files a/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.po deleted file mode 100644 index c573e71049..0000000000 --- a/openstack-dashboard/dashboard/locale/pl/LC_MESSAGES/django.po +++ /dev/null @@ -1,829 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: 2011-09-24 14:41+0100\n" -"Last-Translator: Tomasz 'Zen' Napierala \n" -"Language-Team: Polish OpenStack translations team \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Polish\n" -"X-Poedit-Country: POLAND\n" -"X-Poedit-SourceCharset: utf-8\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -#, fuzzy -msgid "Projects" -msgstr "Usuń projekt" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -#, fuzzy -msgid "Available Tenants" -msgstr "brak dostępnych" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" - -#, fuzzy -#~ msgid "Error authenticating: %s" -#~ msgstr "Użytkownik nie jest uwierzytelniony" - -#, fuzzy -#~ msgid "Unable to delete non-empty container: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Container was successfully created." -#~ msgstr "Wolumen %(id)s %(name)s został pomyślnie utworzony." - -#, fuzzy -#~ msgid "Unable to retreive image info from glance: %s" -#~ msgstr "Nie można wyrejestrować obrazu: %s" - -#, fuzzy -#~ msgid "Image was successfully updated." -#~ msgstr "Obraz %s został pomyślnie wyrejestrowany." - -#, fuzzy -#~ msgid "Unable to terminate %(inst)s: %(message)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Instance %s has been terminated." -#~ msgstr "Instancja %(inst)s została zakończona." - -#, fuzzy -#~ msgid "Unable to reboot instance: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Instance %s has been rebooted." -#~ msgstr "Instancja %(inst)s została zaktualizowana." - -#, fuzzy -#~ msgid "Unable to update instance: %s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Unable to get instance list: %s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get usage info: %s" -#~ msgstr "Nie można ustawić widoczności obrazu na publiczną: %s" - -#, fuzzy -#~ msgid "Unable to get vnc console for instance %(inst)s: %(message)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get information for instance %(inst)s: %(message)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Successfully deleted keypair: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Error deleting keypair: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Unable to create network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Network %s has been created." -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Unable to delete network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to rename network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get network list: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Unable to get network details: %s" -#~ msgstr "Nie można cofnąć: %s" - -#, fuzzy -#~ msgid "Successfully deleted object: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Object was successfully uploaded." -#~ msgstr "Grupa bezpieczeństwa %s została pomyślnie usunięta." - -#, fuzzy -#~ msgid "Unable to create ports on network %(network)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to delete port %(port)s: %(msg)s" -#~ msgstr "Nie można zakończyć %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Successfully created security_group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error creating security group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Successfully deleted security_group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error deleting security group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error adding rule security group: %s" -#~ msgstr "Nie można usunąć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Successfully deleted rule: %s" -#~ msgstr "Pomyślnie zmodyfikowano projekt %(proj)s." - -#, fuzzy -#~ msgid "Error authorizing security group: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Error fetching security_groups: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "%s was successfully added to flavors." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Unable to delete flavor: %s" -#~ msgstr "Nie można usunąć wolumenu: %s" - -#, fuzzy -#~ msgid "Error updating image: %s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "There are currently no images." -#~ msgstr "Brak istniejących par kluczy." - -#, fuzzy -#~ msgid "Image was successfully uploaded." -#~ msgstr "Obraz %s został pomyślnie wyrejestrowany." - -#, fuzzy -#~ msgid "Service '%s' has been enabled" -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Service '%s' has been disabled" -#~ msgstr "Obraz %s został zaktualizowany." - -#, fuzzy -#~ msgid "Unable to update service '%(name)s': %(msg)s" -#~ msgstr "Nie można zaktualizować instancji %(inst)s: %(msg)s" - -#, fuzzy -#~ msgid "Unable to get service info: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Unable to create user association: %s" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "Unable to create tenant: %s" -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "%s was successfully created." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Unable to update tenant: %s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Quotas for %s were successfully updated." -#~ msgstr "Grupa bezpieczeństwa %s została pomyślnie usunięta." - -#, fuzzy -#~ msgid "Unable to update quotas: %s" -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Unable to get tenant info: %s" -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "%(user)s was successfully deleted." -#~ msgstr "Klucz %s został pomyślnie usunięty." - -#, fuzzy -#~ msgid "Unable to list users: %s" -#~ msgstr "Nie można usunąć klucza: %s" - -#, fuzzy -#~ msgid "Unable to update user, please try again." -#~ msgstr "Nie można zaktualizować obrazu: %s" - -#, fuzzy -#~ msgid "Unable to retrieve tenant list: %s" -#~ msgstr "Nie można utworzyć klucza: %s" - -#, fuzzy -#~ msgid "Error creating user: %s" -#~ msgstr "tworzenie użytkownika %s..." - -#~ msgid "Instances" -#~ msgstr "Instancje" - -#~ msgid "Images" -#~ msgstr "Obrazy" - -#~ msgid "Security Groups" -#~ msgstr "Grupy bezpieczeństwa" - -#~ msgid "Delete" -#~ msgstr "Usuń" - -#, fuzzy -#~ msgid "Actions" -#~ msgstr "Położenie" - -#, fuzzy -#~ msgid "Create New Container" -#~ msgstr "Utwórz nowy wolumen." - -#~ msgid "Instance ID:" -#~ msgstr "ID instancji:" - -#, fuzzy -#~ msgid "Associate to instance" -#~ msgstr "Aktualizuj instncję" - -#~ msgid "Update Image" -#~ msgstr "Aktualizuj obraz" - -#, fuzzy -#~ msgid "Launch Instance" -#~ msgstr "Uruchom obraz" - -#, fuzzy -#~ msgid "Updated" -#~ msgstr "Aktualizuj obraz" - -#, fuzzy -#~ msgid "Launch" -#~ msgstr "Uruchom obraz" - -#~ msgid "Volumes" -#~ msgstr "Wolumeny" - -#, fuzzy -#~ msgid "From here you can modify different properties of an image." -#~ msgstr "Tutaj można zarządzać użytkownikami i rolami." - -#~ msgid "Update Instance" -#~ msgstr "Aktualizuj instncję" - -#, fuzzy -#~ msgid "Image" -#~ msgstr "Obrazy" - -#, fuzzy -#~ msgid "No active instances." -#~ msgstr "Zobacz instancje" - -#, fuzzy -#~ msgid "" -#~ "Keypairs are ssh credentials which are injected into images when they are " -#~ "launched. Creating a new key pair registers the public key and downloads " -#~ "the private key (a .pem file)." -#~ msgstr "" -#~ "Pary kluczy to dane uwierzytelniające ssh, które są wstrzykiwane do " -#~ "instancji podczas uruchomienia. Utworzenie nowej pary rejestruje klucz " -#~ "publiczny umożliwia pobranie klucza prywatnego (pliku pem). Należy " -#~ "chronić i używać ten klucza tak jak normalnego klucza prywantego." - -#, fuzzy -#~ msgid "There are currently no keypairs." -#~ msgstr "Brak istniejących par kluczy." - -#, fuzzy -#~ msgid "Attachment" -#~ msgstr "Dołącz wolumen" - -#, fuzzy -#~ msgid "Instance" -#~ msgstr "Instancje" - -#, fuzzy -#~ msgid "Attach" -#~ msgstr "Dołącz wolumen" - -#, fuzzy -#~ msgid "Create Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Action" -#~ msgstr "Położenie" - -#, fuzzy -#~ msgid "There are currently no ports in this network." -#~ msgstr "Brak użytkowników aktualnie powiązanych z projektem." - -#, fuzzy -#~ msgid "Create New Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Create A Network" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Attach Port" -#~ msgstr "Dołącz wolumen" - -#, fuzzy -#~ msgid "Create Security Group" -#~ msgstr "Grupy bezpieczeństwa" - -#, fuzzy -#~ msgid "Edit Rules" -#~ msgstr "Edytuj role użytkowników" - -#, fuzzy -#~ msgid "From here you can create a new security group" -#~ msgstr "Tutaj można edytować wiele ról użytkowników." - -#, fuzzy -#~ msgid "Edit Security Group Rules" -#~ msgstr "Grupy bezpieczeństwa" - -#, fuzzy -#~ msgid "Rules for Security Group" -#~ msgstr "Grupy bezpieczeństwa" - -#, fuzzy -#~ msgid "No rules for this security group" -#~ msgstr "Nie można utworzyć grupy bezpieczeństwa: %s" - -#, fuzzy -#~ msgid "From here you can define the sizing of a new flavor." -#~ msgstr "Tutaj można zarządzać użytkownikami i rolami." - -#, fuzzy -#~ msgid "Create New Flavor" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "Public" -#~ msgstr "Uczyń publicznym" - -#~ msgid "Location" -#~ msgstr "Położenie" - -#, fuzzy -#~ msgid "Toggle Public" -#~ msgstr "Uczyń publicznym" - -#, fuzzy -#~ msgid "Active Instances" -#~ msgstr "Zobacz instancje" - -#, fuzzy -#~ msgid "View Members" -#~ msgstr "Zobacz obrazy" - -#, fuzzy -#~ msgid "Remove" -#~ msgstr "Usuń obraz" - -#, fuzzy -#~ msgid "Update Tenant" -#~ msgstr "Aktualizuj instncję" - -#, fuzzy -#~ msgid "Update Quotas" -#~ msgstr "Aktualizuj instncję" - -#, fuzzy -#~ msgid "Create New Tenant" -#~ msgstr "Utwórz nowy wolumen." - -#, fuzzy -#~ msgid "From here you can edit a tenant." -#~ msgstr "Tutaj można edytować wiele ról użytkowników." - -#, fuzzy -#~ msgid "Update User" -#~ msgstr "Aktualizuj obraz" - -#, fuzzy -#~ msgid "Create New User" -#~ msgstr "Utwórz nowy wolumen." - -#~ msgid "Creates nova users for all users in the django auth database." -#~ msgstr "Tworzy użytkowników nova dla wszystkich użytkowników w baze django." - -#~ msgid "A key named %s already exists." -#~ msgstr "Klucz o nazwie %s już istnieje." - -#~ msgid "A security group named %s already exists." -#~ msgstr "Grupa bezpieczeństwa %s juz istnieje." - -#~ msgid "Project %s does not exist." -#~ msgstr "Projekt %s nie istnieje." - -#~ msgid "Successfully started VPN for project %(proj)s." -#~ msgstr "Pomyślnie uruchomiono VPN dla projektu %(proj)s." - -#~ msgid "Unable to start VPN for the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "Nie można uruchomić VPN dla projektu %(proj)s: %(code)s - %(msg)s" - -#~ msgid "Unable modify the project %(proj)s: %(code)s - %(msg)s" -#~ msgstr "Nie można zmodyfikować projektu %(proj)s: %(code)s - %(msg)s" - -#~ msgid "Unable to launch: %s" -#~ msgstr "Nie można uruchomić: %s" - -#~ msgid "Instance %s launched." -#~ msgstr "Instancja %s uruchomiona." - -#~ msgid "Unable to make image private: %s" -#~ msgstr "Nie można ustawić widoczności obrazu na prywatną: %s" - -#~ msgid "You are now using the region \"%s\"." -#~ msgstr "Używasz teraz regionu \"%s\"." - -#~ msgid "Security Group %s has been succesfully created." -#~ msgstr "Grupa bezpieczeństwa %s została pomyślnie utworzona." - -#~ msgid "Unable to authorize: %s" -#~ msgstr "Nie można autoryzować: %s" - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been authorized." -#~ msgstr "" -#~ "Grupa bezpieczeństwa %(grp)s: Dostęp do %(proto)s porty %(fr)d - %(to)d " -#~ "został autoryzowany." - -#~ msgid "" -#~ "Security Group %(grp)s: Access to %(proto)s ports %(fr)d - %(to)d has " -#~ "been revoked." -#~ msgstr "" -#~ "Grupa bezpieczeństwa %(grp)s: Dostęp do %(proto)s porty %(fr)d - %(to)d " -#~ "został cofnięty." - -#~ msgid "Unable to create volume: %s" -#~ msgstr "Nie można utworzyć wolumenu: %s" - -#~ msgid "Volume %s has been successfully deleted." -#~ msgstr "Wolumen %s został pomyślnie usunięty." - -#~ msgid "Unable to attach volume: %s" -#~ msgstr "Nie można dołączyć wolumenu: %s" - -#~ msgid "" -#~ "Volume %s is scheduled to be attached. If it doesn't become attached in " -#~ "two minutes, please try again (you may need to specify a different " -#~ "device)." -#~ msgstr "" -#~ "Wolumen %s został zaplanowany do dołączenia. Jeśli nie zostanie dołączony " -#~ "w ciągu 2 minut, należy spróbować ponownie (może zajść potrzeba podania " -#~ "innego urządzenia)" - -#~ msgid "Unable to detach volume: %s" -#~ msgstr "Nie można odłączyć wolumenu: %s" - -#~ msgid "Volume %s has been successfully detached." -#~ msgstr "Wolumen %s został pomyślnie odłączony." - -#~ msgid "Do you really want to delete this project?<" -#~ msgstr "Czy na pewno chcesz usunąć ten projekt?<" - -#~ msgid "Remove User From Project" -#~ msgstr "Usuń użytkownika z projektu" - -#~ msgid "Do you really want to remove this user from project?" -#~ msgstr "Czy na pewno chcesz usunąć tego użytkownika z projektu?" - -#~ msgid "Send Credentials" -#~ msgstr "Wyślij dane uwierzytelniające" - -#~ msgid "" -#~ "\"Select which users you would like to send credentials to from the " -#~ "'%(proj)s' project.\"" -#~ msgstr "" -#~ "\"Wybierz użytkowników, którym chcesz wysłać dane uwierzytelniające do " -#~ "'%(proj)s' project.\"" - -#~ msgid "Credentials sent successfully" -#~ msgstr "Pomyślnie wysłano dane uwierzytelniające." - -#~ msgid "Expired Token" -#~ msgstr "Token stracił ważność" - -#~ msgid "The link you clicked has expired." -#~ msgstr "Odnośnik, na który kliknąłeś stracił ważność." - -#~ msgid "" -#~ "This credentials download link you have reached\n" -#~ " is either invalid or has expired. Each link is only good for one " -#~ "use. If\n" -#~ " you need to download your credentials again, please contact the\n" -#~ " %(brand)s support team." -#~ msgstr "" -#~ "Odnośnik do danych uwierzytelniających, którego\n" -#~ " którego użyłeś jest nieprawidłowy lub wygasł. Każdy odnośnik może\n" -#~ " być użyty tylko raz. Jeśli musisz ponownie pobrać dane " -#~ "uwierzytelniające\n" -#~ " skontaktuj się z zespołem wsparcia %(brand)s." - -#~ msgid "Make Private" -#~ msgstr "Uczyń prywatnym" - -#~ msgid "No images currently available." -#~ msgstr "Brak dostępnych obrazów." - -#~ msgid "Edit Image" -#~ msgstr "Edytuj obraz" - -#~ msgid "" -#~ "From this page you can edit the name and description of an image that " -#~ "belongs to you." -#~ msgstr "Na tej stronie można edytować nazwę i opis własnego obrazu." - -#~ msgid "Edit Image:" -#~ msgstr "Edytuj obraz:" - -#~ msgid "Launch an Image" -#~ msgstr "Uruchom obraz" - -#~ msgid "" -#~ "Images are snapshots of running systems which can easily be deployed to " -#~ "run one or more instances." -#~ msgstr "" -#~ "Obrazy są zrzutami działających systemów, które łatwo można użyć do " -#~ "uruchamiania nowych instancji." - -#~ msgid "" -#~ "You can launch up to five instances of an image at a time. Some images " -#~ "allow for custom configuration to be passed in via User data." -#~ msgstr "" -#~ "Można uruchomić do 5 instancji obrazu na raz. Niektóre obraz umożliwiają " -#~ "przekazywanie własnej konfiguracji poprzez Dane użytkownika." - -#~ msgid "" -#~ "No instances are currently running. You may start a new instance from the" -#~ msgstr "Brak uruchomionych instancji. Można uruchomić nową instancję z" - -#~ msgid "" -#~ "Here you can see up to the minute performance data about your instance." -#~ msgstr "Tutaj można obejrzeć minutowe dane nt. wydajności instancji." - -#~ msgid "Edit Instance:" -#~ msgstr "Edytuj instancję:" - -#~ msgid "Edit Instance" -#~ msgstr "Edytuj instancję" - -#~ msgid "" -#~ "From this page you can give your instance an alias, so you don't have to " -#~ "remember its unique id." -#~ msgstr "Tutaj można nadać instancji alias dla łatwiejszego jej odróżnienia." - -#~ msgid "" -#~ "Instances are virtual servers launched from images. You can launch " -#~ "instances from the" -#~ msgstr "" -#~ "Instancje są wirtualnymi serwerami uruchomionymi z obrazów. Można " -#~ "uruchamiać instancje z" - -#~ msgid "Are you sure you wish to terminate instance" -#~ msgstr "Jesteś pewien, że chcesz usunąć instancję" - -#~ msgid "" -#~ "A connection error has occurred. Please ensure you are still connected to " -#~ "VPN." -#~ msgstr "Wystąpił błąd połączenia. Należy sprawdzić połączenie VPN." - -#~ msgid "Instance ID: %(instance.id)s Performance\" " -#~ msgstr "ID instancji: %(instance.id)s wydajność\" " - -#~ msgid "Keys" -#~ msgstr "Klucze" - -#~ msgid "Are you sure you wish to delete key" -#~ msgstr "Czy na pewno usunąć klucz" - -#~ msgid "Edit Roles for User:" -#~ msgstr "Edytuj role dla użytkownika:" - -#~ msgid "" -#~ "Welcome to the %(proj)s Overview. From here you can manage " -#~ "your instances, images, keys, and security groups." -#~ msgstr "" -#~ "Witaj w posumowaniu %(proj)s. Tutaj można zarządzać swoimi " -#~ "instancjami, obrazami, kluczami i grupami bezpieczeństwa." - -#~ msgid "" -#~ "To get started using the command line management tools, you can download euca2ools and use them with your x509 " -#~ "credentials." -#~ msgstr "" -#~ "Aby zacząć pracę z narzędziami linii poleceń, możesz pobrać " -#~ "euca2ools i używać ich z danymi uwierzytelniającymi x509." - -#~ msgid "Generate X509 credentials." -#~ msgstr "Wygeneruj dane uwierzytelniające x509." - -#~ msgid "Manage Users and Roles" -#~ msgstr "Zarządzaj użytkownikami i rolami" - -#~ msgid " Security Group: %(securitygroup.name)s " -#~ msgstr "Grup abezpieczeństwa: %(securitygroup.name)s " - -#~ msgid "" -#~ "Add and remove protocols to the security group by authorizing and " -#~ "revoking port forwarding. For instance
[tcp, 80, 80] will allow " -#~ "access to HTTP from devices outside this security group." -#~ msgstr "" -#~ "Dodawaj i usuwaj protokoły do grupy bezpieczeństwa poprzez dopuszczanie " -#~ "lub blokowanie przekazywania portów. Na przykład
[tcp, 80, 80] " -#~ "pozwoli na dostęp do HTTP dla urządzeń spoza tej grupy bezpieczeństwa." - -#~ msgid "" -#~ "Security groups are firewall rules which allow access to your instances " -#~ "from other groups as well as the internet. All ports/protocols are " -#~ "denied by default." -#~ msgstr "" -#~ "Grypu bezpieczeństwa do reguły firewall'a, które zezwalają na dostęp do " -#~ "twojej instancji z innych grup oraz z Internetu. Wszystkie porty/" -#~ "protokoły są domyślnie zablokowane." - -#~ msgid "" -#~ "Volumes provide persistent block storage. Creating a new volume gives you " -#~ "a raw block device which you may format with your choice of filesystems " -#~ "(ext3 is recommended). A volume may only be attached to a single instance " -#~ "at a time." -#~ msgstr "" -#~ "Wolumeny dostarczają trwałe miejsce przechowywania danych. Utworzenie " -#~ "nowego wolumenu daje udostępnia nowe urządzenie blokowe, które możesz " -#~ "sformatować na dowolny system plików (zalecany jest ext3). Wolumen może " -#~ "być dołączony tylko do jednej instancji na raz." - -#~ msgid "No volumes currently exist." -#~ msgstr "Brak wolumenów." diff --git a/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.mo deleted file mode 100644 index d74b15e5f5..0000000000 Binary files a/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.po deleted file mode 100644 index 8d4ab119a9..0000000000 --- a/openstack-dashboard/dashboard/locale/pt/LC_MESSAGES/django.po +++ /dev/null @@ -1,158 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" diff --git a/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.mo deleted file mode 100644 index d74b15e5f5..0000000000 Binary files a/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.po deleted file mode 100644 index 8d4ab119a9..0000000000 --- a/openstack-dashboard/dashboard/locale/zh-cn/LC_MESSAGES/django.po +++ /dev/null @@ -1,158 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" diff --git a/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.mo b/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.mo deleted file mode 100644 index d74b15e5f5..0000000000 Binary files a/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.mo and /dev/null differ diff --git a/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.po b/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.po deleted file mode 100644 index 8d4ab119a9..0000000000 --- a/openstack-dashboard/dashboard/locale/zh-tw/LC_MESSAGES/django.po +++ /dev/null @@ -1,158 +0,0 @@ -# Translations of Dashboard for OpenStack User Interface. -# Copyright 2011 Midokura KK -# This file is distributed under the same license as the Dashboard for OpenStack. -# FIRST AUTHOR Jeffrey Wilcox, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: openstack-dashboard\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-11 16:04+0900\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: settings.py:105 -msgid "English" -msgstr "" - -#: settings.py:106 -msgid "Italiano" -msgstr "" - -#: settings.py:107 -msgid "Spanish" -msgstr "" - -#: settings.py:108 -msgid "French" -msgstr "" - -#: settings.py:109 -msgid "Japanese" -msgstr "" - -#: settings.py:110 -msgid "Portuguese" -msgstr "" - -#: settings.py:111 -msgid "Polish" -msgstr "" - -#: settings.py:112 -msgid "Simplified Chinese" -msgstr "" - -#: settings.py:113 -msgid "Traditional Chinese" -msgstr "" - -#: templates/403.html:4 templates/403.html.py:9 -msgid "Forbidden" -msgstr "" - -#: templates/403.html:20 templates/404.html:19 templates/500.html:19 -#: templates/permission_denied.html:19 -msgid "Home" -msgstr "" - -#: templates/403.html:24 templates/404.html:23 templates/500.html:23 -#: templates/permission_denied.html:23 -msgid "Projects" -msgstr "" - -#: templates/404.html:4 -msgid "Page Not Found" -msgstr "" - -#: templates/404.html:9 -msgid "The page you were looking for doesn't exist" -msgstr "" - -#: templates/404.html:10 -msgid "You may have mistyped the address or the page may have moved." -msgstr "" - -#: templates/500.html:4 templates/500.html.py:9 -msgid "Internal Server Error" -msgstr "" - -#: templates/500.html:10 -msgid "" -"An unexpected error occurred while processing your request. Please try your " -"request again." -msgstr "" - -#: templates/_login.html:6 templates/_switch.html:6 -msgid "Sign In" -msgstr "" - -#: templates/_messages.html:5 -msgid "Info" -msgstr "" - -#: templates/_messages.html:11 -msgid "Warning" -msgstr "" - -#: templates/_messages.html:17 -msgid "Success" -msgstr "" - -#: templates/_messages.html:23 -msgid "Error" -msgstr "" - -#: templates/_topbar.html:4 -msgid "OpenStack Dashboard" -msgstr "" - -#: templates/_topbar.html:6 -msgid "User Dashboard" -msgstr "" - -#: templates/_topbar.html:9 -msgid "System Panel" -msgstr "" - -#: templates/_topbar.html:24 -msgid "Available Tenants" -msgstr "" - -#: templates/_topbar.html:30 -msgid "Sign Out" -msgstr "" - -#: templates/login_required.html:13 templates/login_required.html.py:22 -msgid "Login" -msgstr "" - -#: templates/login_required.html:14 -msgid "Login to OpenStack via Keystone auth." -msgstr "" - -#: templates/permission_denied.html:4 templates/permission_denied.html.py:9 -msgid "Permission Denied" -msgstr "" - -#: templates/permission_denied.html:10 -msgid "You do not have permission to view the requested page." -msgstr "" - -#: templates/switch_tenants.html:12 -msgid "Log-in to tenant" -msgstr "" - -#: templates/unavailable.html:4 templates/unavailable.html.py:9 -msgid "Service Unavailable" -msgstr "" - -#: templates/unavailable.html:10 -msgid "This service is temporarily unavailable. Please check back soon." -msgstr "" diff --git a/openstack-dashboard/dashboard/templates/_scripts.html b/openstack-dashboard/dashboard/templates/_scripts.html deleted file mode 100644 index ff97691855..0000000000 --- a/openstack-dashboard/dashboard/templates/_scripts.html +++ /dev/null @@ -1,20 +0,0 @@ -{% comment %} jQuery and Plugins {% endcomment %} - - - - - -{% comment %} Bootstrap {% endcomment %} - - -{% comment %} Hogan.js (client-side templating) {% endcomment %} - - -{% comment %} Horizon-specific JS {% endcomment %} - - - - - - - diff --git a/openstack-dashboard/setup.py b/openstack-dashboard/setup.py deleted file mode 100755 index 1a746cb020..0000000000 --- a/openstack-dashboard/setup.py +++ /dev/null @@ -1,50 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 Nebula, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import os -import shutil -import setuptools - -def read(fname): - return open(os.path.join(os.path.dirname(__file__), fname)).read() - - -setuptools.setup( - name = 'openstack-dashboard', - version = '0.4', - url = 'https://github.com/cloudbuilders/openstack-dashboard.git', - license = 'Apache 2.0', - description = "A Django interface for OpenStack.", - long_description = read('README'), - author = 'Devin Carlen', - author_email = 'devin.carlen@gmail.com', - data_files = [], - install_requires = ['setuptools', 'mox>=0.5.0'], - zip_safe = False, - classifiers = [ - 'Development Status :: 4 - Beta', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Internet :: WWW/HTTP', - ] -) diff --git a/openstack-dashboard/dashboard/__init__.py b/openstack_dashboard/__init__.py similarity index 100% rename from openstack-dashboard/dashboard/__init__.py rename to openstack_dashboard/__init__.py diff --git a/openstack-dashboard/local/__init__.py b/openstack_dashboard/local/__init__.py similarity index 100% rename from openstack-dashboard/local/__init__.py rename to openstack_dashboard/local/__init__.py diff --git a/openstack-dashboard/local/local_settings.py.example b/openstack_dashboard/local/local_settings.py.example similarity index 89% rename from openstack-dashboard/local/local_settings.py.example rename to openstack_dashboard/local/local_settings.py.example index 9e19f6485a..b7fa47b123 100644 --- a/openstack-dashboard/local/local_settings.py.example +++ b/openstack_dashboard/local/local_settings.py.example @@ -6,13 +6,6 @@ PROD = False USE_SSL = False LOCAL_PATH = os.path.dirname(os.path.abspath(__file__)) -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(LOCAL_PATH, 'dashboard_openstack.sqlite3'), - 'TEST_NAME': os.path.join(LOCAL_PATH, 'test.sqlite3'), - }, -} # We recommend you use memcached for development; otherwise after every reload # of the django development server, you will have to login again. To use @@ -30,12 +23,6 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # EMAIL_HOST_USER = 'djangomail' # EMAIL_HOST_PASSWORD = 'top-secret!' -HORIZON_CONFIG = { - 'dashboards': ('nova', 'syspanel', 'settings',), - 'default_dashboard': 'nova', - 'user_home': 'dashboard.views.user_home', -} - # For multiple regions uncomment this configuration, and add (endpoint, title). # AVAILABLE_REGIONS = [ # ('http://cluster1.example.com:5000/v2.0', 'cluster1'), diff --git a/openstack-dashboard/dashboard/middleware.py b/openstack_dashboard/middleware.py similarity index 100% rename from openstack-dashboard/dashboard/middleware.py rename to openstack_dashboard/middleware.py diff --git a/openstack-dashboard/dashboard/settings.py b/openstack_dashboard/settings.py similarity index 91% rename from openstack-dashboard/dashboard/settings.py rename to openstack_dashboard/settings.py index 3475a740c3..db9922c7d7 100644 --- a/openstack-dashboard/dashboard/settings.py +++ b/openstack_dashboard/settings.py @@ -46,14 +46,20 @@ ADMIN_MEDIA_PREFIX = '/static/admin/' CREDENTIAL_AUTHORIZATION_DAYS = '5' -ROOT_URLCONF = 'dashboard.urls' +ROOT_URLCONF = 'openstack_dashboard.urls' + +HORIZON_CONFIG = { + 'dashboards': ('nova', 'syspanel', 'settings',), + 'default_dashboard': 'nova', + 'user_home': 'openstack_dashboard.views.user_home', +} MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', - 'dashboard.middleware.DashboardLogUnhandledExceptionsMiddleware', + 'openstack_dashboard.middleware.DashboardLogUnhandledExceptionsMiddleware', 'horizon.middleware.HorizonMiddleware', 'django.middleware.doc.XViewMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -83,7 +89,7 @@ STATICFILES_DIRS = ( ) INSTALLED_APPS = ( - 'dashboard', + 'openstack_dashboard', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', @@ -125,8 +131,8 @@ LIVE_SERVER_PORT = 8000 try: from local.local_settings import * -except Exception, e: - logging.exception(e) +except ImportError: + logging.warning("No local_settings file found.") if DEBUG: logging.basicConfig(level=logging.DEBUG) diff --git a/openstack-dashboard/dashboard/static/bootstrap/css/bootstrap-responsive.css b/openstack_dashboard/static/bootstrap/css/bootstrap-responsive.css similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/css/bootstrap-responsive.css rename to openstack_dashboard/static/bootstrap/css/bootstrap-responsive.css diff --git a/openstack-dashboard/dashboard/static/bootstrap/css/bootstrap-responsive.min.css b/openstack_dashboard/static/bootstrap/css/bootstrap-responsive.min.css similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/css/bootstrap-responsive.min.css rename to openstack_dashboard/static/bootstrap/css/bootstrap-responsive.min.css diff --git a/openstack-dashboard/dashboard/static/bootstrap/css/bootstrap.css b/openstack_dashboard/static/bootstrap/css/bootstrap.css similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/css/bootstrap.css rename to openstack_dashboard/static/bootstrap/css/bootstrap.css diff --git a/openstack-dashboard/dashboard/static/bootstrap/css/bootstrap.min.css b/openstack_dashboard/static/bootstrap/css/bootstrap.min.css similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/css/bootstrap.min.css rename to openstack_dashboard/static/bootstrap/css/bootstrap.min.css diff --git a/openstack-dashboard/dashboard/static/bootstrap/img/glyphicons-halflings-white.png b/openstack_dashboard/static/bootstrap/img/glyphicons-halflings-white.png similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/img/glyphicons-halflings-white.png rename to openstack_dashboard/static/bootstrap/img/glyphicons-halflings-white.png diff --git a/openstack-dashboard/dashboard/static/bootstrap/img/glyphicons-halflings.png b/openstack_dashboard/static/bootstrap/img/glyphicons-halflings.png similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/img/glyphicons-halflings.png rename to openstack_dashboard/static/bootstrap/img/glyphicons-halflings.png diff --git a/openstack-dashboard/dashboard/static/bootstrap/js/bootstrap.js b/openstack_dashboard/static/bootstrap/js/bootstrap.js similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/js/bootstrap.js rename to openstack_dashboard/static/bootstrap/js/bootstrap.js diff --git a/openstack-dashboard/dashboard/static/bootstrap/js/bootstrap.min.js b/openstack_dashboard/static/bootstrap/js/bootstrap.min.js similarity index 100% rename from openstack-dashboard/dashboard/static/bootstrap/js/bootstrap.min.js rename to openstack_dashboard/static/bootstrap/js/bootstrap.min.js diff --git a/openstack-dashboard/dashboard/static/dashboard/css/style.css b/openstack_dashboard/static/dashboard/css/style.css similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/css/style.css rename to openstack_dashboard/static/dashboard/css/style.css diff --git a/openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.eot b/openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.eot similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.eot rename to openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.eot diff --git a/openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.svg b/openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.svg similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.svg rename to openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.svg diff --git a/openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.ttf b/openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.ttf similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.ttf rename to openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.ttf diff --git a/openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.woff b/openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.woff similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/fonts/Anivers_Regular-webfont.woff rename to openstack_dashboard/static/dashboard/fonts/Anivers_Regular-webfont.woff diff --git a/openstack-dashboard/dashboard/static/dashboard/img/drop_arrow.png b/openstack_dashboard/static/dashboard/img/drop_arrow.png similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/drop_arrow.png rename to openstack_dashboard/static/dashboard/img/drop_arrow.png diff --git a/openstack-dashboard/dashboard/static/dashboard/img/favicon.ico b/openstack_dashboard/static/dashboard/img/favicon.ico similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/favicon.ico rename to openstack_dashboard/static/dashboard/img/favicon.ico diff --git a/openstack-dashboard/dashboard/static/dashboard/img/logo.png b/openstack_dashboard/static/dashboard/img/logo.png similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/logo.png rename to openstack_dashboard/static/dashboard/img/logo.png diff --git a/openstack-dashboard/dashboard/static/dashboard/img/right_droparrow.png b/openstack_dashboard/static/dashboard/img/right_droparrow.png similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/right_droparrow.png rename to openstack_dashboard/static/dashboard/img/right_droparrow.png diff --git a/openstack-dashboard/dashboard/static/dashboard/img/search.png b/openstack_dashboard/static/dashboard/img/search.png similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/search.png rename to openstack_dashboard/static/dashboard/img/search.png diff --git a/openstack-dashboard/dashboard/static/dashboard/img/spinner.gif b/openstack_dashboard/static/dashboard/img/spinner.gif similarity index 100% rename from openstack-dashboard/dashboard/static/dashboard/img/spinner.gif rename to openstack_dashboard/static/dashboard/img/spinner.gif diff --git a/openstack-dashboard/dashboard/static/qunit/qunit.css b/openstack_dashboard/static/qunit/qunit.css similarity index 100% rename from openstack-dashboard/dashboard/static/qunit/qunit.css rename to openstack_dashboard/static/qunit/qunit.css diff --git a/openstack-dashboard/dashboard/static/qunit/qunit.js b/openstack_dashboard/static/qunit/qunit.js similarity index 100% rename from openstack-dashboard/dashboard/static/qunit/qunit.js rename to openstack_dashboard/static/qunit/qunit.js diff --git a/openstack-dashboard/dashboard/templates/403.html b/openstack_dashboard/templates/403.html similarity index 100% rename from openstack-dashboard/dashboard/templates/403.html rename to openstack_dashboard/templates/403.html diff --git a/openstack-dashboard/dashboard/templates/404.html b/openstack_dashboard/templates/404.html similarity index 100% rename from openstack-dashboard/dashboard/templates/404.html rename to openstack_dashboard/templates/404.html diff --git a/openstack-dashboard/dashboard/templates/500.html b/openstack_dashboard/templates/500.html similarity index 100% rename from openstack-dashboard/dashboard/templates/500.html rename to openstack_dashboard/templates/500.html diff --git a/openstack-dashboard/dashboard/templates/_footer.html b/openstack_dashboard/templates/_footer.html similarity index 100% rename from openstack-dashboard/dashboard/templates/_footer.html rename to openstack_dashboard/templates/_footer.html diff --git a/openstack-dashboard/dashboard/templates/_header.html b/openstack_dashboard/templates/_header.html similarity index 100% rename from openstack-dashboard/dashboard/templates/_header.html rename to openstack_dashboard/templates/_header.html diff --git a/openstack-dashboard/dashboard/templates/_login.html b/openstack_dashboard/templates/_login.html similarity index 100% rename from openstack-dashboard/dashboard/templates/_login.html rename to openstack_dashboard/templates/_login.html diff --git a/openstack_dashboard/templates/_scripts.html b/openstack_dashboard/templates/_scripts.html new file mode 100644 index 0000000000..e3b8e6a7fb --- /dev/null +++ b/openstack_dashboard/templates/_scripts.html @@ -0,0 +1,20 @@ +{% comment %} jQuery and Plugins {% endcomment %} + + + + + +{% comment %} Bootstrap {% endcomment %} + + +{% comment %} Hogan.js (client-side templating) {% endcomment %} + + +{% comment %} Horizon-specific JS {% endcomment %} + + + + + + + diff --git a/openstack-dashboard/dashboard/templates/_stylesheets.html b/openstack_dashboard/templates/_stylesheets.html similarity index 100% rename from openstack-dashboard/dashboard/templates/_stylesheets.html rename to openstack_dashboard/templates/_stylesheets.html diff --git a/openstack-dashboard/dashboard/templates/_switch.html b/openstack_dashboard/templates/_switch.html similarity index 100% rename from openstack-dashboard/dashboard/templates/_switch.html rename to openstack_dashboard/templates/_switch.html diff --git a/openstack-dashboard/dashboard/templates/base.html b/openstack_dashboard/templates/base.html similarity index 100% rename from openstack-dashboard/dashboard/templates/base.html rename to openstack_dashboard/templates/base.html diff --git a/openstack-dashboard/dashboard/templates/qunit.html b/openstack_dashboard/templates/qunit.html similarity index 100% rename from openstack-dashboard/dashboard/templates/qunit.html rename to openstack_dashboard/templates/qunit.html diff --git a/openstack-dashboard/dashboard/templates/splash.html b/openstack_dashboard/templates/splash.html similarity index 100% rename from openstack-dashboard/dashboard/templates/splash.html rename to openstack_dashboard/templates/splash.html diff --git a/openstack-dashboard/dashboard/templates/switch_tenants.html b/openstack_dashboard/templates/switch_tenants.html similarity index 100% rename from openstack-dashboard/dashboard/templates/switch_tenants.html rename to openstack_dashboard/templates/switch_tenants.html diff --git a/openstack-dashboard/dashboard/tests.py b/openstack_dashboard/tests.py similarity index 100% rename from openstack-dashboard/dashboard/tests.py rename to openstack_dashboard/tests.py diff --git a/openstack-dashboard/dashboard/urls.py b/openstack_dashboard/urls.py similarity index 90% rename from openstack-dashboard/dashboard/urls.py rename to openstack_dashboard/urls.py index f0607d2192..34ed315ee3 100644 --- a/openstack-dashboard/dashboard/urls.py +++ b/openstack_dashboard/urls.py @@ -31,8 +31,10 @@ import horizon urlpatterns = patterns('', - url(r'^$', 'dashboard.views.splash', name='splash'), - url(r'^qunit/$', 'dashboard.views.qunit_tests', name='qunit_tests'), + url(r'^$', 'openstack_dashboard.views.splash', name='splash'), + url(r'^qunit/$', + 'openstack_dashboard.views.qunit_tests', + name='qunit_tests'), url(r'', include(horizon.urls))) # Development static app and project media serving using the staticfiles app. diff --git a/openstack-dashboard/dashboard/views.py b/openstack_dashboard/views.py similarity index 98% rename from openstack-dashboard/dashboard/views.py rename to openstack_dashboard/views.py index d465615158..c41baf52cd 100644 --- a/openstack-dashboard/dashboard/views.py +++ b/openstack_dashboard/views.py @@ -21,7 +21,6 @@ """ Views for home page. """ -from django import template from django import shortcuts from django.views.decorators import vary diff --git a/openstack-dashboard/dashboard/wsgi/django.wsgi b/openstack_dashboard/wsgi/django.wsgi similarity index 100% rename from openstack-dashboard/dashboard/wsgi/django.wsgi rename to openstack_dashboard/wsgi/django.wsgi diff --git a/run_tests.sh b/run_tests.sh index c0f80cba31..320537b3ff 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -6,7 +6,7 @@ set -o errexit # Increment me any time the environment should be rebuilt. # This includes dependncy changes, directory renames, etc. # Simple integer secuence: 1, 2, 3... -environment_version=12 +environment_version=13 #--------------------------------------------------------# function usage { @@ -28,7 +28,7 @@ function usage { echo " Implies -V if -N is not set." echo " --with-selenium Run unit tests including Selenium tests" echo " --runserver Run the Django development server for" - echo " openstack-dashboard in the virtual" + echo " openstack_dashboard in the virtual" echo " environment." echo " --docs Just build the documentation" echo " --backup-environment Make a backup of the environment on exit" @@ -48,7 +48,7 @@ function usage { root=`pwd` venv=$root/.venv with_venv=tools/with_venv.sh -included_dirs="openstack-dashboard/dashboard horizon/horizon" +included_dirs="openstack_dashboard horizon" always_venv=0 backup_env=0 @@ -93,13 +93,13 @@ function process_option { function run_server { echo "Starting Django development server..." - ${command_wrapper} python $root/openstack-dashboard/manage.py runserver $testargs + ${command_wrapper} python $root/manage.py runserver $testargs echo "Server stopped." } function run_pylint { echo "Running pylint ..." - PYTHONPATH=$root/openstack-dashboard ${command_wrapper} pylint --rcfile=.pylintrc -f parseable $included_dirs > pylint.txt || true + PYTHONPATH=$root ${command_wrapper} pylint --rcfile=.pylintrc -f parseable $included_dirs > pylint.txt || true CODE=$? grep Global -A2 pylint.txt if [ $CODE -lt 32 ]; then @@ -130,7 +130,7 @@ function run_pep8 { function run_sphinx { echo "Building sphinx..." - export DJANGO_SETTINGS_MODULE=dashboard.settings + export DJANGO_SETTINGS_MODULE=openstack_dashboard.settings ${command_wrapper} sphinx-build -b html docs/source docs/build/html echo "Build complete." } @@ -246,7 +246,7 @@ function restore_environment { } function install_venv { - # Install openstack-dashboard with install_venv.py + # Install with install_venv.py export PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE-/tmp/.pip_download_cache} export PIP_USE_MIRRORS=true if [ $quiet -eq 1 ]; then @@ -267,17 +267,17 @@ function run_tests { echo "Running Horizon application tests" ${command_wrapper} coverage erase - ${command_wrapper} coverage run -p $root/openstack-dashboard/manage.py test horizon --settings=horizon.tests.testsettings $testargs + ${command_wrapper} coverage run -p $root/manage.py test horizon --settings=horizon.tests.testsettings $testargs # get results of the Horizon tests HORIZON_RESULT=$? - echo "Running openstack-dashboard (Django project) tests" + echo "Running openstack_dashboard tests" if [ $selenium -eq 1 ]; then - ${command_wrapper} coverage run -p $root/openstack-dashboard/manage.py test dashboard --settings=horizon.tests.testsettings --with-selenium --with-cherrypyliveserver $testargs + ${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=horizon.tests.testsettings --with-selenium --with-cherrypyliveserver $testargs else - ${command_wrapper} coverage run -p $root/openstack-dashboard/manage.py test dashboard --settings=horizon.tests.testsettings $testargs + ${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=horizon.tests.testsettings $testargs fi - # get results of the openstack-dashboard tests + # get results of the openstack_dashboard tests DASHBOARD_RESULT=$? if [ $with_coverage -eq 1 ]; then diff --git a/setup.py b/setup.py new file mode 100755 index 0000000000..4f5430f380 --- /dev/null +++ b/setup.py @@ -0,0 +1,52 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2012 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# Copyright 2012 Nebula, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import os +from setuptools import setup, find_packages, findall +from horizon import version + + +def read(fname): + return open(os.path.join(os.path.dirname(__file__), fname)).read() + + +setup(name="horizon", + version=version.canonical_version_string(), + url='https://github.com/openstack/horizon/', + license='Apache 2.0', + description="The OpenStack Dashboard.", + long_description=read('README.rst'), + author='Devin Carlen', + author_email='devin.carlen@gmail.com', + packages=find_packages(), + package_data={'horizon': [s[len('horizon/'):] for s in + findall('horizon/templates') \ + + findall('horizon/dashboards/nova/templates') \ + + findall('horizon/dashboards/syspanel/templates') \ + + findall('horizon/dashboards/settings/templates')]}, + install_requires=[], + classifiers=['Development Status :: 4 - Beta', + 'Framework :: Django', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Topic :: Internet :: WWW/HTTP'] +) diff --git a/tools/install_venv.py b/tools/install_venv.py index 3526fd78af..20fd25f766 100644 --- a/tools/install_venv.py +++ b/tools/install_venv.py @@ -33,6 +33,7 @@ ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) VENV = os.path.join(ROOT, '.venv') WITH_VENV = os.path.join(ROOT, 'tools', 'with_venv.sh') PIP_REQUIRES = os.path.join(ROOT, 'tools', 'pip-requires') +TEST_REQUIRES = os.path.join(ROOT, 'tools', 'test-requires') def die(message, *args): @@ -70,9 +71,9 @@ HAS_VIRTUALENV = bool(run_command(['which', 'virtualenv'], def check_dependencies(): """Make sure virtualenv is in the path.""" - print 'checking dependencies...' + print 'Checking dependencies...' if not HAS_VIRTUALENV: - print 'not found.' + print 'Virtual environment not found.' # Try installing it via easy_install... if HAS_EASY_INSTALL: print 'Installing virtualenv via easy_install...', @@ -106,11 +107,16 @@ def create_virtualenv(venv=VENV): print 'done.' +def pip_install(*args): + args = [WITH_VENV, 'pip', 'install', '--upgrade'] + list(args) + run_command(args, redirect_output=False) + + def install_dependencies(venv=VENV): print "Installing dependencies..." print "(This may take several minutes, don't panic)" - run_command([WITH_VENV, 'pip', 'install', '-r', PIP_REQUIRES], - redirect_output=False) + pip_install('-r', PIP_REQUIRES) + pip_install('-r', TEST_REQUIRES) # Tell the virtual env how to "import dashboard" py = 'python%d.%d' % (sys.version_info[0], sys.version_info[1]) @@ -119,21 +125,20 @@ def install_dependencies(venv=VENV): f.write("%s\n" % ROOT) -def install_django_openstack(): +def install_horizon(): print 'Installing horizon module in development mode...' - path = os.path.join(ROOT, 'horizon') - run_command([WITH_VENV, 'python', 'setup.py', 'develop'], cwd=path) + run_command([WITH_VENV, 'python', 'setup.py', 'develop'], cwd=ROOT) def print_summary(): summary = """ - Horizon development environment setup is complete. +Horizon development environment setup is complete. - To activate the virtualenv for the extent of your current shell session you - can run: +To activate the virtualenv for the extent of your current shell session you +can run: - $ source .venv/bin/activate - """ +$ source .venv/bin/activate +""" print summary @@ -141,7 +146,7 @@ def main(): check_dependencies() create_virtualenv() install_dependencies() - install_django_openstack() + install_horizon() print_summary() if __name__ == '__main__': diff --git a/tools/pip-requires b/tools/pip-requires index 58c7dcf673..ff3d9f1480 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -1,22 +1,9 @@ -# horizon +# Horizon Core Requirements Django==1.3.1 python-cloudfiles python-dateutil -# docs -sphinx - -# testing -CherryPy -coverage -django-nose==0.1.2 -django-nose-selenium -mox -nose==1.0.0 -pep8 -pylint - -# glance +# Glance Requirements PasteDeploy eventlet kombu @@ -29,8 +16,7 @@ webob xattr iso8601 - -# horizon non-pip deps +# Horizon Non-pip Requirements -e git+https://github.com/openstack/python-novaclient.git#egg=python-novaclient -e git+https://github.com/openstack/python-keystoneclient.git#egg=python-keystoneclient -e git+https://github.com/openstack/python-quantumclient.git#egg=python-quantumclient-dev diff --git a/tools/test-requires b/tools/test-requires new file mode 100644 index 0000000000..a586718b25 --- /dev/null +++ b/tools/test-requires @@ -0,0 +1,12 @@ +# Testing Requirements +CherryPy +coverage +django-nose==0.1.2 +django-nose-selenium +mox +nose==1.0.0 +pep8 +pylint + +# Docs Requirements +sphinx