diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index 6c247bf727..9771722847 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -320,3 +320,14 @@ service_plugins: enabled: "{{ neutron_plugin_agent == 'sfc' }}" neutron_service_plugins: "{{ service_plugins|selectattr('enabled', 'equalto', true)|list }}" + +#################### +# Notification +#################### +neutron_notification_topics: + - name: notifications + enabled: "{{ enable_ceilometer | bool or enable_searchlight | bool }}" + - name: notifications_designate + enabled: "{{ enable_designate | bool }}" + +neutron_enabled_notification_topics: "{{ neutron_notification_topics | selectattr('enabled', 'equalto', true) | list }}" diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2 index eed201f6d2..3e1963a137 100644 --- a/ansible/roles/neutron/templates/neutron.conf.j2 +++ b/ansible/roles/neutron/templates/neutron.conf.j2 @@ -97,10 +97,9 @@ memcached_servers = {% for host in groups['memcached'] %}{% if orchestration_eng {% endif %} [oslo_messaging_notifications] -{% if enable_ceilometer | bool or enable_searchlight | bool or enable_designate | bool %} +{% if neutron_enabled_notification_topics %} driver = messagingv2 -{% set topics=["notifications" if enable_ceilometer | bool else "", "notifications_designate" if enable_designate | bool else ""] %} -topics = {{ topics|reject("equalto", "")|list|join(",") }} +topics = {{ neutron_enabled_notification_topics | map(attribute='name') | join(',') }} {% else %} driver = noop {% endif %}