]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/cinder/manifests/rabbitmq.pp
1c69f35594a1959bb70db5c1ba12f0066924906d
[dsa-puppet.git] / 3rdparty / modules / cinder / manifests / rabbitmq.pp
1 # == Class: cinder::rabbitmq
2 #
3 # Installs and manages rabbitmq server for cinder
4 #
5 # == Parameters:
6 #
7 # [*userid*]
8 #   (optional) The username to use when connecting to Rabbit
9 #   Defaults to 'guest'
10 #
11 # [*password*]
12 #   (optional) The password to use when connecting to Rabbit
13 #   Defaults to 'guest'
14 #
15 # [*port*]
16 #   (optional) The port to use when connecting to Rabbit
17 #   Defaults to '5672'
18 #
19 # [*virtual_host*]
20 #   (optional) The virtual host to use when connecting to Rabbit
21 #   Defaults to '/'
22 #
23 # [*enabled*]
24 #   (optional) Whether to enable the Rabbit service
25 #   Defaults to false
26 #
27 # [*rabbitmq_class*]
28 #   (optional) The rabbitmq puppet class to depend on,
29 #   which is dependent on the puppet-rabbitmq version.
30 #   Use the default for 1.x, use 'rabbitmq' for 3.x
31 #   Defaults to 'rabbitmq::server'
32 #
33 class cinder::rabbitmq(
34   $userid         = 'guest',
35   $password       = 'guest',
36   $port           = '5672',
37   $virtual_host   = '/',
38   $enabled        = true,
39   $rabbitmq_class = 'rabbitmq::server',
40 ) {
41
42   # only configure cinder after the queue is up
43   Class[$rabbitmq_class] -> Anchor<| title == 'cinder-start' |>
44
45   if ($enabled) {
46     if $userid == 'guest' {
47       $delete_guest_user = false
48     } else {
49       $delete_guest_user = true
50       rabbitmq_user { $userid:
51         admin    => true,
52         password => $password,
53         provider => 'rabbitmqctl',
54         require  => Class[$rabbitmq_class],
55       }
56       # I need to figure out the appropriate permissions
57       rabbitmq_user_permissions { "${userid}@${virtual_host}":
58         configure_permission => '.*',
59         write_permission     => '.*',
60         read_permission      => '.*',
61         provider             => 'rabbitmqctl',
62       }->Anchor<| title == 'cinder-start' |>
63     }
64     $service_ensure = 'running'
65   } else {
66     $service_ensure = 'stopped'
67   }
68
69   class { $rabbitmq_class:
70     service_ensure    => $service_ensure,
71     port              => $port,
72     delete_guest_user => $delete_guest_user,
73   }
74
75   if ($enabled) {
76     rabbitmq_vhost { $virtual_host:
77       provider => 'rabbitmqctl',
78       require  => Class[$rabbitmq_class],
79     }
80   }
81 }