2 # used to configure rabbitmq notifications for glance
5 # password to connect to the rabbit_server.
7 # user to connect to the rabbit server. Optional. Defaults to 'guest'
9 # ip or hostname of the rabbit server. Optional. Defaults to 'localhost'
11 # port of the rabbit server. Optional. Defaults to 5672.
12 # [*rabbit_virtual_host*]
13 # virtual_host to use. Optional. Defaults to '/'
15 # (optional) Connect over SSL for RabbitMQ
17 # [*kombu_ssl_ca_certs*]
18 # (optional) SSL certification authority file (valid only if SSL enabled).
20 # [*kombu_ssl_certfile*]
21 # (optional) SSL cert file (valid only if SSL enabled).
23 # [*kombu_ssl_keyfile*]
24 # (optional) SSL key file (valid only if SSL enabled).
26 # [*kombu_ssl_version*]
27 # (optional) SSL version to use (valid only if SSL enabled).
28 # Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be
29 # available on some distributions.
31 # [*rabbit_notification_exchange*]
32 # Defaults to 'glance'
33 # [*rabbit_notification_topic*]
34 # Defaults to 'notifications'
35 # [*rabbit_durable_queues*]
38 # [*notification_driver*]
39 # Notification driver to use. Defaults to 'messaging'.
41 class glance::notify::rabbitmq(
43 $rabbit_userid = 'guest',
44 $rabbit_host = 'localhost',
45 $rabbit_port = '5672',
46 $rabbit_hosts = false,
47 $rabbit_virtual_host = '/',
48 $rabbit_use_ssl = false,
49 $kombu_ssl_ca_certs = undef,
50 $kombu_ssl_certfile = undef,
51 $kombu_ssl_keyfile = undef,
52 $kombu_ssl_version = 'TLSv1',
53 $rabbit_notification_exchange = 'glance',
54 $rabbit_notification_topic = 'notifications',
55 $rabbit_durable_queues = false,
56 $amqp_durable_queues = false,
57 $notification_driver = 'messaging',
60 if $rabbit_durable_queues {
61 warning('The rabbit_durable_queues parameter is deprecated, use amqp_durable_queues.')
62 $amqp_durable_queues_real = $rabbit_durable_queues
64 $amqp_durable_queues_real = $amqp_durable_queues
69 'DEFAULT/rabbit_hosts': value => join($rabbit_hosts, ',');
70 'DEFAULT/rabbit_ha_queues': value => true
74 'DEFAULT/rabbit_host': value => $rabbit_host;
75 'DEFAULT/rabbit_port': value => $rabbit_port;
76 'DEFAULT/rabbit_hosts': value => "${rabbit_host}:${rabbit_port}";
77 'DEFAULT/rabbit_ha_queues': value => false
82 'DEFAULT/notification_driver': value => $notification_driver;
83 'DEFAULT/rabbit_virtual_host': value => $rabbit_virtual_host;
84 'DEFAULT/rabbit_password': value => $rabbit_password, secret => true;
85 'DEFAULT/rabbit_userid': value => $rabbit_userid;
86 'DEFAULT/rabbit_notification_exchange': value => $rabbit_notification_exchange;
87 'DEFAULT/rabbit_notification_topic': value => $rabbit_notification_topic;
88 'DEFAULT/rabbit_use_ssl': value => $rabbit_use_ssl;
89 'DEFAULT/amqp_durable_queues': value => $amqp_durable_queues_real;
93 glance_api_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version }
95 if $kombu_ssl_ca_certs {
96 glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs }
98 glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent}
101 if $kombu_ssl_certfile {
102 glance_api_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile }
104 glance_api_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent}
107 if $kombu_ssl_keyfile {
108 glance_api_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile }
110 glance_api_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent}
114 'DEFAULT/kombu_ssl_version': ensure => absent;
115 'DEFAULT/kombu_ssl_ca_certs': ensure => absent;
116 'DEFAULT/kombu_ssl_certfile': ensure => absent;
117 'DEFAULT/kombu_ssl_keyfile': ensure => absent;
119 if ($kombu_ssl_keyfile or $kombu_ssl_certfile or $kombu_ssl_ca_certs) {
120 notice('Configuration of certificates with $rabbit_use_ssl == false is a useless config')