diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index 0cbba85351..8990498412 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -281,3 +281,14 @@ service_plugins: enabled: "{{ enable_neutron_bgp_dragent | bool }}" 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 e16c166eab..2980f3c41b 100644 --- a/ansible/roles/neutron/templates/neutron.conf.j2 +++ b/ansible/roles/neutron/templates/neutron.conf.j2 @@ -96,10 +96,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 %}