try again, with puppetforge modules, correctly included now
[mirror/dsa-puppet.git] / 3rdparty / modules / glance / manifests / notify / rabbitmq.pp
1 #
2 # used to configure rabbitmq notifications for glance
3 #
4 #  [*rabbit_password*]
5 #    password to connect to the rabbit_server.
6 #  [*rabbit_userid*]
7 #    user to connect to the rabbit server. Optional. Defaults to 'guest'
8 #  [*rabbit_host*]
9 #    ip or hostname of the rabbit server. Optional. Defaults to 'localhost'
10 #  [*rabbit_port*]
11 #    port of the rabbit server. Optional. Defaults to 5672.
12 #  [*rabbit_virtual_host*]
13 #    virtual_host to use. Optional. Defaults to '/'
14 #  [*rabbit_use_ssl*]
15 #    (optional) Connect over SSL for RabbitMQ
16 #    Defaults to false
17 #  [*kombu_ssl_ca_certs*]
18 #    (optional) SSL certification authority file (valid only if SSL enabled).
19 #    Defaults to undef
20 #  [*kombu_ssl_certfile*]
21 #    (optional) SSL cert file (valid only if SSL enabled).
22 #    Defaults to undef
23 #  [*kombu_ssl_keyfile*]
24 #    (optional) SSL key file (valid only if SSL enabled).
25 #    Defaults to undef
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.
30 #    Defaults to 'TLSv1'
31 #  [*rabbit_notification_exchange*]
32 #    Defaults  to 'glance'
33 #  [*rabbit_notification_topic*]
34 #    Defaults  to 'notifications'
35 #  [*rabbit_durable_queues*]
36 #    Defaults  to false
37 #
38 #  [*notification_driver*]
39 #    Notification driver to use. Defaults to 'messaging'.
40
41 class glance::notify::rabbitmq(
42   $rabbit_password,
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',
58 ) {
59
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
63   } else {
64     $amqp_durable_queues_real = $amqp_durable_queues
65   }
66
67   if $rabbit_hosts {
68     glance_api_config {
69       'DEFAULT/rabbit_hosts':     value => join($rabbit_hosts, ',');
70       'DEFAULT/rabbit_ha_queues': value => true
71     }
72   } else {
73     glance_api_config {
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
78     }
79   }
80
81   glance_api_config {
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;
90   }
91
92   if $rabbit_use_ssl {
93     glance_api_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version }
94
95     if $kombu_ssl_ca_certs {
96       glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs }
97     } else {
98       glance_api_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent}
99     }
100
101     if $kombu_ssl_certfile {
102       glance_api_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile }
103     } else {
104       glance_api_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent}
105     }
106
107     if $kombu_ssl_keyfile {
108       glance_api_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile }
109     } else {
110       glance_api_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent}
111     }
112   } else {
113     glance_api_config {
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;
118     }
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')
121     }
122   }
123 }