diff --git a/ansible/roles/nova/defaults/main.yml b/ansible/roles/nova/defaults/main.yml index 66fe23f15b..6339e17ba6 100644 --- a/ansible/roles/nova/defaults/main.yml +++ b/ansible/roles/nova/defaults/main.yml @@ -239,3 +239,14 @@ openstack_placement_auth: "{{ openstack_auth }}" nova_ssh_port: "8022" + +#################### +# Notification +#################### +nova_notification_topics: + - name: notifications + enabled: "{{ enable_ceilometer | bool or enable_searchlight | bool }}" + - name: notifications_designate + enabled: "{{ enable_designate | bool }}" + +nova_enabled_notification_topics: "{{ nova_notification_topics | selectattr('enabled', 'equalto', true) | list }}" diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2 index 513a5110b0..e40e8d51b0 100644 --- a/ansible/roles/nova/templates/nova.conf.j2 +++ b/ansible/roles/nova/templates/nova.conf.j2 @@ -201,10 +201,9 @@ rbd_secret_uuid = {{ rbd_secret_uuid }} compute = auto [oslo_messaging_notifications] -{% if enable_ceilometer | bool or enable_searchlight | bool or enable_designate | bool %} +{% if nova_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 = {{ nova_enabled_notification_topics | map(attribute='name') | join(',') }} {% else %} driver = noop {% endif %}