]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/glance/manifests/notify/rabbitmq.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / glance / manifests / notify / rabbitmq.pp
diff --git a/3rdparty/modules/glance/manifests/notify/rabbitmq.pp b/3rdparty/modules/glance/manifests/notify/rabbitmq.pp
new file mode 100644 (file)
index 0000000..bc68804
--- /dev/null
@@ -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')
+    }
+  }
+}