openstack-ansible-os_cinder/vars/main.yml
Jesse Pretorius 6ba2290a5f Optimise the distro package installation
In order to optimise the distro package installation
process the list of packages to install is prepared
for the host, then installed by passing the package
task the full list instead of using a loop.

Change-Id: I8bae6b5a39f78a2ee4fb02e31d91c1dd3eca7cb0
2017-06-05 12:33:01 +00:00

47 lines
1.6 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.
#
# Compile a list of the distro packages to install based on
# whether the host is in the host group and the service is
# enabled.
#
cinder_package_list: |-
{% set packages = cinder_distro_packages %}
{% if cinder_services['cinder-volume']['group'] in group_names %}
{% set _ = packages.extend(cinder_volume_distro_packages) %}
{% if cinder_backend_lvm_inuse | bool %}
{% set _ = packages.extend(cinder_lvm_volume_distro_packages) %}
{% endif %}
{% endif %}
{% if cinder_developer_mode | bool %}
{% set _ = packages.extend(cinder_developer_mode_distro_packages) %}
{% endif %}
{{ packages }}
#
# Compile a list of the services on a host based on whether
# the host is in the host group and the service is enabled.
#
filtered_cinder_services: >
{%- set services = cinder_services.copy() %}
{%- for key,value in cinder_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 -}}