--- # Copyright 2021 City Network International AB # # 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. _trove_is_first_play_host: >- {{ (trove_services['trove-api']['group'] in group_names and inventory_hostname == (groups[trove_services['trove-api']['group']] | select('in', ansible_play_hosts)) | first) | bool }} _trove_conductor_is_first_play_host: >- {{ (trove_services['trove-conductor']['group'] in group_names and inventory_hostname == (groups[trove_services['trove-conductor']['group']] | select('in', ansible_play_hosts)) | first) | bool }} _trove_oslomsg_rpc_vhost_conf: >- {{ (trove_oslomsg_rpc_vhost is string) | ternary( trove_oslomsg_rpc_vhost, trove_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} _trove_oslomsg_notify_vhost_conf: >- {{ (trove_oslomsg_notify_vhost is string) | ternary( trove_oslomsg_notify_vhost, trove_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} _trove_guest_oslomsg_rpc_vhost_conf: >- {{ (trove_guest_oslomsg_rpc_vhost is string) | ternary( trove_guest_oslomsg_rpc_vhost, trove_guest_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} _trove_guest_oslomsg_notify_vhost_conf: >- {{ (trove_guest_oslomsg_notify_vhost is string) | ternary( trove_guest_oslomsg_notify_vhost, trove_guest_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} filtered_trove_services: |- {% set services = [] %} {% for key, value in trove_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') } ) %} {% set _ = services.append(value) %} {% endif %} {% endfor %} {{ services | sort(attribute='start_order') }} uwsgi_trove_services: |- {% set services = {} %} {% for key, value in trove_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_path': trove_bin ~ '/' ~ value.wsgi_name, 'wsgi_venv': trove_bin | dirname, 'uwsgi_uid': trove_system_user_name, 'uwsgi_guid': trove_system_group_name, 'uwsgi_processes': trove_api_workers, 'uwsgi_threads': trove_wsgi_threads, } ) %} {% set _ = services.update({key: value}) %} {% endif %} {% endfor %} {{ services }} _trove_glance_images_compat: |- {% set images = [] %} {% for image in trove_guestagent_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 %} {% if 'image_format' in image %} {% set _ = image.update({'container_format': image.pop('image_format')}) %} {% 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 }}