Ensure the rabbit-fence daemon started and respawned
W/o this fix, if the daemon crashed, it would remain stopped. Also, the rabbit fence daemon will crash on start, when there is no /var/run/rabbitmq piddir exist. The solution is * add the respawn option to the daemon's upstart (TODO for Centos inittab) * and ensure the piddir created by upstart/init.d before starting the daemon. This also requires to add the rabbitmq and fuel-rabbit-fence packages as a dependency. Closes-bug: #1456791 Change-Id: I4e71eb9e4aa4ff3b877aa89a37d82215740aaeab Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
This commit is contained in:
parent
fa448a62a9
commit
6e6d1cb23c
|
@ -3,4 +3,12 @@ description "RabbitMQ-fence daemon"
|
|||
start on runlevel [2345]
|
||||
stop on runlevel [016]
|
||||
|
||||
respawn
|
||||
respawn limit 10 5
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/run/rabbitmq
|
||||
chown -R rabbitmq /var/run/rabbitmq
|
||||
end script
|
||||
|
||||
exec /usr/bin/rabbit-fence.py
|
||||
|
|
|
@ -13,9 +13,10 @@ prog="rabbit-fence"
|
|||
script="/usr/bin/${prog}.py"
|
||||
piddir="/var/run/rabbitmq"
|
||||
pidfile="${piddir}/${prog}.pid"
|
||||
user="rabbitmq"
|
||||
|
||||
[ -x $script ] || exit 0
|
||||
[ -d $piddir ] || exit 0
|
||||
[ -d $piddir ] || (mkdir -p $piddir; chown -R $user $piddir)
|
||||
|
||||
start() {
|
||||
exec $script
|
||||
|
|
|
@ -3,4 +3,12 @@ description "RabbitMQ-fence daemon"
|
|||
start on runlevel [2345]
|
||||
stop on runlevel [016]
|
||||
|
||||
respawn
|
||||
respawn limit 10 5
|
||||
|
||||
pre-start script
|
||||
mkdir -p /var/run/rabbitmq
|
||||
chown -R rabbitmq /var/run/rabbitmq
|
||||
end script
|
||||
|
||||
exec /usr/bin/rabbit-fence.py
|
||||
|
|
|
@ -20,18 +20,12 @@ class cluster::rabbitmq_fence(
|
|||
$packages = ['dbus', 'dbus-python',
|
||||
'pygobject2', 'python-daemon' ]
|
||||
$dbus_service_name = 'messagebus'
|
||||
$init_name = '/etc/init.d/rabbit-fence'
|
||||
$init_source = 'puppet:///modules/cluster/rabbit-fence.init'
|
||||
$init_mode = '0755'
|
||||
$service_name = 'rabbit-fence'
|
||||
}
|
||||
'Debian': {
|
||||
$packages = [ 'python-gobject', 'python-gobject-2',
|
||||
'python-dbus', 'python-daemon' ]
|
||||
$dbus_service_name = 'dbus'
|
||||
$init_name = '/etc/init/rabbit-fence.conf'
|
||||
$init_source = 'puppet:///modules/cluster/rabbit-fence.upstart'
|
||||
$init_mode = '0644'
|
||||
$service_name = 'fuel-rabbit-fence'
|
||||
}
|
||||
default: {
|
||||
|
@ -51,6 +45,8 @@ class cluster::rabbitmq_fence(
|
|||
hasrestart => true,
|
||||
}
|
||||
|
||||
package { $packages: } ->
|
||||
|
||||
service { $dbus_service_name:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
|
@ -61,10 +57,12 @@ class cluster::rabbitmq_fence(
|
|||
enable => true,
|
||||
} ->
|
||||
|
||||
package { 'fuel-rabbit-fence': } ->
|
||||
service { 'rabbit-fence':
|
||||
name => $service_name,
|
||||
enable => $enabled,
|
||||
ensure => $enabled ? { true => running, false => stopped }
|
||||
name => $service_name,
|
||||
enable => $enabled,
|
||||
ensure => $enabled ? { true => running, false => stopped },
|
||||
require => Package['rabbitmq-server'],
|
||||
}
|
||||
|
||||
if $::osfamily == 'Debian' {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
notice('MODULAR: fuel_pkgs.pp')
|
||||
|
||||
$fuel_packages=['fuel-ha-utils','fuel-misc', 'fuel-rabbit-fence']
|
||||
$fuel_packages=['fuel-ha-utils','fuel-misc']
|
||||
notify{"this is the place where ${fuel_packages} should be installed":}
|
||||
#FIXME(algarendil): remove this if when we switch to pkg-based stuff
|
||||
if $::fuel_pkgs_exist == 'true'
|
||||
|
|
|
@ -13,9 +13,10 @@ prog="rabbit-fence"
|
|||
script="/usr/bin/${prog}.py"
|
||||
piddir="/var/run/rabbitmq"
|
||||
pidfile="${piddir}/${prog}.pid"
|
||||
user="rabbitmq"
|
||||
|
||||
[ -x $script ] || exit 0
|
||||
[ -d $piddir ] || exit 0
|
||||
[ -d $piddir ] || (mkdir -p $piddir; chown -R $user $piddir)
|
||||
|
||||
start() {
|
||||
exec $script
|
||||
|
|
Loading…
Reference in New Issue