--- # Copyright 2019, 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. _manila_is_first_play_host: >- {{ (manila_services['manila-api']['group'] in group_names and inventory_hostname == (groups[manila_services['manila-api']['group']] | intersect(ansible_play_hosts)) | first) | bool }} _manila_share_is_first_play_host: >- {{ (manila_services['manila-share']['group'] in group_names and inventory_hostname == (groups[manila_services['manila-share']['group']] | intersect(ansible_play_hosts)) | first) | bool }} _manila_oslomsg_rpc_vhost_conf: >- {{ (manila_oslomsg_rpc_vhost is string) | ternary( manila_oslomsg_rpc_vhost, manila_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} _manila_oslomsg_notify_vhost_conf: >- {{ (manila_oslomsg_notify_vhost is string) | ternary( manila_oslomsg_notify_vhost, manila_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) }} _manila_default_share_type_list: "{{ manila_backends.keys() | list }}" _manila_default_share_type: "{{ ((_manila_default_share_type_list | length) > 0) | ternary(_manila_default_share_type_list[0], '') }}" # # 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_manila_services: |- {% set services = [] %} {% for key, value in manila_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_manila_services: |- {% set services = {} %} {% for key, value in manila_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': manila_bin ~ '/' ~ value.wsgi_name, 'wsgi_venv': ((manila_install_method == 'source') | ternary(manila_bin | dirname, None)), 'uwsgi_uid': manila_system_user_name, 'uwsgi_guid': manila_system_group_name, 'uwsgi_processes': manila_wsgi_processes, 'uwsgi_threads': manila_wsgi_threads } ) %} {% set _ = services.update({key: value}) %} {% endif %} {% endfor %} {{ services }} manila_core_files: - src: "manila.conf.j2" dest: "/etc/manila/manila.conf" config_overrides: "{{ manila_manila_conf_overrides }}" config_type: "ini" manila_rootwrap_files: - condition: "{{ manila_install_method == 'source' }}" config_overrides: "{{ manila_rootwrap_conf_overrides }}" config_type: ini dest: /etc/manila/rootwrap.conf source: "{{ manila_bin | dirname }}/etc/manila/rootwrap.conf" src: /tmp/rootwrap.conf - condition: "{{ manila_install_method == 'source' and 'manila_share' in group_names }}" config_type: ini dest: /etc/manila/rootwrap.d/share.filters source: "{{ manila_bin | dirname }}/etc/manila/rootwrap.d/share.filters" src: /tmp/manila-share.filters - condition: "{{ manila_install_method == 'source' and 'manila_api' in group_names }}" config_type: "ini" config_overrides: "{{ manila_api_paste_ini_overrides }}" source: "{{ manila_bin | dirname }}/etc/manila/api-paste.ini" src: "/tmp/api-paste.ini" dest: "/etc/manila/api-paste.ini" manila_service_endpoints: - service: "{{ manila_service_name }}" interface: "public" url: "{{ manila_service_publicurl }}" state: present - service: "{{ manila_service_name }}" interface: "internal" url: "{{ manila_service_internalurl }}" state: present - service: "{{ manila_service_name }}" interface: "admin" url: "{{ manila_service_adminurl }}" state: present - service: "{{ manila_service_v2_name }}" interface: "public" url: "{{ manila_service_v2_publicurl }}" state: "{{ (manila_enable_v2_api | bool) | ternary('present', 'absent') }}" - service: "{{ manila_service_v2_name }}" interface: "internal" url: "{{ manila_service_v2_internalurl }}" state: "{{ (manila_enable_v2_api | bool) | ternary('present', 'absent') }}" - service: "{{ manila_service_v2_name }}" interface: "admin" url: "{{ manila_service_v2_adminurl }}" state: "{{ (manila_enable_v2_api | bool) | ternary('present', 'absent') }}"