puppet-oslo/manifests/messaging/notifications.pp

57 lines
1.9 KiB
Puppet

# == Define: oslo::messaging::notifications
#
# Configure oslo_messaging_notifications options
#
# This resource configures Oslo Notifications resources for an OpenStack service.
# It will manage the [oslo_messaging_notifications] section in the given config resource.
#
# === Parameters:
#
# [*driver*]
# (Optional) The Driver(s) to handle sending notifications.
# Possible values are messaging, messagingv2, routing, log, test, noop.
# (list value or string value)
# Defaults to $facts['os_service_default'].
#
# [*transport_url*]
# (Optional) A URL representing the messaging driver to use for
# notifications. If not set, we fall back to the same
# configuration used for RPC.
# Transport URLs take the form::
# transport://user:pass@host1:port[,hostN:portN]/virtual_host
# (string value)
# Defaults to $facts['os_service_default'].
#
# [*topics*]
# (Optional) AMQP topic(s) used for OpenStack notifications
# (list value)
# Defaults to $facts['os_service_default'].
#
define oslo::messaging::notifications(
$driver = $facts['os_service_default'],
$transport_url = $facts['os_service_default'],
$topics = $facts['os_service_default'],
) {
if $transport_url =~ 'amqp://.+' {
warning('amqp1 driver support has been deprecated, because the driver is deprecated.')
}
# When we have a string value for driver, we keep passing it as string
# to reduce any chance of breaking things in a backwards incompatible way
$driver_real = $driver ? {
String => $driver,
default => any2array($driver)
}
$topics_real = join(any2array($topics), ',')
$notification_options = {
'oslo_messaging_notifications/driver' => { value => $driver_real },
'oslo_messaging_notifications/transport_url' => { value => $transport_url, secret => true },
'oslo_messaging_notifications/topics' => { value => $topics_real },
}
create_resources($name, $notification_options)
}