openstack-ansible-os_nova/vars/main.yml

65 lines
2.5 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.
#
nova_package_list: |-
{% set packages = nova_distro_packages %}
{% if nova_services['nova-novncproxy']['group'] in group_names or
nova_services['nova-spicehtml5proxy']['group'] in group_names or
nova_services['nova-serialconsole-proxy']['group'] in group_names %}
{% if nova_console_type == 'novnc' %}
{% set _ = packages.extend(nova_novnc_distro_packages) %}
{% endif %}
{% if nova_console_type == 'spice' %}
{% set _ = packages.extend(nova_spice_distro_packages) %}
{% endif %}
{% endif %}
{% if nova_services['nova-compute']['group'] in group_names %}
{% if nova_virt_type in ['kvm', 'qemu'] %}
{% set _ = packages.extend(nova_compute_kvm_distro_packages) %}
{% if nova_compute_ksm_enabled %}
{% set _ = packages.extend(nova_compute_ksm_packages) %}
{% endif %}
{% elif nova_virt_type == 'lxd' %}
{% set _ = packages.extend(nova_compute_lxd_distro_packages) %}
{% elif nova_virt_type == 'powervm' %}
{% set _ = packages.extend(nova_compute_powervm_distro_packages) %}
{% endif %}
{% if nova_barbican_enabled | bool %}
{% set _ = packages.extend(nova_compute_barbican_distro_packages) %}
{% endif %}
{% 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_nova_services: |-
{% set services = [] %}
{% for key, value in nova_services.items() %}
{% if (value['group'] in group_names) and
(('condition' not in value) or
('condition' in value and value['condition'])) %}
{% set _ = value.update({'service_key': key}) %}
{% set _ = services.append(value) %}
{% endif %}
{% endfor %}
{{ services | sort(attribute='start_order') }}