File: rabbitmq.pp

package info (click to toggle)
puppet-module-openstacklib 25.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 968 kB
  • sloc: ruby: 4,500; python: 38; sh: 22; makefile: 10
file content (105 lines) | stat: -rw-r--r-- 2,953 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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                    = '/',
  Boolean $is_admin                = false,
  $configure_permission            = '.*',
  $write_permission                = '.*',
  $read_permission                 = '.*',
  Boolean $manage_user             = true,
  Boolean $manage_user_permissions = true,
  Boolean $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',
    })
  }

}