]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp
add stackforge/openstacklib to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / openstacklib / manifests / messaging / rabbitmq.pp
diff --git a/3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp b/3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp
new file mode 100644 (file)
index 0000000..16f6c62
--- /dev/null
@@ -0,0 +1,105 @@
+#
+# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
+#
+# Author: Emilien Macchi <emilien.macchi@enovance.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Definition: openstacklib::messaging::rabbitmq
+#
+# This resource creates RabbitMQ resources for an OpenStack service.
+#
+# == Parameters:
+#
+# [*userid*]
+#   (optional) The username to use when connecting to Rabbit
+#   Defaults to 'guest'
+#
+# [*password*]
+#   (optional) The password to use when connecting to Rabbit
+#   Defaults to 'guest'
+#
+# [*virtual_host*]
+#   (optional) The virtual host to use when connecting to Rabbit
+#   Defaults to '/'
+#
+# [*is_admin*]
+#   (optional) If the user should be admin or not
+#   Defaults to false
+#
+# [*configure_permission*]
+#   (optional) Define configure permission
+#   Defaults to '.*'
+#
+# [*write_permission*]
+#   (optional) Define write permission
+#   Defaults to '.*'
+#
+# [*read_permission*]
+#   (optional) Define read permission
+#   Defaults to '.*'
+#
+# [*manage_user*]
+#   (optional) Manage or not the user
+#   Defaults to true
+#
+# [*manage_user_permissions*]
+#   (optional) Manage or not user permissions
+#   Defaults to true
+#
+# [*manage_vhost*]
+#   (optional) Manage or not the vhost
+#   Defaults to true
+#
+define openstacklib::messaging::rabbitmq(
+  $userid                  = 'guest',
+  $password                = 'guest',
+  $virtual_host            = '/',
+  $is_admin                = false,
+  $configure_permission    = '.*',
+  $write_permission        = '.*',
+  $read_permission         = '.*',
+  $manage_user             = true,
+  $manage_user_permissions = true,
+  $manage_vhost            = true,
+) {
+
+  if $manage_user {
+    if $userid == 'guest' {
+      $is_admin_real = false
+    } else {
+      $is_admin_real = $is_admin
+    }
+    ensure_resource('rabbitmq_user', $userid, {
+      'admin'    => $is_admin_real,
+      'password' => $password,
+      'provider' => 'rabbitmqctl',
+    })
+  }
+
+  if $manage_user_permissions {
+    ensure_resource('rabbitmq_user_permissions', "${userid}@${virtual_host}", {
+      'configure_permission' => $configure_permission,
+      'write_permission'     => $write_permission,
+      'read_permission'      => $read_permission,
+      'provider'             => 'rabbitmqctl',
+    })
+  }
+
+  if $manage_vhost {
+    ensure_resource('rabbitmq_vhost', $virtual_host, {
+      'provider' => 'rabbitmqctl',
+    })
+  }
+
+}