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