Support dict values for controller.notification

This change allows to configure the notification topic(s) and messaging
driver. It preserves backward-compatibility when the 'notification'
parameter is a boolean value instead of a dict.

Change-Id: I85004aae4bcd0ae4840a6250c0d39556aee0ea9f
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index 4721236..63bea52 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -56,15 +56,18 @@
 instance_usage_audit = True
 instance_usage_audit_period = hour
 notify_on_state_change = vm_and_task_state
-notification_topics=notifications
-instance_usage_audit_period=hour
 {% endif %}
 
 [oslo_concurrency]
 lock_path = /var/lib/nova/tmp
 
 [oslo_messaging_notifications]
-{%- if compute.notification is defined %}
+{%- if compute.notification is mapping %}
+driver = {{ compute.notification.get('driver', 'messagingv2') }}
+{%- if compute.notification.topics is defined %}
+topics = {{ compute.notification.topics }}
+{%- endif %}
+{%- elif compute.notification %}
 driver = messagingv2
 {%- endif %}