Bug 16974: Make koha-plack should check and fix log files permissions
authorTomas Cohen Arazi <tomascohen@unc.edu.ar>
Mon, 25 Jul 2016 18:08:00 +0000 (15:08 -0300)
committerKyle M Hall <kyle@bywatersolutions.com>
Wed, 17 Aug 2016 17:58:19 +0000 (17:58 +0000)
This patch adds a function to the koha-plack script so it checks for log file
existence and its permissions. This function is called from the start_plack function.

If some of this conditions are not fulfilled, it solves the situation by either
touching and/or changing the permissions accordingly for the instances' plack log files.

To test:
- Run (on kohadevbox):
  $ cd kohaclone
  $ debian/scripts/koha-plack --start kohadev
  $ debian/scripts/koha-plack --stop  kohadev
  $ ls /var/log/koha/kohadev/plack*
- Verify ownership of the created files (they might belong to the root user)
- Apply the patch
- Run:
  $ chown root:root /var/log/koha/kohadev/plack*
  $ debian/scripts/koha-plack --start kohadev
  $ ls /var/log/koha/kohadev/plack*
=> SUCCESS: Files belong to kohadev-koha:kohadev-koha
- Run:
  $ debian/scripts/koha-plack --stop  kohadev
  $ rm /var/log/koha/kohadev/plack*
  $ debian/scripts/koha-plack --start kohadev
  $ ls /var/log/koha/kohadev/plack*
=> SUCCESS: Files are created and belong to kohadev-koha:kohadev-koha
- Sign off :-D

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
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 c0da9d1..ed0f421 100755 (executable)
@@ -72,6 +72,8 @@ start_plack()
         PSGIFILE="/etc/koha/sites/${instancename}/plack.psgi"
     fi # else stick with the default one
 
+    _check_and_fix_perms $instancename
+
     STARMANOPTS="-M FindBin --max-requests 50 --workers 2 \
                  --user=${instancename}-koha --group ${instancename}-koha \
                  --pid ${PIDFILE} \
@@ -204,6 +206,22 @@ EOM
     fi
 }
 
+_check_and_fix_perms()
+{
+    local instance=$1
+
+    local files="/var/log/koha/${instance}/plack.log \
+                 /var/log/koha/${instance}/plack-error.log"
+
+    for file in ${files}
+    do
+        if [ ! -e "${file}" ]; then
+            touch ${file}
+        fi
+        chown "${instance}-koha":"${instance}-koha" ${file}
+    done
+}
+
 set_action()
 {
     if [ "$op" = "" ]; then