sys-cluster/ceph: Revision bump, fix init script with /dev/null #643412
authorPatrick McLean <chutzpah@gentoo.org>
Sat, 10 Mar 2018 19:15:35 +0000 (11:15 -0800)
committerPatrick McLean <chutzpah@gentoo.org>
Sat, 10 Mar 2018 19:16:06 +0000 (11:16 -0800)
Special cases /dev/null
Closes: https://bugs.gentoo.org/643412
Package-Manager: Portage-2.3.24, Repoman-2.3.6

sys-cluster/ceph/ceph-12.2.4-r1.ebuild [moved from sys-cluster/ceph/ceph-12.2.4.ebuild with 99% similarity]
sys-cluster/ceph/files/ceph.initd-r8 [new file with mode: 0644]

similarity index 99%
rename from sys-cluster/ceph/ceph-12.2.4.ebuild
rename to sys-cluster/ceph/ceph-12.2.4-r1.ebuild
index bc3dd0a718aa47de711f5e50f7669adf45f38956..1fbe80838494d06833d5a6c8009734ffda0f00af 100644 (file)
@@ -264,7 +264,7 @@ src_install() {
        fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
 
        newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-       newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+       newinitd "${FILESDIR}/${PN}.initd-r8" ${PN}
        newconfd "${FILESDIR}/${PN}.confd-r4" ${PN}
 
        insinto /etc/sysctl.d
diff --git a/sys-cluster/ceph/files/ceph.initd-r8 b/sys-cluster/ceph/files/ceph.initd-r8
new file mode 100644 (file)
index 0000000..2f6c260
--- /dev/null
@@ -0,0 +1,95 @@
+#!/sbin/openrc-run
+
+ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}"
+extra_commands="reload"
+daemon_type="${RC_SVCNAME#ceph-}"
+daemon_type="${daemon_type%%.*}"
+daemon_id="${RC_SVCNAME#ceph-*.}"
+daemon_id="${daemon_id:-0}"
+: ${rundir:=/run/ceph}
+: ${user:=ceph}
+: ${group:=ceph}
+: ${rc_ulimit:=-n 1048576 -u 1048576}
+
+pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid"
+daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid"
+
+command="/usr/bin/${RC_SVCNAME%%.*}"
+command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}"
+command_args_foreground="--foreground"
+
+retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}"
+start_stop_daemon_args="--user ${user} --group ${group}"
+supervise_daemon_args="--user ${user} --group ${group}"
+
+: ${supervisor:=supervise-daemon}
+: ${stdout:=/var/log/ceph/ceph}
+: ${stderr:=/var/log/ceph/ceph}
+: ${respawn_delay:=10}
+: ${respawn_max:=5}
+: ${respawn_period:=1800}
+
+: ${osd_respawn_delay:=15}
+: ${osd_respawn_max:=10}
+
+: ${radosgw_respawn_max:=5}
+: ${radosgw_respawn_period:=30}
+
+depend() {
+       use dns logger
+       after net ntpd ntp-client chronyd
+       before netmount
+}
+
+is_type_valid() {
+       case ${daemon_type} in
+               mon|mds|osd|mgr|radosgw) return 0;;
+               *) return 1;;
+       esac
+}
+
+start_pre() {
+       export CEPH_CONF="${ceph_conf}"
+
+       checkpath -d -q -o "${user}:${group}" "${rundir}"
+
+       if ! is_type_valid ;then
+               eerror "Please give valid Ceph Server Type: mds, mon, osd"
+               return 1
+
+       elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then
+               eerror "${daemon_type}.${daemon_id} is still running, refusing to start"
+               return 1
+       fi
+
+       local arg_name arg_val
+       for arg_name in std{out,err} respawn_{delay,max,period}; do
+               eval arg_val="\${${daemon_type}_${arg_name}}"
+
+               if [ -z "${arg_val}" ]; then
+                       eval arg_val="\${${arg_name}}"
+               else
+                       eval "${arg_name}=\"${arg_val}\""
+               fi
+
+               if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then
+                       local log_file log_postfix
+                       log_postfix=".${daemon_id}-${arg_name}.log"
+                       log_file="${arg_val}"
+
+                       if [ "${log_file}" != /dev/null ]
+                               log_file="${log_file}${log_postfix}"
+                       fi
+
+                       supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${log_file}"
+               fi
+       done
+}
+
+reload() {
+       ebegin "Reloading Ceph ${daemon_type}.${daemon_id}"
+       start-stop-daemon --signal 1 "${start_stop_daemon_args}"
+       eend ${?}
+}
+
+# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet: