From a73465c631b9a3f22d685f610e1301dbe933d5f7 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Thu, 18 Jan 2018 15:19:38 +0100 Subject: [PATCH] Retire craton-dashboard Remove everything, add a README with explanation. Change-Id: I37f11272c321822065482283e1421898c30d87fc --- .eslintrc | 51 -- .gitignore | 12 - .gitreview | 4 - .testr.conf | 7 - .travis.yml | 16 - AUTHORS | 6 - ChangeLog | 22 - LICENSE | 201 ------- MANIFEST.in | 3 - README.rst | 33 +- craton_dashboard/__init__.py | 0 craton_dashboard/api/__init__.py | 0 craton_dashboard/api/craton.py | 150 ----- craton_dashboard/api/rest/__init__.py | 15 - craton_dashboard/api/rest/craton.py | 103 ---- craton_dashboard/content/__init__.py | 0 .../content/fleet_management/__init__.py | 0 .../fleet_management/inventory/__init__.py | 15 - .../fleet_management/inventory/panel.py | 25 - .../inventory/templates/inventory/index.html | 14 - .../fleet_management/inventory/urls.py | 22 - .../fleet_management/inventory/views.py | 21 - .../fleet_management/taskflows/__init__.py | 15 - .../fleet_management/taskflows/panel.py | 22 - .../taskflows/templates/taskflows/index.html | 14 - .../fleet_management/taskflows/urls.py | 22 - .../fleet_management/taskflows/views.py | 21 - craton_dashboard/dashboard.py | 25 - .../enabled/_4000_fleet_management.py | 24 - .../enabled/_4010_fleet_inventory_panel.py | 23 - .../enabled/_4020_fleet_taskflows_panel.py | 23 - craton_dashboard/enabled/__init__.py | 0 craton_dashboard/locale/__init__.py | 0 .../openstack-service-api/craton.service.js | 89 --- .../craton.service.spec.js | 76 --- .../fleet_management.module.spec.js | 26 - .../fleet_management/fleet_management.scss | 0 .../fleet_managment.module.js | 70 --- .../inventory/details/drawer.html | 10 - .../inventory/drawer.controller.js | 47 -- .../inventory/drawer.controller.spec.js | 50 -- .../fleet_management/inventory/index.html | 4 - .../fleet_management/inventory/panel.html | 5 - .../inventory/regions.module.js | 91 --- .../inventory/regions.module.spec.js | 26 - .../fleet_management/taskflows/index.html | 4 - .../taskflows/taskflows.controller.js | 0 .../taskflows/taskflows.controller.spec.js | 22 - craton_dashboard/test/__init__.py | 0 .../test/api_tests/craton_tests.py | 31 - craton_dashboard/test/helpers.py | 63 -- craton_dashboard/test/settings.py | 17 - craton_dashboard/test/test_data/__init__.py | 0 .../test/test_data/craton_data.py | 49 -- .../test/test_data/keystone_data.py | 28 - craton_dashboard/test/test_data/utils.py | 53 -- craton_dashboard/test/urls.py | 19 - doc/source/conf.py | 80 --- doc/source/readme.rst | 1 - karma.conf.js | 195 ------ manage.py | 23 - package.json | 30 - requirements.txt | 16 - run_tests.sh | 553 ------------------ setup.cfg | 34 -- setup.py | 29 - test-requirements.txt | 25 - test.txt | 1 - tools/install_venv.py | 158 ----- tools/pip_install.sh | 67 --- tools/with_venv.sh | 7 - tox.ini | 99 ---- 72 files changed, 8 insertions(+), 2999 deletions(-) delete mode 100644 .eslintrc delete mode 100644 .gitignore delete mode 100644 .gitreview delete mode 100644 .testr.conf delete mode 100644 .travis.yml delete mode 100644 AUTHORS delete mode 100644 ChangeLog delete mode 100644 LICENSE delete mode 100644 MANIFEST.in delete mode 100644 craton_dashboard/__init__.py delete mode 100644 craton_dashboard/api/__init__.py delete mode 100644 craton_dashboard/api/craton.py delete mode 100644 craton_dashboard/api/rest/__init__.py delete mode 100644 craton_dashboard/api/rest/craton.py delete mode 100644 craton_dashboard/content/__init__.py delete mode 100644 craton_dashboard/content/fleet_management/__init__.py delete mode 100644 craton_dashboard/content/fleet_management/inventory/__init__.py delete mode 100644 craton_dashboard/content/fleet_management/inventory/panel.py delete mode 100644 craton_dashboard/content/fleet_management/inventory/templates/inventory/index.html delete mode 100644 craton_dashboard/content/fleet_management/inventory/urls.py delete mode 100644 craton_dashboard/content/fleet_management/inventory/views.py delete mode 100644 craton_dashboard/content/fleet_management/taskflows/__init__.py delete mode 100644 craton_dashboard/content/fleet_management/taskflows/panel.py delete mode 100644 craton_dashboard/content/fleet_management/taskflows/templates/taskflows/index.html delete mode 100644 craton_dashboard/content/fleet_management/taskflows/urls.py delete mode 100644 craton_dashboard/content/fleet_management/taskflows/views.py delete mode 100644 craton_dashboard/dashboard.py delete mode 100644 craton_dashboard/enabled/_4000_fleet_management.py delete mode 100644 craton_dashboard/enabled/_4010_fleet_inventory_panel.py delete mode 100644 craton_dashboard/enabled/_4020_fleet_taskflows_panel.py delete mode 100644 craton_dashboard/enabled/__init__.py delete mode 100644 craton_dashboard/locale/__init__.py delete mode 100644 craton_dashboard/static/app/core/openstack-service-api/craton.service.js delete mode 100644 craton_dashboard/static/app/core/openstack-service-api/craton.service.spec.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/fleet_management.module.spec.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/fleet_management.scss delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/fleet_managment.module.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/details/drawer.html delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.spec.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/index.html delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/panel.html delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.spec.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/taskflows/index.html delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.js delete mode 100644 craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.spec.js delete mode 100644 craton_dashboard/test/__init__.py delete mode 100644 craton_dashboard/test/api_tests/craton_tests.py delete mode 100644 craton_dashboard/test/helpers.py delete mode 100644 craton_dashboard/test/settings.py delete mode 100644 craton_dashboard/test/test_data/__init__.py delete mode 100644 craton_dashboard/test/test_data/craton_data.py delete mode 100644 craton_dashboard/test/test_data/keystone_data.py delete mode 100644 craton_dashboard/test/test_data/utils.py delete mode 100644 craton_dashboard/test/urls.py delete mode 100644 doc/source/conf.py delete mode 100644 doc/source/readme.rst delete mode 100644 karma.conf.js delete mode 100755 manage.py delete mode 100644 package.json delete mode 100644 requirements.txt delete mode 100755 run_tests.sh delete mode 100644 setup.cfg delete mode 100644 setup.py delete mode 100644 test-requirements.txt delete mode 100644 test.txt delete mode 100644 tools/install_venv.py delete mode 100755 tools/pip_install.sh delete mode 100755 tools/with_venv.sh delete mode 100644 tox.ini diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 6e812a1..0000000 --- a/.eslintrc +++ /dev/null @@ -1,51 +0,0 @@ -# Set up globals -globals: - angular: false - -extends: openstack - -# Most environment options are not explicitly enabled or disabled, only -# included here for completeness' sake. They are commented out, because the -# global updates.py script would otherwise override them during a global -# requirements synchronization. -# -# Individual projects should choose which platforms they deploy to. - -env: - # browser global variables. - browser: true - - # Adds all of the Jasmine testing global variables for version 1.3 and 2.0. - jasmine: true - - -# Below we adjust rules specific to horizon's usage of openstack's linting -# rules, and its own plugin inclusions. -rules: - ############################################################################# - # Disabled Rules from eslint-config-openstack - ############################################################################# - valid-jsdoc: [1, { - requireParamDescription: false - }] - no-undefined: 1 - brace-style: 1 - no-extra-parens: 1 - callback-return: 1 - block-scoped-var: 1 - quote-props: 0 - space-in-parens: 1 - no-use-before-define: 1 - no-unneeded-ternary: 1 - - ############################################################################# - # Angular Plugin Customization - ############################################################################# - - angular/controller-as-vm: - - 1 - - "ctrl" - - # Remove after migrating to angular 1.4 or later. - angular/no-cookiestore: - - 1 \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 15521ec..0000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.egg* -*.mo -*.pyc -.venv -dist -ChangeLog -AUTHORS -craton_ui.egg-info/* -node_modules/* -.cache -.testrepository -.tox diff --git a/.gitreview b/.gitreview deleted file mode 100644 index 002a936..0000000 --- a/.gitreview +++ /dev/null @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/craton-dashboard.git \ No newline at end of file diff --git a/.testr.conf b/.testr.conf deleted file mode 100644 index 6d83b3c..0000000 --- a/.testr.conf +++ /dev/null @@ -1,7 +0,0 @@ -[DEFAULT] -test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ - OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ - OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ - ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION -test_id_option=--load-list $IDFILE -test_list_option=--list diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fb4c43a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -sudo: false -language: python - -matrix: - include: - - python: 2.7 - env: TOXENV=py27 - - python: 3.4 - env: TOXENV=py34 - - python: 3.5 - env: TOXENV=py35 - - env: TOXENV=pep8 - -install: pip install tox-travis - -script: tox diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 5eaccd0..0000000 --- a/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -Chris Spencer -Eddie Ramirez -Eddie Ramirez -Luis Daniel Castellanos -Revon Mathews -ldcastell diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index e0942ca..0000000 --- a/ChangeLog +++ /dev/null @@ -1,22 +0,0 @@ -CHANGES -======= - -* Added regions resource table to the Inventory panel -* Directory for i18n -* Reordered panels -* Add JavaScript unit tests code base -* Move the panel dashboard outside of the project section -* Removed the docstrings from the start of file -* Removed PEP8 errors -* More files to ignore -* [WIP] Added code base for unit testing and code refactoring -* Added some files and stuff -* dummy test -* added test -* Added travis conf file -* Updated enable files and install instructions -* Added base methods and classes for API -* Added base .gitignore -* Added regions panel -* Initial Structure -* Initial commit diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +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. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - 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. diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index bb2dec3..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,3 +0,0 @@ -include setup.py - -recursive-include craton_dashboard *.js *.html *.scss diff --git a/README.rst b/README.rst index 226d3c7..d98af48 100644 --- a/README.rst +++ b/README.rst @@ -1,27 +1,10 @@ -=============================== -Craton UI for Horizon Dashboard -=============================== +This project is no longer maintained. -Test ----- +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". -* Python tests: ``./run_test.sh`` -* JS tests: - - 1. ``npm install`` (first do ``./run_tests.sh`` to create virtual environment) - 2. ``npm run lint`` for eslint - 3. ``npm run test`` for JS unit tests - -Install -------- - -From http://docs.openstack.org/developer/horizon/tutorials/plugin.html - -* plugin is the location of your plugin -* horizon is the location of horizon -* package is the complete name of your packaged plugin - -1. Run “cd plugin & python setup.py sdist” -2. Run “cp -rv enabled horizon/openstack_dashboard/local/” -3. Run “horizon/tools/with_venv.sh pip install dist/package.tar.gz” -4. Restart Apache or your Django test server +For any further questions, please email +openstack-dev@lists.openstack.org or join #openstack-dev on +Freenode. diff --git a/craton_dashboard/__init__.py b/craton_dashboard/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/api/__init__.py b/craton_dashboard/api/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/api/craton.py b/craton_dashboard/api/craton.py deleted file mode 100644 index f51f1ba..0000000 --- a/craton_dashboard/api/craton.py +++ /dev/null @@ -1,150 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -from cratonclient import session as craton_session # noqa -from cratonclient.v1 import client as craton_client # noqa - -from horizon.utils.memoized import memoized # noqa -from horizon.utils.memoized import memoized_with_request # noqa - -from openstack_dashboard.api import base # noqa - - -def get_auth_params_from_request(request): - return( - request.user.username, - request.user.token.id, - request.user.tenant_id, - base.url_for(request, 'fleetmanagement'), - request.session - ) - - -@memoized_with_request(get_auth_params_from_request) -def cratonclient(request_auth_params): - username, token, project_id, url, session = request_auth_params - - session = craton_session.Session(session=session, - username=username, - token=token) - c = craton_client.Client(session=session, url=url) - return c - - -def project_create(request, **kwargs): - pass - - -def project_delete(request, **kwargs): - pass - - -def project_list(request, **kwargs): - pass - - -def project_show(request, **kwargs): - pass - - -def project_update(request, **kwargs): - pass - - -def region_create(request, **kwargs): - pass - - -def region_delete(request, **kwargs): - pass - - -@memoized -def region_list(request, **kwargs): - return cratonclient(request).regions.list(**kwargs) - - -def region_show(request, **kwargs): - pass - - -def region_update(request, **kwargs): - pass - - -def cell_create(request, **kwargs): - pass - - -def cell_delete(request, **kwargs): - pass - - -def cell_list(request, **kwargs): - pass - - -def cell_show(request, **kwargs): - pass - - -def cell_update(request, **kwargs): - pass - - -def device_create(request, **kwargs): - pass - - -def device_delete(request, **kwargs): - pass - - -def device_list(request, **kwargs): - pass - - -def device_show(request, **kwargs): - pass - - -def host_create(request, **kwargs): - pass - - -def host_delete(request, **kwargs): - pass - - -@memoized -def host_list(request, **kwargs): - project_id = getattr(kwargs, 'project_id', None) - if project_id: - delattr(kwargs, 'project_id') - return cratonclient(request).hosts.list(project_id=project_id, - **kwargs) - return [] - - -def host_show(request, **kwargs): - pass - - -def host_update(request, **kwargs): - pass - - -def user_list(request, **kwargs): - pass diff --git a/craton_dashboard/api/rest/__init__.py b/craton_dashboard/api/rest/__init__.py deleted file mode 100644 index 1ec819f..0000000 --- a/craton_dashboard/api/rest/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from craton_dashboard.api.rest import craton # noqa diff --git a/craton_dashboard/api/rest/craton.py b/craton_dashboard/api/rest/craton.py deleted file mode 100644 index 9d89a21..0000000 --- a/craton_dashboard/api/rest/craton.py +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -from django.views import generic - -from craton_dashboard.api import craton - -from openstack_dashboard.api.rest import urls -from openstack_dashboard.api.rest import utils as rest_utils - - -@urls.register -class Regions(generic.View): - """API for craton.""" - - url_regex = r'craton/regions/$' - - @rest_utils.ajax() - def get(self, request, **kwargs): - """Get all Regions.""" - regions = craton.region_list(request, **kwargs) - return {'items': regions} - - @rest_utils.ajax() - def post(self, request, **kwargs): - """Create a new Region.""" - return craton.region_create(request) - - @rest_utils.ajax() - def put(self, request, **kwargs): - """Update a Region.""" - return craton.region_update(request) - - @rest_utils.ajax() - def delete(self, request, **kwargs): - """Delete a Region.""" - return craton.region_delete(request) - - -@urls.register -class Cells(generic.View): - """API for craton.""" - - url_regex = r'craton/cells/$' - - @rest_utils.ajax() - def get(self, request, **kwargs): - """Get all Cells.""" - return craton.cell_list(request) - - @rest_utils.ajax() - def post(self, request, **kwargs): - """Create a new Cell.""" - return craton.cell_create(request) - - @rest_utils.ajax() - def put(self, request, **kwargs): - """Update a Cell.""" - return craton.cell_update(request) - - @rest_utils.ajax() - def delete(self, request, **kwargs): - """Delete a Cell.""" - return craton.cell_delete(request) - - -@urls.register -class Hosts(generic.View): - """API for craton.""" - - url_regex = r'craton/hosts/$' - - @rest_utils.ajax() - def get(self, request, **kwargs): - """Get all Hosts.""" - return craton.host_list(request) - - @rest_utils.ajax() - def post(self, request, **kwargs): - """Create a new Host.""" - return craton.hosts_create(request) - - @rest_utils.ajax() - def put(self, request, **kwargs): - """Update a Host.""" - return craton.hosts_update(request) - - @rest_utils.ajax() - def delete(self, request, **kwargs): - """Delete a Host.""" - return craton.hosts_delete(request) diff --git a/craton_dashboard/content/__init__.py b/craton_dashboard/content/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/content/fleet_management/__init__.py b/craton_dashboard/content/fleet_management/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/content/fleet_management/inventory/__init__.py b/craton_dashboard/content/fleet_management/inventory/__init__.py deleted file mode 100644 index 930d0b5..0000000 --- a/craton_dashboard/content/fleet_management/inventory/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from craton_dashboard.api import rest # noqa diff --git a/craton_dashboard/content/fleet_management/inventory/panel.py b/craton_dashboard/content/fleet_management/inventory/panel.py deleted file mode 100644 index fd92d78..0000000 --- a/craton_dashboard/content/fleet_management/inventory/panel.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from django.utils.translation import ugettext_lazy as _ - -from craton_dashboard import dashboard -import horizon - - -class Inventory(horizon.Panel): - name = _('Inventory') - slug = 'inventory' - -dashboard.FleetManagement.register(Inventory) diff --git a/craton_dashboard/content/fleet_management/inventory/templates/inventory/index.html b/craton_dashboard/content/fleet_management/inventory/templates/inventory/index.html deleted file mode 100644 index 1db8d86..0000000 --- a/craton_dashboard/content/fleet_management/inventory/templates/inventory/index.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'base.html' %} -{% load i18n %} -{% block title %}{% trans "Craton" %}{% endblock %} -{% block page_header %}{% endblock %} - -{% block ng_route_base %} - -{% endblock %} - -{% block main %} - - -{% endblock %} diff --git a/craton_dashboard/content/fleet_management/inventory/urls.py b/craton_dashboard/content/fleet_management/inventory/urls.py deleted file mode 100644 index 11bb79e..0000000 --- a/craton_dashboard/content/fleet_management/inventory/urls.py +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -from django.conf.urls import url - -from craton_dashboard.content.fleet_management.inventory import views - -urlpatterns = [ - url(r'^$', views.IndexView.as_view(), name='index'), -] diff --git a/craton_dashboard/content/fleet_management/inventory/views.py b/craton_dashboard/content/fleet_management/inventory/views.py deleted file mode 100644 index 5080e69..0000000 --- a/craton_dashboard/content/fleet_management/inventory/views.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from django.utils.translation import ugettext_lazy as _ -from django.views import generic - - -class IndexView(generic.TemplateView): - template_name = 'angular.html' - page_title = _('Inventory') diff --git a/craton_dashboard/content/fleet_management/taskflows/__init__.py b/craton_dashboard/content/fleet_management/taskflows/__init__.py deleted file mode 100644 index 930d0b5..0000000 --- a/craton_dashboard/content/fleet_management/taskflows/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from craton_dashboard.api import rest # noqa diff --git a/craton_dashboard/content/fleet_management/taskflows/panel.py b/craton_dashboard/content/fleet_management/taskflows/panel.py deleted file mode 100644 index 521d949..0000000 --- a/craton_dashboard/content/fleet_management/taskflows/panel.py +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from django.utils.translation import ugettext_lazy as _ - -import horizon - - -class Taskflows(horizon.Panel): - name = _('Taskflows') - slug = 'taskflows' diff --git a/craton_dashboard/content/fleet_management/taskflows/templates/taskflows/index.html b/craton_dashboard/content/fleet_management/taskflows/templates/taskflows/index.html deleted file mode 100644 index bf0766d..0000000 --- a/craton_dashboard/content/fleet_management/taskflows/templates/taskflows/index.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'base.html' %} -{% load i18n %} -{% block title %}{% trans "Craton" %}{% endblock %} -{% block page_header %}{% endblock %} - -{% block ng_route_base %} - -{% endblock %} - -{% block main %} - - -{% endblock %} diff --git a/craton_dashboard/content/fleet_management/taskflows/urls.py b/craton_dashboard/content/fleet_management/taskflows/urls.py deleted file mode 100644 index 13261f4..0000000 --- a/craton_dashboard/content/fleet_management/taskflows/urls.py +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -from django.conf.urls import url - -from craton_dashboard.content.fleet_management.taskflows import views - -urlpatterns = [ - url(r'^$', views.IndexView.as_view(), name='index'), -] diff --git a/craton_dashboard/content/fleet_management/taskflows/views.py b/craton_dashboard/content/fleet_management/taskflows/views.py deleted file mode 100644 index 3b2c88d..0000000 --- a/craton_dashboard/content/fleet_management/taskflows/views.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from django.utils.translation import ugettext_lazy as _ -from django.views import generic - - -class IndexView(generic.TemplateView): - template_name = 'angular.html' - page_title = _('Taskflows') diff --git a/craton_dashboard/dashboard.py b/craton_dashboard/dashboard.py deleted file mode 100644 index 9d0736e..0000000 --- a/craton_dashboard/dashboard.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from django.utils.translation import ugettext_lazy as _ - -import horizon - - -class FleetManagement(horizon.Dashboard): - name = _("Fleet Management") - slug = "fleet_management" - default_panel = 'inventory' - -horizon.register(FleetManagement) diff --git a/craton_dashboard/enabled/_4000_fleet_management.py b/craton_dashboard/enabled/_4000_fleet_management.py deleted file mode 100644 index 305b48d..0000000 --- a/craton_dashboard/enabled/_4000_fleet_management.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -# The slug of the dashboard to be added to HORIZON['dashboards']. Required. -DASHBOARD = 'fleet_management' -# A dictionary of exception classes to be added to HORIZON['exceptions']. -ADD_EXCEPTIONS = {} -# A list of applications to be added to INSTALLED_APPS. -ADD_INSTALLED_APPS = ['craton_dashboard', ] - -ADD_ANGULAR_MODULES = ['horizon.dashboard.project.fleet_management'] - -AUTO_DISCOVER_STATIC_FILES = True diff --git a/craton_dashboard/enabled/_4010_fleet_inventory_panel.py b/craton_dashboard/enabled/_4010_fleet_inventory_panel.py deleted file mode 100644 index e0e6b42..0000000 --- a/craton_dashboard/enabled/_4010_fleet_inventory_panel.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -PANEL = 'inventory' - -PANEL_DASHBOARD = 'fleet_management' - -PANEL_GROUP = 'default' - -ADD_PANEL = ( - 'craton_dashboard.content.fleet_management.inventory.panel.Inventory') diff --git a/craton_dashboard/enabled/_4020_fleet_taskflows_panel.py b/craton_dashboard/enabled/_4020_fleet_taskflows_panel.py deleted file mode 100644 index e924369..0000000 --- a/craton_dashboard/enabled/_4020_fleet_taskflows_panel.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -PANEL = 'taskflows' - -PANEL_DASHBOARD = 'fleet_management' - -PANEL_GROUP = 'default' - -ADD_PANEL = ( - 'craton_dashboard.content.fleet_management.taskflows.panel.Taskflows') diff --git a/craton_dashboard/enabled/__init__.py b/craton_dashboard/enabled/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/locale/__init__.py b/craton_dashboard/locale/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/static/app/core/openstack-service-api/craton.service.js b/craton_dashboard/static/app/core/openstack-service-api/craton.service.js deleted file mode 100644 index 8b78457..0000000 --- a/craton_dashboard/static/app/core/openstack-service-api/craton.service.js +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function () { - 'use strict'; - - /** - * @ngdoc service - * @name cratonAPI - * @param {Object} apiService - * @param {Object} toastService - * @description provides direct pass through craton with NO abstraction - * @returns {Object} the service - */ - - angular - .module('horizon.app.core.openstack-service-api') - .factory('horizon.app.core.openstack-service-api.craton', cratonAPI); - - cratonAPI.$inject = [ - '$q', - 'horizon.framework.util.http.service', - 'horizon.framework.widgets.toast.service' - ]; - - function cratonAPI($q, apiService, toastService) { - var service = { - getRegions: getRegions, - getHosts: getHosts, - getRegion: getRegion - }; - - /** - * @name getRegions - * @description Gets a list of regions - * - * @returns {Object} an object with 'items' - */ - function getRegions() { - return apiService.get('api/craton/regions') - .error(function error() { - toastService.add('error', gettext("Unable to get the Craton regions listing")); - }); - - } - - /** - * @name getRegion - * @param identifier Region Id - * @returns {Object} api call result - */ - function getRegion(identifier) { - return apiService.get('api/craton/regions/' + identifier + '/') - .error(function error() { - toastService.add('error', gettext("Unable to get the Craton Region")); - }); - } - - /** - * @name getHosts - * @description Gets a list of hosts - * @param params {Object} query filter params - * @returns {Object} an object with 'items' - */ - function getHosts(params) { - var config = params ? {'params': params} : {}; - return apiService.get('api/craton/hosts', config) - .error(function error() { - toastService.add('error', gettext('Unable to retrieve the hosts')); - }); - } - - return service; - } - -}()); diff --git a/craton_dashboard/static/app/core/openstack-service-api/craton.service.spec.js b/craton_dashboard/static/app/core/openstack-service-api/craton.service.spec.js deleted file mode 100644 index 4d0eb57..0000000 --- a/craton_dashboard/static/app/core/openstack-service-api/craton.service.spec.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - - 'use strict'; - - describe('Craton API', function() { - var testCall, service; - var apiService = {}; - var toastService = {}; - - beforeEach( - module('horizon.mock.openstack-service-api', - function($provide, initServices) { - testCall = initServices($provide, apiService, toastService); - }) - ); - - beforeEach(module('horizon.app.core.openstack-service-api')); - - beforeEach(inject(['horizon.app.core.openstack-service-api.craton', function(cratonAPI) { - service = cratonAPI; - }])); - - it('defines the service', function() { - expect(service).toBeDefined(); - }); - - var tests = [ - { - func: "getRegions", - method: "get", - path: "api/craton/regions", - error: "Unable to get the Craton regions listing" - }, - { - func: "getRegion", - method: "get", - path: "api/craton/regions/spam/", - error: "Unable to get the Craton Region", - testInput: ["spam"] - }, - { - func: "getHosts", - method: "get", - path: "api/craton/hosts", - error: "Unable to retrieve the hosts", - data: {} - } - ]; - - // Iterate through the defined tests and apply as Jasmine specs. - angular.forEach(tests, function(params) { - it('defines the ' + params.func + ' call properly', function test() { - var callParams = [apiService, service, toastService, params]; - testCall.apply(this, callParams); - }); - }); - - }); - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/fleet_management.module.spec.js b/craton_dashboard/static/dashboard/project/fleet_management/fleet_management.module.spec.js deleted file mode 100644 index cec9c7e..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/fleet_management.module.spec.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - describe('horizon.dashboard.project.fleet_management', function() { - it('should be defined',function test() { - expect(angular.module('horizon.dashboard.project.fleet_management')).toBeDefined(); - }); - }); - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/fleet_management.scss b/craton_dashboard/static/dashboard/project/fleet_management/fleet_management.scss deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/static/dashboard/project/fleet_management/fleet_managment.module.js b/craton_dashboard/static/dashboard/project/fleet_management/fleet_managment.module.js deleted file mode 100644 index 9e852df..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/fleet_managment.module.js +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - /** - * @ngdoc overview - * @name horizon.dashboard.project.fleet_management - * - * @description - * Dashboard module to host various backup panels. - */ - angular - .module('horizon.dashboard.project.fleet_management', [ - 'horizon.dashboard.project.fleet_management.regions' - ]) - .config(config); - - config.$inject = [ - '$provide', - '$windowProvider' - ]; - - function config($provide, $windowProvider) { - var basePath = $windowProvider.$get().STATIC_URL + 'dashboard/project/fleet_management/'; - $provide.constant('horizon.dashboard.project.fleet_management.basePath', basePath); - - // var regions = '/project/regions'; - // var taskflows = '/project/fleet/taskflows'; - // var alerts = '/project/fleet/alerts'; - // var auditor = '/project/fleet/auditor'; - // var reporting = '/project/fleet/reporting'; - // var inventory = '/project/fleet/inventory'; - // - // $routeProvider - // .when(regions, { - // templateUrl: basePath + 'regions/index.html' - // }) - // .when(taskflows, { - // templateUrl: basePath + 'taskflows/index.html' - // }) - // .when(alerts, { - // templateUrl: basePath + 'alerts/index.html' - // }) - // .when(auditor, { - // templateUrl: basePath + 'auditor/index.html' - // }) - // .when(reporting, { - // templateUrl: basePath + 'reporting/index.html' - // }) - // .when(inventory, { - // templateUrl: basePath + 'inventory/index.html' - // }); - } - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/details/drawer.html b/craton_dashboard/static/dashboard/project/fleet_management/inventory/details/drawer.html deleted file mode 100644 index ab18add..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/details/drawer.html +++ /dev/null @@ -1,10 +0,0 @@ -
-
- -

