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

Reply via email to