X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=3rdparty%2Fmodules%2Fglance%2Fmanifests%2Fnotify%2Frabbitmq.pp;fp=3rdparty%2Fmodules%2Fglance%2Fmanifests%2Fnotify%2Frabbitmq.pp;h=bc68804ce0d18bec35f5dac2bfb848ba29816ca9;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hp=0000000000000000000000000000000000000000;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa;p=dsa-puppet.git diff --git a/3rdparty/modules/glance/manifests/notify/rabbitmq.pp b/3rdparty/modules/glance/manifests/notify/rabbitmq.pp new file mode 100644 index 00000000..bc68804c --- /dev/null +++ b/3rdparty/modules/glance/manifests/notify/rabbitmq.pp @@ -0,0 +1,123 @@ +# +# used to configure rabbitmq notifications for glance +# +# [*rabbit_password*] +# password to connect to the rabbit_server. +# [*rabbit_userid*] +# user to connect to the rabbit server. Optional. Defaults to 'guest' +# [*rabbit_host*] +# ip or hostname of the rabbit server. Optional. Defaults to 'localhost' +# [*rabbit_port*] +# port of the rabbit server. Optional. Defaults to 5672. +# [*rabbit_virtual_host*] +# virtual_host to use. Optional. Defaults to '/' +# [*rabbit_use_ssl*] +# (optional) Connect over SSL for RabbitMQ +# Defaults to false +# [*kombu_ssl_ca_certs*] +# (optional) SSL certification authority file (valid only if SSL enabled). +# Defaults to undef +# [*kombu_ssl_certfile*] +# (optional) SSL cert file (valid only if SSL enabled). +# Defaults to undef +# [*kombu_ssl_keyfile*] +# (optional) SSL key file (valid only if SSL enabled). +# Defaults to undef +# [*kombu_ssl_version*] +# (optional) SSL version to use (valid only if SSL enabled). +# Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be +# available on some distributions. +# Defaults to 'TLSv1' +# [*rabbit_notification_exchange*] +# Defaults to 'glance' +# [*rabbit_notification_topic*] +# Defaults to 'notifications' +# [*rabbit_durable_queues*] +# Defaults to false +# +# [*notification_driver*] +# Notification driver to use. Defaults to 'messaging'. + +class glance::notify::rabbitmq( + $rabbit_password, + $rabbit_userid = 'guest', + $rabbit_host = 'localhost', + $rabbit_port = '5672', + $rabbit_hosts = false, + $rabbit_virtual_host = '/', + $rabbit_use_ssl = false, + $kombu_ssl_ca_certs = undef, + $kombu_ssl_certfile = undef, + $kombu_ssl_keyfile = undef, + $kombu_ssl_version = 'TLSv1', + $rabbit_notification_exchange = 'glance', + $rabbit_notification_topic = 'notifications', + $rabbit_durable_queues = false, + $amqp_durable_queues = false, + $notification_driver = 'messaging', +) { + + if $rabbit_durable_queues { + warning('The rabbit_durable_queues parameter is deprecated, use amqp_durable_queues.') + $amqp_durable_queues_real = $rabbit_durable_queues + } else { + $amqp_durable_queues_real = $amqp_durable_queues + } + + if $rabbit_hosts { + glance_api_config { + 'DEFAULT/rabbit_hosts': value => join($rabbit_hosts, ','); + 'DEFAULT/rabbit_ha_queues': value => true + } + } else { + glance_api_config { + 'DEFAULT/rabbit_host': value => $rabbit_host; + 'DEFAULT/rabbit_port': value => $rabbit_port; + 'DEFAULT/rabbit_hosts': value => "${rabbit_host}:${rabbit_port}"; + 'DEFAULT/rabbit_ha_queues': value => false + } + } + + glance_api_config { + 'DEFAULT/notification_driver': value => $notification_driver; + 'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host; + 'DEFAULT/rabbit_password': value => $rabbit_password, secret => true; + 'DEFAULT/rabbit_userid': value => $rabbit_userid; + 'DEFAULT/rabbit_notification_exchange': value => $rabbit_notification_exchange; + 'DEFAULT/rabbit_notification_topic': value => $rabbit_notification_topic; + 'DEFAULT/rabbit_use_ssl': value => $rabbit_use_ssl; + 'DEFAULT/amqp_durable_queues': value => $amqp_durable_queues_real; + } + + if $rabbit_use_ssl { + glance_api_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version } + + if $kombu_ssl_ca_certs { + glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs } + } else { + glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent} + } + + if $kombu_ssl_certfile { + glance_api_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile } + } else { + glance_api_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent} + } + + if $kombu_ssl_keyfile { + glance_api_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile } + } else { + glance_api_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent} + } + } else { + glance_api_config { + 'DEFAULT/kombu_ssl_version': ensure => absent; + 'DEFAULT/kombu_ssl_ca_certs': ensure => absent; + 'DEFAULT/kombu_ssl_certfile': ensure => absent; + 'DEFAULT/kombu_ssl_keyfile': ensure => absent; + } + if ($kombu_ssl_keyfile or $kombu_ssl_certfile or $kombu_ssl_ca_certs) { + notice('Configuration of certificates with $rabbit_use_ssl == false is a useless config') + } + } +}