 2fc2e5504d
			
		
	
	2fc2e5504d
	
	
	
		
			
			* Add puppetlabs-rabbitmq 4.x as a dependency in fixtures & metadata.json * Implement openstacklib::messaging::rabbitmq to manage user, permissions and vhost in RabbitMQ (+ unit tests) * Documentation Change-Id: I65190035b51f3d72e4302dae7fad92a280d63cff
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Puppet
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Puppet
		
	
	
	
	
	
| #
 | |
| # 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',
 | |
|     })
 | |
|   }
 | |
| 
 | |
| }
 |