coren has uploaded a new change for review. https://gerrit.wikimedia.org/r/102740
Change subject: Package toollabs: add webservice ...................................................................... Package toollabs: add webservice Change-Id: Ic77fc0281d49423bcf01047c9dbcdd2e485726a8 --- M debian/changelog M misctools/Makefile.am A misctools/webservice 3 files changed, 100 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/labs/toollabs refs/changes/40/102740/1 diff --git a/debian/changelog b/debian/changelog index 262df44..bc9edd9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +toollabs (1.0.6) unstable; urgency=low + + * Marc-André Pelletier: add webservice + + -- Marc-André Pelletier <[email protected]> Thu, 19 Dec 2013 14:51:00 -0500 + toollabs (1.0.5) unstable; urgency=low * Marc-André Pelletier: jsub should allow -q to override diff --git a/misctools/Makefile.am b/misctools/Makefile.am index 62e39ae..313da27 100644 --- a/misctools/Makefile.am +++ b/misctools/Makefile.am @@ -1,2 +1,2 @@ -bin_SCRIPTS = become +bin_SCRIPTS = become webservice sbin_SCRIPTS = rmtool toolwatcher diff --git a/misctools/webservice b/misctools/webservice new file mode 100755 index 0000000..f39fa9d --- /dev/null +++ b/misctools/webservice @@ -0,0 +1,93 @@ +#! /bin/bash + +tool=$(/usr/bin/id -nu|sed -e 's/^local-//') +user="local-$tool" +home=$(getent passwd $user | cut -d : -f 6 | sed -e 's/\/$//') +if [ "$(getent group $user | cut -d : -f 1)" != "$user" ]; then + echo "$0: $tool does not appear to be a tool" >&2 + exit 1 +fi +spool="/var/run/lighttpd" +runbase="$spool/$tool" + +if [ "$home" = "" -o ! -d "$home/public_html" ]; then + echo "$tool does not have a public_html" >&2 + exit 1 +fi + +job=$(qstat -q 'webgrid' -j "httpd-$tool" 2>&1 | grep job_number: | sed -e 's/^.* *\(.*\)$/\1/') +if [ "$job" != "" ]; then + si=$(qstat -j "$job" 2>&1 | grep 'scheduling info': | sed -e 's/^.*: *\(.*\)$/\1/') +fi + +waitdown() { + wj="$1" + while [ "$wj" = "$1" ]; do + wj=$(qstat -j "$1" 2>&1 | grep job_number: | sed -e 's/^.* *\(.*\)$/\1/') + echo -n . + sleep 1 + done +} + +case "$1" in + start) + + echo -n "Starting webservice..." + if [ "$job" != "" ]; then + echo "Webservice already running." + else + if qsub -e $home/error.log -o $home/error.log -i /dev/null -q webgrid -l h_vmem=4g -b y -N "httpd-$tool" /usr/local/bin/tool-lighttpd >/dev/null 2>&1 ; then + echo " started." + else + echo " failed." + fi + fi + ;; + + restart) + echo -n "Restarting webservice.." + if [ "$job" != "" ]; then + qdel -j "$job" >/dev/null 2>&1 + waitdown "$job" + else + echo -n . + fi + if qsub -e $home/error.log -o /dev/null -i /dev/null -q webgrid -l h_vmem=4g -b y -N "httpd-$tool" /usr/local/bin/tool-lighttpd >/dev/null 2>&1; then + echo " restarted." + else + echo " failed." + fi + ;; + + status) + if [ "$job" != "" ]; then + if [ "$si" != "" ]; then + echo "Your webservice is scheduled:" + echo " $si" + else + echo "Your webservice is running (job $job)." + fi + exit 0 + else + echo "Your webservice is not running." + exit 1 + fi + ;; + + stop) + if [ "$job" != "" ]; then + echo -n "Stopping webservice.." + qdel -j "$job" >/dev/null 2>&1 + waitdown "$job" + echo " stopped." + else + echo "Webservice not running." + fi + ;; + + *) + echo "usage: $(basename $0) start|restart|status|stop" >&2 + exit 1 + ;; +esac + -- To view, visit https://gerrit.wikimedia.org/r/102740 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic77fc0281d49423bcf01047c9dbcdd2e485726a8 Gerrit-PatchSet: 1 Gerrit-Project: labs/toollabs Gerrit-Branch: master Gerrit-Owner: coren <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
