From 05bdceb9737017d6eda04256a0b4db056bc14004 Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Wed, 3 Oct 2018 14:32:30 +0200 Subject: [PATCH] slaprunner: code simplification --- software/slaprunner/buildout.hash.cfg | 2 +- .../template/runner-export.sh.jinja2 | 34 +++++++++---------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/software/slaprunner/buildout.hash.cfg b/software/slaprunner/buildout.hash.cfg index 8286d4213..c26b3da07 100644 --- a/software/slaprunner/buildout.hash.cfg +++ b/software/slaprunner/buildout.hash.cfg @@ -30,7 +30,7 @@ md5sum = 7a879739afe55320ee96409bcc8a52ab [template-runner-export-script] filename = template/runner-export.sh.jinja2 -md5sum = 5877e70b2bd5cfe06aff793125f65d6a +md5sum = d9b110db2a35c88c9eb8f87c2d2cad21 [instance-runner-export] filename = instance-runner-export.cfg.in diff --git a/software/slaprunner/template/runner-export.sh.jinja2 b/software/slaprunner/template/runner-export.sh.jinja2 index 4a76a0441..6d353d267 100644 --- a/software/slaprunner/template/runner-export.sh.jinja2 +++ b/software/slaprunner/template/runner-export.sh.jinja2 @@ -104,34 +104,32 @@ fi # Check that export didn't happen during backup of instances tmp_backup_sum=$(mktemp -p "$tmp_directory") -tmp_filtered_signature=$(mktemp -p "$tmp_directory") remove_tmp_files () { - rm "$tmp_backup_sum" "$tmp_filtered_signature" + rm "$tmp_backup_sum" } trap remove_tmp_files EXIT +cd {{ directory['backup'] }} + +# Wait a little to increase the probability to detect an ongoing backup. +sleep 5 + # Getting files from runner backup directory, as instance backup files may be # explicitely excluded from the backup, using the srv/exporter.exclude -backup_directory_path="$tmp_directory/backup_files.txt" -cd {{ directory['backup'] }} -find . -path "./runner/instance/slappart*/srv/backup/*" -type f -print0 > $backup_directory_path +find -path "./runner/instance/slappart*/srv/backup/*" -type f -print0 | +xargs -r0 sha256sum | sort -k 66 > "$tmp_backup_sum" # If no backup found, it's over -if [ ! -s "$backup_directory_path" ]; then +if [ ! -s "$tmp_backup_sum" ]; then exit 0 fi -sleep 5 -cat $backup_directory_path | xargs -0 sha256sum | sort -k 66 > "$tmp_backup_sum" -rm $backup_directory_path -egrep "instance/slappart.*/srv/backup/" "$backup_directory/backup.signature" > "$tmp_filtered_signature" - # If the diff fails, then the notifier will restart this script -if diff "$tmp_backup_sum" "$tmp_filtered_signature"; then - exit 0 -fi -echo "ERROR: Some backups are not consistent, exporter should be re-run." -echo "Let's sleep {{ backup_wait_time }} minutes, to let the backup end..." -sleep {{ backup_wait_time }}m -exit 1 +grep "instance/slappart.*/srv/backup/" "$backup_directory/backup.signature" | +diff "$tmp_backup_sum" - || { + echo "ERROR: Some backups are not consistent, exporter should be re-run." + echo "Let's sleep {{ backup_wait_time }} minutes, to let the backup end..." + sleep {{ backup_wait_time }}m + exit 1 +} -- 2.30.9