summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McLean <chutzpah@gentoo.org>2023-05-09 10:48:16 -0700
committerPatrick McLean <chutzpah@gentoo.org>2023-05-09 10:49:04 -0700
commit81a5985a7fdb2fcb371406bc0269de2685a119cf (patch)
tree6b6b5b771c85d5c2e3ac57ff63a7e1f0c2737881
parentsys-kernel/gentoo-sources: drop 5.15.107 (diff)
downloadgentoo-81a5985a7fdb2fcb371406bc0269de2685a119cf.tar.gz
gentoo-81a5985a7fdb2fcb371406bc0269de2685a119cf.tar.bz2
gentoo-81a5985a7fdb2fcb371406bc0269de2685a119cf.zip
sys-cluster/ceph: Revbump, fix radosgw in init script (bug #905870)
Closes: https://bugs.gentoo.org/905870 Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
-rw-r--r--sys-cluster/ceph/ceph-17.2.5-r6.ebuild (renamed from sys-cluster/ceph/ceph-17.2.5-r4.ebuild)2
-rw-r--r--sys-cluster/ceph/ceph-17.2.6-r2.ebuild (renamed from sys-cluster/ceph/ceph-17.2.6-r1.ebuild)2
-rw-r--r--sys-cluster/ceph/files/ceph.initd-r14119
3 files changed, 121 insertions, 2 deletions
diff --git a/sys-cluster/ceph/ceph-17.2.5-r4.ebuild b/sys-cluster/ceph/ceph-17.2.5-r6.ebuild
index e4046b3b5701..95be155b4526 100644
--- a/sys-cluster/ceph/ceph-17.2.5-r4.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.5-r6.ebuild
@@ -424,7 +424,7 @@ src_install() {
fowners -R ceph:ceph /var/log/ceph
newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
- newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+ newinitd "${FILESDIR}/${PN}.initd-r14" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
insinto /etc/sudoers.d
diff --git a/sys-cluster/ceph/ceph-17.2.6-r1.ebuild b/sys-cluster/ceph/ceph-17.2.6-r2.ebuild
index 90bd3470f2ff..a28df53b6173 100644
--- a/sys-cluster/ceph/ceph-17.2.6-r1.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.6-r2.ebuild
@@ -424,7 +424,7 @@ src_install() {
fowners -R ceph:ceph /var/log/ceph
newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
- newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+ newinitd "${FILESDIR}/${PN}.initd-r14" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
insinto /etc/sudoers.d
diff --git a/sys-cluster/ceph/files/ceph.initd-r14 b/sys-cluster/ceph/files/ceph.initd-r14
new file mode 100644
index 000000000000..04002703d9e7
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r14
@@ -0,0 +1,119 @@
+#!/sbin/openrc-run
+
+# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc
+_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}"
+if [ -r "${_CONFD_FILE}" ]; then
+ . "${_CONFD_FILE}" || exit 1
+fi
+
+: "${ceph_conf:=/etc/ceph/ceph.conf}"
+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}"
+extra_commands="${extra_commands} reload"
+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/console/ceph}"
+: "${stderr:=/var/log/ceph/console/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() {
+ local log_dir
+ 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
+
+ if [ -n "${bluestore_osd_fsid}" ]; then
+ einfo "Mounting Bluestore"
+ ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd
+ fi
+
+ if [ "${daemon_type}" = radosgw ]; then
+ command="/usr/bin/radosgw"
+
+ if [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then
+ command_args="${command_args} --name client.${daemon_id}"
+ fi
+ fi
+
+ local arg_name arg_val repl_arg_name
+ for arg_name in stdout stderr respawn_delay respawn_max respawn_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 ]; then
+ log_file="${log_file}${log_postfix}"
+
+ log_dir="$(dirname "${log_file}")"
+ checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}"
+ fi
+
+ repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)"
+ supervise_daemon_args="${supervise_daemon_args} --${repl_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: