Update 3rdparty rabbitmq module
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / manifests / install / rabbitmqadmin.pp
1 #
2 class rabbitmq::install::rabbitmqadmin {
3
4   if $rabbitmq::rabbitmqadmin_package {
5     package{'rabbitmqadmin':
6       ensure => 'present',
7       name   => $rabbitmq::rabbitmqadmin_package,
8     }
9   } else {
10
11     $python_package = $rabbitmq::params::python_package
12     # Some systems (e.g., Ubuntu 16.04) don't ship Python 2 by default
13     if $rabbitmq::manage_python {
14       ensure_packages([$python_package])
15       $rabbitmqadmin_require = [Archive['rabbitmqadmin'], Package[$python_package]]
16     } else {
17       $rabbitmqadmin_require = Archive['rabbitmqadmin']
18     }
19
20     if($rabbitmq::ssl and $rabbitmq::management_ssl) {
21       $management_port = $rabbitmq::ssl_management_port
22       $protocol        = 'https'
23     } else {
24       $management_port = $rabbitmq::management_port
25       $protocol        = 'http'
26     }
27
28     $default_user = $rabbitmq::default_user
29     $default_pass = $rabbitmq::default_pass
30     $management_ip_address = $rabbitmq::management_ip_address
31     $archive_options = $rabbitmq::archive_options
32
33     if !($management_ip_address) {
34       # Pull from localhost if we don't have an explicit bind address
35       $curl_prefix = ''
36       $sanitized_ip = '127.0.0.1'
37     } elsif is_ipv6_address($management_ip_address) {
38       $curl_prefix  = "--noproxy ${management_ip_address} -g -6"
39       $sanitized_ip = join(enclose_ipv6(any2array($management_ip_address)), ',')
40     } else {
41       $curl_prefix  = "--noproxy ${management_ip_address}"
42       $sanitized_ip = $management_ip_address
43     }
44
45     archive { 'rabbitmqadmin':
46       path             => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
47       source           => "${protocol}://${sanitized_ip}:${management_port}/cli/rabbitmqadmin",
48       username         => $default_user,
49       password         => $default_pass,
50       allow_insecure   => true,
51       download_options => $archive_options,
52       cleanup          => false,
53       require          => [
54         Class['rabbitmq::service'],
55         Rabbitmq_plugin['rabbitmq_management']
56       ],
57     }
58
59     file { '/usr/local/bin/rabbitmqadmin':
60       owner   => 'root',
61       group   => '0',
62       source  => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
63       mode    => '0755',
64       require => $rabbitmqadmin_require,
65     }
66   }
67 }