Make ganeti-cleaner switch to a save working directory
authorKlaus Aehlig <aehlig@google.com>
Tue, 15 Jul 2014 09:40:52 +0000 (11:40 +0200)
committerKlaus Aehlig <aehlig@google.com>
Wed, 16 Jul 2014 10:28:44 +0000 (12:28 +0200)
For some reason, find does stat the current working directory,
which, when invoked via cron, may or may not be readable by the
process (issue 880). Therefore, first change to a directory that
is definitely accessible to the process; the directory it logs
into is such a safe place.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

daemons/ganeti-cleaner.in
test/py/ganeti-cleaner_unittest.bash

index 75cf5f0..50972c3 100644 (file)
@@ -113,6 +113,9 @@ exec >>$LOG_FILE 2>&1
 
 echo "Cleaner started at $(date)"
 
+# Switch to a working directory accessible to the cleaner
+cd $CLEANER_LOG_DIR
+
 # Remove old cleaner log files
 find $CLEANER_LOG_DIR -maxdepth 1 -type f | sort | head -n -$KEEP_LOGS | \
 xargs -r rm -vf
index bf57b76..cf38f73 100755 (executable)
@@ -24,7 +24,11 @@ set -o pipefail
 export PYTHON=${PYTHON:=python}
 
 GNTC=daemons/ganeti-cleaner
-CCE=tools/check-cert-expired
+CCE=$PWD/tools/check-cert-expired
+
+if [ "x$PYTHONPATH" = "x." ]
+then export PYTHONPATH=$PWD
+fi
 
 err() {
   echo "$@"