summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Hilman <khilman@baylibre.com>2020-02-12 15:58:51 -0800
committerGitHub <noreply@github.com>2020-02-12 15:58:51 -0800
commit751e6bbf1d651a4c7335c5de03c31074f4cea1ea (patch)
tree585d5ea195b4de44c9c5cab43a6a7760d78d19ba
parent3e8863a724de93baee3efaf5ea7abbdbd1a11d77 (diff)
parentcccd52d88687294131116f2d1104e001cb58210d (diff)
Merge pull request #110 from philm06/master
Improve backup handling
-rwxr-xr-xbackup.sh18
-rwxr-xr-xlava-master/entrypoint.d/01_setup.sh4
2 files changed, 16 insertions, 6 deletions
diff --git a/backup.sh b/backup.sh
index f4cf1de..3edd133 100755
--- a/backup.sh
+++ b/backup.sh
@@ -1,6 +1,11 @@
#!/bin/sh
BACKUP_DIR="backup-$(date +%Y%m%d_%H%M)"
+# use /tmp by default on host (this is used by tar)
+TMPDIR=${TMPDIR:-/tmp}
+export TMPDIR
+
+mkdir -p $TMPDIR
mkdir $BACKUP_DIR
cp boards.yaml $BACKUP_DIR
@@ -10,18 +15,19 @@ if [ -z "$DOCKERID" ];then
exit 1
fi
-docker exec -ti $DOCKERID tar czf /root/devices.tar.gz /etc/lava-server/dispatcher-config/devices/ || exit $?
+docker exec -t $DOCKERID tar czf /root/devices.tar.gz /etc/lava-server/dispatcher-config/devices/ || exit $?
docker cp $DOCKERID:/root/devices.tar.gz $BACKUP_DIR/ || exit $?
# for an unknown reason pg_dump > file doesnt work
-docker exec -ti $DOCKERID sudo -u postgres pg_dump --create --clean lavaserver --file /tmp/db_lavaserver || exit $?
-docker exec -ti $DOCKERID gzip /tmp/db_lavaserver || exit $?
+docker exec -t $DOCKERID sudo -u postgres pg_dump --create --clean lavaserver --file /tmp/db_lavaserver || exit $?
+docker exec -t $DOCKERID gzip /tmp/db_lavaserver || exit $?
docker cp $DOCKERID:/tmp/db_lavaserver.gz $BACKUP_DIR/ || exit $?
-docker exec -ti $DOCKERID rm /tmp/db_lavaserver.gz || exit $?
+docker exec -t $DOCKERID rm /tmp/db_lavaserver.gz || exit $?
-docker exec -ti $DOCKERID tar czf /root/joboutput.tar.gz /var/lib/lava-server/default/media/job-output/ || exit $?
+# tar outputs warnings when file changes on disk while creating tar file. So do not "exit on error"
+docker exec -t $DOCKERID tar czf /root/joboutput.tar.gz /var/lib/lava-server/default/media/job-output/ || echo "WARNING: tar operation returned $?"
docker cp $DOCKERID:/root/joboutput.tar.gz $BACKUP_DIR/ || exit $?
-docker exec -ti $DOCKERID rm /root/joboutput.tar.gz || exit $?
+docker exec -t $DOCKERID rm /root/joboutput.tar.gz || exit $?
echo "Backup done in $BACKUP_DIR"
rm -f backup-latest
diff --git a/lava-master/entrypoint.d/01_setup.sh b/lava-master/entrypoint.d/01_setup.sh
index 4755bc4..ba81f77 100755
--- a/lava-master/entrypoint.d/01_setup.sh
+++ b/lava-master/entrypoint.d/01_setup.sh
@@ -17,6 +17,10 @@ if [ -e /root/backup/db_lavaserver ];then
yes yes | lava-server manage migrate || exit $?
echo "Restore jobs output from backup"
rm -r /var/lib/lava-server/default/media/job-output/*
+
+ # allow using different folder for tar operations (/tmp by default)
+ TMPDIR=${TMPDIR:-/tmp}
+
tar xzf /root/backup/joboutput.tar.gz || exit $?
fi