Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Ardana:8:CentOS
ardana-horizon
ardana-horizon-8.0+git.1610733160.0f577f4.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ardana-horizon-8.0+git.1610733160.0f577f4.obscpio of Package ardana-horizon
07070100000000000081A40000000000000000000000016001D6680000003E000000000000000000000000000000000000003B00000000ardana-horizon-8.0+git.1610733160.0f577f4/.copyrightignoreroles/HZN-WEB/files/openstack_dashboard/conf/nova_policy.json 07070100000001000081A40000000000000000000000016001D66800000083000000000000000000000000000000000000003500000000ardana-horizon-8.0+git.1610733160.0f577f4/.gitreview[gerrit] host=gerrit.suse.provo.cloud port=29418 project=ardana/horizon-ansible.git defaultremote=ardana defaultbranch=stable/pike 07070100000002000081A40000000000000000000000016001D6680000000C000000000000000000000000000000000000003800000000ardana-horizon-8.0+git.1610733160.0f577f4/.rsync-filter- ardana-ci 07070100000003000081A40000000000000000000000016001D6680000279F000000000000000000000000000000000000003200000000ardana-horizon-8.0+git.1610733160.0f577f4/LICENSE 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. 07070100000004000081A40000000000000000000000016001D66800001CDB000000000000000000000000000000000000003400000000ardana-horizon-8.0+git.1610733160.0f577f4/README.md<!-- (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP (c) Copyright 2017 SUSE LLC 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 repo contains the playbooks for installing and configuring Horizon as well as any additional dashboards. # Adding your own dashboard, panel group, or panels Adding your dashboard, panel groups, or panels requires having your code made available to Horizon and adding some configuration to enable that code. ## STEP 1 - Package your dashboard code within the horizon virtual environment To do this, you will need to modify [ansible/roles/venv/defaults/main.yml](http://git.suse.provo.cloud/ cgit/ardana/ardana-dev-tools/tree/ansible/roles/venv/defaults/main.yml) within the [ardana/ardana-dev-tools](http://git.suse.provo.cloud/cgit/ardana/ardana-dev-tools) repository. This will involve (a) adding your source code to the list of Ardana virtual environment sources and (b) specifying its inclusion in the Horizon virtual environment tarball. ### (a) Adding your source You will need to add your dashboard repo to the list of repos declared under the **_venv_ardana_sources** section. For example, suppose you have a new dashboard called "a_new_dashboard" in a repo called "ardana/a_new_dashboard" and that this dashboard makes use of a python library api called "a_new_pythonclient" in a named "ardana/a_new_pythonclient". Then you'd add the following lines to the **_venv_ardana_sources** section: # List of sources for Ardana _venv_ardana_sources: a_new_pythonclient: dest: "{{ _venv_source_dir }}/a_new_pythonclient" branch: "{{ _venv_service_branch_default }}" url: "{{ dev_env_default_git_server }}/ardana/a_new_pythonclient" a_new_dashboard: dest: "{{ _venv_source_dir }}/a_new_dashboard" branch: "{{ _venv_service_branch_default }}" url: "{{ dev_env_default_git_server }}/ardana/a_new_dashboard" This will ensure that your repositories are cloned in a temporary directory along with all the other repositories to be used in the process of building each virtual environment's tarball. Also, note that the list of sources is alphabetized by the name. Please maintain this convention. ### (b) Including your source in the Horizon virtual environment tarball Next, under the services default section, you will need to reference your repo in the list of repositories to include when building the horizon virtual environment, under **_services_default --> horizon --> sources** Using the "a_new_dashboard" example again. You will want to add the following to the section that specifies which sources are to be installed into the horizon virtual environment. Here's what that section looks like when adding the dashboard and client code to the existing list of horizon dependencies: horizon: sources: - keystoneclient - ceilometerclient - cinderclient - glanceclient - neutronclient - novaclient - swiftclient - heatclient - horizon - monasca_ui - a_new_dashboard - a_new_pythonclient pips: - python-memcached version: "{{ package_version }}" The changes to **ardana/ardana-dev-tools** will need to be merged *before* you can merge changes to the **horizon-ansible** repository (described below) To get your changes to the **ardana/ardana-dev-tools** repository reviewed and merged, you will want to ping someone from Horizon team (just mention Ardana and that you are merging a new dashboard). This can be done in the "Horizon" hipchat room. ## STEP 2 - Add a role to the ardana/horizon-ansible repository The next step is to **(a)** create a new role within the **horizon-ansible** repository and **(b)** enable your dashboard: ### (a) Add a directory for your role In a clone of the **horizon-ansible** repo, under the **roles/** directory, create a new directory (using the name of your role). ### (b) Create configure.yml script to enable your dashbaord In the directory of your role, create a **tasks/** subdirectory and, in the **tasks** directory, create a **configure.yml** ansible script. You will need to use this script to add your dashboard configuration file(s) to the **{{ horizon_enabled_dashboard_dir }}** directory, which will translate to **lib/python2.7/site-packages/openstack_dashboard/local/enabled/** within the Horizon virtual environment directory. Instructions on how to configure your dashboard can be found in the [horizon docs](http://docs.openstack.org/developer/horizon/topics/settings.html #pluggable-settings-label). Here, we can go over how to install your dashboard, panel group, and/or panel configuration file(s) so that Horizon loads it: #### (i) Copying If the configuration options of your dashboard do not depend on any other variables that need to be translated during installation, you can have a copy of the configuration file in a "files/" subdirectory of your new role's directory and use the ansible copy command to copy the file to the **{{ horizon_dashboard_enabled_dir }}**. #### (ii) Templating If, however, your dashboard configuration file does contain jinja2 placeholders that need to be translated, you'll want to put a copy of your template in a new **templates/** subdirectory of your role's directory and use the ansible "template" command to copy and translate your dashboard configuration file. #### (iii) Symlinking If the default dashboard configuration file is defined in the source of your dashboard project and is available within it's directory in the virtual environment, you can use the ansible "file" command to sym link it from **{{ horizon_dashboard_enabled_dir }}** ## STEP 3 - Modify horizon-deploy.yml to reference your configure task. In the future, we will be modifying horizon-deploy.yml to automatically load each role's configure.yml file, but, for now, you will need to modify, in the **ardana/horizon-ansible** repository, horizon-deploy.yml to do this so that your role's configure.yml is run after HZN-WEB/configure.yml is run. ##OTHER NOTES: If you are incrementally testing changes to the process for building the Horizon virtual environment tarball, you will find some useful notes here: http://git.suse.provo.cloud/cgit/ardana/ardana-dev-tools/plain/build-vagrant/README.md Rebuilding virtual environments takes a very long time. If you are just making changes to one virtual environment tarball, this link will explain how to test your changes incrementally. We believe these instructions should cover everything needed to install a new dashboard. However, if the installation/configuration of your particular dashboard requires additional steps not documented here, please contact us (on the horizon team) to figure out the best, most maintainable/flexible way to proceed. 07070100000005000081A40000000000000000000000016001D66800000485000000000000000000000000000000000000004A00000000ardana-horizon-8.0+git.1610733160.0f577f4/_cleanup_horizon_extensions.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - name: horizon-extensions | cleanup | Remove horizon-extensions cron job cron: name: 'Horizon extensions agent' state: absent - name: horizon-extensions | cleanup | Remove horizon-extensions panel and group file: name: "{{ horizon_enabled_dashboard_dir }}/{{ item }}" state: absent with_items: - _81_horizon_extensions_panel_group.py - _82_horizon_extensions_panels.py 07070100000006000081A40000000000000000000000016001D668000002DD000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/_horizon-schedule-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Schedule a restart of horizon services using ardana_notify_... variables - hosts: all tasks: - include: roles/HZN-WEB/tasks/_schedule_restart.yml07070100000007000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000003100000000ardana-horizon-8.0+git.1610733160.0f577f4/config07070100000008000081A40000000000000000000000016001D6680000032F000000000000000000000000000000000000004600000000ardana-horizon-8.0+git.1610733160.0f577f4/config/horizon-symlinks.yml# (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (C) Copyright 2017 SUSE LLC # # 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 following relative symlinks are created under the # my_cloud/config directory. --- symlinks: "horizon/local_settings.py": "roles/HZN-WEB/templates/local_settings.py" 07070100000009000081A40000000000000000000000016001D6680000030C000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-configure-monasca.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB:&MON-AGN become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/_add_monasca_checks.yml 0707010000000A000081A40000000000000000000000016001D668000008C3000000000000000000000000000000000000003D00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-deploy.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - hosts: HZN-WEB become: yes roles: - HZN-WEB - tls-trust tasks: - include: roles/HZN-WEB/tasks/install.yml - include: roles/HZN-WEB/tasks/configure.yml - include: roles/tls-trust/tasks/install.yml - hosts: HZN-WEB become: yes roles: - HZN-WEB - horizon-designate-dashboard - horizon-freezer-ui - horizon-ironic-ui - horizon-magnum-ui - horizon-lbaas-dashboard - horizon-vpnaas-dashboard - horizon-fwaas-dashboard tasks: - include: roles/horizon-designate-dashboard/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-freezer-ui/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-ironic-ui/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-magnum-ui/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-lbaas-dashboard/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-vpnaas-dashboard/tasks/install.yml when: deployer_media_legacy_layout|bool - include: roles/horizon-fwaas-dashboard/tasks/install.yml when: deployer_media_legacy_layout|bool - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/_post-configure.yml - include: roles/HZN-WEB/tasks/start.yml serial: 1 - include: horizon-configure-monasca.yml - hosts: localhost connection: local become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/_cleanup.yml 0707010000000B000081A40000000000000000000000016001D66800000439000000000000000000000000000000000000004200000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-reconfigure.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/configure.yml - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/_post-configure.yml - include: roles/HZN-WEB/tasks/start.yml - include: horizon-configure-monasca.yml - hosts: localhost become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/_cleanup.yml 0707010000000C000081A40000000000000000000000016001D6680000028B000000000000000000000000000000000000003E00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- - include: _horizon-schedule-restart.yml - include: horizon-start.yml 0707010000000D000081A40000000000000000000000016001D668000002F5000000000000000000000000000000000000003C00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/start.yml 0707010000000E000081A40000000000000000000000016001D66800000310000000000000000000000000000000000000003D00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-status.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB max_fail_percentage: 0 become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/status.yml 0707010000000F000081A40000000000000000000000016001D668000002F4000000000000000000000000000000000000003B00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HZN-WEB become: yes roles: - HZN-WEB tasks: - include: roles/HZN-WEB/tasks/stop.yml 07070100000010000081A40000000000000000000000016001D6680000030E000000000000000000000000000000000000003E00000000ardana-horizon-8.0+git.1610733160.0f577f4/horizon-upgrade.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: horizon-status.yml - include: _cleanup_horizon_extensions.yml - include: horizon-deploy.yml - include: horizon-status.yml 07070100000011000041ED00000000000000000000000A6001D66800000000000000000000000000000000000000000000003000000000ardana-horizon-8.0+git.1610733160.0f577f4/roles07070100000012000041ED0000000000000000000000086001D66800000000000000000000000000000000000000000000003800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB07070100000013000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004100000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/defaults07070100000014000081A40000000000000000000000016001D6680000127A000000000000000000000000000000000000004A00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # Variables labeled as "convenience variables" are simply intended to provide # a shorthand for the given value, as a way of making the templates easier to # read. These should NOT be modified or overridden in any way. # Variables labeled as "user configurable" are ones that can be overridden # by the input configuration. # convenience variables horizon_user: horizon horizon_group: horizon horizon_venv_user: horizon-venv horizon_venv_group: horizon-venv horizon_home_dir: /var/lib/horizon service: horizon # Set service dirs using package filters where possible # These directory pathes need to be set using the package filters, as they are # referenced by the configure tasks. They also need to be re-set to version- # specific non-symlink paths so that they point to yet-to-be-activated venv # subdirectories when an install or upgrade is taking place. (See this role's # tasks/install.yml file). # These variables will end with the suffix _dir. horizon_conf_dir: "{{ service | config_dir() }}" horizon_enabled_dashboard_dir: "{{ service | jar_dir() }}/python2.7/site-packages/openstack_dashboard/local/enabled" horizon_site_packages_dir: "{{ service | jar_dir() }}/python2.7/site-packages" horizon_package_dir: "{% if deployer_media_legacy_layout|bool -%} {{ horizon_site_packages_dir }} {%- else -%} {{ service | venv_dir() }}/srv/www/openstack-dashboard {%- endif -%}" horizon_openstack_dashboard_dir: "{{ horizon_package_dir }}/openstack_dashboard" horizon_bin_dir: "{{ service | bin_dir() }}" horizon_static_dir: "{{ service | venv_dir() }}/static" # convenience variables # These variables all have a suffix of "_constant" to indicate that they # are never used to refer to paths in an un-activated venv, but always used in # a context where only the symlinked path is to be used. horizon_venv_dir_constant: "/opt/stack/service/horizon/venv" horizon_site_packages_dir_constant: "{{ horizon_venv_dir_constant }}/lib/python2.7/site-packages" horizon_package_dir_constant: "{% if deployer_media_legacy_layout|bool -%} {{ horizon_site_packages_dir_constant }} {%- else -%} {{ horizon_venv_dir_constant }}/srv/www/openstack-dashboard {%- endif -%}" horizon_openstack_dashboard_dir_constant: "{{ horizon_package_dir_constant }}/openstack_dashboard" horizon_python_path_constant: "{{ horizon_venv_dir_constant }}:{{ horizon_venv_dir_constant }}/lib/python2.7/site-packages/" horizon_static_dir_constant: "{{ horizon_venv_dir_constant }}/static" horizon_bin_dir_constant: "{{ service | bin_dir() }}" horizon_public_protocol: "{{ HZN_WEB.advertises.vips.public[0].protocol }}" horizon_private_protocol: "{{ HZN_WEB.advertises.vips.private[0].protocol }}" # Address and port we bind to horizon_port: "{{ host.bind.HZN_WEB.internal.port }}" horizon_host: "{{ host.bind.HZN_WEB.internal.ip_address }}" # user configurable horizon_keystone_url: "{{ HZN_WEB.consumes_KEY_API.vips.private[0].url }}/v3" horizon_websso_keystone_url: "{{ KEY_API.advertises.vips.public[0].url }}/v3" # this defaults otherwise to publicURL; controls the endpoint type Horizon # uses internally to talk to openstack services horizon_openstack_endpoint_type: "internalURL" # user configurable horizon_log_level: INFO ca_file: "{{ trusted_ca_bundle }}" mysql: host: > {{ HZN_WEB | item('consumes_FND_MDB.vips.private[0].host', default=( HZN_WEB | item('consumes_FND_MDB.vips.public[0].host') )) }} horizon_user: "{{ HZN_WEB.consumes_FND_MDB.vars.accounts.horizon.username }}" horizon_password: "{{ HZN_WEB.consumes_FND_MDB.vars.accounts.horizon.password | quote }}" horizon_db: "{{ HZN_WEB.consumes_FND_MDB.vars.databases.horizon.dbname }}" use_ssl: "{{ HZN_WEB.consumes_FND_MDB.vips.private[0].use_tls }}" # user configurable horizon_websso_enabled: False horizon_websso_choices: - {protocol: saml2, description: "ADFS Credentials"} 07070100000015000041ED0000000000000000000000036001D66800000000000000000000000000000000000000000000003E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/files07070100000016000081A40000000000000000000000016001D668000004CA000000000000000000000000000000000000004C00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/files/gen_policy.sh#!/bin/bash # (c) Copyright 2018 SUSE LLC # # 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. # # parameters: # $1 - venv directory for the openstack service whose policy is being generated, must # contain bin/oslopolicy-policy-generator or script will fail # $2 - namespace # $3 - config-dir for the service # $4 - Horizon venv directory (file will be written to /openstack_dashboard/conf under here) servicevenv=$1 namespace=$2 configdir=$3 horizonvenv=$4 ${servicevenv}/bin/oslopolicy-policy-generator --namespace ${namespace} --config-dir ${configdir} | python -c 'import sys, yaml, json; y=yaml.load(sys.stdin.read()); print json.dumps(y)' | python -m json.tool > ${horizonvenv}/openstack_dashboard/conf/${namespace}_policy.json 07070100000017000041ED0000000000000000000000036001D66800000000000000000000000000000000000000000000005200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/files/openstack_dashboard07070100000018000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000005700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/files/openstack_dashboard/conf07070100000019000081A40000000000000000000000016001D66800002C3E000000000000000000000000000000000000006800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/files/openstack_dashboard/conf/nova_policy.json{ "admin_api": "is_admin:True", "admin_or_owner": "is_admin:True or project_id:%(project_id)s", "cells_scheduler_filter:DifferentCellFilter": "is_admin:True", "cells_scheduler_filter:TargetCellFilter": "is_admin:True", "context_is_admin": "role:admin or role:nova_admin", "network:attach_external_network": "is_admin:True", "os_compute_api:extensions": "rule:admin_or_owner", "os_compute_api:flavors": "rule:admin_or_owner", "os_compute_api:image-size": "rule:admin_or_owner", "os_compute_api:ips:index": "rule:admin_or_owner", "os_compute_api:ips:show": "rule:admin_or_owner", "os_compute_api:limits": "rule:admin_or_owner", "os_compute_api:os-admin-actions:inject_network_info": "rule:admin_api", "os_compute_api:os-admin-actions:reset_network": "rule:admin_api", "os_compute_api:os-admin-actions:reset_state": "rule:admin_api", "os_compute_api:os-admin-password": "rule:admin_or_owner", "os_compute_api:os-agents": "rule:admin_api", "os_compute_api:os-aggregates:add_host": "rule:admin_api", "os_compute_api:os-aggregates:create": "rule:admin_api", "os_compute_api:os-aggregates:delete": "rule:admin_api", "os_compute_api:os-aggregates:index": "rule:admin_api", "os_compute_api:os-aggregates:remove_host": "rule:admin_api", "os_compute_api:os-aggregates:set_metadata": "rule:admin_api", "os_compute_api:os-aggregates:show": "rule:admin_api", "os_compute_api:os-aggregates:update": "rule:admin_api", "os_compute_api:os-assisted-volume-snapshots:create": "rule:admin_api", "os_compute_api:os-assisted-volume-snapshots:delete": "rule:admin_api", "os_compute_api:os-attach-interfaces": "rule:admin_or_owner", "os_compute_api:os-attach-interfaces:create": "rule:admin_or_owner", "os_compute_api:os-attach-interfaces:delete": "rule:admin_or_owner", "os_compute_api:os-availability-zone:detail": "rule:admin_api", "os_compute_api:os-availability-zone:list": "rule:admin_or_owner", "os_compute_api:os-baremetal-nodes": "rule:admin_api", "os_compute_api:os-cells": "rule:admin_api", "os_compute_api:os-cells:create": "rule:admin_api", "os_compute_api:os-cells:delete": "rule:admin_api", "os_compute_api:os-cells:sync_instances": "rule:admin_api", "os_compute_api:os-cells:update": "rule:admin_api", "os_compute_api:os-config-drive": "rule:admin_or_owner", "os_compute_api:os-console-auth-tokens": "rule:admin_api", "os_compute_api:os-console-output": "rule:admin_or_owner", "os_compute_api:os-consoles:create": "rule:admin_or_owner", "os_compute_api:os-consoles:delete": "rule:admin_or_owner", "os_compute_api:os-consoles:index": "rule:admin_or_owner", "os_compute_api:os-consoles:show": "rule:admin_or_owner", "os_compute_api:os-create-backup": "rule:admin_or_owner", "os_compute_api:os-deferred-delete": "rule:admin_or_owner", "os_compute_api:os-evacuate": "rule:admin_api", "os_compute_api:os-extended-availability-zone": "rule:admin_or_owner", "os_compute_api:os-extended-server-attributes": "rule:admin_api", "os_compute_api:os-extended-status": "rule:admin_or_owner", "os_compute_api:os-extended-volumes": "rule:admin_or_owner", "os_compute_api:os-fixed-ips": "rule:admin_api", "os_compute_api:os-flavor-access": "rule:admin_or_owner", "os_compute_api:os-flavor-access:add_tenant_access": "rule:admin_api", "os_compute_api:os-flavor-access:remove_tenant_access": "rule:admin_api", "os_compute_api:os-flavor-extra-specs:create": "rule:admin_api", "os_compute_api:os-flavor-extra-specs:delete": "rule:admin_api", "os_compute_api:os-flavor-extra-specs:index": "rule:admin_or_owner", "os_compute_api:os-flavor-extra-specs:show": "rule:admin_or_owner", "os_compute_api:os-flavor-extra-specs:update": "rule:admin_api", "os_compute_api:os-flavor-manage": "rule:admin_api", "os_compute_api:os-flavor-manage:create": "rule:os_compute_api:os-flavor-manage", "os_compute_api:os-flavor-manage:delete": "rule:os_compute_api:os-flavor-manage", "os_compute_api:os-flavor-rxtx": "rule:admin_or_owner", "os_compute_api:os-floating-ip-dns": "rule:admin_or_owner", "os_compute_api:os-floating-ip-dns:domain:delete": "rule:admin_api", "os_compute_api:os-floating-ip-dns:domain:update": "rule:admin_api", "os_compute_api:os-floating-ip-pools": "rule:admin_or_owner", "os_compute_api:os-floating-ips": "rule:admin_or_owner", "os_compute_api:os-floating-ips-bulk": "rule:admin_api", "os_compute_api:os-fping": "rule:admin_or_owner", "os_compute_api:os-fping:all_tenants": "rule:admin_api", "os_compute_api:os-hide-server-addresses": "is_admin:False", "os_compute_api:os-hosts": "rule:admin_api", "os_compute_api:os-hypervisors": "rule:admin_api", "os_compute_api:os-instance-actions": "rule:admin_or_owner", "os_compute_api:os-instance-actions:events": "rule:admin_api", "os_compute_api:os-instance-usage-audit-log": "rule:admin_api", "os_compute_api:os-keypairs": "rule:admin_or_owner", "os_compute_api:os-keypairs:create": "rule:admin_api or user_id:%(user_id)s", "os_compute_api:os-keypairs:delete": "rule:admin_api or user_id:%(user_id)s", "os_compute_api:os-keypairs:index": "rule:admin_api or user_id:%(user_id)s", "os_compute_api:os-keypairs:show": "rule:admin_api or user_id:%(user_id)s", "os_compute_api:os-lock-server:lock": "rule:admin_or_owner", "os_compute_api:os-lock-server:unlock": "rule:admin_or_owner", "os_compute_api:os-lock-server:unlock:unlock_override": "rule:admin_api", "os_compute_api:os-migrate-server:migrate": "!", "os_compute_api:os-migrate-server:migrate_live": "rule:admin_api", "os_compute_api:os-migrations:index": "rule:admin_api", "os_compute_api:os-multinic": "rule:admin_or_owner", "os_compute_api:os-networks": "rule:admin_api", "os_compute_api:os-networks-associate": "rule:admin_api", "os_compute_api:os-networks:view": "rule:admin_or_owner", "os_compute_api:os-pause-server:pause": "rule:admin_or_owner", "os_compute_api:os-pause-server:unpause": "rule:admin_or_owner", "os_compute_api:os-quota-class-sets:show": "is_admin:True or quota_class:%(quota_class)s", "os_compute_api:os-quota-class-sets:update": "rule:admin_api", "os_compute_api:os-quota-sets:defaults": "@", "os_compute_api:os-quota-sets:delete": "rule:admin_api", "os_compute_api:os-quota-sets:detail": "rule:admin_or_owner", "os_compute_api:os-quota-sets:show": "rule:admin_or_owner", "os_compute_api:os-quota-sets:update": "rule:admin_api", "os_compute_api:os-remote-consoles": "rule:admin_or_owner", "os_compute_api:os-rescue": "rule:admin_or_owner", "os_compute_api:os-scheduler-hints:discoverable": "rule:admin_or_owner", "os_compute_api:os-security-group-default-rules": "rule:admin_api", "os_compute_api:os-security-groups": "rule:admin_or_owner", "os_compute_api:os-server-diagnostics": "rule:admin_api", "os_compute_api:os-server-external-events:create": "rule:admin_api", "os_compute_api:os-server-groups": "rule:admin_or_owner", "os_compute_api:os-server-groups:create": "rule:os_compute_api:os-server-groups", "os_compute_api:os-server-groups:delete": "rule:os_compute_api:os-server-groups", "os_compute_api:os-server-groups:index": "rule:os_compute_api:os-server-groups", "os_compute_api:os-server-groups:show": "rule:os_compute_api:os-server-groups", "os_compute_api:os-server-groups:discoverable": "rule:os_compute_api:os-server-groups", "os_compute_api:os-server-password": "rule:admin_or_owner", "os_compute_api:os-server-tags:delete": "rule:admin_or_owner", "os_compute_api:os-server-tags:delete_all": "rule:admin_or_owner", "os_compute_api:os-server-tags:index": "rule:admin_or_owner", "os_compute_api:os-server-tags:show": "rule:admin_or_owner", "os_compute_api:os-server-tags:update": "rule:admin_or_owner", "os_compute_api:os-server-tags:update_all": "rule:admin_or_owner", "os_compute_api:os-server-usage": "rule:admin_or_owner", "os_compute_api:os-services": "rule:admin_api", "os_compute_api:os-shelve:shelve": "rule:admin_or_owner", "os_compute_api:os-shelve:shelve_offload": "rule:admin_api", "os_compute_api:os-shelve:unshelve": "rule:admin_or_owner", "os_compute_api:os-simple-tenant-usage:list": "rule:admin_api", "os_compute_api:os-simple-tenant-usage:show": "rule:admin_or_owner", "os_compute_api:os-suspend-server:resume": "rule:admin_or_owner", "os_compute_api:os-suspend-server:suspend": "rule:admin_or_owner", "os_compute_api:os-tenant-networks": "rule:admin_or_owner", "os_compute_api:os-used-limits": "rule:admin_api", "os_compute_api:os-virtual-interfaces": "rule:admin_or_owner", "os_compute_api:os-volumes": "rule:admin_or_owner", "os_compute_api:os-volumes-attachments:create": "rule:admin_or_owner", "os_compute_api:os-volumes-attachments:delete": "rule:admin_or_owner", "os_compute_api:os-volumes-attachments:index": "rule:admin_or_owner", "os_compute_api:os-volumes-attachments:show": "rule:admin_or_owner", "os_compute_api:os-volumes-attachments:update": "rule:admin_api", "os_compute_api:server-metadata:create": "rule:admin_or_owner", "os_compute_api:server-metadata:delete": "rule:admin_or_owner", "os_compute_api:server-metadata:index": "rule:admin_or_owner", "os_compute_api:server-metadata:show": "rule:admin_or_owner", "os_compute_api:server-metadata:update": "rule:admin_or_owner", "os_compute_api:server-metadata:update_all": "rule:admin_or_owner", "os_compute_api:servers:confirm_resize": "!", "os_compute_api:servers:create": "rule:admin_or_owner", "os_compute_api:servers:create:attach_network": "rule:admin_or_owner", "os_compute_api:servers:create:attach_volume": "rule:admin_or_owner", "os_compute_api:servers:create:forced_host": "rule:admin_api", "os_compute_api:servers:create_image": "rule:admin_or_owner", "os_compute_api:servers:create_image:allow_volume_backed": "rule:admin_or_owner", "os_compute_api:servers:delete": "rule:admin_or_owner", "os_compute_api:servers:detail": "rule:admin_or_owner", "os_compute_api:servers:detail:get_all_tenants": "rule:admin_api", "os_compute_api:servers:index": "rule:admin_or_owner", "os_compute_api:servers:index:get_all_tenants": "rule:admin_api", "os_compute_api:servers:migrations:delete": "rule:admin_api", "os_compute_api:servers:migrations:force_complete": "rule:admin_api", "os_compute_api:servers:migrations:index": "rule:admin_api", "os_compute_api:servers:migrations:show": "rule:admin_api", "os_compute_api:servers:reboot": "rule:admin_or_owner", "os_compute_api:servers:rebuild": "rule:admin_or_owner", "os_compute_api:servers:resize": "!", "os_compute_api:servers:revert_resize": "!", "os_compute_api:servers:show": "rule:admin_or_owner", "os_compute_api:servers:show:host_status": "rule:admin_api", "os_compute_api:servers:start": "rule:admin_or_owner", "os_compute_api:servers:stop": "rule:admin_or_owner", "os_compute_api:servers:trigger_crash_dump": "rule:admin_or_owner", "os_compute_api:servers:update": "rule:admin_or_owner" } 0707010000001A000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000003D00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/meta0707010000001B000081A40000000000000000000000016001D66800000325000000000000000000000000000000000000004600000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/meta/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- dependencies: - role: monasca-agent run_mode: Use - role: tls-trust - role: tls-vars - role: FND-AP2 - role: NOV-API - role: _CND-CMN 0707010000001C000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000003E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks0707010000001D000081A40000000000000000000000016001D668000004C0000000000000000000000000000000000000005600000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/_add_monasca_checks.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: HZN-WEB | _add_monasca_checks | set fact for apache url set_fact: hzn_apache_monitor_url="http://{{ host.bind.HZN_WEB.internal.ip_address }}:{{ host.bind.HZN_WEB.internal.port }}/server-status?auto" - name: HZN-WEB | _add_monasca_checks | Monasca - Apache check monasca_agent_plugin: name: "apache" args: > url={{ hzn_apache_monitor_url }} - name: Set up active Horizon check monasca_agent_plugin: name="httpcheck" args="match_pattern=Password url={{ HZN_WEB.advertises.vips.private[0].url }} dimensions=service:web-ui,component:horizon" 0707010000001E000081A40000000000000000000000016001D668000002AF000000000000000000000000000000000000004B00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/_cleanup.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # # Cleanup after horizon configuration --- 0707010000001F000081A40000000000000000000000016001D6680000248B000000000000000000000000000000000000005200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/_post-configure.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # Collect static files and place them in vhost root # The command should typically translate to: # /opt/stack/service/horizon/venv/bin/python /opt/stack/service/horizon/manage.py collectstatic --clear --noinput - name: horizon_post_configure | post-configure | Collect static files command: "{{ horizon_bin_dir }}/django-admin.py collectstatic --clear --noinput --ignore '*.spec.js'" become: yes become_user: "{{ horizon_venv_user }}" environment: HORIZON_LOG_TO_CONSOLE: 1 DJANGO_SETTINGS_MODULE: openstack_dashboard.settings PYTHONPATH: "{{ horizon_package_dir }}" # Compress the static files # The command should typically translate to: # /opt/stack/service/horizon/venv/bin/python /opt/stack/service/horizon/manage.py compress - name: horizon_post_configure | post-configure | Compress static files command: "{{ horizon_bin_dir }}/django-admin.py compress" become: yes become_user: "{{ horizon_venv_user }}" environment: HORIZON_LOG_TO_CONSOLE: 1 DJANGO_SETTINGS_MODULE: openstack_dashboard.settings PYTHONPATH: "{{ horizon_package_dir }}" - name: horizon_post_configure | post-configure | Compile translations command: "{{ horizon_bin_dir }}/django-admin.py compilemessages" become: yes become_user: "{{ horizon_venv_user }}" args: chdir: "{{ item }}" environment: HORIZON_LOG_TO_CONSOLE: 1 DJANGO_SETTINGS_MODULE: openstack_dashboard.settings PYTHONPATH: "{{ horizon_package_dir }}" with_items: - "{{ horizon_package_dir }}/openstack_dashboard" - "{{ horizon_site_packages_dir }}/horizon" - "{{ horizon_site_packages_dir }}/openstack_auth" when: deployer_media_legacy_layout|bool - name: horizon_post_configure | post-configure | DB migration and sync become: yes become_user: "{{ horizon_venv_user }}" run_once: yes command: "{{ horizon_bin_dir }}/django-admin.py migrate --noinput" environment: HORIZON_LOG_TO_CONSOLE: 1 DJANGO_SETTINGS_MODULE: openstack_dashboard.settings PYTHONPATH: "{{ horizon_package_dir }}" # Database session backing requires clearing out the session table once in a while - name: horizon_post_configure | post-configure | Set up cronjob to clear expired sessions cron: name: "horizon session purge" user: "{{ horizon_user }}" # Make this configurable based on timezone somehow? hour: "{{ 23 }}" minute: "{{ 59 | random }}" job: "PYTHONPATH={{ horizon_package_dir }} DJANGO_SETTINGS_MODULE=openstack_dashboard.settings {{ horizon_bin_dir }}/django-admin.py clearsessions" # Sync policy files - name: "HZN-WEB | copy_policy_files | Check for keystone policy file" stat: path="{{ 'keystone' | config_dir() }}/policy.json" register: keystone_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy keystone policy file" command: "cp {{ 'keystone' | config_dir() }}/policy.json {{ horizon_package_dir }}/openstack_dashboard/conf/keystone_policy.json" when: keystone_policy_file_info.stat.exists # Remove "and None:%(target.role.domain_id)s" from rule "domain_admin_for_global_role_grants:" - name: HZN-WEB | patch keystone_policy_file | Remove None condition from rule domain_admin_for_global_role_grants replace: dest: "{{ horizon_package_dir }}/openstack_dashboard/conf/keystone_policy.json" regexp: '^( *"domain_admin_for_global_role_grants".*)None:%\(target.role.domain_id\)s and (.*$)' replace: '\1\2' - name: "HZN-WEB | copy_policy_files | Check for nova policy file" stat: path="{{ 'nova-api' | config_dir() }}/nova/policy.json" register: nova_policy_file_info # the policy file for Nova no longer exists as of Pike, use a generated copy if possible # and use a static copy if Nova is not locally installed - name: "HZN-WEB | copy_policy_file_generator_script | Copy policy file generator" become: yes copy: src: "gen_policy.sh" dest: "{{ horizon_package_dir }}/gen_policy.sh" owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" mode: 0775 - name: "HZN-WEB | check_for_nova | Check for nova installation" stat: path="{{ 'nova-api' | venv_dir() }}" register: nova_install_dir - name: HZN-WEB | generate_policy_files | Generate nova policy file become: yes become_user: "{{ horizon_venv_user }}" shell: "{{ horizon_package_dir }}/gen_policy.sh {{ 'nova-api' | venv_dir() }} nova {{ 'nova-api' | config_dir() }} {{ horizon_package_dir }}" when: nova_install_dir.stat.exists # Horizon looks for 2 rules that aren't generated by the oslo policy generator, which is probably # an issue upstream long term. In the short term, patch in those rules # sed command does the following: # add a comma to the last rule in the file: s/"$/",\n # add the rules for os-server-groups:discoverable and # os-scheduler-hints:discoverable # these rules are in the horizon copy of nova_policy.json upstream but # are not produced as part of the nova policy generation # addressed in Queens upstream at: # https://github.com/openstack/horizon/blob/stable/queens/openstack_dashboard/conf/nova_policy.d/api-extensions.yaml # TODO: REMOVE once product is upgraded to Queens or later OpenStack release # compute_extension:aggregates addresses bsc#1089940 (host aggregates missing in Horizon) # os_compute_api:servers:attach_volume addresses bsc#1094184 (attach volume policy rule in generated file is a mismatch for rule in code) - name: HZN-WEB | patch nova_policy_file | Add missing rules to nova_policy.json become: yes become_user: "{{ horizon_venv_user }}" shell: > sed -i 's/"$/",\n "os_compute_api:os-server-groups:discoverable": "rule:os_compute_api:os-server-groups",\n "os_compute_api:os-scheduler-hints:discoverable": "rule:os_compute_api:os-server-groups",\n "os_compute_api:servers:attach_volume": "rule:admin_or_owner",\n "os_compute_api:servers:detach_volume": "rule:admin_or_owner",\n "os_compute_api:snapshot": "rule:admin_or_owner",\n "compute_extension:aggregates": "rule:admin_api"/' "{{ horizon_package_dir }}/openstack_dashboard/conf/nova_policy.json" when: nova_install_dir.stat.exists - name: "HZN-WEB | copy_policy_files | Copy nova policy file" become: yes copy: src: "openstack_dashboard/conf/nova_policy.json" dest: "{{ horizon_package_dir }}/openstack_dashboard/conf/nova_policy.json" owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" mode: 0664 when: not nova_install_dir.stat.exists - name: "HZN-WEB | copy_policy_files | Check for cinder policy file" stat: path="{{ cinder_dir }}/policy.json" register: cinder_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy cinder policy file" command: "cp {{ cinder_dir }}/policy.json {{ horizon_package_dir }}/openstack_dashboard/conf/cinder_policy.json" when: cinder_policy_file_info.stat.exists - name: "HZN-WEB | copy_policy_files | Check for neutron policy file" stat: path="{{ 'neutron' | config_dir() }}/policy.json" register: neutron_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy neutron policy file" command: "cp {{ 'neutron' | config_dir() }}/policy.json {{ horizon_package_dir }}/openstack_dashboard/conf/neutron_policy.json" when: neutron_policy_file_info.stat.exists - name: "HZN-WEB | copy_policy_files | Modify neutron policy file" replace: dest={{ horizon_package_dir }}/openstack_dashboard/conf/neutron_policy.json regexp='tenant_id' replace='project_id' when: neutron_policy_file_info.stat.exists - name: "HZN-WEB | copy_policy_files | Check for glance policy file" stat: path="{{ 'glance-api' | config_dir() }}/policy.json" register: glance_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy glance policy file" command: "cp {{ 'glance-api' | config_dir() }}/policy.json {{ horizon_package_dir }}/openstack_dashboard/conf/glance_policy.json" when: glance_policy_file_info.stat.exists - name: "HZN-WEB | copy_policy_files | Check for heat policy file" stat: path="{{ 'heat-api' | config_dir() }}/heat/policy.json" register: heat_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy heat policy file" command: "cp {{ 'heat-api' | config_dir() }}/heat/policy.json {{ horizon_package_dir}}/openstack_dashboard/conf/heat_policy.json" when: heat_policy_file_info.stat.exists - name: "HZN-WEB | copy_policy_files | Check for ceilometer policy file" stat: path="{{ 'ceilometer-api' | config_dir() }}/policy.json" register: ceilometer_policy_file_info - name: "HZN-WEB | copy_policy_files | Copy ceilometer policy file" command: "cp {{ 'ceilometer-api' | config_dir() }}/policy.json {{ horizon_package_dir }}/openstack_dashboard/conf/ceilometer_policy.json" when: ceilometer_policy_file_info.stat.exists 07070100000020000081A40000000000000000000000016001D66800000312000000000000000000000000000000000000005400000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/_schedule_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- - name: HZN-WEB | _schedule_restart | Schedule a restart for horizon debug: msg: "Trigger a change notification in horizon" changed_when: true register: ardana_notify_horizon_apache_config_changed07070100000021000081A40000000000000000000000016001D66800000C80000000000000000000000000000000000000004C00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # # Configure horizon --- - name: HZN-WEB | configure | Add horizon_venv user to horizon group become: yes user: name: "{{ horizon_venv_user }}" groups: "{{ horizon_group }}" append: yes # Create horizon local_settings.py from template - name: HZN-WEB | configure | Copy local_settings.py to horizon venv template: src: local_settings.py dest: "{{ horizon_openstack_dashboard_dir }}/local/" register: ardana_notify_horizon_config_changed - name: HZN-WEB | configure | Remove any existing local_settings.pyc from horizon venv file: state: absent path: "{{ horizon_openstack_dashboard_dir }}/local/local_settings.pyc" - name: HZN-WEB | configure | Set proper permissions for local_settings.py file: path: "{{ horizon_openstack_dashboard_dir }}/local/local_settings.py" owner: root group: "{{ horizon_user }}" mode: 0640 - name: HZN-WEB | configure | Symlink local_settings.py to horizon/etc file: state: link src: "{{ horizon_openstack_dashboard_dir }}/local/local_settings.py" dest: "{{ horizon_conf_dir }}/local_settings.py" - name: HZN-WEB | configure | Symlink local/enabled to horizon/etc file: state: link src: "{{ horizon_openstack_dashboard_dir }}/local/enabled" dest: "{{ horizon_conf_dir }}/enabled" # Create django secret key - name: HZN-WEB | configure | Create django secret key template: src: .secret_key_store dest: "{{ horizon_conf_dir }}" register: ardana_notify_horizon_config_changed # Create horizon vhost config from template - name: HZN-WEB | configure | Create Apache vhost config for Horizon template: src: horizon.conf dest: "{{ apache2_vhost_dir }}/horizon.vhost" register: ardana_notify_horizon_apache_config_changed # This is necessary because it's python logging to this file, and logging is # initialized early enough for the file to become root owned otherwise. - name: HZN-WEB | configure | Touch horizon-json log file file: path: /var/log/horizon/{{ item }} owner: "{{ horizon_user }}" group: "{{ horizon_centralized_log_group }}" mode: 0640 state: touch with_items: - horizon-json.log - horizon_access.log - horizon_error.log # Touch the management file logs as {{ horizon_venv_user }} - name: HZN-WEB | install | Create log files file: path: /var/log/horizon/management/{{ item }} owner: "{{ horizon_venv_user }}" group: "{{ horizon_centralized_log_group }}" mode: 0640 state: touch with_items: - management.log - management-json.log 07070100000022000081A40000000000000000000000016001D66800001C32000000000000000000000000000000000000004A00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # Install wsgi Apache module - name: HZN-WEB | install | Install dependencies package: state: present name: "{{ item }}" with_items: horizon_packages # Create group to own horizon's site-packages - name: HZN-WEB | install | Add group '{{ horizon_venv_group }}' group: name: "{{ horizon_venv_group }}" state: present # Create horizon-venv user and add to horizon_group - name: HZN-WEB | install | Add user '{{ horizon_venv_user }}' user: name: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" createhome: no home: "{{ horizon_home_dir }}" shell: /usr/sbin/nologin state: present ignore_errors: true - name: HZN-WEB | install | Update venv cache install_package: cache: update # Install pre-packaged Horizon venv from tarball - name: HZN-WEB | install | Install Horizon install_package: name: horizon group: "{{ horizon_venv_group }}" extra_mode_bits: "020" service: horizon state: present activate: act_off register: ardana_notify_horizon_venv_activate_required # Set service dirs using package filters and reference version-specific path. # For the new venv, instead of symlink, as the venv has not yet been activated # The defaults in defaults/main.yml are there in case the reconfigure playbook # is being run, which would mean that the configuration actions need to happen # in the already installed venv. However, in cases where the configure actions # are being run as part of an upgrade or install, we need to reference the # version-specific non-symlinked path in these variable names, since the new # venv won't yet have been activated. - name: HZN-WEB | install | Set service directories set_fact: horizon_conf_dir: "{{ service | config_dir(ardana_notify_horizon_venv_activate_required.version) }}" horizon_enabled_dashboard_dir: "{{ service | jar_dir(ardana_notify_horizon_venv_activate_required.version) }}/python2.7/site-packages/openstack_dashboard/local/enabled" horizon_site_packages_dir: "{{ service | jar_dir(ardana_notify_horizon_venv_activate_required.version) }}/python2.7/site-packages" horizon_package_dir: "{% if deployer_media_legacy_layout|bool -%} {{ service | jar_dir(ardana_notify_horizon_venv_activate_required.version) }}/python2.7/site-packages {%- else -%} {{ service | venv_dir(ardana_notify_horizon_venv_activate_required.version) }}/srv/www/openstack-dashboard {%- endif -%}" horizon_bin_dir: "{{ service | bin_dir(ardana_notify_horizon_venv_activate_required.version) }}" horizon_static_dir: "{{ service | venv_dir(ardana_notify_horizon_venv_activate_required.version) }}/static" - name: HZN-WEB | install | chown Horizon site-packages and bin to '{{ horizon_venv_user }}' file: path: "{{ item }}" recurse: yes owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" state: directory with_items: - "{{ horizon_package_dir }}" - "{{ horizon_bin_dir }}" # Create 'horizon' group - name: HZN-WEB | install | Add group '{{ horizon_group }}' group: name: "{{ horizon_group }}" state: present # Create 'horizon' user and add to horizon_group - name: HZN-WEB | install | Add user '{{ horizon_user }}' user: name: "{{ horizon_user }}" group: "{{ horizon_group }}" createhome: no home: "{{ horizon_home_dir }}" shell: /usr/sbin/nologin state: present ignore_errors: true - name: HZN-WEB | install | chmod venv's srv dir for horzion venv group (rpm only) file: path: "{{ item }}" owner: root group: "{{ horizon_venv_group }}" mode: 0775 state: directory follow: true with_items: - "{{ service | venv_dir(ardana_notify_horizon_venv_activate_required.version) }}/srv" - "{{ service | venv_dir(ardana_notify_horizon_venv_activate_required.version) }}/srv/www" - "{{ horizon_openstack_dashboard_dir }}" when: deployer_media_legacy_layout|bool == false - name: HZN-WEB | install | chmod django local dir for horizon (rpm only) file: path: "{{ horizon_openstack_dashboard_dir }}/local" owner: root group: "{{ horizon_group }}" mode: 0770 state: directory follow: true when: deployer_media_legacy_layout|bool == false # Create home dir for horizon processes - name: HZN-WEB | install | Create directory '{{ horizon_home_dir }}'. file: path: "{{ horizon_home_dir }}" owner: "{{ horizon_user }}" group: "{{ horizon_group }}" mode: 0750 state: directory - name: HZN-WEB | install | Create directory '{{ horizon_conf_dir }}'. file: path: "{{ horizon_conf_dir }}" owner: "{{ horizon_user }}" group: "{{ horizon_group }}" mode: 0755 state: directory - name: HZN-WEB | install | Create static content directory '{{ horizon_static_dir }}' file: path: "{{ horizon_static_dir }}" owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" mode: 0755 state: directory # Create directory for logging - name: HZN-WEB | install | Create logging directory file: path: /var/log/horizon owner: "{{ horizon_user }}" group: "{{ horizon_group }}" mode: 0775 state: directory # Create directory for logging horizon management commands - name: HZN-WEB | install | Create management log directory file: > path=/var/log/horizon/management owner={{ horizon_venv_user }} group={{ horizon_centralized_log_group }} mode=0755 state=directory # Touch the management file logs as {{ horizon_venv_user }} - name: HZN-WEB | install | Create log files file: > path=/var/log/horizon/management/{{ item }} owner={{ horizon_venv_user }} group={{ horizon_centralized_log_group }} mode=0640 state=touch with_items: - management.log - management-json.log # Touch the apache log files as {{ horizon_user }} - name: HZN-WEB | install | Create virtual host log files file: > path=/var/log/horizon/{{ item }} owner={{ horizon_user }} group={{ horizon_centralized_log_group }} mode=0640 state=touch with_items: - horizon_access.log - horizon_error.log - name: HZN-WEB | install | Enable Apache modules become: yes command: a2enmod {{ item }} with_items: - wsgi - headers register: ardana_notify_horizon_mod_enable_result changed_when: ( ardana_notify_horizon_mod_enable_result | success ) and ( "already enabled" not in ardana_notify_horizon_mod_enable_result.stdout ) 07070100000023000081A40000000000000000000000016001D668000002EC000000000000000000000000000000000000004700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/main.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: HZN-WEB | main | Set os-specific variables include_vars: "{{ ansible_os_family | lower }}.yml" 07070100000024000081A40000000000000000000000016001D66800000825000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # Activate the new venv - name: HZN-WEB | start | Activate new horizon venv install_package: name: horizon service: horizon activate: act_on version: "{{ ardana_notify_horizon_venv_activate_required.version }}" when: ardana_notify_horizon_venv_activate_required is defined # Enable virtual host for horizon - name: HZN-WEB | start | Enable Horizon vhost file: src: "{{ apache2_vhost_dir }}/horizon.vhost" dest: "{{ apache2_vhost_dir }}/horizon.conf" state: link register: horizon_enable_result # BUG-4663 - changing the apache config (specifically the Listen address) # requires a restart, whereas changing the django config can be a reload - include: "{{ playbook_dir }}/roles/FND-AP2/tasks/start_reload.yml" vars: apache_reload_requested: "{{ ardana_notify_horizon_venv_activate_required is defined or horizon_enable_result.changed or (ardana_notify_horizon_config_changed is defined and ardana_notify_horizon_config_changed.changed) }}" apache_restart_requested: "{{ (ardana_notify_horizon_mod_enable_result is defined and ardana_notify_horizon_mod_enable_result.changed) or (ardana_notify_horizon_apache_config_changed is defined and ardana_notify_horizon_apache_config_changed.changed) }}" 07070100000025000081A40000000000000000000000016001D66800000874000000000000000000000000000000000000004900000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/status.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: HZN-WEB | status | Print service being checked debug: msg: "Running service check for HZN-WEB" run_once: true - name: HZN-WEB | status | Check system service running command: systemctl status apache2 ignore_errors: yes changed_when: false register: systemctl_apache_status_result - name: HZN-WEB | status | Report status of apache2 fail: msg: | apache2 is not running systemctl status apache2 output: {{ systemctl_apache_status_result.stdout }} {{ systemctl_apache_status_result.stderr }} when: systemctl_apache_status_result | failed - name: HZN-WEB | status | (Debian) Check status of horizon vhost become: yes shell: . /etc/apache2/envvars && /usr/sbin/apache2 -S | grep 'horizon.conf' ignore_errors: yes register: sbin_apache2_status_result when: ansible_os_family == 'Debian' - name: HZN-WEB | status | (Debian) Report status of horizon vhost fail: msg: | horizon vhost is not enabled when: ansible_os_family == 'Debian' and sbin_apache2_status_result.stdout == "" - name: HZN-WEB | status | (Suse) Check status of horizon vhost become: yes shell: /usr/sbin/apachectl -S 2>/dev/null | grep 'horizon.conf' ignore_errors: yes register: sbin_apachectl_status_result when: ansible_os_family == 'Suse' - name: HZN-WEB | status | (Suse) Report status of horizon vhost fail: msg: | horizon vhost is not enabled when: ansible_os_family == 'Suse' and sbin_apachectl_status_result.stdout == "" 07070100000026000081A40000000000000000000000016001D668000003E9000000000000000000000000000000000000004700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/tasks/stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # Disable virtual host for horizon - name: HZN-WEB | stop | Disable Horizon vhost file: state: absent path: "{{ apache2_vhost_dir }}/horizon.conf" register: horizon_disable_result # Reload Apache - include: "{{ playbook_dir }}/roles/FND-AP2/tasks/start_reload.yml" vars: apache_reload_requested: horizon_disable_result.changed 07070100000027000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/templates07070100000028000081A40000000000000000000000016001D668000002B1000000000000000000000000000000000000005400000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/templates/.secret_key_store{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} {{ HZN_WEB.vars.horizon_secret_key }} 07070100000029000081A40000000000000000000000016001D6680000091E000000000000000000000000000000000000004F00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/templates/horizon.conf{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} Listen {{ horizon_host }}:{{ horizon_port }} <VirtualHost *:{{ horizon_port}} > WSGIScriptAlias / {{ horizon_openstack_dashboard_dir_constant }}/wsgi/django.wsgi WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 python-path={{ horizon_python_path_constant }} WSGIApplicationGroup %{GLOBAL} SetEnv APACHE_RUN_USER horizon SetEnv APACHE_RUN_GROUP horizon SetEnv DJANGO_SETTINGS_MODULE openstack_dashboard.settings # HORI-3400 - disable gzip on security team's request # See http://httpd.apache.org/docs/2.4/env.html#special SetEnv no-gzip 1 WSGIProcessGroup horizon DocumentRoot {{ horizon_static_dir_constant }} Alias /static {{ horizon_static_dir_constant }} Alias /media {{ horizon_static_dir_constant }} <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory {{ horizon_static_dir_constant }}> Options FollowSymLinks MultiViews Require all granted AllowOverride None Order allow,deny allow from all Header set X-Frame-Options SAMEORIGIN </Directory> <Directory {{ horizon_openstack_dashboard_dir_constant }}> Options Indexes FollowSymLinks MultiViews Require all granted AllowOverride None Order allow,deny allow from all </Directory> <Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from {{ horizon_host }} </Location> ErrorLog /var/log/horizon/horizon_error.log LogLevel info CustomLog /var/log/horizon/horizon_access.log combined </VirtualHost> 0707010000002A000081A40000000000000000000000016001D66800002493000000000000000000000000000000000000005400000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/templates/local_settings.py# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. import os from openstack_dashboard import exceptions from openstack_dashboard.settings import HORIZON_CONFIG DEBUG = False COMPRESS_OFFLINE = True _LOG_LEVEL = '{{ horizon_log_level }}' STATIC_ROOT = '{{ horizon_static_dir }}' ALLOWED_HOSTS = ['*'] # Enable the angular work in Kilo that reimplements 'launch instance', # and disable the legacy Django implementation. LAUNCH_INSTANCE_LEGACY_ENABLED = False LAUNCH_INSTANCE_NG_ENABLED = True with open('{{ horizon_conf_dir }}/.secret_key_store', 'r') as f: SECRET_KEY = f.read() # Modified this link to current doc path (#bgz-1114241) HORIZON_CONFIG['help_url'] = "https://www.suse.com/documentation/suse-openstack-cloud-8" # Turn off browser autocompletion for forms including the login form and # the database creation workflow if so desired. HORIZON_CONFIG["password_autocomplete"] = False # Setting this to True will disable the reveal button for password fields, # including on the login form. HORIZON_CONFIG["disable_password_reveal"] = True CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache' } } # Send email to the console by default EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # Enable/Disable Keystone V3 with multi-domain support OPENSTACK_API_VERSIONS = { "identity": 3, } OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default' OPENSTACK_ENDPOINT_TYPE = "{{ horizon_openstack_endpoint_type }}" OPENSTACK_SSL_CACERT = "{{ trusted_ca_bundle }}" # The CA certificate for the external endpoints ARDANA_EXTERNAL_SSL_CACERT = "{{ external_cacert_filename }}" # HORI-3288: set SECURE_PROXY_SSL_HEADER SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTOCOL", "https") {% if horizon_public_protocol == 'https' -%} {% if horizon_private_protocol == 'https' %} # http://docs.openstack.org/security-guide/dashboard/checklist.html USE_SSL = True # Set SECURE for csrf and session cookies so they're only sent # over HTTPS connections. CSRF_COOKIE_SECURE = True SESSION_COOKIE_SECURE = True # Harden cookies to prevent XSS attacks SESSION_COOKIE_HTTPONLY = True {% else %} # WARNING - Horizon is configured such that its public endpoint is # behind HTTPS but its internal one is not. It is strongly recommended # that the internal endpoint be secured, and the settings below set to True. # They cannot be set unless BOTH endpoints are secured. CSRF_COOKIE_SECURE = False SESSION_COOKIE_SECURE = False {% endif %} {%- endif %} OPENSTACK_KEYSTONE_URL = "{{ horizon_keystone_url }}" OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_" OPENSTACK_KEYSTONE_BACKEND = { 'name': 'native', 'can_edit_user': True, 'can_edit_group': True, 'can_edit_project': True, 'can_edit_domain': True, 'can_edit_role': True } OPENSTACK_HYPERVISOR_FEATURES = { 'can_set_mount_point': True, # NOTE: as of Grizzly this is not yet supported in Nova so enabling this # setting will not do anything useful 'can_encrypt_volumes': False } # HORI-4120 - setting enable_quotas to False, or not including it # will result in Create Network, Create Subnet, Create Router buttons # not showing up # # The OPENSTACK_NEUTRON_NETWORK settings can be used to enable optional # services provided by neutron. Options currently available are load # balancer service, security groups, quotas, VPN service. OPENSTACK_NEUTRON_NETWORK = { 'enable_router': True, 'enable_quotas': True, 'enable_ipv6': True, 'enable_distributed_router': False, 'enable_ha_router': False, 'enable_lb': True, 'enable_fip_topology_check': True, # Set which provider network types are supported. Only the network types # in this list will be available to choose from when creating a network. # Network types include local, flat, vlan, gre, and vxlan. 'supported_provider_types': ['*'], # Set which VNIC types are supported for port binding. Only the VNIC # types in this list will be available to choose from when creating a # port. # VNIC types include 'normal', 'macvtap' and 'direct'. # Set to empty list or None to disable VNIC type selection. 'supported_vnic_types': ['*'] } API_RESULT_LIMIT = 1000 API_RESULT_PAGE_SIZE = 20 SWIFT_FILE_TRANSFER_CHUNK_SIZE = 1024 * 1024 DROPDOWN_MAX_ITEMS = 30 TIME_ZONE = "UTC" SITE_BRANDING = 'SUSE Ardana OpenStack' AVAILABLE_THEMES = [ ('default', 'Default', 'themes/default'), ] DEFAULT_THEME = 'default' OPENSTACK_CINDER_FEATURES = { 'enable_backup': True, } SESSION_ENGINE = 'django.contrib.sessions.backends.db' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '{{ mysql.host }}', 'NAME': '{{ mysql.horizon_db }}', 'USER': '{{ mysql.horizon_user }}', 'PASSWORD': '{{ mysql.horizon_password }}', {% if mysql.use_ssl | bool %} 'OPTIONS': {'ssl': {'ca': '{{ ca_file}}' }}, {% endif %} } } LOGGING = { 'version': 1, # When set to True this will disable all logging except # for loggers specified in this configuration dictionary. Note that # if nothing is specified here and disable_existing_loggers is True, # django.db.backends will still log unless it is disabled explicitly. 'disable_existing_loggers': False, 'formatters': { 'context': { 'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s.%(msecs)03d %(process)d %(levelname)s ' + '%(name)s %(message)s' }, 'logstash': { '()': 'logstash.LogstashFormatterVersion1', 'message_type': 'horizon' }, }, 'handlers': { 'null': { 'level': 'INFO', 'class': 'logging.NullHandler', }, 'console': { # Set the level to "DEBUG" for verbose output logging. 'formatter': 'context', 'level': _LOG_LEVEL, 'class': 'logging.StreamHandler', }, 'logstash': { 'formatter': 'logstash', 'class': 'logging.handlers.WatchedFileHandler', 'level': _LOG_LEVEL, 'filename': '/var/log/horizon/horizon-json.log', }, }, 'loggers': { # Logging from django.db.backends is VERY verbose, send to null # by default. 'django.db.backends': { 'handlers': ['null'], 'propagate': False, }, 'requests': { 'handlers': ['null'], 'propagate': False, }, 'iso8601': { 'handlers': ['null'], 'propagate': False, }, 'scss': { 'handlers': ['null'], 'propagate': False, }, '': { 'handlers': ['console', 'logstash'], 'level': _LOG_LEVEL, 'propagate': False, }, } } # If running management commands, don't initialize the full logging palava if os.environ.get('HORIZON_LOG_TO_CONSOLE', None): LOGGING = { 'version': 1, 'formatters': { 'logstash': { '()': 'logstash.LogstashFormatterVersion1', 'message_type': 'horizon-management' } }, 'handlers': { 'console': { 'level': _LOG_LEVEL, 'class': 'logging.StreamHandler', }, 'logstash': { 'formatter': 'logstash', 'class': 'logging.handlers.WatchedFileHandler', 'level': _LOG_LEVEL, 'filename': '/var/log/horizon/management/management-json.log' } }, 'loggers': { '': { 'handlers': ['console', 'logstash'], 'level': _LOG_LEVEL, 'propagate': False } } } WEBSSO_ENABLED = {{ horizon_websso_enabled }} WEBSSO_CHOICES = ( ("credentials", "Keystone Credentials"), {% for choice in horizon_websso_choices %} ("{{ choice.protocol }}", "{{ choice.description }}"), {% endfor %} ) WEBSSO_KEYSTONE_URL = "{{ horizon_websso_keystone_url }}" # DISALLOW_IFRAME_EMBED can be used to prevent Horizon from being embedded # within an iframe. Legacy browsers are still vulnerable to a Cross-Frame # Scripting (XFS) vulnerability, so this option allows extra security hardening # where iframes are not used in deployment. Default setting is True. # For more information see: # http://tinyurl.com/anticlickjack DISALLOW_IFRAME_EMBED = True REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES', 'LAUNCH_INSTANCE_DEFAULTS', 'OPENSTACK_IMAGE_FORMATS'] 0707010000002B000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000003D00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/vars0707010000002C000081A40000000000000000000000016001D668000002E2000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/vars/debian.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- horizon_centralized_log_group: adm horizon_packages: - libapache2-mod-wsgi - gettext 0707010000002D000081A40000000000000000000000016001D668000003AA000000000000000000000000000000000000004600000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/HZN-WEB/vars/suse.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- horizon_centralized_log_group: horizon horizon_packages: - cron - apache2-mod_wsgi # Django is not able to use PyMSQL, see # https://stackoverflow.com/questions/34777755/how-to-config-django-using-pymysql-as-driver - python-mysql - gettext-tools - libtiff5 - python-PyYAML 0707010000002E000041ED0000000000000000000000056001D66800000000000000000000000000000000000000000000004C00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard0707010000002F000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000005500000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/defaults07070100000030000081A40000000000000000000000016001D66800000288000000000000000000000000000000000000005E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- 07070100000031000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000005100000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/meta07070100000032000081A40000000000000000000000016001D668000002A9000000000000000000000000000000000000005A00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/meta/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 07070100000033000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000005200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/tasks07070100000034000081A40000000000000000000000016001D668000005DD000000000000000000000000000000000000005E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-designate-dashboard/tasks/install.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: horizon-designate-dashboard | install | Symlink DNS Group enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/designatedashboard/enabled/_1710_project_dns_panel_group.py" dest: "{{ horizon_enabled_dashboard_dir }}/_1710_project_dns_panel_group.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" when: deployer_media_legacy_layout|bool - name: horizon-designate-dashboard | install | Symlink designate enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/designatedashboard/enabled/_1720_project_dns_panel.py" dest: "{{ horizon_enabled_dashboard_dir }}/_1720_project_dns_panel.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" when: deployer_media_legacy_layout|bool 07070100000035000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004300000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-freezer-ui07070100000036000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-freezer-ui/meta07070100000037000081A40000000000000000000000016001D668000002A9000000000000000000000000000000000000005100000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-freezer-ui/meta/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 07070100000038000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004900000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-freezer-ui/tasks07070100000039000081A40000000000000000000000016001D668000003E0000000000000000000000000000000000000005500000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-freezer-ui/tasks/install.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-freezer-ui | install | Symlink freezer enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/disaster_recovery/enabled/_5050_freezer.py" dest: "{{ horizon_enabled_dashboard_dir }}/_5050_freezer.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" 0707010000003A000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-fwaas-dashboard0707010000003B000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004D00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-fwaas-dashboard/meta0707010000003C000081A40000000000000000000000016001D66800000265000000000000000000000000000000000000005600000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-fwaas-dashboard/meta/main.yml# # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 0707010000003D000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-fwaas-dashboard/tasks0707010000003E000081A40000000000000000000000016001D668000003CD000000000000000000000000000000000000005A00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-fwaas-dashboard/tasks/install.yml# # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-fwaas-dashboard | install | Symlink fwaas common enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/neutron_fwaas_dashboard/enabled/_7010_project_firewalls_panel.py" dest: "{{ horizon_enabled_dashboard_dir }}/_7010_project_firewalls_common.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" 0707010000003F000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-ironic-ui07070100000040000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-ironic-ui/meta07070100000041000081A40000000000000000000000016001D668000002A4000000000000000000000000000000000000005000000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-ironic-ui/meta/main.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 07070100000042000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-ironic-ui/tasks07070100000043000081A40000000000000000000000016001D668000003D2000000000000000000000000000000000000005400000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-ironic-ui/tasks/install.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-ironic-ui | install | Symlink ironic-ui enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/ironic_ui/enabled/_2200_ironic.py" dest: "{{ horizon_enabled_dashboard_dir }}/_2200_ironic.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" 07070100000044000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-lbaas-dashboard07070100000045000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004D00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-lbaas-dashboard/meta07070100000046000081A40000000000000000000000016001D668000002A9000000000000000000000000000000000000005600000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-lbaas-dashboard/meta/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 07070100000047000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-lbaas-dashboard/tasks07070100000048000081A40000000000000000000000016001D6680000041B000000000000000000000000000000000000005A00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-lbaas-dashboard/tasks/install.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-lbaas-dashboard | install | Symlink lbaas enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/neutron_lbaas_dashboard/enabled/_1481_project_ng_loadbalancersv2_panel.py" dest: "{{ horizon_enabled_dashboard_dir }}/_1481_project_ng_loadbalancersv2_panel.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" 07070100000049000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004200000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-magnum-ui0707010000004A000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-magnum-ui/meta0707010000004B000081A40000000000000000000000016001D668000002A4000000000000000000000000000000000000005000000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-magnum-ui/meta/main.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 0707010000004C000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004800000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-magnum-ui/tasks0707010000004D000081A40000000000000000000000016001D66800000487000000000000000000000000000000000000005400000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-magnum-ui/tasks/install.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-magnum-ui-infra-panel | install | Symlink magnum-ui infra panels to horizon file: src: "{{ horizon_site_packages_dir }}/magnum_ui/enabled/{{ item }}.py" dest: "{{ horizon_enabled_dashboard_dir }}/{{ item }}.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" with_items: - _1370_project_container_infra_panel_group - _1371_project_container_infra_clusters_panel - _1372_project_container_infra_cluster_templates_panel 0707010000004E000041ED0000000000000000000000046001D66800000000000000000000000000000000000000000000004900000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-vpnaas-dashboard0707010000004F000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004E00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-vpnaas-dashboard/meta07070100000050000081A40000000000000000000000016001D66800000265000000000000000000000000000000000000005700000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-vpnaas-dashboard/meta/main.yml# # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: HZN-WEB 07070100000051000041ED0000000000000000000000026001D66800000000000000000000000000000000000000000000004F00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-vpnaas-dashboard/tasks07070100000052000081A40000000000000000000000016001D668000003BC000000000000000000000000000000000000005B00000000ardana-horizon-8.0+git.1610733160.0f577f4/roles/horizon-vpnaas-dashboard/tasks/install.yml# # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: horizon-vpnaas-dashboard | install | Symlink vpnaas enabled file to horizon file: src: "{{ horizon_site_packages_dir }}/neutron_vpnaas_dashboard/enabled/_7100_project_vpn_panel.py" dest: "{{ horizon_enabled_dashboard_dir }}/_7100_project_vpn_panel.py" state: link force: no owner: "{{ horizon_venv_user }}" group: "{{ horizon_venv_group }}" 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!230 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor