diff --git a/REFERENCE.md b/REFERENCE.md index 36dfe5830..936579758 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1,15 +1,16 @@ # Reference + ## Table of Contents -**Classes** +### Classes -_Public Classes_ +#### Public Classes * [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ -_Private Classes_ +#### Private Classes * `rabbitmq::config`: Sets all the configuration values for RabbitMQ and creates the directories for config and ssl. * `rabbitmq::install`: Ensures that rabbitmq-server exists @@ -19,7 +20,7 @@ _Private Classes_ * `rabbitmq::repo::rhel`: Makes sure that the Packagecloud repo is installed * `rabbitmq::service`: This class manages the rabbitmq server service itself. -**Resource types** +### Resource types * [`rabbitmq_binding`](#rabbitmq_binding): Native type for managing rabbitmq bindings rabbitmq_binding { 'binding 1': ensure => present, source => 'myexchange' * [`rabbitmq_cluster`](#rabbitmq_cluster): Native type for managing rabbitmq cluster @@ -35,7 +36,7 @@ _Private Classes_ ## Classes -### rabbitmq +### `rabbitmq` A module to manage RabbitMQ @@ -191,9 +192,116 @@ class { 'rabbitmq': #### Parameters -The following parameters are available in the `rabbitmq` class. - -##### `admin_enable` +The following parameters are available in the `rabbitmq` class: + +* [`admin_enable`](#-rabbitmq--admin_enable) +* [`management_enable`](#-rabbitmq--management_enable) +* [`use_config_file_for_plugins`](#-rabbitmq--use_config_file_for_plugins) +* [`plugins`](#-rabbitmq--plugins) +* [`auth_backends`](#-rabbitmq--auth_backends) +* [`cluster`](#-rabbitmq--cluster) +* [`cluster_node_type`](#-rabbitmq--cluster_node_type) +* [`cluster_nodes`](#-rabbitmq--cluster_nodes) +* [`cluster_partition_handling`](#-rabbitmq--cluster_partition_handling) +* [`collect_statistics_interval`](#-rabbitmq--collect_statistics_interval) +* [`config`](#-rabbitmq--config) +* [`config_additional_variables`](#-rabbitmq--config_additional_variables) +* [`config_cluster`](#-rabbitmq--config_cluster) +* [`config_kernel_variables`](#-rabbitmq--config_kernel_variables) +* [`config_path`](#-rabbitmq--config_path) +* [`config_ranch`](#-rabbitmq--config_ranch) +* [`config_management_variables`](#-rabbitmq--config_management_variables) +* [`config_stomp`](#-rabbitmq--config_stomp) +* [`config_shovel`](#-rabbitmq--config_shovel) +* [`config_shovel_statics`](#-rabbitmq--config_shovel_statics) +* [`config_variables`](#-rabbitmq--config_variables) +* [`default_user`](#-rabbitmq--default_user) +* [`default_pass`](#-rabbitmq--default_pass) +* [`delete_guest_user`](#-rabbitmq--delete_guest_user) +* [`env_config`](#-rabbitmq--env_config) +* [`env_config_path`](#-rabbitmq--env_config_path) +* [`environment_variables`](#-rabbitmq--environment_variables) +* [`erlang_cookie`](#-rabbitmq--erlang_cookie) +* [`file_limit`](#-rabbitmq--file_limit) +* [`oom_score_adj`](#-rabbitmq--oom_score_adj) +* [`heartbeat`](#-rabbitmq--heartbeat) +* [`inetrc_config`](#-rabbitmq--inetrc_config) +* [`inetrc_config_path`](#-rabbitmq--inetrc_config_path) +* [`ipv6`](#-rabbitmq--ipv6) +* [`interface`](#-rabbitmq--interface) +* [`key_content`](#-rabbitmq--key_content) +* [`ldap_auth`](#-rabbitmq--ldap_auth) +* [`ldap_server`](#-rabbitmq--ldap_server) +* [`ldap_user_dn_pattern`](#-rabbitmq--ldap_user_dn_pattern) +* [`ldap_other_bind`](#-rabbitmq--ldap_other_bind) +* [`ldap_config_variables`](#-rabbitmq--ldap_config_variables) +* [`ldap_use_ssl`](#-rabbitmq--ldap_use_ssl) +* [`ldap_port`](#-rabbitmq--ldap_port) +* [`ldap_log`](#-rabbitmq--ldap_log) +* [`manage_python`](#-rabbitmq--manage_python) +* [`management_hostname`](#-rabbitmq--management_hostname) +* [`management_port`](#-rabbitmq--management_port) +* [`management_ip_address`](#-rabbitmq--management_ip_address) +* [`management_ssl`](#-rabbitmq--management_ssl) +* [`node_ip_address`](#-rabbitmq--node_ip_address) +* [`package_apt_pin`](#-rabbitmq--package_apt_pin) +* [`package_ensure`](#-rabbitmq--package_ensure) +* [`package_gpg_key`](#-rabbitmq--package_gpg_key) +* [`repo_gpg_key`](#-rabbitmq--repo_gpg_key) +* [`package_name`](#-rabbitmq--package_name) +* [`port`](#-rabbitmq--port) +* [`python_package`](#-rabbitmq--python_package) +* [`repos_ensure`](#-rabbitmq--repos_ensure) +* [`service_ensure`](#-rabbitmq--service_ensure) +* [`service_manage`](#-rabbitmq--service_manage) +* [`service_name`](#-rabbitmq--service_name) +* [`service_restart`](#-rabbitmq--service_restart) +* [`ssl`](#-rabbitmq--ssl) +* [`ssl_cacert`](#-rabbitmq--ssl_cacert) +* [`ssl_cert`](#-rabbitmq--ssl_cert) +* [`ssl_cert_password`](#-rabbitmq--ssl_cert_password) +* [`ssl_depth`](#-rabbitmq--ssl_depth) +* [`ssl_dhfile`](#-rabbitmq--ssl_dhfile) +* [`ssl_erl_dist`](#-rabbitmq--ssl_erl_dist) +* [`ssl_honor_cipher_order`](#-rabbitmq--ssl_honor_cipher_order) +* [`ssl_interface`](#-rabbitmq--ssl_interface) +* [`ssl_key`](#-rabbitmq--ssl_key) +* [`ssl_only`](#-rabbitmq--ssl_only) +* [`ssl_management_port`](#-rabbitmq--ssl_management_port) +* [`ssl_management_cacert`](#-rabbitmq--ssl_management_cacert) +* [`ssl_management_cert`](#-rabbitmq--ssl_management_cert) +* [`ssl_management_key`](#-rabbitmq--ssl_management_key) +* [`ssl_port`](#-rabbitmq--ssl_port) +* [`ssl_reuse_sessions`](#-rabbitmq--ssl_reuse_sessions) +* [`ssl_secure_renegotiate`](#-rabbitmq--ssl_secure_renegotiate) +* [`ssl_stomp_port`](#-rabbitmq--ssl_stomp_port) +* [`ssl_verify`](#-rabbitmq--ssl_verify) +* [`ssl_fail_if_no_peer_cert`](#-rabbitmq--ssl_fail_if_no_peer_cert) +* [`ssl_management_verify`](#-rabbitmq--ssl_management_verify) +* [`ssl_versions`](#-rabbitmq--ssl_versions) +* [`ssl_ciphers`](#-rabbitmq--ssl_ciphers) +* [`ssl_crl_check`](#-rabbitmq--ssl_crl_check) +* [`ssl_crl_cache_hash_dir`](#-rabbitmq--ssl_crl_cache_hash_dir) +* [`ssl_crl_cache_http_timeout`](#-rabbitmq--ssl_crl_cache_http_timeout) +* [`stomp_port`](#-rabbitmq--stomp_port) +* [`stomp_ssl_only`](#-rabbitmq--stomp_ssl_only) +* [`stomp_ensure`](#-rabbitmq--stomp_ensure) +* [`tcp_backlog`](#-rabbitmq--tcp_backlog) +* [`tcp_keepalive`](#-rabbitmq--tcp_keepalive) +* [`tcp_recbuf`](#-rabbitmq--tcp_recbuf) +* [`tcp_sndbuf`](#-rabbitmq--tcp_sndbuf) +* [`wipe_db_on_cookie_change`](#-rabbitmq--wipe_db_on_cookie_change) +* [`rabbitmq_user`](#-rabbitmq--rabbitmq_user) +* [`rabbitmq_group`](#-rabbitmq--rabbitmq_group) +* [`rabbitmq_home`](#-rabbitmq--rabbitmq_home) +* [`rabbitmqadmin_package`](#-rabbitmq--rabbitmqadmin_package) +* [`archive_options`](#-rabbitmq--archive_options) +* [`loopback_users`](#-rabbitmq--loopback_users) +* [`package_source`](#-rabbitmq--package_source) +* [`package_provider`](#-rabbitmq--package_provider) +* [`ssl_management_fail_if_no_peer_cert`](#-rabbitmq--ssl_management_fail_if_no_peer_cert) + +##### `admin_enable` Data type: `Boolean` @@ -202,7 +310,7 @@ This will also install the rabbitmqadmin command line tool. Default value: `true` -##### `management_enable` +##### `management_enable` Data type: `Boolean` @@ -211,7 +319,7 @@ NOTE: This does not install the rabbitmqadmin command line tool. Default value: `false` -##### `use_config_file_for_plugins` +##### `use_config_file_for_plugins` Data type: `Boolean` @@ -220,15 +328,15 @@ replacing the use of the rabbitmqplugins provider to enable plugins. Default value: `false` -##### `plugins` +##### `plugins` Data type: `Array` Additional list of plugins to start, or to add to /etc/rabbitmq/enabled_plugins, if use_config_file_for_plugins is enabled. -Default value: [] +Default value: `[]` -##### `auth_backends` +##### `auth_backends` Data type: `Optional[Array]` @@ -238,39 +346,39 @@ rabbit_auth_backend_ldap]. Default value: `undef` -##### `cluster` +##### `cluster` Data type: `Hash` Join cluster and change name of cluster. -Default value: $rabbitmq::cluster +Default value: `$rabbitmq::cluster` -##### `cluster_node_type` +##### `cluster_node_type` Data type: `Enum['ram', 'disc']` Choose between disc and ram nodes. -Default value: 'disc' +Default value: `'disc'` -##### `cluster_nodes` +##### `cluster_nodes` Data type: `Array` An array of nodes for clustering. -Default value: [] +Default value: `[]` -##### `cluster_partition_handling` +##### `cluster_partition_handling` Data type: `String` Value to set for `cluster_partition_handling` RabbitMQ configuration variable. -Default value: 'ignore' +Default value: `'ignore'` -##### `collect_statistics_interval` +##### `collect_statistics_interval` Data type: `Optional[Integer]` @@ -278,23 +386,23 @@ Set the collect_statistics_interval in rabbitmq.config Default value: `undef` -##### `config` +##### `config` Data type: `String` The file to use as the rabbitmq.config template. -Default value: 'rabbitmq/rabbitmq.config.erb' +Default value: `'rabbitmq/rabbitmq.config.erb'` -##### `config_additional_variables` +##### `config_additional_variables` Data type: `Hash` Additional config variables in rabbitmq.config -Default value: {} +Default value: `{}` -##### `config_cluster` +##### `config_cluster` Data type: `Boolean` @@ -302,23 +410,23 @@ Enable or disable clustering support. Default value: `false` -##### `config_kernel_variables` +##### `config_kernel_variables` Data type: `Hash` Hash of Erlang kernel configuration variables to set (see [Variables Configurable in rabbitmq.config](#variables-configurable-in-rabbitmq.config)). -Default value: {} +Default value: `{}` -##### `config_path` +##### `config_path` Data type: `Stdlib::Absolutepath` The path to write the RabbitMQ configuration file to. -Default value: '/etc/rabbitmq/rabbitmq.config' +Default value: `'/etc/rabbitmq/rabbitmq.config'` -##### `config_ranch` +##### `config_ranch` Data type: `Boolean` @@ -326,15 +434,15 @@ When true, suppress config directives needed for older (<3.6) RabbitMQ versions. Default value: `true` -##### `config_management_variables` +##### `config_management_variables` Data type: `Hash` Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html). -Default value: {} +Default value: `{}` -##### `config_stomp` +##### `config_stomp` Data type: `Boolean` @@ -342,7 +450,7 @@ Enable or disable stomp. Default value: `false` -##### `config_shovel` +##### `config_shovel` Data type: `Boolean` @@ -350,39 +458,39 @@ Enable or disable shovel. Default value: `false` -##### `config_shovel_statics` +##### `config_shovel_statics` Data type: `Hash` Hash of static shovel configurations -Default value: {} +Default value: `{}` -##### `config_variables` +##### `config_variables` Data type: `Hash` To set config variables in rabbitmq.config -Default value: {} +Default value: `{}` -##### `default_user` +##### `default_user` Data type: `String` Username to set for the `default_user` in rabbitmq.config. -Default value: 'guest' +Default value: `'guest'` -##### `default_pass` +##### `default_pass` Data type: `String` Password to set for the `default_user` in rabbitmq.config. -Default value: 'guest' +Default value: `'guest'` -##### `delete_guest_user` +##### `delete_guest_user` Data type: `Boolean` @@ -390,31 +498,31 @@ Controls whether default guest user is deleted. Default value: `false` -##### `env_config` +##### `env_config` Data type: `String` The template file to use for rabbitmq_env.config. -Default value: 'rabbitmq/rabbitmq-env.conf.erb' +Default value: `'rabbitmq/rabbitmq-env.conf.erb'` -##### `env_config_path` +##### `env_config_path` Data type: `Stdlib::Absolutepath` The path to write the rabbitmq_env.config file to. -Default value: '/etc/rabbitmq/rabbitmq-env.conf' +Default value: `'/etc/rabbitmq/rabbitmq-env.conf'` -##### `environment_variables` +##### `environment_variables` Data type: `Hash` RabbitMQ Environment Variables in rabbitmq_env.config -Default value: { 'LC_ALL' => 'en_US.UTF-8' } +Default value: `{ 'LC_ALL' => 'en_US.UTF-8' }` -##### `erlang_cookie` +##### `erlang_cookie` Data type: `Optional[String]` @@ -424,23 +532,23 @@ to 'False' and set 'erlang_cookie'. Default value: `undef` -##### `file_limit` +##### `file_limit` Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]]` Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or `$::osfamily == 'RedHat'`. -Default value: 16384 +Default value: `16384` -##### `oom_score_adj` +##### `oom_score_adj` Data type: `Integer[-1000, 1000]` Set rabbitmq-server process OOM score. Defaults to 0. -Default value: 0 +Default value: `0` -##### `heartbeat` +##### `heartbeat` Data type: `Optional[Integer]` @@ -448,23 +556,23 @@ Set the heartbeat timeout interval, default is unset which uses the builtin serv Default value: `undef` -##### `inetrc_config` +##### `inetrc_config` Data type: `String` Template to use for the inetrc config -Default value: 'rabbitmq/inetrc.erb' +Default value: `'rabbitmq/inetrc.erb'` -##### `inetrc_config_path` +##### `inetrc_config_path` Data type: `Stdlib::Absolutepath` Path of the file to push the inetrc config to. -Default value: '/etc/rabbitmq/inetrc' +Default value: `'/etc/rabbitmq/inetrc'` -##### `ipv6` +##### `ipv6` Data type: `Boolean` @@ -472,7 +580,7 @@ Whether to listen on ipv6 Default value: `false` -##### `interface` +##### `interface` Data type: `Optional[String]` @@ -481,7 +589,7 @@ to `0` will disable heartbeats. Default value: `undef` -##### `key_content` +##### `key_content` Data type: `Optional[String]` @@ -490,7 +598,7 @@ behavior, if enabled. Undefined by default. Default value: `undef` -##### `ldap_auth` +##### `ldap_auth` Data type: `Boolean` @@ -498,15 +606,15 @@ Set to true to enable LDAP auth. Default value: `false` -##### `ldap_server` +##### `ldap_server` Data type: `Variant[String[1],Array[String[1]]]` LDAP server or servers to use for auth. -Default value: 'ldap' +Default value: `'ldap'` -##### `ldap_user_dn_pattern` +##### `ldap_user_dn_pattern` Data type: `Optional[String]` @@ -514,23 +622,23 @@ User DN pattern for LDAP auth. Default value: `undef` -##### `ldap_other_bind` +##### `ldap_other_bind` Data type: `String` How to bind to the LDAP server. Defaults to 'anon'. -Default value: 'anon' +Default value: `'anon'` -##### `ldap_config_variables` +##### `ldap_config_variables` Data type: `Hash` Hash of other LDAP config variables. -Default value: {} +Default value: `{}` -##### `ldap_use_ssl` +##### `ldap_use_ssl` Data type: `Boolean` @@ -538,15 +646,15 @@ Set to true to use SSL for the LDAP server. Default value: `false` -##### `ldap_port` +##### `ldap_port` Data type: `Integer[1, 65535]` Numeric port for LDAP server. -Default value: 389 +Default value: `389` -##### `ldap_log` +##### `ldap_log` Data type: `Boolean` @@ -554,7 +662,7 @@ Set to true to log LDAP auth. Default value: `false` -##### `manage_python` +##### `manage_python` Data type: `Boolean` @@ -563,7 +671,7 @@ installed (for rabbitmqadmin). This will only apply if `admin_enable` and `servi Default value: `true` -##### `management_hostname` +##### `management_hostname` Data type: `Optional[String]` @@ -571,15 +679,15 @@ The hostname for the RabbitMQ management interface. Default value: `undef` -##### `management_port` +##### `management_port` Data type: `Integer[1, 65535]` The port for the RabbitMQ management interface. -Default value: 15672 +Default value: `15672` -##### `management_ip_address` +##### `management_ip_address` Data type: `Optional[String]` @@ -588,7 +696,7 @@ localhost only, or 0.0.0.0 to bind to all interfaces. Default value: `undef` -##### `management_ssl` +##### `management_ssl` Data type: `Boolean` @@ -596,7 +704,7 @@ Enable/Disable SSL for the management port. Has an effect only if ssl => true. Default value: `true` -##### `node_ip_address` +##### `node_ip_address` Data type: `Optional[String]` @@ -605,7 +713,7 @@ to bind to all interfaces. Default value: `undef` -##### `package_apt_pin` +##### `package_apt_pin` Data type: `Optional[Variant[Numeric, String]]` @@ -613,15 +721,15 @@ Whether to pin the package to a particular source Default value: `undef` -##### `package_ensure` +##### `package_ensure` Data type: `String` Determines the ensure state of the package. Set to installed by default, but could be changed to latest. -Default value: 'installed' +Default value: `'installed'` -##### `package_gpg_key` +##### `package_gpg_key` Data type: `Optional[String]` @@ -631,7 +739,7 @@ for Debian/RedHat OS Family by default. Default value: `undef` -##### `repo_gpg_key` +##### `repo_gpg_key` Data type: `Optional[String]` @@ -641,31 +749,31 @@ default. Note, that `key_content`, if specified, would override this parameter f Default value: `undef` -##### `package_name` +##### `package_name` Data type: `Variant[String, Array]` Name(s) of the package(s) to install -Default value: 'rabbitmq' +Default value: `'rabbitmq'` -##### `port` +##### `port` Data type: `Integer` The RabbitMQ port. -Default value: 5672 +Default value: `5672` -##### `python_package` +##### `python_package` Data type: `String` Name of the package required by rabbitmqadmin. -Default value: 'python' +Default value: `'python'` -##### `repos_ensure` +##### `repos_ensure` Data type: `Boolean` @@ -676,15 +784,15 @@ different ways of handling the erlang deps. See also https://github.com/voxpupu Default value: `false` -##### `service_ensure` +##### `service_ensure` Data type: `Enum['running', 'stopped']` The state of the service. -Default value: 'running' +Default value: `'running'` -##### `service_manage` +##### `service_manage` Data type: `Boolean` @@ -692,15 +800,15 @@ Determines if the service is managed. Default value: `true` -##### `service_name` +##### `service_name` Data type: `String` The name of the service to manage. -Default value: 'rabbitmq' +Default value: `'rabbitmq'` -##### `service_restart` +##### `service_restart` Data type: `Boolean` @@ -708,7 +816,7 @@ Default defined in param.pp. Whether to restart the service on config change. Default value: `true` -##### `ssl` +##### `ssl` Data type: `Boolean` @@ -716,7 +824,7 @@ Configures the service for using SSL. Default value: `false` -##### `ssl_cacert` +##### `ssl_cacert` Data type: `Optional[Stdlib::Absolutepath]` @@ -724,7 +832,7 @@ CA cert path to use for SSL. Default value: `undef` -##### `ssl_cert` +##### `ssl_cert` Data type: `Optional[Stdlib::Absolutepath]` @@ -732,7 +840,7 @@ Cert to use for SSL. Default value: `undef` -##### `ssl_cert_password` +##### `ssl_cert_password` Data type: `Optional[String]` @@ -740,7 +848,7 @@ Password used when generating CSR. Default value: `undef` -##### `ssl_depth` +##### `ssl_depth` Data type: `Optional[Integer]` @@ -748,7 +856,7 @@ SSL verification depth. Default value: `undef` -##### `ssl_dhfile` +##### `ssl_dhfile` Data type: `Optional[Stdlib::Absolutepath]` @@ -756,7 +864,7 @@ Use this dhparam file [example: generate with `openssl dhparam -out /etc/rabbitm Default value: `undef` -##### `ssl_erl_dist` +##### `ssl_erl_dist` Data type: `Boolean` @@ -764,7 +872,7 @@ Whether to use the erlang package's SSL (relies on the ssl_erl_path fact) Default value: `false` -##### `ssl_honor_cipher_order` +##### `ssl_honor_cipher_order` Data type: `Boolean` @@ -772,7 +880,7 @@ Force use of server cipher order Default value: `true` -##### `ssl_interface` +##### `ssl_interface` Data type: `Optional[String]` @@ -780,7 +888,7 @@ Interface for SSL listener to bind to Default value: `undef` -##### `ssl_key` +##### `ssl_key` Data type: `Optional[Stdlib::Absolutepath]` @@ -788,7 +896,7 @@ Key to use for SSL. Default value: `undef` -##### `ssl_only` +##### `ssl_only` Data type: `Boolean` @@ -797,47 +905,47 @@ port => undef Default value: `false` -##### `ssl_management_port` +##### `ssl_management_port` Data type: `Integer[1, 65535]` SSL management port. -Default value: 15671 +Default value: `15671` -##### `ssl_management_cacert` +##### `ssl_management_cacert` Data type: `Optional[Stdlib::Absolutepath]` SSL management cacert. If unset set to ssl_cacert for backwards compatibility. -Default value: $ssl_cacert +Default value: `$ssl_cacert` -##### `ssl_management_cert` +##### `ssl_management_cert` Data type: `Optional[Stdlib::Absolutepath]` SSL management cert. If unset set to ssl_cert for backwards compatibility. -Default value: $ssl_cert +Default value: `$ssl_cert` -##### `ssl_management_key` +##### `ssl_management_key` Data type: `Optional[Stdlib::Absolutepath]` SSL management key. If unset set to ssl_key for backwards compatibility. -Default value: $ssl_key +Default value: `$ssl_key` -##### `ssl_port` +##### `ssl_port` Data type: `Integer[1, 65535]` SSL port for RabbitMQ -Default value: 5671 +Default value: `5671` -##### `ssl_reuse_sessions` +##### `ssl_reuse_sessions` Data type: `Boolean` @@ -845,7 +953,7 @@ Reuse ssl sessions Default value: `true` -##### `ssl_secure_renegotiate` +##### `ssl_secure_renegotiate` Data type: `Boolean` @@ -853,23 +961,23 @@ Use ssl secure renegotiate Default value: `true` -##### `ssl_stomp_port` +##### `ssl_stomp_port` Data type: `Integer[1, 65535]` SSL stomp port. -Default value: 6164 +Default value: `6164` -##### `ssl_verify` +##### `ssl_verify` Data type: `Enum['verify_none','verify_peer']` rabbitmq.config SSL verify setting. -Default value: 'verify_none' +Default value: `'verify_none'` -##### `ssl_fail_if_no_peer_cert` +##### `ssl_fail_if_no_peer_cert` Data type: `Boolean` @@ -877,15 +985,15 @@ rabbitmq.config `fail_if_no_peer_cert` setting. Default value: `false` -##### `ssl_management_verify` +##### `ssl_management_verify` Data type: `Enum['verify_none','verify_peer']` rabbitmq.config SSL verify setting for rabbitmq_management. -Default value: 'verify_none' +Default value: `'verify_none'` -##### `ssl_versions` +##### `ssl_versions` Data type: `Optional[Array]` @@ -896,7 +1004,7 @@ POODLE and BEAST attacks. Please see the Default value: `undef` -##### `ssl_ciphers` +##### `ssl_ciphers` Data type: `Array` @@ -906,18 +1014,18 @@ Functionality can be tested with cipherscan or similar tool: https://github.com/ * Erlang style: `['ecdhe_rsa,aes_256_cbc,sha', 'dhe_rsa,aes_256_cbc,sha']` * OpenSSL style: `['ECDHE-RSA-AES256-SHA', 'DHE-RSA-AES256-SHA']` -Default value: [] +Default value: `[]` -##### `ssl_crl_check` +##### `ssl_crl_check` Data type: `Enum['true','false','peer','best_effort']` Perform CRL (Certificate Revocation List) verification Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_check) module documentation for more information. -Default value: 'false' +Default value: `'false'` -##### `ssl_crl_cache_hash_dir` +##### `ssl_crl_cache_hash_dir` Data type: `Optional[Stdlib::Absolutepath]` @@ -926,7 +1034,7 @@ Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_cache_o Default value: `undef` -##### `ssl_crl_cache_http_timeout` +##### `ssl_crl_cache_http_timeout` Data type: `Optional[Integer]` @@ -935,15 +1043,15 @@ Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_cache_o Default value: `undef` -##### `stomp_port` +##### `stomp_port` Data type: `Integer[1, 65535]` The port to use for Stomp. -Default value: 6163 +Default value: `6163` -##### `stomp_ssl_only` +##### `stomp_ssl_only` Data type: `Boolean` @@ -951,7 +1059,7 @@ Configures STOMP to only use SSL. No cleartext STOMP TCP listeners will be creat Default value: `false` -##### `stomp_ensure` +##### `stomp_ensure` Data type: `Boolean` @@ -959,15 +1067,15 @@ Enable to install the stomp plugin. Default value: `false` -##### `tcp_backlog` +##### `tcp_backlog` Data type: `Integer` The size of the backlog on TCP connections. -Default value: 128 +Default value: `128` -##### `tcp_keepalive` +##### `tcp_keepalive` Data type: `Boolean` @@ -975,7 +1083,7 @@ Enable TCP connection keepalive for RabbitMQ service. Default value: `false` -##### `tcp_recbuf` +##### `tcp_recbuf` Data type: `Optional[Integer]` @@ -983,7 +1091,7 @@ Corresponds to recbuf in RabbitMQ `tcp_listen_options` Default value: `undef` -##### `tcp_sndbuf` +##### `tcp_sndbuf` Data type: `Optional[Integer]` @@ -991,7 +1099,7 @@ Integer, corresponds to sndbuf in RabbitMQ `tcp_listen_options` Default value: `undef` -##### `wipe_db_on_cookie_change` +##### `wipe_db_on_cookie_change` Data type: `Boolean` @@ -999,31 +1107,31 @@ Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database. Default value: `false` -##### `rabbitmq_user` +##### `rabbitmq_user` Data type: `String` OS dependent The system user the rabbitmq daemon runs as. -Default value: 'rabbitmq' +Default value: `'rabbitmq'` -##### `rabbitmq_group` +##### `rabbitmq_group` Data type: `String` OS dependent The system group the rabbitmq daemon runs as. -Default value: 'rabbitmq' +Default value: `'rabbitmq'` -##### `rabbitmq_home` +##### `rabbitmq_home` Data type: `Stdlib::Absolutepath` OS dependent The home directory of the rabbitmq deamon. -Default value: '/var/lib/rabbitmq' +Default value: `'/var/lib/rabbitmq'` -##### `rabbitmqadmin_package` +##### `rabbitmqadmin_package` Data type: `Optional[String]` @@ -1031,23 +1139,23 @@ OS dependent If undef: install rabbitmqadmin via archive, otherwise via package Default value: `undef` -##### `archive_options` +##### `archive_options` Data type: `Array` Extra options to Archive resource to download rabbitmqadmin file -Default value: [] +Default value: `[]` -##### `loopback_users` +##### `loopback_users` Data type: `Array` This option configures a list of users to allow access via the loopback interfaces -Default value: ['guest'] +Default value: `['guest']` -##### `package_source` +##### `package_source` Data type: `Optional[String]` @@ -1055,7 +1163,7 @@ Data type: `Optional[String]` Default value: `undef` -##### `package_provider` +##### `package_provider` Data type: `Optional[String]` @@ -1063,7 +1171,7 @@ Data type: `Optional[String]` Default value: `undef` -##### `ssl_management_fail_if_no_peer_cert` +##### `ssl_management_fail_if_no_peer_cert` Data type: `Boolean` @@ -1073,7 +1181,7 @@ Default value: `false` ## Resource types -### rabbitmq_binding +### `rabbitmq_binding` Native type for managing rabbitmq bindings @@ -1126,89 +1234,99 @@ rabbitmq_binding { 'myexchange@myqueue@myvhost': The following properties are available in the `rabbitmq_binding` type. -##### `ensure` - -Valid values: present, absent +##### `arguments` -The basic property that the resource should be in. +binding arguments -Default value: present +Default value: `{}` -##### `source` +##### `destination` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` namevar -source of binding - -##### `destination` +destination of binding -Valid values: %r{^\S+$} +##### `destination_type` -namevar +Valid values: `%r{queue|exchange}` -destination of binding +binding destination_type -##### `vhost` +Default value: `queue` -Valid values: %r{^\S+$} +##### `ensure` -namevar +Valid values: `present`, `absent` -vhost +The basic property that the resource should be in. -Default value: / +Default value: `present` ##### `routing_key` -Valid values: %r{^\S*$} +Valid values: `%r{^\S*$}` namevar binding routing_key -##### `destination_type` +##### `source` -Valid values: %r{queue|exchange} +Valid values: `%r{^\S+$}` -binding destination_type +namevar -Default value: queue +source of binding -##### `arguments` +##### `vhost` -binding arguments +Valid values: `%r{^\S+$}` + +namevar + +vhost -Default value: {} +Default value: `/` #### Parameters The following parameters are available in the `rabbitmq_binding` type. -##### `name` +* [`name`](#-rabbitmq_binding--name) +* [`password`](#-rabbitmq_binding--password) +* [`provider`](#-rabbitmq_binding--provider) +* [`user`](#-rabbitmq_binding--user) + +##### `name` namevar resource name, either source@destination@vhost or arbitrary name with params -##### `user` +##### `password` -Valid values: %r{^\S+$} +Valid values: `%r{\S+}` -The user to use to connect to rabbitmq +The password to use to connect to rabbitmq -Default value: guest +Default value: `guest` -##### `password` +##### `provider` -Valid values: %r{\S+} +The specific backend to use for this `rabbitmq_binding` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. -The password to use to connect to rabbitmq +##### `user` -Default value: guest +Valid values: `%r{^\S+$}` -### rabbitmq_cluster +The user to use to connect to rabbitmq + +Default value: `guest` + +### `rabbitmq_cluster` Native type for managing rabbitmq cluster @@ -1238,35 +1356,52 @@ The following properties are available in the `rabbitmq_cluster` type. ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present +Default value: `present` #### Parameters The following parameters are available in the `rabbitmq_cluster` type. -##### `name` +* [`init_node`](#-rabbitmq_cluster--init_node) +* [`local_node`](#-rabbitmq_cluster--local_node) +* [`name`](#-rabbitmq_cluster--name) +* [`node_disc_type`](#-rabbitmq_cluster--node_disc_type) +* [`provider`](#-rabbitmq_cluster--provider) + +##### `init_node` + +Name of which cluster node to join. + +##### `local_node` + +Name of the local node + +Default value: `undef` + +##### `name` namevar The cluster name -##### `init_node` +##### `node_disc_type` -Name of which cluster node to join. +Valid values: `%r{disc|ram}` -##### `node_disc_type` +Storage type of node, default disc. -Valid values: %r{disc|ram} +Default value: `disc` -Storage type of node, default disc. +##### `provider` -Default value: disc +The specific backend to use for this `rabbitmq_cluster` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. -### rabbitmq_erlang_cookie +### `rabbitmq_erlang_cookie` Type to manage the rabbitmq erlang cookie securely @@ -1284,7 +1419,7 @@ The following properties are available in the `rabbitmq_erlang_cookie` type. ##### `content` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` Content of cookie @@ -1292,43 +1427,50 @@ Content of cookie The following parameters are available in the `rabbitmq_erlang_cookie` type. -##### `path` - +* [`force`](#-rabbitmq_erlang_cookie--force) +* [`path`](#-rabbitmq_erlang_cookie--path) +* [`provider`](#-rabbitmq_erlang_cookie--provider) +* [`rabbitmq_group`](#-rabbitmq_erlang_cookie--rabbitmq_group) +* [`rabbitmq_home`](#-rabbitmq_erlang_cookie--rabbitmq_home) +* [`rabbitmq_user`](#-rabbitmq_erlang_cookie--rabbitmq_user) +* [`service_name`](#-rabbitmq_erlang_cookie--service_name) - -##### `force` +##### `force` Valid values: `true`, `false` - Default value: `false` -##### `rabbitmq_user` +##### `path` +##### `provider` -Default value: rabbitmq +The specific backend to use for this `rabbitmq_erlang_cookie` resource. You will seldom need to specify this --- Puppet +will usually discover the appropriate provider for your platform. -##### `rabbitmq_group` +##### `rabbitmq_group` +Default value: `rabbitmq` -Default value: rabbitmq +##### `rabbitmq_home` -##### `rabbitmq_home` +Default value: `/var/lib/rabbitmq` +##### `rabbitmq_user` -Default value: /var/lib/rabbitmq -##### `service_name` +Default value: `rabbitmq` -Valid values: %r{^\S+$} +##### `service_name` +Valid values: `%r{^\S+$}` -### rabbitmq_exchange +### `rabbitmq_exchange` Native type for managing rabbitmq exchanges @@ -1357,77 +1499,92 @@ The following properties are available in the `rabbitmq_exchange` type. ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present +Default value: `present` #### Parameters The following parameters are available in the `rabbitmq_exchange` type. -##### `name` +* [`arguments`](#-rabbitmq_exchange--arguments) +* [`auto_delete`](#-rabbitmq_exchange--auto_delete) +* [`durable`](#-rabbitmq_exchange--durable) +* [`internal`](#-rabbitmq_exchange--internal) +* [`name`](#-rabbitmq_exchange--name) +* [`password`](#-rabbitmq_exchange--password) +* [`provider`](#-rabbitmq_exchange--provider) +* [`type`](#-rabbitmq_exchange--type) +* [`user`](#-rabbitmq_exchange--user) -Valid values: %r{^\S*@\S+$} +##### `arguments` -namevar +Exchange arguments example: {"hash-header": "message-distribution-hash"} -Name of exchange +Default value: `{}` -##### `type` +##### `auto_delete` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` -Exchange type to be set *on creation* +Exchange auto delete option to be set *on creation* + +Default value: `false` -##### `durable` +##### `durable` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` Exchange durability to be set *on creation* Default value: `false` -##### `auto_delete` +##### `internal` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` -Exchange auto delete option to be set *on creation* +Exchange internal option to be set *on creation* Default value: `false` -##### `internal` +##### `name` -Valid values: %r{^\S+$} +Valid values: `%r{^\S*@\S+$}` -Exchange internal option to be set *on creation* +namevar -Default value: `false` +Name of exchange -##### `arguments` +##### `password` -Exchange arguments example: {"hash-header": "message-distribution-hash"} +Valid values: `%r{\S+}` -Default value: {} +The password to use to connect to rabbitmq -##### `user` +Default value: `guest` -Valid values: %r{^\S+$} +##### `provider` -The user to use to connect to rabbitmq +The specific backend to use for this `rabbitmq_exchange` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. -Default value: guest +##### `type` -##### `password` +Valid values: `%r{^\S+$}` -Valid values: %r{\S+} +Exchange type to be set *on creation* -The password to use to connect to rabbitmq +##### `user` + +Valid values: `%r{^\S+$}` + +The user to use to connect to rabbitmq -Default value: guest +Default value: `guest` -### rabbitmq_parameter +### `rabbitmq_parameter` Type for managing rabbitmq parameters @@ -1470,17 +1627,17 @@ rabbitmq_parameter { 'documentumShovelNoMunging@/': The following properties are available in the `rabbitmq_parameter` type. -##### `ensure` +##### `component_name` -Valid values: present, absent +The component_name to use when setting parameter, eg: shovel or federation -The basic property that the resource should be in. +##### `ensure` -Default value: present +Valid values: `present`, `absent` -##### `component_name` +The basic property that the resource should be in. -The component_name to use when setting parameter, eg: shovel or federation +Default value: `present` ##### `value` @@ -1490,15 +1647,11 @@ A hash of values to use with the component name you are setting The following parameters are available in the `rabbitmq_parameter` type. -##### `name` +* [`autoconvert`](#-rabbitmq_parameter--autoconvert) +* [`name`](#-rabbitmq_parameter--name) +* [`provider`](#-rabbitmq_parameter--provider) -Valid values: %r{^\S+@\S+$} - -namevar - -combination of name@vhost to set parameter for - -##### `autoconvert` +##### `autoconvert` Valid values: `true`, `false` @@ -1506,7 +1659,20 @@ whether numeric strings from `value` should be converted to int automatically Default value: `true` -### rabbitmq_plugin +##### `name` + +Valid values: `%r{^\S+@\S+$}` + +namevar + +combination of name@vhost to set parameter for + +##### `provider` + +The specific backend to use for this `rabbitmq_parameter` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. + +### `rabbitmq_plugin` manages rabbitmq plugins @@ -1541,39 +1707,49 @@ The following properties are available in the `rabbitmq_plugin` type. ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present +Default value: `present` #### Parameters The following parameters are available in the `rabbitmq_plugin` type. -##### `name` +* [`mode`](#-rabbitmq_plugin--mode) +* [`name`](#-rabbitmq_plugin--name) +* [`provider`](#-rabbitmq_plugin--provider) +* [`umask`](#-rabbitmq_plugin--umask) -Valid values: %r{^\S+$} +##### `mode` -namevar +Valid values: `online`, `offline`, `best` -The name of the plugin to enable +Define how the plugin should be enabled regarding node status. -##### `mode` +Default value: `best` -Valid values: online, offline, best +##### `name` -Define how the plugin should be enabled regarding node status. +Valid values: `%r{^\S+$}` + +namevar + +The name of the plugin to enable -Default value: best +##### `provider` -##### `umask` +The specific backend to use for this `rabbitmq_plugin` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. + +##### `umask` Sets the octal umask to be used while creating this resource -Default value: 0022 +Default value: `0022` -### rabbitmq_policy +### `rabbitmq_policy` Type for managing rabbitmq policies @@ -1597,51 +1773,59 @@ rabbitmq_policy { 'ha-all@myvhost': The following properties are available in the `rabbitmq_policy` type. -##### `ensure` +##### `applyto` -Valid values: present, absent +Valid values: `all`, `exchanges`, `queues` -The basic property that the resource should be in. +policy apply to -Default value: present +Default value: `all` -##### `pattern` +##### `definition` -policy pattern +policy definition -##### `applyto` +##### `ensure` -Valid values: all, exchanges, queues +Valid values: `present`, `absent` -policy apply to +The basic property that the resource should be in. -Default value: all +Default value: `present` -##### `definition` +##### `pattern` -policy definition +policy pattern ##### `priority` -Valid values: %r{^\d+$} +Valid values: `%r{^\d+$}` policy priority -Default value: 0 +Default value: `0` #### Parameters The following parameters are available in the `rabbitmq_policy` type. -##### `name` +* [`name`](#-rabbitmq_policy--name) +* [`provider`](#-rabbitmq_policy--provider) + +##### `name` -Valid values: %r{^\S+@\S+$} +Valid values: `%r{^\S+@\S+$}` namevar combination of policy@vhost to create policy for -### rabbitmq_queue +##### `provider` + +The specific backend to use for this `rabbitmq_policy` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. + +### `rabbitmq_queue` Native type for managing rabbitmq queue @@ -1669,63 +1853,76 @@ The following properties are available in the `rabbitmq_queue` type. ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present +Default value: `present` #### Parameters The following parameters are available in the `rabbitmq_queue` type. -##### `name` +* [`arguments`](#-rabbitmq_queue--arguments) +* [`auto_delete`](#-rabbitmq_queue--auto_delete) +* [`durable`](#-rabbitmq_queue--durable) +* [`name`](#-rabbitmq_queue--name) +* [`password`](#-rabbitmq_queue--password) +* [`provider`](#-rabbitmq_queue--provider) +* [`user`](#-rabbitmq_queue--user) -Valid values: %r{^\S*@\S+$} +##### `arguments` -namevar +Queue arguments example: {x-message-ttl => 60, x-expires => 10} -Name of queue +Default value: `{}` + +##### `auto_delete` -##### `durable` +Valid values: `%r{true|false}` -Valid values: %r{true|false} +Queue will be auto deleted + +Default value: `false` + +##### `durable` + +Valid values: `%r{true|false}` Queue is durable Default value: `true` -##### `auto_delete` - -Valid values: %r{true|false} +##### `name` -Queue will be auto deleted +Valid values: `%r{^\S*@\S+$}` -Default value: `false` +namevar -##### `arguments` +Name of queue -Queue arguments example: {x-message-ttl => 60, x-expires => 10} +##### `password` -Default value: {} +Valid values: `%r{\S+}` -##### `user` +The password to use to connect to rabbitmq -Valid values: %r{^\S+$} +Default value: `guest` -The user to use to connect to rabbitmq +##### `provider` -Default value: guest +The specific backend to use for this `rabbitmq_queue` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. -##### `password` +##### `user` -Valid values: %r{\S+} +Valid values: `%r{^\S+$}` -The password to use to connect to rabbitmq +The user to use to connect to rabbitmq -Default value: guest +Default value: `guest` -### rabbitmq_user +### `rabbitmq_user` Native type for managing rabbitmq users @@ -1761,45 +1958,53 @@ rabbitmq_user { 'dan': The following properties are available in the `rabbitmq_user` type. -##### `ensure` +##### `admin` -Valid values: present, absent +Valid values: `%r{true|false}` -The basic property that the resource should be in. +whether or not user should be an admin -Default value: present +Default value: `false` -##### `password` +##### `ensure` -User password to be set *on creation* and validated each run +Valid values: `present`, `absent` -##### `admin` +The basic property that the resource should be in. -Valid values: %r{true|false} +Default value: `present` -whether or not user should be an admin +##### `password` -Default value: false +User password to be set *on creation* and validated each run ##### `tags` additional tags for the user -Default value: [] +Default value: `[]` #### Parameters The following parameters are available in the `rabbitmq_user` type. -##### `name` +* [`name`](#-rabbitmq_user--name) +* [`provider`](#-rabbitmq_user--provider) + +##### `name` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` namevar Name of user -### rabbitmq_user_permissions +##### `provider` + +The specific backend to use for this `rabbitmq_user` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. + +### `rabbitmq_user_permissions` Type for managing rabbitmq user permissions @@ -1819,17 +2024,17 @@ rabbitmq_user_permissions { 'dan@myvhost': The following properties are available in the `rabbitmq_user_permissions` type. -##### `ensure` +##### `configure_permission` -Valid values: present, absent +regexp representing configuration permissions -The basic property that the resource should be in. +##### `ensure` -Default value: present +Valid values: `present`, `absent` -##### `configure_permission` +The basic property that the resource should be in. -regexp representing configuration permissions +Default value: `present` ##### `read_permission` @@ -1843,15 +2048,23 @@ regexp representing write permissions The following parameters are available in the `rabbitmq_user_permissions` type. -##### `name` +* [`name`](#-rabbitmq_user_permissions--name) +* [`provider`](#-rabbitmq_user_permissions--provider) + +##### `name` -Valid values: %r{^\S+@\S+$} +Valid values: `%r{^\S+@\S+$}` namevar combination of user@vhost to grant privileges to -### rabbitmq_vhost +##### `provider` + +The specific backend to use for this `rabbitmq_user_permissions` resource. You will seldom need to specify this --- +Puppet will usually discover the appropriate provider for your platform. + +### `rabbitmq_vhost` Native type for managing rabbitmq vhosts @@ -1877,21 +2090,29 @@ The following properties are available in the `rabbitmq_vhost` type. ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present +Default value: `present` #### Parameters The following parameters are available in the `rabbitmq_vhost` type. -##### `name` +* [`name`](#-rabbitmq_vhost--name) +* [`provider`](#-rabbitmq_vhost--provider) + +##### `name` -Valid values: %r{^\S+$} +Valid values: `%r{^\S+$}` namevar The name of the vhost to add +##### `provider` + +The specific backend to use for this `rabbitmq_vhost` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. + diff --git a/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb b/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb index a64677e9e..b57acd3d6 100644 --- a/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb +++ b/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb @@ -15,8 +15,9 @@ def create storage_type = @resource[:node_disc_type].to_s init_node = @resource[:init_node].to_s.gsub(%r{^.*@}, '') + local_node = @resource[:local_node].to_s.gsub(%r{^.*@}, '') - if [Facter.value(:hostname), Facter.value(:fqdn)].include? init_node + if local_node == init_node || [Facter.value(:hostname), Facter.value(:fqdn)].include?(init_node) return rabbitmqctl('set_cluster_name', @resource[:name]) unless cluster_name == resource[:name].to_s else rabbitmqctl('stop_app') diff --git a/lib/puppet/type/rabbitmq_cluster.rb b/lib/puppet/type/rabbitmq_cluster.rb index b215cf023..3ba0db217 100644 --- a/lib/puppet/type/rabbitmq_cluster.rb +++ b/lib/puppet/type/rabbitmq_cluster.rb @@ -40,6 +40,11 @@ end end + newparam(:local_node) do + desc 'Name of the local node' + defaultto(:undef) + end + newparam(:node_disc_type) do desc 'Storage type of node, default disc.' newvalues(%r{disc|ram}) diff --git a/manifests/init.pp b/manifests/init.pp index 3048273e3..741acbb17 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -578,6 +578,7 @@ $cluster['name'] => { 'init_node' => $cluster['init_node'], 'node_disc_type' => $cluster_node_type, + 'local_node' => $cluster['local_node'], } }) } diff --git a/spec/acceptance/clustering_spec.rb b/spec/acceptance/clustering_spec.rb index bf0452c46..ca229e4dc 100644 --- a/spec/acceptance/clustering_spec.rb +++ b/spec/acceptance/clustering_spec.rb @@ -74,4 +74,25 @@ class { 'erlang': epel_enable => true} end end end + + context 'rabbitmq::cluster[:local_node] = foobar' do + it 'runs successfully' do + pp = <<-EOS + class { 'rabbitmq': + cluster => { 'name' => 'rabbit_cluster', 'init_node' => 'foobar', 'local_node' => 'foobar' }, + config_cluster => true, + cluster_nodes => ['foobar', 'rabbit2'], + cluster_node_type => 'ram', + environment_variables => { 'RABBITMQ_USE_LONGNAME' => true, 'NODENAME' => 'rabbit@foobar' }, + erlang_cookie => 'TESTCOOKIE', + } + if $facts['os']['family'] == 'RedHat' { + class { 'erlang': epel_enable => true} + Class['erlang'] -> Class['rabbitmq'] + } + EOS + + apply_manifest(pp, expect_failures: true) + end + end end diff --git a/spec/unit/puppet/type/rabbitmq_cluster_spec.rb b/spec/unit/puppet/type/rabbitmq_cluster_spec.rb index e71b283a7..ab404e062 100644 --- a/spec/unit/puppet/type/rabbitmq_cluster_spec.rb +++ b/spec/unit/puppet/type/rabbitmq_cluster_spec.rb @@ -22,6 +22,16 @@ expect(rabbitmq_cluster[:init_node]).to eq('host1') end + it 'check if local_node set to host1' do + rabbitmq_cluster[:local_node] = 'host1' + expect(rabbitmq_cluster[:local_node]).to eq('host1') + end + + it 'local_node not set should default to undef' do + rabbitmq_cluster[:init_node] = 'host1' + expect(rabbitmq_cluster[:local_node]).to eq(:undef) + end + it 'try to set node_disc_type to ram' do rabbitmq_cluster[:node_disc_type] = 'ram' expect(rabbitmq_cluster[:node_disc_type]).to eq('ram')