diff --git a/centos_iso_image.inc b/centos_iso_image.inc index bc59d224..70f5a461 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -164,6 +164,7 @@ openstack-panko-config # rabbitmq-server rabbitmq-server +rabbitmq-server-config # python-openstackclient python2-openstackclient diff --git a/centos_pkg_dirs b/centos_pkg_dirs index 6a5ce146..55483d9d 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -43,6 +43,7 @@ openstack/python-oslo-concurrency openstack/python-oslo-service openstack/python-oslo-messaging openstack/rabbitmq-server +openstack/rabbitmq-server-config openstack/python-keystoneauth1 openstack/python-openstackclient openstack/python-osc-lib diff --git a/openstack/rabbitmq-server-config/centos/build_srpm.data b/openstack/rabbitmq-server-config/centos/build_srpm.data new file mode 100644 index 00000000..da1e20bd --- /dev/null +++ b/openstack/rabbitmq-server-config/centos/build_srpm.data @@ -0,0 +1,2 @@ +SRC_DIR="files" +TIS_PATCH_VER=0 diff --git a/openstack/rabbitmq-server-config/centos/rabbitmq-server-config.spec b/openstack/rabbitmq-server-config/centos/rabbitmq-server-config.spec new file mode 100644 index 00000000..fe70e1fe --- /dev/null +++ b/openstack/rabbitmq-server-config/centos/rabbitmq-server-config.spec @@ -0,0 +1,42 @@ +Summary: rabbitmq-server-config +Name: rabbitmq-server-config +Version: 1.0 +Release: %{tis_patch_ver}%{?_tis_dist} +License: Apache-2.0 +Group: base +Packager: StarlingX +URL: unknown +BuildArch: noarch +Source: %name-%version.tar.gz + +Requires: %{_bindir}/systemctl +Requires: rabbitmq-server +Summary: package StarlingX configuration files of rabbitmq-server to system folder. + +%description +package StarlingX configuration files of rabbitmq-server to system folder. + +%prep +%setup + +%build + +%install +%{__install} -d %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq +%{__install} -d %{buildroot}%{_sysconfdir}/systemd/system +%{__install} -d %{buildroot}%{_datadir}/starlingx + +%{__install} -m 0755 rabbitmq-server.ocf %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/stx.rabbitmq-server +%{__install} -m 0644 rabbitmq-server.service.example %{buildroot}%{_sysconfdir}/systemd/system/rabbitmq-server.service +%{__install} -m 0644 rabbitmq-server.logrotate %{buildroot}%{_datadir}/starlingx/stx.rabbitmq-server.logrotate + +%post +if [ $1 -eq 1 ] ; then + # Initial installation + cp -f %{_datadir}/starlingx/stx.rabbitmq-server.logrotate %{_sysconfdir}/logrotate.d/rabbitmq-server +fi + +%files +%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/stx.rabbitmq-server +%{_sysconfdir}/systemd/system/rabbitmq-server.service +%{_datadir}/starlingx/stx.rabbitmq-server.logrotate diff --git a/openstack/rabbitmq-server-config/files/rabbitmq-server.logrotate b/openstack/rabbitmq-server-config/files/rabbitmq-server.logrotate new file mode 100644 index 00000000..4c8f3b01 --- /dev/null +++ b/openstack/rabbitmq-server-config/files/rabbitmq-server.logrotate @@ -0,0 +1,13 @@ +/var/log/rabbitmq/*.log { + weekly + missingok + rotate 20 + compress + delaycompress + notifempty + sharedscripts + postrotate + pgrep beam.smp >/dev/null && /usr/sbin/rabbitmqctl -q rotate_logs + true + endscript +} diff --git a/openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server.ocf b/openstack/rabbitmq-server-config/files/rabbitmq-server.ocf similarity index 99% rename from openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server.ocf rename to openstack/rabbitmq-server-config/files/rabbitmq-server.ocf index dde9e292..ea166152 100644 --- a/openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server.ocf +++ b/openstack/rabbitmq-server-config/files/rabbitmq-server.ocf @@ -187,7 +187,7 @@ RABBITMQ_PID_FILE=$OCF_RESKEY_pid_file [ ! -z $RABBITMQ_NODENAME ] && export RABBITMQ_NODENAME # -# Make sure a HOME directory is set and exported for rabbitmqctl +# Make sure a HOME directory is set and exported for rabbitmqctl # to work, otherwise an error "erlexec: HOME must be set" will # result. Erlang exec requires a HOME directory to be set. # Rabbit-Server will source a different directory from the config diff --git a/openstack/rabbitmq-server-config/files/rabbitmq-server.service.example b/openstack/rabbitmq-server-config/files/rabbitmq-server.service.example new file mode 100644 index 00000000..92aa2311 --- /dev/null +++ b/openstack/rabbitmq-server-config/files/rabbitmq-server.service.example @@ -0,0 +1,17 @@ +[Unit] +Description=RabbitMQ broker +After=network.target epmd@0.0.0.0.socket +Wants=network.target epmd@0.0.0.0.socket + +[Service] +Type=notify +User=root +Group=root +NotifyAccess=all +TimeoutStartSec=3600 +WorkingDirectory=/var/lib/rabbitmq +ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server +ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop + +[Install] +WantedBy=multi-user.target diff --git a/openstack/rabbitmq-server/centos/build_srpm.data b/openstack/rabbitmq-server/centos/build_srpm.data index 4968cc7f..ccee3891 100644 --- a/openstack/rabbitmq-server/centos/build_srpm.data +++ b/openstack/rabbitmq-server/centos/build_srpm.data @@ -1,3 +1,2 @@ -COPY_LIST="rabbitmq-server/rabbitmq-server.ocf centos/patches/*" -TIS_PATCH_VER=6 +TIS_PATCH_VER=7 BUILD_IS_SLOW=3 diff --git a/openstack/rabbitmq-server/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch b/openstack/rabbitmq-server/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch index f8d7d3eb..b9daec24 100644 --- a/openstack/rabbitmq-server/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch +++ b/openstack/rabbitmq-server/centos/meta_patches/0001-Update-package-versioning-for-TIS-format.patch @@ -1,31 +1,26 @@ From 9eb2a001b8f80d1a66d4ec78d882d7d6cb4dff51 Mon Sep 17 00:00:00 2001 From: Scott Little Date: Tue, 24 Jan 2017 12:16:38 -0500 -Subject: [PATCH 4/5] WRS: 0001-Update-package-versioning-for-TIS-format.patch +Subject: [PATCH 1/2] WRS: 0001-Update-package-versioning-for-TIS-format.patch -Conflicts: - SPECS/rabbitmq-server.spec +Signed-off-by: zhipengl --- - SPECS/rabbitmq-server.spec | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) + SPECS/rabbitmq-server.spec | 2 +- + 1 file changed, 1 insertion(+), 1 deletions(-) diff --git a/SPECS/rabbitmq-server.spec b/SPECS/rabbitmq-server.spec -index 3095f87..b5d53a2 100644 +index 3a7d940..435f427 100644 --- a/SPECS/rabbitmq-server.spec +++ b/SPECS/rabbitmq-server.spec -@@ -2,11 +2,9 @@ - # We want to install into /usr/lib, even on 64-bit platforms - %global _rabbit_libdir %{_exec_prefix}/lib/rabbitmq - --%define tis_version r1 -- +@@ -5,7 +5,7 @@ + Name: rabbitmq-server Version: 3.6.5 --Release: 1.%{tis_version}%{?dist} +-Release: 1%{?dist} +Release: 1.el7%{?_tis_dist}.%{tis_patch_ver} License: MPLv1.1 Group: Development/Libraries Source0: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.xz --- +-- 1.8.3.1 diff --git a/openstack/rabbitmq-server/centos/meta_patches/0006-Update-rabbitmq-server.logrotate.patch b/openstack/rabbitmq-server/centos/meta_patches/0006-Update-rabbitmq-server.logrotate.patch deleted file mode 100644 index 76990dda..00000000 --- a/openstack/rabbitmq-server/centos/meta_patches/0006-Update-rabbitmq-server.logrotate.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0934088d588521e4f2ac2dbd28ae2de919368d71 Mon Sep 17 00:00:00 2001 -From: Don Penney -Date: Wed, 7 Feb 2018 13:34:44 -0500 -Subject: [PATCH] Update rabbitmq-server.logrotate - ---- - SOURCES/rabbitmq-server.logrotate | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/SOURCES/rabbitmq-server.logrotate b/SOURCES/rabbitmq-server.logrotate -index 832cdcf..8de4c84 100644 ---- a/SOURCES/rabbitmq-server.logrotate -+++ b/SOURCES/rabbitmq-server.logrotate -@@ -7,6 +7,7 @@ - notifempty - sharedscripts - postrotate -- /usr/sbin/rabbitmqctl -q rotate_logs -+ pgrep beam.smp >/dev/null && /usr/sbin/rabbitmqctl -q rotate_logs -+ true - endscript - } --- -1.8.3.1 - diff --git a/openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root.patch b/openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch similarity index 85% rename from openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root.patch rename to openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch index 634967e9..2212660c 100644 --- a/openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root.patch +++ b/openstack/rabbitmq-server/centos/meta_patches/Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch @@ -1,7 +1,7 @@ From cc25d3100a677e0c69a11975fd30ce72937ad575 Mon Sep 17 00:00:00 2001 From: Scott Little Date: Tue, 24 Jan 2017 12:16:38 -0500 -Subject: [PATCH 3/5] WRS: Allow-rabbitmqctl-to-run-as-root.patch +Subject: [PATCH 2/2] WRS: Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch --- SOURCES/rabbitmq-script-wrapper | 4 +++- @@ -17,11 +17,10 @@ index 3d2fc49..d039b23 100644 elif [ `id -u` = 0 ] ; then - su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" + # WRS. Allow to run as root -+ # su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" ++ export HOME=${HOME:-/root} + /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" else /usr/lib/rabbitmq/bin/${SCRIPT} echo -- 1.8.3.1 - diff --git a/openstack/rabbitmq-server/centos/meta_patches/PATCH_ORDER b/openstack/rabbitmq-server/centos/meta_patches/PATCH_ORDER index 7e991e6b..7a3ca2d5 100644 --- a/openstack/rabbitmq-server/centos/meta_patches/PATCH_ORDER +++ b/openstack/rabbitmq-server/centos/meta_patches/PATCH_ORDER @@ -1,6 +1,2 @@ -spec-comments-for-ocf.patch -packstack-fixes.patch -Allow-rabbitmqctl-to-run-as-root.patch 0001-Update-package-versioning-for-TIS-format.patch -Set-root-home-for-rabbitmqctl.patch -0006-Update-rabbitmq-server.logrotate.patch +Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch diff --git a/openstack/rabbitmq-server/centos/meta_patches/Set-root-home-for-rabbitmqctl.patch b/openstack/rabbitmq-server/centos/meta_patches/Set-root-home-for-rabbitmqctl.patch deleted file mode 100644 index 22f7ab33..00000000 --- a/openstack/rabbitmq-server/centos/meta_patches/Set-root-home-for-rabbitmqctl.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d6ed4a9b31a25ae7b803b99f49bb88bb9648ce06 Mon Sep 17 00:00:00 2001 -From: Scott Little -Date: Tue, 24 Jan 2017 12:16:38 -0500 -Subject: [PATCH 5/5] WRS: Set-root-home-for-rabbitmqctl.patch - ---- - SOURCES/rabbitmq-script-wrapper | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/SOURCES/rabbitmq-script-wrapper b/SOURCES/rabbitmq-script-wrapper -index d039b23..6f7450e 100644 ---- a/SOURCES/rabbitmq-script-wrapper -+++ b/SOURCES/rabbitmq-script-wrapper -@@ -44,6 +44,7 @@ elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then - elif [ `id -u` = 0 ] ; then - # WRS. Allow to run as root - # su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" -+ export HOME=${HOME:-/root} - /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" - else - /usr/lib/rabbitmq/bin/${SCRIPT} --- -1.8.3.1 - diff --git a/openstack/rabbitmq-server/centos/meta_patches/packstack-fixes.patch b/openstack/rabbitmq-server/centos/meta_patches/packstack-fixes.patch deleted file mode 100644 index e4435b7c..00000000 --- a/openstack/rabbitmq-server/centos/meta_patches/packstack-fixes.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 251b011a5ccd75bfeb3ea56bb4d414491b560874 Mon Sep 17 00:00:00 2001 -From: Scott Little -Date: Tue, 24 Jan 2017 12:16:38 -0500 -Subject: [PATCH 2/5] WRS: packstack-fixes.patch - -Conflicts: - SPECS/rabbitmq-server.spec ---- - SPECS/rabbitmq-server.spec | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/SPECS/rabbitmq-server.spec b/SPECS/rabbitmq-server.spec -index f1c3cab..3095f87 100644 ---- a/SPECS/rabbitmq-server.spec -+++ b/SPECS/rabbitmq-server.spec -@@ -28,6 +28,9 @@ Patch6: rabbitmq-server-0006-rabbit_prelaunch-must-use-RABBITMQ_SERVER_ERL_ARGS. - Patch101: rabbitmq-common-0001-Avoid-RPC-roundtrips-while-listing-items.patch - Patch102: rabbitmq-common-0002-Use-proto_dist-from-command-line.patch - -+# WRS Patches -+Patch201: update-rabbitmq-server.service.patch -+ - URL: http://www.rabbitmq.com/ - BuildArch: noarch - BuildRequires: erlang >= %{erlang_minver}, python-simplejson, xmlto, libxslt, python, zip -@@ -72,6 +75,8 @@ cd deps/rabbit_common - %patch102 -p1 - cd ../.. - -+%patch201 -p1 -+ - # We have to remove it until common_test subpackage lands RHOS - rm -f \ - deps/amqp_client/src/rabbit_ct_client_helpers.erl \ --- -1.8.3.1 - diff --git a/openstack/rabbitmq-server/centos/meta_patches/spec-comments-for-ocf.patch b/openstack/rabbitmq-server/centos/meta_patches/spec-comments-for-ocf.patch deleted file mode 100644 index 7a96ef02..00000000 --- a/openstack/rabbitmq-server/centos/meta_patches/spec-comments-for-ocf.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 45e477c179ff48c209c7b3210e285e6cddc22137 Mon Sep 17 00:00:00 2001 -From: Scott Little -Date: Tue, 24 Jan 2017 12:16:38 -0500 -Subject: [PATCH 1/5] WRS: spec-comments-for-ocf.patch - -Conflicts: - SPECS/rabbitmq-server.spec ---- - SPECS/rabbitmq-server.spec | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/SPECS/rabbitmq-server.spec b/SPECS/rabbitmq-server.spec -index 3a7d940..f1c3cab 100644 ---- a/SPECS/rabbitmq-server.spec -+++ b/SPECS/rabbitmq-server.spec -@@ -2,10 +2,11 @@ - # We want to install into /usr/lib, even on 64-bit platforms - %global _rabbit_libdir %{_exec_prefix}/lib/rabbitmq - -+%define tis_version r1 - - Name: rabbitmq-server - Version: 3.6.5 --Release: 1%{?dist} -+Release: 1.%{tis_version}%{?dist} - License: MPLv1.1 - Group: Development/Libraries - Source0: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.xz -@@ -15,6 +16,8 @@ Source0: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{ - Source2: rabbitmq-script-wrapper - # curl -O https://raw.githubusercontent.com/lemenkov/rabbitmq-server/cdfc661/packaging/RPMS/Fedora/rabbitmq-server.logrotate - Source3: rabbitmq-server.logrotate -+# WRS modified ocf is located in wrs_patches -+Source4: rabbitmq-server.ocf - Source5: rabbitmq-server.tmpfiles - Patch1: rabbitmq-server-0001-Remove-excessive-sd_notify-code.patch - Patch2: rabbitmq-server-0002-Add-systemd-notification-support.patch -@@ -106,7 +109,7 @@ for app in rabbitmq-defaults rabbitmq-env rabbitmq-plugins rabbitmq-server rabbi - ln -s %{_rabbit_libdir}/lib/rabbitmq_server-%{version}/sbin/${app} %{buildroot}%{_rabbit_libdir}/bin/${app} - done - --install -p -D -m 0755 scripts/rabbitmq-server.ocf %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server -+install -p -D -m 0755 %{S:4} %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server - install -p -D -m 0755 scripts/rabbitmq-server-ha.ocf %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server-ha - - install -p -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-server --- -1.8.3.1 - diff --git a/openstack/rabbitmq-server/centos/patches/update-rabbitmq-server.service.patch b/openstack/rabbitmq-server/centos/patches/update-rabbitmq-server.service.patch deleted file mode 100644 index 186ec845..00000000 --- a/openstack/rabbitmq-server/centos/patches/update-rabbitmq-server.service.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 8840ebc0baa702f612d8dddcdd3271758e2e4c4d Mon Sep 17 00:00:00 2001 -From: Don Penney -Date: Mon, 27 Jun 2016 14:42:41 -0400 -Subject: [PATCH 1/1] Update rabbitmq-server.service - ---- - docs/rabbitmq-server.service.example | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/docs/rabbitmq-server.service.example b/docs/rabbitmq-server.service.example -index 1aa6549..92aa231 100644 ---- a/docs/rabbitmq-server.service.example -+++ b/docs/rabbitmq-server.service.example -@@ -1,4 +1,3 @@ --# systemd unit example - [Unit] - Description=RabbitMQ broker - After=network.target epmd@0.0.0.0.socket -@@ -6,8 +5,8 @@ Wants=network.target epmd@0.0.0.0.socket - - [Service] - Type=notify --User=rabbitmq --Group=rabbitmq -+User=root -+Group=root - NotifyAccess=all - TimeoutStartSec=3600 - WorkingDirectory=/var/lib/rabbitmq --- -1.8.3.1 - diff --git a/openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server b/openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server deleted file mode 100644 index 59c7de68..00000000 --- a/openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# rabbitmq-server RabbitMQ broker -# -# chkconfig: - 80 05 -# description: Enable AMQP service provided by RabbitMQ -# - -### BEGIN INIT INFO -# Provides: rabbitmq-server -# Required-Start: $remote_fs $network -# Required-Stop: $remote_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Description: RabbitMQ broker -# Short-Description: Enable AMQP service provided by RabbitMQ broker -### END INIT INFO - -DAEMON=/usr/bin/rabbitmq-server -CONTROL=/usr/bin/rabbitmqctl -USER=root -ROTATE_SUFFIX= -INIT_LOG_DIR=/var/log/rabbitmq -PID_FILE=/var/run/rabbitmq/pid -HOME=/root -export HOME - -LOCK_FILE= - -test -x $DAEMON || exit 0 -test -x $CONTROL || exit 0 - -RETVAL=0 - -. /lib/lsb/init-functions - -status_of_proc () { - local pidfile daemon name retval pid pidfromfile - - pidfile= - daemon=_x_ - name=_x_ - while [ $# -gt 0 ]; do - case $1 in - -p) shift ; pidfile=$1 ;; - *) - if [ "$daemon" = "_x_" ]; then - daemon="$1" - elif [ "$name" = "_x_" ]; then - name="$1" - fi - ;; - esac - shift - done - - if [ ! -e $pidfile ]; then - for d in $daemon; do - rc=`pidof $d > /dev/null` - if [ $? = 0 ] ; then - return 0 - fi - done - return 1 - fi - - pidfromfile=`cat $pidfile` - kill -0 $pidfromfile 2> /dev/null - retval=$_ - if [ "$daemon" = "_x_" ]; then - # only the pid from the file is used - if [ $retval = 0 ]; then - log_success_msg "$name is running" - else - log_failure_msg "$name is not running" - fi - fi - - for pid in `pidof $daemon` ; do - if test "$pidfromfile" -eq "$pid" 2> /dev/null; then - log_success_msg "$name is running" - return 0 - fi - done - log_failure_msg "$name is not running" - return 1 -} - -ensure_pid_dir () { - PID_DIR=`dirname ${PID_FILE}` - if [ ! -d ${PID_DIR} ] ; then - mkdir -p ${PID_DIR} - chown -R ${USER}:${USER} ${PID_DIR} - chmod 755 ${PID_DIR} - fi -} - -remove_pid () { - rm -f ${PID_FILE} - rmdir `dirname ${PID_FILE}` || : -} - -start_rabbitmq () { - status_rabbitmq quiet || true - if [ $RETVAL = 0 ] ; then - echo RabbitMQ is currently running - else - RETVAL=0 - ensure_pid_dir - - # There seems to be a race condition around the creation of the Erlang cookie file, - # where both the rabbitmq-server launch and the subsequent "rabbitmqctl wait" will - # both try to create the file if it doesn't exist. This can result in a rare failure during - # initial configuration that reports the cookie file does not have the correct - # permissions. To avoid any possible race condition, we'll make a call to - # "rabbitmqctl status" first, which will create the cookie for us. - /sbin/rabbitmqctl status >/dev/null 2>&1 - - # RabbitMQ is using Erlang timers. It appears the Erlang module will abort if it detects discrepencies - # in timers, which it is believed to occur sometimes if the process is switched to a different processor - # (it compares a time value against an earlier value retrieved from a possibly different processor). - # To avoid this potential issue, we'll restrict rabbitmq-server to a single CPU for this instance. - # Note: Since SM does not use this script for launch rabbitmq-server, this will only affect the initial - # launching by packstack/puppet for configuration purposes. - RABBITMQ_PID_FILE=$PID_FILE start-stop-daemon \ - --pidfile=$PID_FILE \ - --background \ - --start \ - --startas /bin/bash -- \ - -c "exec taskset -c 0 $DAEMON >> ${INIT_LOG_DIR}/startup_log 2>> ${INIT_LOG_DIR}/startup_err" - - # Wait a second to give rabbit a chance to get started, then check it - sleep 1 - taskset -c 0 $CONTROL wait $PID_FILE >> ${INIT_LOG_DIR}/wait_log 2>&1 - RETVAL=$? - case "$RETVAL" in - 0) - echo SUCCESS - if [ -n "$LOCK_FILE" ] ; then - touch $LOCK_FILE - fi - echo "`date` - rabbitmq successfully started" >> ${INIT_LOG_DIR}/startup_log - # only emit the event on boot - [ -n "$UPSTART_JOB" ] && initctl emit --no-wait rabbitmq-server-running || true - ;; - *) - remove_pid - echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} - echo "`date` - rabbitmq failed to start" >> ${INIT_LOG_DIR}/startup_err - RETVAL=1 - ;; - esac - fi -} - -stop_rabbitmq () { - status_rabbitmq quiet || true - if [ $RETVAL = 0 ] ; then - if [ ! -e $PID_FILE ] ; then - for d in beam beam.smp; do - rc=`pidof $d 2> /dev/null` - if [ $? = 0 ] ; then - kill $rc - return - fi - done - fi - start-stop-daemon --pidfile=$PID_FILE --stop - RETVAL=$? - if [ $RETVAL = 0 ] ; then - remove_pid - if [ -n "$LOCK_FILE" ] ; then - rm -f $LOCK_FILE - fi - echo "`date` - rabbitmq successfully stopped" >> ${INIT_LOG_DIR}/shutdown_log - else - echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err - echo "`date` - rabbitmq failed to stop" >> ${INIT_LOG_DIR}/shutdown_err - fi - else - echo RabbitMQ is not running - RETVAL=0 - fi -} - -status_rabbitmq() { - if [ "$1" = "quiet" ] ; then - status_of_proc -p $PID_FILE "beam beam.smp" rabbitmq-server > /dev/null - else - status_of_proc -p $PID_FILE "beam beam.smp" rabbitmq-server || exit 1 - fi - RETVAL=$? -} - -rotate_logs_rabbitmq() { - $CONTROL rotate_logs ${ROTATE_SUFFIX} - if [ $? != 0 ] ; then - RETVAL=1 - fi -} - -restart_running_rabbitmq () { - status_rabbitmq quiet - if [ $RETVAL = 0 ] ; then - restart_rabbitmq - else - echo RabbitMQ is not runnning - RETVAL=0 - fi -} - -restart_rabbitmq() { - stop_rabbitmq - start_rabbitmq -} - -case "$1" in - start) - echo -n "Starting $DESC: " - start_rabbitmq - echo "$NAME." - ;; - stop) - echo -n "Stopping $DESC: " - stop_rabbitmq - echo "$NAME." - ;; - status) - status_rabbitmq - ;; - rotate-logs) - echo -n "Rotating log files for $DESC: " - rotate_logs_rabbitmq - ;; - force-reload|reload|restart) - echo -n "Restarting $DESC: " - restart_rabbitmq - echo "$NAME." - ;; - try-restart) - echo -n "Restarting $DESC: " - restart_running_rabbitmq - echo "$NAME." - ;; - *) - echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 - RETVAL=1 - ;; -esac - -exit $RETVAL