[Koha-patches] [PATCH] Bug 10149 - koha-restart-zebra error handling (rewording)
Tomas Cohen Arazi
tomascohen at gmail.com
Mon Apr 29 17:03:12 CEST 2013
koha-restart-zebra now
- Checks the instance exists.
- Checks the instance is enabled.
- Checks if the zebra daemon is already running.
Regards
To+
Edit: changed some wording problems.
Sponsored-by: Universidad Nacional de Córdoba
---
debian/scripts/koha-restart-zebra | 147 +++++++++++++++++++++++++++++++++----
1 file changed, 131 insertions(+), 16 deletions(-)
diff --git a/debian/scripts/koha-restart-zebra b/debian/scripts/koha-restart-zebra
index 6b5c0ca..0cb7f4f 100755
--- a/debian/scripts/koha-restart-zebra
+++ b/debian/scripts/koha-restart-zebra
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# koha-restart-zebra -- Restart Zebra for named Koha instandes
+# koha-restart-zebra -- Restart Zebra for named Koha instances
# Copyright 2010 Catalyst IT, Ltd
#
# This program is free software: you can redistribute it and/or modify
@@ -18,21 +18,136 @@
set -e
+die()
+{
+ echo "$@" 1>&2
+ exit 1
+}
+
+warn()
+{
+ echo "$@" 1>&2
+}
+
+is_enabled()
+{
+ local instancename=$1
+
+ if ! is_instance $instancename; then
+ return 1
+ fi
+
+ if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
+ "/etc/apache2/sites-available/$instancename" ; then
+ return 1
+ else
+ return 0
+ fi
+}
+
+is_instance()
+{
+ local instancename=$1
+
+ if find /etc/koha/sites -mindepth 1 -maxdepth 1 \
+ -type d -printf '%f\n'\
+ | grep -q -x $instancename ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+is_zebra_running()
+{
+ local instancename=$1
+
+ if daemon --name="$instancename-koha-zebra" \
+ --user="$instancename-koha.$instancename-koha" \
+ --running ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+restart_zebra_instance()
+{
+ local instancename=$1
+
+ if is_zebra_running $instancename; then
+ echo "Restarting Zebra server for $instancename"
+ daemon \
+ --name="$instancename-koha-zebra" \
+ --errlog="/var/log/koha/$instancename/zebra-error.log" \
+ --stdout="/var/log/koha/$instancename/zebra.log" \
+ --output="/var/log/koha/$instancename/zebra-output.log" \
+ --verbose=1 \
+ --respawn \
+ --delay=30 \
+ --user="$instancename-koha.$instancename-koha" \
+ --restart \
+ -- \
+ zebrasrv \
+ -v none,fatal,warn \
+ -f "/etc/koha/sites/$instancename/koha-conf.xml" && \
+ return 0
+ else
+ return 1
+ fi
+}
+
+start_zebra_instance()
+{
+ local instancename=$1
+
+ if is_enabled $instancename; then
+ echo "Starting Zebra server for $instancename"
+ daemon \
+ --name="$instancename-koha-zebra" \
+ --errlog="/var/log/koha/$instancename/zebra-error.log" \
+ --stdout="/var/log/koha/$instancename/zebra.log" \
+ --output="/var/log/koha/$instancename/zebra-output.log" \
+ --verbose=1 \
+ --respawn \
+ --delay=30 \
+ --user="$instancename-koha.$instancename-koha" \
+ -- \
+ zebrasrv \
+ -v none,fatal,warn \
+ -f "/etc/koha/sites/$instancename/koha-conf.xml" && \
+ return 0
+ else
+ return 1
+ fi
+}
+
+# Parse command line.
+[ "$#" > 1 ] || die "Usage: $0 instancename..."
+
+# Loop through the instance names
for name in "$@"
do
- echo "Restarting Zebra server for $name"
- daemon \
- --name="$name-koha-zebra" \
- --errlog="/var/log/koha/$name/zebra-error.log" \
- --stdout="/var/log/koha/$name/zebra.log" \
- --output="/var/log/koha/$name/zebra-output.log" \
- --verbose=1 \
- --respawn \
- --delay=30 \
- --user="$name-koha.$name-koha" \
- --restart \
- -- \
- zebrasrv \
- -v none,fatal,warn \
- -f "/etc/koha/sites/$name/koha-conf.xml"
+ if is_instance $name ; then
+ if is_enabled $name ; then
+
+ if ! is_zebra_running $name; then
+ warn "Zebra does not appear to have been running for instance $name."
+
+ if ! start_zebra_instance $name ; then
+ warn "Something went wrong starting Zebra for $name."
+ fi
+ else
+ if ! restart_zebra_instance $name; then
+ warn "Something went wrong restarting Zebra for $name."
+ fi
+ fi
+ else
+ warn "Instance $name disabled. No action taken."
+ fi
+ else
+ warn "Unknown instance $name."
+ fi
done
+
+exit 0
--
1.7.9.5
More information about the Koha-patches
mailing list