X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fopenstacklib%2Fmanifests%2Fmessaging%2Frabbitmq.pp;fp=3rdparty%2Fmodules%2Fopenstacklib%2Fmanifests%2Fmessaging%2Frabbitmq.pp;h=16f6c62a7b4185545821c9da7f0639195cc89dfd;hp=0000000000000000000000000000000000000000;hb=8132e6bb1199463f5e334326659c974d4772b3e3;hpb=169cb77932b427c80d2731ca5938ecd617a5ad57 diff --git a/3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp b/3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp new file mode 100644 index 00000000..16f6c62a --- /dev/null +++ b/3rdparty/modules/openstacklib/manifests/messaging/rabbitmq.pp @@ -0,0 +1,105 @@ +# +# Copyright (C) 2014 eNovance SAS +# +# Author: Emilien Macchi +# +# 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', + }) + } + +}