openstack-ansible-os_horizon/tasks/horizon_post_install.yml
Jean-Philippe Evrard f4b69c929c Flexible horizon dashboard configuration
If any user wants to provide its own dashboard, he can now
install its own pip package by overriding the proper variables,
and then do the linking directly by overriding the new variable,
``horizon_panels``.

If we wants to use any existing horizon_panels, and just add a
personal panel, a deployer must define the override like this:
``horizon_panels: "{{ my_horizon_panels + _horizon_panels }}"``
where ``my_horizon_panels`` is a list whose items are composed
of src, dest, and state.

Change-Id: I87324aaa3a685b1e65081b7c7dce767c080f22ee
2017-12-06 08:07:33 +00:00

106 lines
3.5 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Setup Horizon config(s)
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ item.owner|default(horizon_system_user_name) }}"
group: "{{ horizon_system_group_name }}"
mode: "{{ item.mode }}"
with_items:
- { src: "horizon_local_settings.py.j2", dest: "/etc/horizon/local_settings.py", owner: "root", mode: "0640" }
- { src: "horizon-manage.py.j2", dest: "{{ horizon_bin }}/horizon-manage.py", mode: "0755" }
- { src: "80_admin_default_panel.py.j2", dest: "{{ horizon_lib_dir }}/openstack_dashboard/local/enabled/_80_admin_default_panel.py", mode: "0755" }
notify: Restart apache2
- name: Uploading horizon custom files
copy:
src: "{{ item.value.src }}"
dest: "{{ horizon_lib_dir }}/openstack_dashboard/static/dashboard/{{ item.value.dest }}"
with_dict: "{{ horizon_custom_uploads | default({}) }}"
- name: Enable project panels
file:
src: "{{ item.src }}"
path: "{{ item.path }}"
state: "{{ item.state }}"
with_items: "{{ horizon_panels }}"
notify: Restart apache2
- name: Create horizon links
file:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
state: "link"
with_items:
- { src: "/etc/horizon/local_settings.py", dest: "{{ horizon_lib_dir }}/openstack_dashboard/local/local_settings.py" }
- name: Setup Horizon config(s)
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
with_items:
- { src: "horizon_django.wsgi.j2", dest: "{{ horizon_lib_wsgi_file }}" }
notify: Restart apache2
- name: Create customization module directory
file:
path: "{{ horizon_lib_dir }}/horizon_customization"
state: directory
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
mode: "0755"
when: horizon_customization_module is defined
- name: Drop horizon customization module
template:
src: "{{ horizon_customization_module }}"
dest: "{{ horizon_lib_dir }}/horizon_customization/__init__.py"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
mode: "0644"
notify: Restart apache2
when: horizon_customization_module is defined
- name: Compile messages for translation
command: "{{ horizon_bin }}/horizon-manage.py compilemessages"
args:
chdir: "{{ horizon_lib_dir }}/{{ item }}"
changed_when: false
with_items:
- horizon
- openstack_dashboard
register: async_compile_messages
async: 600
poll: 0
- name: Collect and compress static files
command: "{{ item }}"
become: yes
become_user: "{{ horizon_system_user_name }}"
changed_when: false
with_items:
- "{{ horizon_bin }}/horizon-manage.py collectstatic --noinput"
- "{{ horizon_bin }}/horizon-manage.py compress --force"
notify: Restart apache2
register: async_compress_static_files
async: 600
poll: 0