Jimmy McCrory 5e30aa98d9 Filter services dictionary per host
To greatly reduce the amount of log noise from skipped tasks, set a
var in the role that filters the 'nova_services' dict to one that only
contains services relevant for each host.

Change-Id: I17650de0ce516e3ad855e8c4bc41f48cf310b828
2017-04-19 15:29:53 +00:00

41 lines
1.7 KiB
YAML

---
# Copyright 2017, 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.
# This special list brings together all of the package installations into one
# task to save time and allow for async to work.
nova_packages_list:
- packages: "{{ nova_distro_packages }}"
enabled: yes
- packages: "{{ nova_novnc_distro_packages }}"
enabled: "{{ 'nova_console' in group_names and nova_console_type == 'novnc' }}"
- packages: "{{ nova_compute_kvm_distro_packages }}"
enabled: "{{ 'nova_compute' in group_names and nova_virt_type in ['kvm', 'qemu'] }}"
- packages: "{{ nova_compute_lxd_distro_packages }}"
enabled: "{{ 'nova_compute' in group_names and nova_virt_type == 'lxd' }}"
- packages: "{{ nova_compute_powervm_distro_packages }}"
enabled: "{{ 'nova_compute' in group_names and nova_virt_type == 'powervm' }}"
- packages: "{{ nova_nginx_distro_packages }}"
enabled: "{{ 'nova_api_placement' in group_names }}"
filtered_nova_services: >
{%- set services = nova_services.copy() %}
{%- for key,value in nova_services.items() %}
{%- if value.group not in group_names or
(value.condition is defined and not value.condition) %}
{%- set _ = services.pop(key) %}
{%- endif %}
{%- endfor %}
{{- services -}}