Bug 16749: Adjustments for koha-plack
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 10 Feb 2017 09:33:57 +0000 (10:33 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 17 Feb 2017 13:20:57 +0000 (13:20 +0000)
[1] Use run_safe_xmlstarlet for plack workers and requests
[2] Simplify adjust_paths. The lazy export statement is actually enough to
    replace adjust_paths by one direct call to adjust_paths_dev_install.

Test plan:
[1] Copy koha-functions.sh and koha-plack:
    cp [YOUR_PATH]/debian/scripts/koha-functions.sh /usr/share/koha/bin/
    cp [YOUR_PATH]/debian/scripts/koha-plack /usr/sbin/
    where YOUR_PATH might well be /home/vagrant/kohaclone.
[2] Make sure that you have dev_install in koha-conf.
    Stop and start koha-plack. Verify with ps aux|grep plack.
[3] Rename dev_install to nodev_install (in start and end tag).
    Now stop/start koha-plack. Verify with ps aux|grep plack.
[4] Change plack_requests to 51 in your koha-conf.
    Restart Plack and check that you see 51 in ps aux|grep plack.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Tested on Jessie (Debian VM and Kohadevbox)

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Tested in a package installation of master+16749

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
debian/scripts/koha-plack

index 245d4a5..cb816a2 100755 (executable)
@@ -74,16 +74,10 @@ start_plack()
 
     _check_and_fix_perms $instancename
 
-    PLACK_MAX_REQUESTS="50"
-    PLACK_WORKERS="2"
-
-    if [[ $(get_plack_max_requests $instancename) ]]; then
-        PLACK_MAX_REQUESTS="$(get_plack_max_requests $instancename)"
-    fi
-
-    if [[ $(get_plack_workers $instancename) ]]; then
-        PLACK_WORKERS="$(get_plack_workers $instancename)"
-    fi
+    PLACK_MAX_REQUESTS=$(run_safe_xmlstarlet $instancename plack_max_requests)
+    [ -z $PLACK_MAX_REQUESTS ] && PLACK_MAX_REQUESTS="50"
+    PLACK_WORKERS=$(run_safe_xmlstarlet $instancename plack_workers)
+    [ -z $PLACK_WORKERS ] && PLACK_WORKERS="2"
 
     STARMANOPTS="-M FindBin --max-requests ${PLACK_MAX_REQUESTS} --workers ${PLACK_WORKERS} \
                  --user=${instancename}-koha --group ${instancename}-koha \
@@ -242,30 +236,6 @@ set_action()
     fi
 }
 
-adjust_paths()
-{
-    # Optionally use alternative paths for a dev install
-    adjust_paths_dev_install $1
-
-    # PERL5LIB has been read from etc/default, add lib/installer
-    # export some vars (for plack.psgi)
-    export KOHA_HOME
-    if [ "$DEV_INSTALL" = "" ]; then
-        export PERL5LIB=$PERL5LIB:$KOHA_HOME/lib/installer
-    else
-        export DEV_INSTALL
-        export PERL5LIB=$PERL5LIB:$KOHA_HOME/installer
-    fi
-}
-
-get_plack_max_requests() {
-    xmlstarlet sel -t -v 'yazgfs/config/plack_max_requests' "/etc/koha/sites/$1/koha-conf.xml"
-}
-
-get_plack_workers() {
-    xmlstarlet sel -t -v 'yazgfs/config/plack_workers' "/etc/koha/sites/$1/koha-conf.xml"
-}
-
 STARMAN=$(which starman)
 op=""
 quiet="no"
@@ -311,7 +281,9 @@ if [ $# -gt 0 ]; then
 
         if is_instance $name; then
 
-            adjust_paths $name
+            adjust_paths_dev_install $name
+            export DEV_INSTALL KOHA_HOME PERL5LIB=$PERL5LIB:$KOHA_HOME/installer:$KOHA_HOME/lib/installer
+
             case $op in
                 "start")
                     start_plack $name