Merge "Make rabbit ocf timeouts, intervals configurable"
This commit is contained in:
commit
dbb2c6096f
@ -66,7 +66,39 @@
|
||||
# String. Optional path to the policy file for HA queues.
|
||||
# Defaults to undef
|
||||
#
|
||||
|
||||
# [*start_timeout*]
|
||||
# String. Optional op start timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*stop_timeout*]
|
||||
# String. Optional op stop timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*mon_timeout*]
|
||||
# String. Optional op monitor timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*promote_timeout*]
|
||||
# String. Optional op promote timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*demote_timeout*]
|
||||
# String. Optional op demote timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*notify_timeout*]
|
||||
# String. Optional op demote timeout for lrmd.
|
||||
# Defaults to '120'
|
||||
#
|
||||
# [*slave_mon_interval*]
|
||||
# String. Optional slaves' op monitor interval for lrmd.
|
||||
# Defaults to '30'
|
||||
#
|
||||
# [*master_mon_interval*]
|
||||
# String. Optional op master's monitor interval for lrmd.
|
||||
# Should as less overlap with the slave_mon_interval as
|
||||
# possible. Defaults to '27'
|
||||
#
|
||||
class cluster::rabbitmq_ocf (
|
||||
$primitive_type = 'rabbitmq-server',
|
||||
$service_name = $::rabbitmq::service_name,
|
||||
@ -83,6 +115,14 @@ class cluster::rabbitmq_ocf (
|
||||
$fqdn_prefix = '',
|
||||
$pid_file = undef,
|
||||
$policy_file = undef,
|
||||
$start_timeout = '120',
|
||||
$stop_timeout = '120',
|
||||
$mon_timeout = '120',
|
||||
$promote_timeout = '120',
|
||||
$demote_timeout = '120',
|
||||
$notify_timeout = '120',
|
||||
$slave_mon_interval = '30',
|
||||
$master_mon_interval = '30',
|
||||
) inherits ::rabbitmq::service {
|
||||
|
||||
if $host_ip == 'UNSET' or $host_ip == '0.0.0.0' {
|
||||
@ -124,40 +164,39 @@ class cluster::rabbitmq_ocf (
|
||||
|
||||
$operations = {
|
||||
'monitor' => {
|
||||
'interval' => '30',
|
||||
'timeout' => '180'
|
||||
'interval' => $slave_mon_interval,
|
||||
'timeout' => $mon_timeout
|
||||
},
|
||||
'monitor:Master' => { # name:role
|
||||
'role' => 'Master',
|
||||
# should be non-intercectable with interval from ordinary monitor
|
||||
'interval' => '27',
|
||||
'timeout' => '180'
|
||||
'interval' => $master_mon_interval,
|
||||
'timeout' => $mon_timeout
|
||||
},
|
||||
'monitor:Slave' => {
|
||||
'role' => 'Slave',
|
||||
'interval' => '103',
|
||||
'timeout' => '180',
|
||||
'interval' => $slave_mon_interval,
|
||||
'timeout' => $mon_timeout,
|
||||
'OCF_CHECK_LEVEL' => '30'
|
||||
},
|
||||
'start' => {
|
||||
'interval' => '0',
|
||||
'timeout' => '360'
|
||||
'timeout' => $start_timeout
|
||||
},
|
||||
'stop' => {
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => $stop_timeout
|
||||
},
|
||||
'promote' => {
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => $promote_timeout
|
||||
},
|
||||
'demote' => {
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => $demote_timeout
|
||||
},
|
||||
'notify' => {
|
||||
'interval' => '0',
|
||||
'timeout' => '180'
|
||||
'timeout' => $notify_timeout
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,14 @@ describe 'cluster::rabbitmq_ocf' do
|
||||
:fqdn_prefix => 'nil',
|
||||
:pid_file => 'nil',
|
||||
:policy_file => 'nil',
|
||||
:start_timeout => '120',
|
||||
:stop_timeout => '120',
|
||||
:mon_timeout => '120',
|
||||
:promote_timeout => '120',
|
||||
:demote_timeout => '120',
|
||||
:notify_timeout => '120',
|
||||
:slave_mon_interval => '30',
|
||||
:master_mon_interval => '27',
|
||||
}}
|
||||
|
||||
let(:metadata) {{
|
||||
@ -41,46 +49,46 @@ describe 'cluster::rabbitmq_ocf' do
|
||||
}}
|
||||
|
||||
let(:monitor) {{
|
||||
'interval' => '30',
|
||||
'timeout' => '180'
|
||||
'interval' => params[:slave_mon_interval],
|
||||
'timeout' => params[:mon_timeout]
|
||||
}}
|
||||
|
||||
let(:monitor_master) {{
|
||||
'role' => 'Master',
|
||||
'interval' => '27',
|
||||
'timeout' => '180'
|
||||
'role' => 'Master',
|
||||
'interval' => params[:master_mon_interval],
|
||||
'timeout' => params[:mon_timeout]
|
||||
}}
|
||||
|
||||
let(:monitor_slave) {{
|
||||
'role' => 'Slave',
|
||||
'interval' => '103',
|
||||
'timeout' => '180',
|
||||
'interval' => params[:slave_mon_interval],
|
||||
'timeout' => params[:mon_timeout],
|
||||
'OCF_CHECK_LEVEL' => '30'
|
||||
}}
|
||||
|
||||
let(:start) {{
|
||||
'interval' => '0',
|
||||
'timeout' => '360'
|
||||
'timeout' => params[:start_timeout]
|
||||
}}
|
||||
|
||||
let(:stop) {{
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => params[:stop_timeout]
|
||||
}}
|
||||
|
||||
let(:promote) {{
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => params[:promote_timeout]
|
||||
}}
|
||||
|
||||
let(:demote) {{
|
||||
'interval' => '0',
|
||||
'timeout' => '120'
|
||||
'timeout' => params[:demote_timeout]
|
||||
}}
|
||||
|
||||
let(:notify) {{
|
||||
'interval' => '0',
|
||||
'timeout' => '180'
|
||||
'timeout' => params[:notify_timeout]
|
||||
}}
|
||||
|
||||
let(:operations) {{
|
||||
|
@ -19,6 +19,17 @@ class osnailyfacter::rabbitmq::rabbitmq {
|
||||
'password' => false,
|
||||
}
|
||||
)
|
||||
$rabbit_ocf_default = {
|
||||
'start_timeout' => '180',
|
||||
'stop_timeout' => '120',
|
||||
'mon_timeout' => '180',
|
||||
'promote_timeout' => '120',
|
||||
'demote_timeout' => '120',
|
||||
'notify_timeout' => '180',
|
||||
'slave_mon_interval' => '30',
|
||||
'master_mon_interval' => '27',
|
||||
}
|
||||
$rabbit_ocf = merge($rabbit_ocf_default, hiera_hash('rabbit_ocf', {}))
|
||||
$debug = pick($rabbit_hash['debug'], hiera('debug', false))
|
||||
$enabled = pick($rabbit_hash['enabled'], true)
|
||||
$use_pacemaker = pick($rabbit_hash['pacemaker'], true)
|
||||
@ -64,7 +75,6 @@ class osnailyfacter::rabbitmq::rabbitmq {
|
||||
$epmd_bind_ip_address = $rabbitmq_bind_ip_address
|
||||
}
|
||||
|
||||
# NOTE(bogdando) not a hash. Keep an indentation as is
|
||||
$config_kernel_variables = hiera('rabbit_config_kernel_variables',
|
||||
{
|
||||
'inet_dist_listen_min' => '41055',
|
||||
@ -183,6 +193,14 @@ class osnailyfacter::rabbitmq::rabbitmq {
|
||||
# NOTE(bogdando) The fuel-libraryX package installs the custom
|
||||
# policy file by the given path. So not a hardcode.
|
||||
policy_file => '/usr/sbin/set_rabbitmq_policy',
|
||||
start_timeout => $rabbit_ocf['start_timeout'],
|
||||
stop_timeout => $rabbit_ocf['stop_timeout'],
|
||||
mon_timeout => $rabbit_ocf['mon_timeout'],
|
||||
promote_timeout => $rabbit_ocf['promote_timeout'],
|
||||
demote_timeout => $rabbit_ocf['demote_timeout'],
|
||||
notify_timeout => $rabbit_ocf['notify_timeout'],
|
||||
slave_mon_interval => $rabbit_ocf['slave_mon_interval'],
|
||||
master_mon_interval => $rabbit_ocf['master_mon_interval'],
|
||||
require => Class['::rabbitmq::install'],
|
||||
}
|
||||
}
|
||||
|
@ -68,6 +68,16 @@ describe manifest do
|
||||
enable_notifications_ha = Noop.hiera('enable_notifications_ha', 'true')
|
||||
fqdn_prefix = Noop.hiera('node_name_prefix_for_messaging', 'messaging-')
|
||||
rabbit_config_variables = Noop.hiera_hash('rabbit_config_variables', {})
|
||||
rabbit_ocf = Noop.hiera_hash('rabbit_ocf', {
|
||||
:start_timeout => '180',
|
||||
:stop_timeout => '120',
|
||||
:mon_timeout => '180',
|
||||
:promote_timeout => '120',
|
||||
:demote_timeout => '120',
|
||||
:notify_timeout => '180',
|
||||
:slave_mon_interval => '30',
|
||||
:master_mon_interval => '27',
|
||||
})
|
||||
|
||||
let (:params) do {
|
||||
:admin_enable => true,
|
||||
@ -165,6 +175,14 @@ describe manifest do
|
||||
:fqdn_prefix => fqdn_prefix,
|
||||
:pid_file => pid_file,
|
||||
:policy_file => '/usr/sbin/set_rabbitmq_policy',
|
||||
:start_timeout => rabbit_ocf[:start_timeout],
|
||||
:stop_timeout => rabbit_ocf[:stop_timeout],
|
||||
:mon_timeout => rabbit_ocf[:mon_timeout],
|
||||
:promote_timeout => rabbit_ocf[:promote_timeout],
|
||||
:demote_timeout => rabbit_ocf[:demote_timeout],
|
||||
:notify_timeout => rabbit_ocf[:notify_timeout],
|
||||
:slave_mon_interval => rabbit_ocf[:slave_mon_interval],
|
||||
:master_mon_interval => rabbit_ocf[:master_mon_interval],
|
||||
).that_comes_before('Class[nova::rabbitmq]')
|
||||
should contain_class('cluster::rabbitmq_ocf').that_requires(
|
||||
'Class[rabbitmq::install]')
|
||||
|
Loading…
Reference in New Issue
Block a user