Commit 106fc420 authored by Jonathan Schaeffer's avatar Jonathan Schaeffer

documentation

parent e97dea8c
......@@ -19,18 +19,23 @@ Les configurations se font par variable d'environnement :
* `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
### Lancer tout le dump
### Invoquer l'outil
``` shell
RESIFDD_WORKDIR=/osug-dc/resif RESIFDD_DATATIR=/scratch/resifdumper resifdatadump
```
### Options particulières de 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-parallel
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-parallel
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 :
......@@ -48,4 +53,4 @@ Le ficher doit contenir une clé par ligne, comme rapportée dans les logs :
2016_RA_NCAD
```
On peut générer un fichier de clés avec le script python `src/scan_dupms.py`.
On peut générer un fichier de clés avec le script python `src/scan_dupms.py` qui
#!/usr/bin/python3
"""
Ce script compare l'archive locale avec ce qui est sur irods.
Il compare seulement le nom des répertoires.
Si le répertoire existe en local et n'existe pas sur iRODS alors le script l'ajoute
à la liste des répertoires manquant
"""
import subprocess
import re
......@@ -8,16 +15,16 @@ from collections import defaultdict
def get_irods_content():
remote_data = defaultdict(lambda: defaultdict(dict))
result = subprocess.run(['ils','-r', '-L'], stdout=subprocess.PIPE)
# On prepare une structure de donnees (dict) :
# remote_data = [
# key => [
# latest.tar => [sha2 => '', size => ''] ,
# previous.tar => [sha2 => '', size => '']
# key => [
# latest.tar => [sha2 => '', size => ''] ,
# previous.tar => [sha2 => '', size => '']
# ]
# ], ...
# ]
# Test
# root_dir='/tempZone/home/jschaeffer/'
# Prod :
......@@ -37,10 +44,10 @@ def get_irods_content():
words = re.split(' +', line)
remote_data[current_key][words[-1]]['size'] = words[4]
total_size = total_size + int(words[4])
print("Total iRODS storage used : "+str(total_size/(1024^3))+"GB")
return remote_data
# Maintenant, on a l'état sur le serveur irods. Comparons avec notre dépôt :
# Chercher les tribples YYYY/NET/STATION dans /osug-dc/resif/validated_seismic_data
# Pour chacun, vérifier son existence dans remote_data
......@@ -49,8 +56,8 @@ def get_irods_content():
def browse_local_data():
filesDepth3 = glob.glob('/osug-dc/resif/validated_seismic_data/*/*/*')
dirsDepth3 = filter(lambda f: os.path.isdir(f), filesDepth3)
return list(dirsDepth3)
return list(dirsDepth3)
if __name__ == "__main__":
dirs = browse_local_data()
......@@ -66,4 +73,3 @@ if __name__ == "__main__":
print("List of missing keys (usable with RESIFDD_KEYFILE) : ")
print('\n'.join(missing_keys))
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