Merge "Make rabbit ocf timeouts, intervals configurable"

This commit is contained in:
Jenkins 2016-03-31 10:12:19 +00:00 committed by Gerrit Code Review
commit dbb2c6096f
4 changed files with 109 additions and 26 deletions

View File

@ -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
},
}

View File

@ -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) {{

View File

@ -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'],
}
}

View File

@ -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]')