- No items to display. -

-
-
\ No newline at end of file diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.js b/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.js deleted file mode 100644 index 6d52500..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - angular.module('horizon.dashboard.project.fleet_management.regions') - .controller('horizon.dashboard.project.fleet_management.regions.RegionDrawerController', - RegionDrawerController); - - RegionDrawerController.$inject = [ - 'horizon.dashboard.project.fleet_management.regions.resourceType', - 'horizon.framework.conf.resource-type-registry.service', - 'horizon.app.core.openstack-service-api.craton', - '$scope' - ]; - - function RegionDrawerController(regionResourceType, registry, cratonApi, $scope) { - var ctrl = this; - - ctrl.region = $scope.item || {}; - ctrl.region.hosts = []; - ctrl.resourceType = registry.getResourceType(regionResourceType); - - getHosts(); - - function getHosts() { - cratonApi.getHosts({region_id: ctrl.region.id }).then(function resolve(data) { - ctrl.region.hosts = data.data.items; - }); - } - } - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.spec.js b/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.spec.js deleted file mode 100644 index 0e2eb76..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/drawer.controller.spec.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function () { - 'use strict'; - - describe('horizon.dashboard.project.fleet_management.regions RegionsDrawerController', - function () { - beforeEach(module('horizon.app.core.openstack-service-api')); - beforeEach(module('horizon.framework')); - beforeEach(module('horizon.dashboard.project')); - beforeEach(module('horizon.dashboard.project.fleet_management')); - - var /*$q, $rootScope,*/ scope, cratonAPI, controller; - - beforeEach(inject( function ($injector, _$q_, _$rootScope_) { - controller = $injector.get('$controller'); - // $q = _$q_; - // $rootScope = _$rootScope_; - scope = _$rootScope_.$new(); - cratonAPI = $injector.get('horizon.app.core.openstack-service-api.craton'); - })); - - function createController() { - return controller( - 'horizon.dashboard.project.fleet_management.regions.RegionDrawerController', - {$scope: scope}); - } - - it('should call api getHosts when created', function test() { - spyOn(cratonAPI, 'getHosts').and.callThrough(); - createController(); - expect(cratonAPI.getHosts).toHaveBeenCalled(); - }); - }); - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/index.html b/craton_dashboard/static/dashboard/project/fleet_management/inventory/index.html deleted file mode 100644 index bc032dc..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/index.html +++ /dev/null @@ -1,4 +0,0 @@ - -
- -
diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/panel.html b/craton_dashboard/static/dashboard/project/fleet_management/inventory/panel.html deleted file mode 100644 index 529e886..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/panel.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.js b/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.js deleted file mode 100644 index 5367ef8..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.js +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - /** - * @ngdoc Craton Regions module for fleet managament - * - * @name horizon.dashboard.project.fleet_management.regions - * - * @description - * Provides services and widgets required to support and display - * fleet management regions content - */ - - angular - .module('horizon.dashboard.project.fleet_management.regions', ['ngRoute']) - .constant('horizon.dashboard.project.fleet_management.regions.resourceType', - 'OS::Craton::Region') - .run(run) - .config(config); - - run.$inject = [ - 'horizon.framework.conf.resource-type-registry.service', - 'horizon.app.core.openstack-service-api.craton', - 'horizon.dashboard.project.fleet_management.basePath', - 'horizon.dashboard.project.fleet_management.regions.resourceType' - ]; - - function run(registry, craton, basePath, cratonResourceType) { - registry.getResourceType(cratonResourceType) - .setNames(gettext('Region'), gettext('Regions')) - .setSummaryTemplateUrl(basePath + 'inventory/details/drawer.html') - .setProperty('name', {label: gettext('Name')}) - .setProperty('id', {label: gettext('ID')}) - .setProperty('note', {label: gettext('Note')}) - .setProperty('project_id', {label:gettext('Project ID')}) - .setListFunction(listFunction) - .tableColumns - .append({ - id: 'name', - priority: 1, - sortDefault: true - }) - .append({ - id: 'id', - priority: 1 - }) - .append({ - id: 'note', - priority: 2 - }) - .append({ - id: 'project_id', - priority: 3 - }); - - function listFunction() { - return craton.getRegions(); - } - } - - config.$inject = [ - '$provide', - '$windowProvider', - '$routeProvider' - ]; - - function config($provide, $windowProvider, $routeProvider) { - var path = $windowProvider.$get().STATIC_URL + 'dashboard/project/fleet_management/inventory/'; - $provide.constant('horizon.dashboard.project.fleet_management.regions.basePath', path); - - $routeProvider.when('/fleet_management/', { - templateUrl: path + 'panel.html' - }); - } -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.spec.js b/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.spec.js deleted file mode 100644 index bec1c24..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/inventory/regions.module.spec.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - describe('horizon.dashboard.project.fleet_management.regions', function () { - it('should be defined', function test() { - expect(angular.module('horizon.dashboard.project.fleet_management.regions')).toBeDefined(); - }); - }); - -})(); diff --git a/craton_dashboard/static/dashboard/project/fleet_management/taskflows/index.html b/craton_dashboard/static/dashboard/project/fleet_management/taskflows/index.html deleted file mode 100644 index 4affe1c..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/taskflows/index.html +++ /dev/null @@ -1,4 +0,0 @@ -p - -
-
diff --git a/craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.js b/craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.js deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.spec.js b/craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.spec.js deleted file mode 100644 index cf430f9..0000000 --- a/craton_dashboard/static/dashboard/project/fleet_management/taskflows/taskflows.controller.spec.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2016 Intel Corporation - * - * 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. - */ - -(function() { - 'use strict'; - - // TODO: ADD TESTS!! - -})(); diff --git a/craton_dashboard/test/__init__.py b/craton_dashboard/test/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/test/api_tests/craton_tests.py b/craton_dashboard/test/api_tests/craton_tests.py deleted file mode 100644 index 461a871..0000000 --- a/craton_dashboard/test/api_tests/craton_tests.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from craton_dashboard import api -from craton_dashboard.test import helpers as test - - -class CratonApiTests(test.CratonAPITestCase): - - def test_regions_list(self): - regions = self.craton_regions.list() - cratonclient = self.stub_cratonclient() - cratonclient.regions = self.mox.CreateMockAnything() - cratonclient.regions.list(project_id=regions[0].project_id)\ - .AndReturn(regions) - self.mox.ReplayAll() - result = api.craton.region_list(self.request, - project_id=regions[0].project_id) - - self.assertEqual(len(regions), len(result)) diff --git a/craton_dashboard/test/helpers.py b/craton_dashboard/test/helpers.py deleted file mode 100644 index d3fdddb..0000000 --- a/craton_dashboard/test/helpers.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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 mock - -from cratonclient.v1 import client as craton_client - -from openstack_dashboard.test import helpers - -from craton_dashboard import api -from craton_dashboard.test.test_data import utils - - -def create_stubs(stubs_to_create={}): - return helpers.create_stubs(stubs_to_create) - - -class CratonTestsMixin(object): - def _setup_test_data(self): - super(CratonTestsMixin, self)._setup_test_data() - utils.load_test_data(self) - self.policy_patcher = mock.patch( - 'openstack_auth.policy.check', lambda action, request: True) - self._policy_check = self.policy_patcher.start() - - -class TestCase(CratonTestsMixin, helpers.TestCase): - pass - - -class BaseAdminViewTests(CratonTestsMixin, helpers.TestCase): - pass - - -class CratonAPITestCase(CratonTestsMixin, helpers.APITestCase): - def setUp(self): - super(CratonAPITestCase, self).setUp() - - self._original_craton_client = api.craton.cratonclient - api.craton.cratonclient = lambda request: self.stub_cratonclient() - - def tearDown(self): - super(CratonAPITestCase, self).tearDown() - - api.craton.cratonclient = self._original_craton_client - - def stub_cratonclient(self): - if not hasattr(self, "cratonclient"): - self.mox.StubOutWithMock(craton_client, 'Client') - self.cratonclient = self.mox.CreateMock(craton_client.Client) - return self.cratonclient diff --git a/craton_dashboard/test/settings.py b/craton_dashboard/test/settings.py deleted file mode 100644 index d033ae5..0000000 --- a/craton_dashboard/test/settings.py +++ /dev/null @@ -1,17 +0,0 @@ -# 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. - -from horizon.test.settings import * # noqa -from openstack_dashboard.test.settings import * # noqa - -INSTALLED_APPS = list(INSTALLED_APPS) -INSTALLED_APPS.append('craton_dashboard.content.fleet_management') diff --git a/craton_dashboard/test/test_data/__init__.py b/craton_dashboard/test/test_data/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/craton_dashboard/test/test_data/craton_data.py b/craton_dashboard/test/test_data/craton_data.py deleted file mode 100644 index 692d122..0000000 --- a/craton_dashboard/test/test_data/craton_data.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from cratonclient import session -from cratonclient.v1 import regions - -from openstack_dashboard.test.test_data import utils - - -def data(TEST): - URL = 'http://localhost/' - TEST.craton_regions = utils.TestDataContainer() - SESSION = session.Session(username="test", - token="testPassword", - project_id='1') - # Regions - - region_1 = regions.Region(regions.RegionManager(SESSION, URL), { - 'id': 1, - 'name': 'Region1', - 'note': 'TestNote', - 'project_id': 1 - }) - region_2 = regions.Region(regions.RegionManager(SESSION, URL), { - 'id': 2, - 'name': 'Region2', - 'note': 'TestNote', - 'project_id': 1 - }) - region_3 = regions.Region(regions.RegionManager(SESSION, URL), { - 'id': 3, - 'name': 'Region3', - 'note': 'TestNote', - 'project_id': 1 - }) - TEST.craton_regions.add(region_1) - TEST.craton_regions.add(region_2) - TEST.craton_regions.add(region_3) diff --git a/craton_dashboard/test/test_data/keystone_data.py b/craton_dashboard/test/test_data/keystone_data.py deleted file mode 100644 index 71cdc71..0000000 --- a/craton_dashboard/test/test_data/keystone_data.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - - -def data(TEST): - - # Add craton to the keystone data - TEST.service_catalog.append( - {"type": "fleetmanagement", - "name": "craton", - "endpoints_links": [], - "endpoints": [ - {"region": "RegionOne", - "adminURL": "http://admin.craton.example.com:8080/v1.1", - "publicURL": "http://public.craton.example.com:8080/v1.1", - "internalURL": "http://int.craton.example.com:8080/v1.1"}]} - ) diff --git a/craton_dashboard/test/test_data/utils.py b/craton_dashboard/test/test_data/utils.py deleted file mode 100644 index 8496cb9..0000000 --- a/craton_dashboard/test/test_data/utils.py +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2016 Intel Corporation -# -# 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. - -from openstack_dashboard.test.test_data import utils - - -def load_test_data(load_onto=None): - - from craton_dashboard.test.test_data import craton_data - from craton_dashboard.test.test_data import keystone_data \ - as craton_keystone_data - - from openstack_dashboard.test.test_data import ceilometer_data - from openstack_dashboard.test.test_data import cinder_data - from openstack_dashboard.test.test_data import exceptions - from openstack_dashboard.test.test_data import glance_data - from openstack_dashboard.test.test_data import heat_data - from openstack_dashboard.test.test_data import keystone_data - from openstack_dashboard.test.test_data import neutron_data - from openstack_dashboard.test.test_data import nova_data - from openstack_dashboard.test.test_data import swift_data - - # The order of these loaders matters, some depend on others. - loaders = ( - exceptions.data, - keystone_data.data, - glance_data.data, - nova_data.data, - cinder_data.data, - neutron_data.data, - swift_data.data, - heat_data.data, - ceilometer_data.data, - craton_data.data, - craton_keystone_data.data, - ) - if load_onto: - for data_func in loaders: - data_func(load_onto) - return load_onto - else: - return utils.TestData(*loaders) diff --git a/craton_dashboard/test/urls.py b/craton_dashboard/test/urls.py deleted file mode 100644 index 310976f..0000000 --- a/craton_dashboard/test/urls.py +++ /dev/null @@ -1,19 +0,0 @@ -# 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. - - -from django.conf import urls -import openstack_dashboard.urls - -urlpatterns = [ - urls.url(r'', urls.include(openstack_dashboard.urls)) -] diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100644 index c815cdc..0000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,80 +0,0 @@ -# -*- coding: utf-8 -*- -# 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 sys - -sys.path.insert(0, os.path.abspath('../..')) -on_read_the_docs = os.environ.get('READTHEDOCS') == 'True' - - -# -- General configuration ---------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [ - 'sphinx.ext.autodoc', - #'sphinx.ext.intersphinx', -] - -if not on_read_the_docs: - extensions.append('oslosphinx') - -# autodoc generation is a bit aggressive and a nuisance when doing heavy -# text edit cycles. -# execute "export SPHINX_DEBUG=1" in your terminal to disable - -# The suffix of source filenames. -source_suffix = '.rst' - -# The master toctree document. -master_doc = 'readme' - -# General information about the project. -project = u'craton-dashboard' -copyright = u'2016, OpenStack Foundation' - -# If true, '()' will be appended to :func: etc. cross-reference text. -add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -add_module_names = True - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# -- Options for HTML output -------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. Major themes that come with -# Sphinx are currently 'default' and 'sphinxdoc'. -# html_theme_path = ["."] -# html_theme = '_theme' -# html_static_path = ['static'] - -# Output file base name for HTML help builder. -htmlhelp_basename = '%sdoc' % project - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass -# [howto/manual]). -latex_documents = [ - ('index', - '%s.tex' % project, - u'%s Documentation' % project, - u'OpenStack Foundation', 'manual'), -] - -# Example configuration for intersphinx: refer to the Python standard library. -#intersphinx_mapping = {'http://docs.python.org/': None} \ No newline at end of file diff --git a/doc/source/readme.rst b/doc/source/readme.rst deleted file mode 100644 index 38ba804..0000000 --- a/doc/source/readme.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../README.rst \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index aa8fd57..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,195 +0,0 @@ -/** - * - * 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. - */ - - -'use-strict'; - -var fs = require('fs'); -var path = require('path'); - -module.exports = function(config) { - var xstaticPath; - var horizonPath; - var openstackDashboardPath; - var horizonRoot; - var basePaths = [ - './.venv', - './.tox/py27' - ]; - - for (var i = 0; i < basePaths.length; i++) { - var basePath = path.resolve(basePaths[i]); - - if (fs.existsSync(basePath)) { - xstaticPath = basePath + '/lib/python2.7/site-packages/xstatic/pkg/'; - horizonRoot = basePath + '/src/horizon/'; - horizonPath = basePath + '/src/horizon/horizon/'; - openstackDashboardPath = basePath + '/src/horizon/openstack_dashboard/'; - break; - } - } - - if (!xstaticPath) { - console.error('xStatic libraries not found, please set up venv'); - process.exit(1); - } - - config.set({ - preprocessors: { - // Used to collect templates for preprocessing. - // NOTE: the templates must also be listed in the files section below. - './**/*.html': ['ng-html2js'], - // Used to indicate files requiring coverage reports. - './craton_dashboard/static/**/!(*.spec).js': ['coverage'] - }, - - // Sets up module to process templates. - ngHtml2JsPreprocessor: { - moduleName: 'templates', - cacheIdFromPath: function(filepath) { - // This function takes the raw provided path from the file searches - // below (in the files: pattern list), applies the filter from the - // preprocessor above (basically, finds the html files), then uses - // this function to translate the relative file path into a path - // that matches what would actually be called in production. - // - // e.g. - // dashboards/project/static/dashboard/project/workflow/launch-instance/configuration/load-edit.html - // becomes: - // /static/dashboard/project/workflow/launch-instance/configuration/load-edit.html - // We can't just use stripPrefix because there are a couple of - // prefixes that need to be altered (and may be more). - return filepath.replace(/^dashboards\/[^\/]+/, '') - .replace(/^static\/app/, '/static/app'); - }, - }, - - // This establishes the base for most referenced paths as being relative - // to this file, i.e. ./craton_dashboard. - basePath: '.', - - // Contains both source and test files. - files: [ - - // from jasmine.html - xstaticPath + 'jquery/data/jquery.js', - xstaticPath + 'angular/data/angular.js', - xstaticPath + 'angular/data/angular-route.js', - xstaticPath + 'angular/data/angular-mocks.js', - xstaticPath + 'angular/data/angular-cookies.js', - xstaticPath + 'angular_bootstrap/data/angular-bootstrap.js', - xstaticPath + 'angular_gettext/data/angular-gettext.js', - xstaticPath + 'angular_fileupload/data/ng-file-upload-all.js', - xstaticPath + 'angular/data/angular-sanitize.js', - xstaticPath + 'd3/data/d3.js', - xstaticPath + 'rickshaw/data/rickshaw.js', - xstaticPath + 'angular_smart_table/data/smart-table.js', - xstaticPath + 'angular_lrdragndrop/data/lrdragndrop.js', - xstaticPath + 'spin/data/spin.js', - xstaticPath + 'spin/data/spin.jquery.js', - xstaticPath + 'tv4/data/tv4.js', - xstaticPath + 'objectpath/data/ObjectPath.js', - xstaticPath + 'angular_schema_form/data/schema-form.js', - - /** - * Include framework source code from horizon and openstack_dashboard - * that we need. - * Otherwise, karma will not be able to find them when testing. - * These files should be mocked in the foreseeable future. - * These are located within the project's ./.venv/horizon directory. - */ - - // Getting horizon's test-shim.js for gettext modules and others - horizonRoot + 'test-shim.js', - - horizonPath + 'static/horizon/js/horizon.js', - horizonPath + 'static/framework/**/*.module.js', - horizonPath + 'static/framework/**/!(*.spec|*.mock).js', - openstackDashboardPath + 'static/app/**/*.module.js', - openstackDashboardPath + 'static/app/**/!(*.spec|*.mock).js', - openstackDashboardPath + 'static/app/**/*.mock.js', - openstackDashboardPath + 'dashboards/**/static/**/**/*.module.js', - - /** - * First, list all the files that defines application's angular modules. - * Those files have extension of `.module.js`. The order among them is - * not significant. - */ - './craton_dashboard/static/app/core/**/*.module.js', - './craton_dashboard/static/dashboard/**/**/**/*.module.js', - - /** - * Followed by other JavaScript files that defines angular providers - * on the modules defined in files listed above. And they are not mock - * files or spec files defined below. The order among them is not - * significant. - */ - './craton_dashboard/static/app/core/**/!(*.spec|*.mock).js', - './craton_dashboard/static/dashboard/**/**/**/!(*.spec|*.mock).js', - - /** - * Then, list files for mocks with `mock.js` extension. The order - * among them should not be significant. - */ - './craton_dashboard/static/app/core/**/*.mock.js', - './craton_dashboard/static/dashboard/**/**/**/*.mock.js', - - /** - * Finally, list files for spec with `spec.js` extension. The order - * among them should not be significant. - */ - './craton_dashboard/static/app/core/**/*.spec.js', - './craton_dashboard/static/dashboard/**/**/**/*.spec.js', - - /** - * Angular external templates - */ - './craton_dashboard/static/app/core/**/*.html', - './craton_dashboard/static/dashboard/**/**/**/*.html' - ], - - autoWatch: true, - - frameworks: ['jasmine'], - - browsers: ['Chrome'], - - browserNoActivityTimeout: 60000, - - reporters: ['progress', 'coverage', 'threshold'], - - plugins: [ - 'karma-chrome-launcher', - 'karma-jasmine', - 'karma-ng-html2js-preprocessor', - 'karma-coverage', - 'karma-threshold-reporter' - ], - - // Places coverage report in HTML format in the subdirectory below. - coverageReporter: { - type: 'html', - dir: '../cover/craton_dashboard' - }, - - // Coverage threshold values. - thresholdReporter: { - statements: 1, // target 100 - branches: 1, // target 100 - functions: 1, // target 100 - lines: 1 // target 100 - } - }); -}; \ No newline at end of file diff --git a/manage.py b/manage.py deleted file mode 100755 index a852a1b..0000000 --- a/manage.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python - -# 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 sys - -from django.core.management import execute_from_command_line - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", - "craton_dashboard.test.settings") - execute_from_command_line(sys.argv) diff --git a/package.json b/package.json deleted file mode 100644 index dff18ec..0000000 --- a/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "version": "0.0.0", - "private": true, - "name": "craton-dashboard", - "description": "OpenStack Craton Dashboard - Angular", - "repository": "none", - "license": "Apache 2.0", - "devDependencies": { - "eslint": "1.10.3", - "eslint-config-openstack": "1.2.4", - "eslint-plugin-angular": "1.0.1", - "jasmine-core": "2.4.1", - "karma": "1.1.2", - "karma-chrome-launcher": "1.0.1", - "karma-cli": "1.0.1", - "karma-coverage": "1.1.1", - "karma-jasmine": "1.0.2", - "karma-ng-html2js-preprocessor": "1.0.0", - "karma-threshold-reporter": "0.1.15" - }, - "scripts": { - "postinstall": "if [ ! -d .venv ]; then tox -epy27 --notest; fi", - "test": "karma start ./karma.conf.js --single-run", - "lint": "eslint --no-color craton_dashboard/static", - "lintq": "eslint --quiet craton_dashboard/static" - }, - "dependencies": { - "angular": "1.5.8" - } -} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index b3757eb..0000000 --- a/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -pbr>=1.6 # Apache-2.0 -# Horizon Core Requirements -Babel>=2.3.4 # BSD -Django<1.9,>=1.8 # BSD -django-compressor>=2.0 # MIT -django-openstack-auth>=2.3.0 # Apache-2.0 -iso8601>=0.1.11 # MIT -python-keystoneclient!=1.8.0,!=2.1.0,>=1.7.0 # Apache-2.0 -python-neutronclient>=4.2.0 # Apache-2.0 -python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -pytz>=2013.6 # MIT --e git+http://git.openstack.org/openstack/python-cratonclient#egg=python-cratonclient \ No newline at end of file diff --git a/run_tests.sh b/run_tests.sh deleted file mode 100755 index d72da54..0000000 --- a/run_tests.sh +++ /dev/null @@ -1,553 +0,0 @@ -#!/bin/bash - -set -o errexit - -function usage { - echo "Usage: $0 [OPTION]..." - echo "Run Horizon's test suite(s)" - echo "" - echo " -V, --virtual-env Always use virtualenv. Install automatically" - echo " if not present" - echo " -N, --no-virtual-env Don't use virtualenv. Run tests in local" - echo " environment" - echo " -c, --coverage Generate reports using Coverage" - echo " -f, --force Force a clean re-build of the virtual" - echo " environment. Useful when dependencies have" - echo " been added." - echo " -m, --manage Run a Django management command." - echo " --makemessages Create/Update English translation files." - echo " --compilemessages Compile all translation files." - echo " --check-only Do not update translation files (--makemessages only)." - echo " --pseudo Pseudo translate a language." - echo " -p, --pep8 Just run pep8" - echo " -8, --pep8-changed []" - echo " Just run PEP8 and HACKING compliance check" - echo " on files changed since HEAD~1 (or )" - echo " -P, --no-pep8 Don't run pep8 by default" - echo " -t, --tabs Check for tab characters in files." - echo " -y, --pylint Just run pylint" - echo " -q, --quiet Run non-interactively. (Relatively) quiet." - echo " Implies -V if -N is not set." - echo " --only-selenium Run only the Selenium unit tests" - echo " --with-selenium Run unit tests including Selenium tests" - echo " --selenium-headless Run Selenium tests headless" - echo " --integration Run the integration tests (requires a running " - echo " OpenStack environment)" - echo " --runserver Run the Django development server for" - 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" - echo " --restore-environment Restore the environment before running" - echo " --destroy-environment Destroy the environment and exit" - echo " -h, --help Print this usage message" - echo "" - echo "Note: with no options specified, the script will try to run the tests in" - echo " a virtual environment, If no virtualenv is found, the script will ask" - echo " if you would like to create one. If you prefer to run tests NOT in a" - echo " virtual environment, simply pass the -N option." - exit -} - -# DEFAULTS FOR RUN_TESTS.SH -# -root=`pwd -P` -venv=$root/.venv -venv_env_version=$venv/environments -with_venv=tools/with_venv.sh -included_dirs="craton_dashboard" - -always_venv=0 -backup_env=0 -command_wrapper="" -destroy=0 -force=0 -just_pep8=0 -just_pep8_changed=0 -no_pep8=0 -just_pylint=0 -just_docs=0 -just_tabs=0 -never_venv=0 -quiet=0 -restore_env=0 -runserver=0 -only_selenium=0 -with_selenium=0 -selenium_headless=0 -integration=0 -testopts="" -testargs="" -with_coverage=0 -makemessages=0 -compilemessages=0 -check_only=0 -pseudo=0 -manage=0 - -# Jenkins sets a "JOB_NAME" variable, if it's not set, we'll make it "default" -[ "$JOB_NAME" ] || JOB_NAME="default" - -function process_option { - # If running manage command, treat the rest of options as arguments. - if [ $manage -eq 1 ]; then - testargs="$testargs $1" - return 0 - fi - - case "$1" in - -h|--help) usage;; - -V|--virtual-env) always_venv=1; never_venv=0;; - -N|--no-virtual-env) always_venv=0; never_venv=1;; - -p|--pep8) just_pep8=1;; - -8|--pep8-changed) just_pep8_changed=1;; - -P|--no-pep8) no_pep8=1;; - -y|--pylint) just_pylint=1;; - -f|--force) force=1;; - -t|--tabs) just_tabs=1;; - -q|--quiet) quiet=1;; - -c|--coverage) with_coverage=1;; - -m|--manage) manage=1;; - --makemessages) makemessages=1;; - --compilemessages) compilemessages=1;; - --check-only) check_only=1;; - --pseudo) pseudo=1;; - --only-selenium) only_selenium=1;; - --with-selenium) with_selenium=1;; - --selenium-headless) selenium_headless=1;; - --integration) integration=1;; - --docs) just_docs=1;; - --runserver) runserver=1;; - --backup-environment) backup_env=1;; - --restore-environment) restore_env=1;; - --destroy-environment) destroy=1;; - -*) testopts="$testopts $1";; - *) testargs="$testargs $1" - esac -} - -function run_management_command { - ${command_wrapper} python $root/manage.py $testopts $testargs -} - -function run_server { - echo "Starting Django development server..." - ${command_wrapper} python $root/manage.py runserver $testopts $testargs - echo "Server stopped." -} - -function run_pylint { - echo "Running pylint ..." - 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 - echo "Completed successfully." - exit 0 - else - echo "Completed with problems." - exit $CODE - fi -} - -function warn_on_flake8_without_venv { - set +o errexit - ${command_wrapper} python -c "import hacking" 2>/dev/null - no_hacking=$? - set -o errexit - if [ $never_venv -eq 1 -a $no_hacking -eq 1 ]; then - echo "**WARNING**:" >&2 - echo "OpenStack hacking is not installed on your host. Its detection will be missed." >&2 - echo "Please install or use virtual env if you need OpenStack hacking detection." >&2 - fi -} - -function run_pep8 { - echo "Running flake8 ..." - warn_on_flake8_without_venv - DJANGO_SETTINGS_MODULE=craton_dashboard.test.settings ${command_wrapper} flake8 -} - -function run_pep8_changed { - # NOTE(gilliard) We want use flake8 to check the entirety of every file that has - # a change in it. Unfortunately the --filenames argument to flake8 only accepts - # file *names* and there are no files named (eg) "nova/compute/manager.py". The - # --diff argument behaves surprisingly as well, because although you feed it a - # diff, it actually checks the file on disk anyway. - local base_commit=${testargs:-HEAD~1} - files=$(git diff --name-only $base_commit | tr '\n' ' ') - echo "Running flake8 on ${files}" - warn_on_flake8_without_venv - diff -u --from-file /dev/null ${files} | DJANGO_SETTINGS_MODULE=craton_dashboard.test.settings ${command_wrapper} flake8 --diff - exit -} - -function run_sphinx { - echo "Building sphinx..." - DJANGO_SETTINGS_MODULE=craton_dashboard.test.settings ${command_wrapper} python setup.py build_sphinx - echo "Build complete." -} - -function tab_check { - TAB_VIOLATIONS=`find $included_dirs -type f -regex ".*\.\(css\|js\|py\|html\)" -print0 | xargs -0 awk '/\t/' | wc -l` - if [ $TAB_VIOLATIONS -gt 0 ]; then - echo "TABS! $TAB_VIOLATIONS of them! Oh no!" - HORIZON_FILES=`find $included_dirs -type f -regex ".*\.\(css\|js\|py|\html\)"` - for TABBED_FILE in $HORIZON_FILES - do - TAB_COUNT=`awk '/\t/' $TABBED_FILE | wc -l` - if [ $TAB_COUNT -gt 0 ]; then - echo "$TABBED_FILE: $TAB_COUNT" - fi - done - fi - return $TAB_VIOLATIONS; -} - -function destroy_venv { - echo "Cleaning environment..." - echo "Removing virtualenv..." - rm -rf $venv - echo "Virtualenv removed." -} - -function environment_check { - echo "Checking environment." - if [ -f $venv_env_version ]; then - set +o errexit - cat requirements.txt test-requirements.txt | cmp $venv_env_version - > /dev/null - local env_check_result=$? - set -o errexit - if [ $env_check_result -eq 0 ]; then - # If the environment exists and is up-to-date then set our variables - command_wrapper="${root}/${with_venv}" - echo "Environment is up to date." - return 0 - fi - fi - - if [ $always_venv -eq 1 ]; then - install_venv - else - if [ ! -e ${venv} ]; then - echo -e "Environment not found. Install? (Y/n) \c" - else - echo -e "Your environment appears to be out of date. Update? (Y/n) \c" - fi - read update_env - if [ "x$update_env" = "xY" -o "x$update_env" = "x" -o "x$update_env" = "xy" ]; then - install_venv - else - # Set our command wrapper anyway. - command_wrapper="${root}/${with_venv}" - fi - fi -} - -function sanity_check { - # Anything that should be determined prior to running the tests, server, etc. - # Don't sanity-check anything environment-related in -N flag is set - if [ $never_venv -eq 0 ]; then - if [ ! -e ${venv} ]; then - echo "Virtualenv not found at $venv. Did install_venv.py succeed?" - exit 1 - fi - fi - # Remove .pyc files. This is sanity checking because they can linger - # after old files are deleted. - find . -name "*.pyc" -exec rm -rf {} \; -} - -function backup_environment { - if [ $backup_env -eq 1 ]; then - echo "Backing up environment \"$JOB_NAME\"..." - if [ ! -e ${venv} ]; then - echo "Environment not installed. Cannot back up." - return 0 - fi - if [ -d /tmp/.horizon_environment/$JOB_NAME ]; then - mv /tmp/.horizon_environment/$JOB_NAME /tmp/.horizon_environment/$JOB_NAME.old - rm -rf /tmp/.horizon_environment/$JOB_NAME - fi - mkdir -p /tmp/.horizon_environment/$JOB_NAME - cp -r $venv /tmp/.horizon_environment/$JOB_NAME/ - # Remove the backup now that we've completed successfully - rm -rf /tmp/.horizon_environment/$JOB_NAME.old - echo "Backup completed" - fi -} - -function restore_environment { - if [ $restore_env -eq 1 ]; then - echo "Restoring environment from backup..." - if [ ! -d /tmp/.horizon_environment/$JOB_NAME ]; then - echo "No backup to restore from." - return 0 - fi - - cp -r /tmp/.horizon_environment/$JOB_NAME/.venv ./ || true - - echo "Environment restored successfully." - fi -} - -function install_venv { - # 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 - export PIP_NO_INPUT=true - fi - echo "Fetching new src packages..." - rm -rf $venv/src - python tools/install_venv.py - command_wrapper="$root/${with_venv}" - # Make sure it worked and record the environment version - sanity_check - chmod -R 754 $venv - cat requirements.txt test-requirements.txt > $venv_env_version -} - -function run_tests { - sanity_check - - if [ $with_selenium -eq 1 ]; then - export WITH_SELENIUM=1 - elif [ $only_selenium -eq 1 ]; then - export WITH_SELENIUM=1 - export SKIP_UNITTESTS=1 - fi - - if [ $selenium_headless -eq 1 ]; then - export SELENIUM_HEADLESS=1 - fi - - if [ -z "$testargs" ]; then - run_tests_all - else - run_tests_subset - fi -} - -function run_tests_subset { - project=`echo $testargs | awk -F. '{print $1}'` - ${command_wrapper} python $root/manage.py test --settings=$project.test.settings $testopts $testargs -} - -function run_tests_all { - echo "Running craton_dashboard application tests" - export NOSE_XUNIT_FILE=craton_dashboard/nosetests.xml - if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then - export NOSE_HTML_OUT_FILE='craton_dashboard_nose_results.html' - fi - if [ $with_coverage -eq 1 ]; then - ${command_wrapper} python -m coverage.__main__ erase - coverage_run="python -m coverage.__main__ run -p" - fi - if [ $with_selenium -eq 0 -a $integration -eq 0 ]; then - testopts="$testopts --exclude-dir=craton_dashboard/test/integration_tests" - fi - ${command_wrapper} ${coverage_run} $root/manage.py test craton_dashboard --settings=craton_dashboard.test.settings $testopts - # get results of the Horizon tests - CRATON_DASHBOARD_RESULT=$? - - if [ $with_coverage -eq 1 ]; then - echo "Generating coverage reports" - ${command_wrapper} python -m coverage.__main__ combine - ${command_wrapper} python -m coverage.__main__ xml -i --omit='/usr*,setup.py,*egg*,.venv/*' - ${command_wrapper} python -m coverage.__main__ html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports - fi - # Remove the leftover coverage files from the -p flag earlier. - rm -f .coverage.* - - PEP8_RESULT=0 - if [ $no_pep8 -eq 0 ] && [ $only_selenium -eq 0 ]; then - run_pep8 - PEP8_RESULT=$? - fi - - TEST_RESULT=$(($CRATON_DASHBOARD_RESULT || $PEP8_RESULT)) - if [ $TEST_RESULT -eq 0 ]; then - echo "Tests completed successfully." - else - echo "Tests failed." - fi - exit $TEST_RESULT -} - -function run_integration_tests { - export INTEGRATION_TESTS=1 - - if [ $selenium_headless -eq 1 ]; then - export SELENIUM_HEADLESS=1 - fi - - export HORIZON_INTEGRATION_TESTS_CONFIG_FILE="craton_dashboard/test/integration_tests/horizon.conf" - - echo "Running Horizon integration tests..." - if [ -z "$testargs" ]; then - ${command_wrapper} nosetests craton_dashboard/test/integration_tests/tests - else - ${command_wrapper} nosetests $testargs - fi - exit 0 -} - -function run_makemessages { - OPTS="-l en --no-obsolete --settings=openstack_dashboard.test.settings" - DASHBOARD_OPTS="--extension=html,txt,csv --ignore=openstack" - echo -n "horizon: " - cd horizon - ${command_wrapper} $root/manage.py makemessages $OPTS - HORIZON_PY_RESULT=$? - echo -n "horizon javascript: " - ${command_wrapper} $root/manage.py makemessages -d djangojs $OPTS - HORIZON_JS_RESULT=$? - echo -n "openstack_dashboard: " - cd ../openstack_dashboard - ${command_wrapper} $root/manage.py makemessages $DASHBOARD_OPTS $OPTS - DASHBOARD_RESULT=$? - cd .. - if [ $check_only -eq 1 ]; then - git checkout -- horizon/locale/en/LC_MESSAGES/django*.po - git checkout -- openstack_dashboard/locale/en/LC_MESSAGES/django.po - fi - exit $(($HORIZON_PY_RESULT || $HORIZON_JS_RESULT || $DASHBOARD_RESULT)) -} - -function run_compilemessages { - OPTS="--settings=openstack_dashboard.test.settings" - cd horizon - ${command_wrapper} $root/manage.py compilemessages $OPTS - HORIZON_PY_RESULT=$? - cd ../openstack_dashboard - ${command_wrapper} $root/manage.py compilemessages $OPTS - DASHBOARD_RESULT=$? - cd .. - # English is the source language, so compiled catalogs are unnecessary. - rm -vf horizon/locale/en/LC_MESSAGES/django*.mo - rm -vf openstack_dashboard/locale/en/LC_MESSAGES/django.mo - exit $(($HORIZON_PY_RESULT || $DASHBOARD_RESULT)) -} - -function run_pseudo { - for lang in $testargs - # Use English po file as the source file/pot file just like real Horizon translations - do - ${command_wrapper} $root/tools/pseudo.py openstack_dashboard/locale/en/LC_MESSAGES/django.po openstack_dashboard/locale/$lang/LC_MESSAGES/django.po $lang - ${command_wrapper} $root/tools/pseudo.py horizon/locale/en/LC_MESSAGES/django.po horizon/locale/$lang/LC_MESSAGES/django.po $lang - ${command_wrapper} $root/tools/pseudo.py horizon/locale/en/LC_MESSAGES/djangojs.po horizon/locale/$lang/LC_MESSAGES/djangojs.po $lang - done - exit $? -} - - -# ---------PREPARE THE ENVIRONMENT------------ # - -# PROCESS ARGUMENTS, OVERRIDE DEFAULTS -for arg in "$@"; do - process_option $arg -done - -if [ $quiet -eq 1 ] && [ $never_venv -eq 0 ] && [ $always_venv -eq 0 ] -then - always_venv=1 -fi - -# If destroy is set, just blow it away and exit. -if [ $destroy -eq 1 ]; then - destroy_venv - exit 0 -fi - -# Ignore all of this if the -N flag was set -if [ $never_venv -eq 0 ]; then - - # Restore previous environment if desired - if [ $restore_env -eq 1 ]; then - restore_environment - fi - - # Remove the virtual environment if --force used - if [ $force -eq 1 ]; then - destroy_venv - fi - - # Then check if it's up-to-date - environment_check - - # Create a backup of the up-to-date environment if desired - if [ $backup_env -eq 1 ]; then - backup_environment - fi -fi - -# ---------EXERCISE THE CODE------------ # - -# Run management commands -if [ $manage -eq 1 ]; then - run_management_command - exit $? -fi - -# Build the docs -if [ $just_docs -eq 1 ]; then - run_sphinx - exit $? -fi - -# Update translation files -if [ $makemessages -eq 1 ]; then - run_makemessages - exit $? -fi - -# Compile translation files -if [ $compilemessages -eq 1 ]; then - run_compilemessages - exit $? -fi - -# Generate Pseudo translation -if [ $pseudo -eq 1 ]; then - run_pseudo - exit $? -fi - -# PEP8 -if [ $just_pep8 -eq 1 ]; then - run_pep8 - exit $? -fi - -if [ $just_pep8_changed -eq 1 ]; then - run_pep8_changed - exit $? -fi - -# Pylint -if [ $just_pylint -eq 1 ]; then - run_pylint - exit $? -fi - -# Tab checker -if [ $just_tabs -eq 1 ]; then - tab_check - exit $? -fi - -# Integration tests -if [ $integration -eq 1 ]; then - run_integration_tests - exit $? -fi - -# Django development server -if [ $runserver -eq 1 ]; then - run_server - exit $? -fi - -# Full test suite -run_tests || exit \ No newline at end of file diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index c546ec9..0000000 --- a/setup.cfg +++ /dev/null @@ -1,34 +0,0 @@ -[metadata] -name = craton-dashboard -summary = The Craton UI for Horizon Dashboard -description-file = - README.rst -author = OSIC -author_email = eddie.ramirez@intel.com -home-page = http://www.openstack.org/ -classifiers = [ - Environment :: OpenStack - Framework :: Django - Intended Audience :: Developers - Intended Audience :: System Administrators - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.3 - Programming Language :: Python :: 3.4 - Programming Language :: Python :: 3.5 - -[files] -packages = - craton_dashboard - -[build_sphinx] -source-dir = doc/source -build-dir = doc/build -all_files = 1 - -[upload_sphinx] -upload-dir = doc/build/html \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 237baca..0000000 --- a/setup.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) 2016 Intel Corporation -# -# 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. - -# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT -import setuptools - -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - -setuptools.setup( - setup_requires=['pbr>=1.8'], - pbr=True) diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index f8f7da3..0000000 --- a/test-requirements.txt +++ /dev/null @@ -1,25 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -hacking<0.12,>=0.10.0 -coverage>=3.6 -ddt>=1.0.1 # MIT -django-nose>=1.4.4 # BSD -reno>=1.8.0 # Apache2 -mock>=2.0 # BSD -mox3>=0.7.0 # Apache-2.0 -nodeenv>=0.9.4 # BSD License # BSD -netifaces>=0.10.4 # MIT -nose # LGPL -nose-exclude # LGPL -nosehtmloutput>=0.0.3 # Apache-2.0 -nosexcover # BSD -openstack.nose-plugin>=0.7 # Apache-2.0 -python-subunit>=0.0.18 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 -oslosphinx>=2.5.0 # Apache-2.0 -oslotest>=1.10.0 # Apache-2.0 -testrepository>=0.0.18 -testscenarios>=0.4 -testtools>=1.4.0 \ No newline at end of file diff --git a/test.txt b/test.txt deleted file mode 100644 index 5d31cae..0000000 --- a/test.txt +++ /dev/null @@ -1 +0,0 @@ -asdffdasfdas diff --git a/tools/install_venv.py b/tools/install_venv.py deleted file mode 100644 index a4f0485..0000000 --- a/tools/install_venv.py +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 2012 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# Copyright 2012 OpenStack, LLC -# -# 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. - -""" -Installation script for the OpenStack Dashboard development virtualenv. -""" - -import os -import subprocess -import sys - - -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, 'requirements.txt') -TEST_REQUIRES = os.path.join(ROOT, 'test-requirements.txt') -PIP_INSTALL_WRAPPER = os.path.join(ROOT, 'tools', 'pip_install.sh') - - -def die(message, *args): - print(sys.stderr, message % args) - sys.exit(1) - - -def run_command(cmd, redirect_output=True, check_exit_code=True, cwd=ROOT, - die_message=None): - """ - - Run a command in an out-of-process shell, returning the - output of that command. Working directory is ROOT.""" - if redirect_output: - stdout = subprocess.PIPE - else: - stdout = None - - proc = subprocess.Popen(cmd, cwd=cwd, stdout=stdout) - output = proc.communicate()[0] - if check_exit_code and proc.returncode != 0: - if die_message is None: - die('Command "%s" failed.\n%s', ' '.join(cmd), output) - else: - die(die_message) - return output - - -HAS_EASY_INSTALL = bool(run_command(['which', 'easy_install'], - check_exit_code=False).strip()) -HAS_VIRTUALENV = bool(run_command(['which', 'virtualenv'], - check_exit_code=False).strip()) - - -def check_dependencies(): - """Make sure virtualenv is in the path.""" - print('Checking dependencies...') - if not HAS_VIRTUALENV: - print ('Virtual environment not found.') - # Try installing it via easy_install... - if HAS_EASY_INSTALL: - print ('Installing virtualenv via easy_install...', - run_command(['easy_install', 'virtualenv'], - die_message='easy_install failed to install ' - 'virtualenv\ndevelopment requires ' - 'virtualenv, please install it ' - 'using your favorite tool')) - if not run_command(['which', 'virtualenv']): - die('ERROR: virtualenv not found in path.\n\ndevelopment ' - ' requires virtualenv, please install it using your' - ' favorite package management tool and ensure' - ' virtualenv is in your path') - print('virtualenv installation done.') - else: - die('easy_install not found.\n\nInstall easy_install' - ' (python-setuptools in ubuntu) or virtualenv by hand,' - ' then rerun.') - print('dependency check done.') - - -def create_virtualenv(venv=VENV): - """Creates the virtual environment and installs PIP only into the - virtual environment - """ - print('Creating venv...'), - run_command(['virtualenv', '-q', '--no-site-packages', VENV]) - print('done.') - print('Installing pip in virtualenv...'), - if not run_command([WITH_VENV, 'easy_install', 'pip']).strip(): - die("Failed to install pip.") - print('done.') - print('Installing distribute in virtualenv...') - pip_install('distribute>=0.6.24') - print('done.') - - -def pip_install(*args): - args = [WITH_VENV, 'pip', 'install', '--upgrade'] + list(args) - run_command(args, redirect_output=False) - - -def pip_install_with_horizon(*args): - args = [WITH_VENV, PIP_INSTALL_WRAPPER, 'unconstrained'] + 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)") - pip_install_with_horizon('-r', TEST_REQUIRES) - pip_install_with_horizon('-r', PIP_REQUIRES) - - # Tell the virtual env how to "import dashboard" - py = 'python%d.%d' % (sys.version_info[0], sys.version_info[1]) - pthfile = os.path.join(venv, "lib", py, "site-packages", "dashboard.pth") - f = open(pthfile, 'w') - f.write("%s\n" % ROOT) - - -def install_horizon(): - print('Installing horizon module in development mode...') - run_command([WITH_VENV, 'python', 'setup.py', 'develop'], cwd=ROOT) - - -def print_summary(): - summary = """ -Horizon development environment setup is complete. -To activate the virtualenv for the extent of your current shell session you -can run: -$ source .venv/bin/activate -""" - print(summary) - - -def main(): - check_dependencies() - create_virtualenv() - install_dependencies() - install_horizon() - print_summary() - -if __name__ == '__main__': - main() diff --git a/tools/pip_install.sh b/tools/pip_install.sh deleted file mode 100755 index 50c95ff..0000000 --- a/tools/pip_install.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh - -# The original script is borrowed from neutron-* repos. - -# Many of horizon's repos suffer from the problem of depending on horizon, -# but it not existing on pypi. - -# This wrapper for tox's package installer will use the existing package -# if it exists, else use zuul-cloner if that program exists, else grab it -# from horizon master via a hard-coded URL. That last case should only -# happen with devs running unit tests locally. - -# From the tox.ini config page: -# install_command=ARGV -# default: -# pip install {opts} {packages} - -ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner -BRANCH_NAME=master -horizon_installed=$(echo "import horizon" | python 2>/dev/null ; echo $?) - -set -e - -zuul_install () { - if [ -x "$ZUUL_CLONER" ]; then - export ZUUL_BRANCH=${ZUUL_BRANCH-$BRANCH} - echo "ZUUL CLONER" > /tmp/tox_install.txt - cwd=$(/bin/pwd) - cd /tmp - $ZUUL_CLONER --cache-dir \ - /opt/git \ - --branch $BRANCH_NAME \ - git://git.openstack.org \ - openstack/horizon - cd openstack/horizon - $install_cmd -e . - cd "$cwd" - else - return 1 - fi -} - -usual_install () { - echo "PIP HARDCODE" > /tmp/tox_install.txt - if [ -z "$HORIZON_PIP_LOCATION" ]; then - HORIZON_PIP_LOCATION="git+https://git.openstack.org/openstack/horizon@$BRANCH_NAME#egg=horizon" - fi - $install_cmd -U -e ${HORIZON_PIP_LOCATION} - -} - -install_cmd="pip install" -if [ "$1" = "constrained" ]; then - install_cmd="$install_cmd $2" - shift -fi -shift - -if [ $horizon_installed -eq 0 ]; then - echo "ALREADY INSTALLED" > /tmp/tox_install.txt - echo "Horizon already installed; using existing package" -else - zuul_install || usual_install -fi - -$install_cmd -U $* -exit $? \ No newline at end of file diff --git a/tools/with_venv.sh b/tools/with_venv.sh deleted file mode 100755 index b15965f..0000000 --- a/tools/with_venv.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -TOOLS_PATH=${TOOLS_PATH:-$(dirname $0)} -VENV_PATH=${VENV_PATH:-${TOOLS_PATH}} -VENV_DIR=${VENV_NAME:-/../.venv} -TOOLS=${TOOLS_PATH} -VENV=${VENV:-${VENV_PATH}/${VENV_DIR}} -source ${VENV}/bin/activate && "$@" \ No newline at end of file diff --git a/tox.ini b/tox.ini deleted file mode 100644 index d511dc9..0000000 --- a/tox.ini +++ /dev/null @@ -1,99 +0,0 @@ -[tox] -minversion = 2.0 -envlist = py35,py34,py27,pep8,py27dj18 -skipsdist = True - -[testenv] -usedevelop = True -install_command = - {toxinidir}/tools/pip_install.sh unconstrained {opts} {packages} -setenv = - VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt -whitelist_externals = /bin/bash -commands = - # Try to detect whether a limited test suite is being specified and if so - # direct the testing to that suite's project; otherwise run the full suite - bash -c 'project=`echo {posargs} | cut -d. -f1`; \ - if [ -z "$project" ]; then \ - EXIT_STATUS=0; \ - {envpython} {toxinidir}/manage.py test craton_dashboard --settings=craton_dashboard.test.settings {posargs} || EXIT_STATUS=$?; \ - exit $EXIT_STATUS; \ - else \ - {envpython} {toxinidir}/manage.py test {posargs} --settings=$project.test.settings --exclude-dir=craton_dashboard/test/integration_tests; \ - fi' - -[testenv:py27] -basepython = python2.7 -setenv = - {[testenv]setenv} - PYTHONUNBUFFERED=1 - -[testenv:py34] -basepython = python3.4 -setenv = - {[testenv]setenv} - PYTHONUNBUFFERED=1 - -[testenv:py35] -basepython = python3.5 -setenv = - {[testenv]setenv} - PYTHONUNBUFFERED=1 - -[testenv:pep8] -commands = flake8 - -[testenv:venv] -commands = {posargs} - -# Django-1.8 is LTS -[testenv:py27dj18] -basepython = python2.7 -commands = pip install django>=1.8,<1.9 - /bin/bash run_tests.sh -N --no-pep8 {posargs} - -[testenv:py27dj19] -basepython = python2.7 -commands = pip install django>=1.9,<1.10 - /bin/bash run_tests.sh -N --no-pep8 {posargs} - -[testenv:py27dj110] -basepython = python2.7 -commands = pip install django --pre --upgrade - /bin/bash run_tests.sh -N --no-pep8 {posargs} - -[testenv:npm] -commands = - nodeenv -p - npm install - npm run {posargs:test} - -[testenv:releasenotes] -commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html - -[testenv:cover] -commands = python setup.py testr --coverage --testr-args='{posargs}' - -[testenv:docs] -commands = python setup.py build_sphinx - -[testenv:debug] -commands = oslo_debug_helper {posargs} - -[flake8] -show-source = True -# E123, E125 skipped as they are invalid PEP-8. -# H405 multi line docstring summary not separated with an empty line -ignore = E123,E125,H405 -builtins = _ -exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.ropeproject,tools,node_modules - -[testenv:bindep] -# Do not install any requirements. We want this to be fast and work even if -# system dependencies are missing, since it's used to tell you what system -# dependencies are missing! This also means that bindep must be installed -# separately, outside of the requirements files. -deps = bindep -commands = bindep test \ No newline at end of file