openstack-ansible-os_magnum/vars/main.yml

102 lines
3.9 KiB
YAML

---
# Copyright 2017, Rackspace US, Inc.
# Copyright 2018, VEXXHOST, 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.
_magnum_is_first_play_host: >-
{{
(magnum_services['magnum-api']['group'] in group_names and
inventory_hostname == (groups[magnum_services['magnum-api']['group']] | intersect(ansible_play_hosts)) | first) | bool
}}
_magnum_oslomsg_rpc_vhost_conf: >-
{{
(magnum_oslomsg_rpc_vhost is string) | ternary(
magnum_oslomsg_rpc_vhost, magnum_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first)
}}
_magnum_oslomsg_notify_vhost_conf: >-
{{
(magnum_oslomsg_notify_vhost is string) | ternary(
magnum_oslomsg_notify_vhost, magnum_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first)
}}
#
# Compile a list of the services on a host based on whether
# the host is in the host group and the service is enabled.
# The service list is provided in the defined start order.
#
filtered_magnum_services: |-
{% set services = [] %}
{% for key, value in magnum_services.items() %}
{% if (value['group'] in group_names) and
(('condition' not in value) or
('condition' in value and value['condition'])) and
not ('wsgi_app' in value and value['wsgi_app']) %}
{% set _ = value.update(
{
'service_key': key,
'enabled': value['enabled'] | default(True),
'state': value['state'] | default('started'),
'config_overrides': value.init_config_overrides
}
)
%}
{% set _ = value.pop('init_config_overrides') -%}
{% set _ = services.append(value) %}
{% endif %}
{% endfor %}
{{ services | sort(attribute='start_order') }}
uwsgi_magnum_services: |-
{% set services = {} %}
{% for key, value in magnum_services.items() %}
{% if (value['group'] in group_names) and
(('condition' not in value) or ('condition' in value and value['condition']))
and ('wsgi_app' in value and value['wsgi_app']) %}
{% set _ = value.update(
{
'wsgi_venv': magnum_bin | dirname,
'uwsgi_uid': magnum_system_user_name,
'uwsgi_guid': magnum_system_group_name,
'uwsgi_processes': magnum_wsgi_processes,
'uwsgi_threads': magnum_wsgi_threads
}
) %}
{% set _ = services.update({key: value}) %}
{% endif %}
{% endfor %}
{{ services }}
_magnum_glance_images_compat: |-
{% set images = [] %}
{% for image in magnum_glance_images %}
{% if 'public' in image and image['public'] %}
{% set _ = image.update({'visibility': 'public'}) %}
{% set _ = image.pop('public') %}
{% endif %}
{% if 'distro' in image %}
{% set image_properties = image.get('properties', {}) %}
{% set _ = image_properties.update({'os_distro': image.pop('distro')}) %}
{% set _ = image.update({'properties': image_properties}) %}
{% endif %}
{% if 'file' in image and image['file'] is url %}
{% set _ = image.update({'url': image.pop('file')}) %}
{% endif %}
{# NOTE(noonedeadpunk): Glance requires image checksum to be in plain md5 only #}
{% if 'checksum' in image and image['checksum'].split(':') | length > 1 %}
{% set _ = image.pop('checksum') %}
{% endif %}
{% set _ = images.append(image) %}
{% endfor %}
{{ images }}