From 75b332539d72e0408d3736af52da62c8fcb75207 Mon Sep 17 00:00:00 2001 From: zhipengl Date: Sat, 24 Nov 2018 07:50:45 +0800 Subject: [PATCH] Refactor patches for rabbitmq-server package Use rabbitmq-server-config package to package config files for rabbitmq-server package. We can remove related patches of it. Install custom ocf script and let SM call this one instead of default one. Deployment test and ping test between VMs pass Config files check pass. Story: 2003768 Task: 28042 Depends-on: https://review.openstack.org/#/c/621510 Change-Id: I64281b5601b7e457c724747f81e58cc1e42936dd Signed-off-by: zhipengl --- centos_iso_image.inc | 1 + centos_pkg_dirs | 1 + .../centos/build_srpm.data | 2 + .../centos/rabbitmq-server-config.spec | 42 +++ .../files/rabbitmq-server.logrotate | 13 + .../files}/rabbitmq-server.ocf | 2 +- .../files/rabbitmq-server.service.example | 17 ++ .../rabbitmq-server/centos/build_srpm.data | 3 +- ...te-package-versioning-for-TIS-format.patch | 23 +- ...006-Update-rabbitmq-server.logrotate.patch | 25 -- ...tl-to-run-as-root-and-set-root-home.patch} | 5 +- .../centos/meta_patches/PATCH_ORDER | 6 +- .../Set-root-home-for-rabbitmqctl.patch | 24 -- .../centos/meta_patches/packstack-fixes.patch | 37 --- .../meta_patches/spec-comments-for-ocf.patch | 49 ---- .../update-rabbitmq-server.service.patch | 32 --- .../rabbitmq-server/rabbitmq-server | 251 ------------------ 17 files changed, 90 insertions(+), 443 deletions(-) create mode 100644 openstack/rabbitmq-server-config/centos/build_srpm.data create mode 100644 openstack/rabbitmq-server-config/centos/rabbitmq-server-config.spec create mode 100644 openstack/rabbitmq-server-config/files/rabbitmq-server.logrotate rename openstack/{rabbitmq-server/rabbitmq-server => rabbitmq-server-config/files}/rabbitmq-server.ocf (99%) create mode 100644 openstack/rabbitmq-server-config/files/rabbitmq-server.service.example delete mode 100644 openstack/rabbitmq-server/centos/meta_patches/0006-Update-rabbitmq-server.logrotate.patch rename openstack/rabbitmq-server/centos/meta_patches/{Allow-rabbitmqctl-to-run-as-root.patch => Allow-rabbitmqctl-to-run-as-root-and-set-root-home.patch} (85%) delete mode 100644 openstack/rabbitmq-server/centos/meta_patches/Set-root-home-for-rabbitmqctl.patch delete mode 100644 openstack/rabbitmq-server/centos/meta_patches/packstack-fixes.patch delete mode 100644 openstack/rabbitmq-server/centos/meta_patches/spec-comments-for-ocf.patch delete mode 100644 openstack/rabbitmq-server/centos/patches/update-rabbitmq-server.service.patch delete mode 100644 openstack/rabbitmq-server/rabbitmq-server/rabbitmq-server 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