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