app-admin/logstash-forwarder: Keep state at constant path
authorAmadeusz Żołnowski <aidecoe@gentoo.org>
Sat, 15 Aug 2015 10:58:13 +0000 (11:57 +0059)
committerAmadeusz Żołnowski <aidecoe@gentoo.org>
Sat, 15 Aug 2015 13:02:25 +0000 (14:01 +0059)
At every service start initd script used to create random temporary
directory for keeping state, but as of reasons explained in bug #557530
it's better to keep it constant.

Gentoo-Bug: 557530

Package-Manager: portage-2.2.20

app-admin/logstash-forwarder/files/logstash-forwarder.initd
app-admin/logstash-forwarder/logstash-forwarder-0.4.0.ebuild

index 38e09b65ab68233422c2e798ba76c1e7f18c3010..263ea8c7bd07ac82c7e1b9023128a17f8cfd1363 100644 (file)
@@ -3,47 +3,19 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-create_tmpdir() {
-       local tmpdir="$(mktemp -d -p /tmp logstash-forwarder.XXXXXXXXXX)"
-
-       chown logstash:logstash "${tmpdir}" || return 1
-       chmod 0750 "${tmpdir}" || return 1
-
-       echo "${tmpdir}"
-}
-
-remove_tmpdir() {
-       local d=''
-       local tmpdir=''
-
-       for d in /tmp/logstash-forwarder.??????????; do
-               [[ -e ${d} ]] || return 0
-               [[ -d ${d} ]] || continue
-
-               if ! [[ ${tmpdir} ]]; then
-                       tmpdir="${d}"
-               else
-                       # There are more directories like that, so better keep them all.
-                       return 1
-               fi
-       done
-
-       rm -r "${tmpdir}"
-}
-
 start() {
        local config_file=/etc/logstash-forwarder/logstash-forwarder.conf
-       local tmpdir="$(create_tmpdir)"
+       local statedir=/var/lib/logstash-forwarder
 
-       if ! [[ -d ${tmpdir} ]]; then
-               eend 1 "Failed to create tmp directory for logstash-forwarder"
+       if ! [[ -d ${statedir} ]]; then
+               eend 1 "logstash state directory is missing: ${statedir}"
                return 1
        fi
 
        ebegin "Starting logstash-forwarder"
        start-stop-daemon --start --exec /usr/bin/logstash-forwarder \
                --make-pidfile --pidfile /run/logstash-forwarder.pid \
-               --background --wait 100 --chdir "${tmpdir}" \
+               --background --wait 100 --chdir "${statedir}" \
                --user logstash --group logstash \
                -- -config="${config_file}" ${LOGSTASH_FORWARDER_ARGS}
        eend $?
@@ -55,9 +27,5 @@ stop() {
                --pidfile /run/logstash-forwarder.pid --user logstash --group logstash
        local rc=$?
 
-       if ! remove_tmpdir; then
-               ewarn "Failed to remove logstash-forwarder tmp directory"
-       fi
-
        eend ${rc}
 }
index fda913602fcc795c0d965a379aa4abe4e09d03c4..a9dbce544f48dc668319d76e661f87dfbc31f778 100644 (file)
@@ -29,6 +29,11 @@ src_install() {
        dodoc "${PN}".conf.example CHANGELOG README.md
        newconfd "${FILESDIR}/${PN}.confd" "${PN}"
        newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+
+       local statedir="/var/lib/${PN}"
+       keepdir "$statedir"
+       fowners logstash:logstash "$statedir"
+       fperms 0750 "$statedir"
 }
 
 pkg_postinst() {