Commit 8acc1c00 authored by Jonathan Schaeffer's avatar Jonathan Schaeffer

Adding KEYFILE feature

parent 87d37e8d
......@@ -16,9 +16,34 @@ Les configurations se font par variable d'environnement :
* `RESIFDD_DATADIR` : le répertoire où le script pourra trouver les points de montage SUMMER `validated_seismic_metadata` et `validated_seismic_data`
* `RESIFDD_CONTINUE_FROM` : la valeur est un fichier de rapport précédent à partir duquel le script pourra reprendre le travail là où il l'a laissé. Si le rapport mentionne des erreurs de transfert, le script réessayera
* `RESIFDD_START_AT` : permet d'indiquer une année à partir de laquelle reprendre le transfert. Tous les éléments appartenant à une année inférieur sont ignorés
* `RESIFDD_KEYFILE` : si cette variable indique le chemin d'un fichier valide, alors il sera utilisé pour transférer les données correspondantes aux clés listées dans le fichier.
## Exemples
### Invoquer l'outil
Démarrer le transfert de toutes les données à partir de 2009
``` shell
RESIFDD_WORKDIR=/osug-dc/resif RESIFDD_DATATIR=/scratch/resifdumper RESIFDD_START_AT=2009 src/resifdatadump
```
Transférer les données listées dans le fichier `RESIFDD_KEYFILE` :
``` shell
RESIFDD_WORKDIR=/osug-dc/resif RESIFDD_DATATIR=/scratch/resifdumper RESIFDD_KEYFILE=/scratch/resifdumper/keys.txt src/resifdatadump
```
Le ficher doit contenir une clé par ligne, comme rapportée dans les logs :
``` textfile
2018_RA_CGBP
2018_FR_RUSF
2018_RA_NCAD
2018_RA_PYTO
2016_FR_RUSF
2017_RA_PYTO
2017_RA_CGBP
2017_FR_RUSF
2016_MT_CLP2
2016_RA_NCAD
```
......@@ -270,10 +270,18 @@ rm -f $RESIFDD_WORKDIR/*.tar
##################
KEY="validated-seismic-metadata"
MONTH=$(date +%Y-%m)
DUMP_METADATA="yes" # a flag to tell if we have to dump the metadata or not
if [[ -r $RECOVERY_FILE ]] && egrep -q -e ".*($KEY ).*( OK | Skipped ).*" $RECOVERY_FILE ; then
format_report $KEY "-" $(date +%Y-%m-%dT%H:%M:%S) "-" "-" "Skipped" >> $LOCAL_REPORT
else
DUMP_METADATA="no"
fi
if [[ -r $RESIFDD_KEYFILE ]] && ! grep -q $KEY $RESIFDD_KEYFILE; then
echo "Keyfile does not contain validated-seismic-metadata"
DUMP_METADATA="no"
fi
if [[ "x$DUMP_METADATA" = "xyes" ]]; then
# Get the snapshot name for this month
SNAPSHOT_DIR=$(ls -d $RESIFDD_DATADIR/validated_seismic_metadata/.snapshot/monthly.${MONTH}*|tail -1)
if [[ ! -d $SNAPSHOT_DIR ]]; then
......@@ -305,6 +313,21 @@ if [[ ! -d $SNAPSHOT_DIR ]]; then
exit 1
fi
echo "Starting dump of validated data with 4 jobs"
find $SNAPSHOT_DIR -maxdepth 3 -mindepth 3 -type d | sort | parallel --jobs 4 --max-args 1 pack_and_send {} {%}
echo "Starting dump of validated data"
if [[ -r ${RESIFDD_KEYFILE} ]]; then
# Continue from previous report
echo "Using $RESIFDD_KEYFILE as references to transfer data"
# Make a list of directories from KEYFILE and pass it to pack_and_send
# We use only the first word of each line, compose a full path and test for it's existence
for i in $(sed -e "s, .*$,," -e "s,_,/,g" -e "s,^,$SNAPSHOT_DIR/," $RESIFDD_KEYFILE |sort -u); do
if [[ -d $i ]]; then
pack_and_send $i
else
echo "$i does not exist, ignored"
fi
done
else
# Normal operations, browsing $SNAPSHOT_DIR
find $SNAPSHOT_DIR -maxdepth 3 -mindepth 3 -type d | sort | parallel --jobs 4 --max-args 1 pack_and_send {} {%}
fi
echo "Dump of validated data done"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment