Commit 0f17b2ba authored by U-PALLAS\theron's avatar U-PALLAS\theron
Browse files

Suprression curl_POST_directory.save

parent 3acad1ec
#!/bin/sh
# modif ###
# *************** VARIABLES *********************
# path des commandes curl POST et GET
path_curl="."
# path_curl="/home/theron"
# path_curl="/home/atheron/VITAM" (path sur pctadad admin)
# path des SIP (répertoire contenant les SIP)
path_sip="$1"
# url des API Vitam:
# url="https://10.6.10.34:"
#url="https://prep-vit-acc-1-1.cines.fr:"
url="https://vitam.cines.fr:"
# ports des API
ing_ext_port="8443";
admin_ext_port="8444";
#Fichier pem du certificat:
# certificat=`cat ./cert/cines_certificat.pem`
certificat=`cat ./cert/cines_certificat.prod.pem`
# certificat=`cat uga_certificat.pem`
# *************** VARIABLES *********************
# *************** FONCTIONS *********************
recup_statut () {
report="STATUT";j=0;flagSt=0;etat="COMPLETED"
# Initialisation du fichier de sortie:
echo "Recuperation des statuts des VERSEMENTS pour $1" > ./out/$1-$report.out;
# Lecture du fichier des XrequestId des POSTS initiaux:
exec 0<./out/$1-POST.out
read ligne # lecture de la premiere ligne du fichier (entete)
while read ligne # lecture des X-requestId
do
# Recuperation des valeurs de XrequesId et nom du sip:
reqId=`echo $ligne | awk {'print $3'}`;
sip=`echo $ligne | awk {'print $2'}`;
dateVers=`echo $ligne | awk {'print $1'}`;
# Recuperation du statut correspondant:
echo -e "\n\n######### Recuperation du statut de $sip, RequestId = $reqId #########"
statut=`$path_curl/curl_GET_statut.sh $certificat $url$admin_ext_port $reqId | grep "X-Global-Execution-State" | awk '{print $2}'`
echo "Statut de la requete POST pour $sip ($reqId): $statut";
# Ecriture dans le fichier de sortie des statuts (pour le dossier des SIP)
echo "$dateVers $sip $reqId $statut" >> ./out/$1-$report.out;
# (NB: Si le statut est vide, c'est que le post initiale est ko)
done
}
recup_etat () {
report="ETAT";j=0;flagSt=0;
# Initialisation du fichier de sortie:
echo "Recuperation des etats finaux des VERSEMENTS pour $1" > ./out/$1-$report.out;
# Lecture du fichier des statuts des POSTS:
# exec 0<./out/$1-STATUT.out
exec 0<./out/$1-POST.out
read ligne # lecture de la premiere ligne du fichier (entete)
while read ligne
do
# Recuperation des valeurs de XrequesId,nom du sip,date versement, statut du post:
reqId=`echo $ligne | awk {'print $3'}`;
sip=`echo $ligne | awk {'print $2'}`;
dateVers=`echo $ligne | awk {'print $1'}`;
#statutPost=`echo $ligne | awk {'print $4'}`;
# Recuperation de l'etat finale dans l'archiveTransferReply correspondant:
##echo $etat;
echo -e "\n\n######### Recuperation de l'état final de $sip, RequestId = $reqId #########"
$path_curl/curl_GET.sh $certificat $url$ing_ext_port $reqId archivetransferreply > ./out/$1-$sip-ATR.xml 2>/dev/null
ligne1=`cat ./out/$1-$sip-ATR.xml | head -1` # recuperation de la ligne1 qui contient le code HTTP du GET
if echo $ligne1 | grep "OK" 1>/dev/null 2>&1 # Si le retour du GET contient OK
then
echo "L'archiveTransfertReply a bien été trouvé par le GET"
# Parsing du content de <ReplyCode> dans l'accuse de reception:
AR=`cat ./out/$1-$sip-ATR.xml`
motif="<ReplyCode>"; motif2="</ReplyCode>"
etatFinal=${AR#*${motif}}
etatFinal=${etatFinal%${motif2}*}
echo "Resultat final du dépot : $etatFinal ";
else
etatFinal="ATR non Trouve"
fi
# Ecriture dans le fichier de sortie des statuts finaux (pour le dossier des SIP)
echo "$dateVers $sip $reqId $statutPost $etatFinal" >> ./out/$1-$report.out;
# Move dans SUCCESS ou REJETS selon valeur de $etatfinal:
case $etatFinal in
OK) mv $1/$sip $1/SUCCES;;
KO) mv $1/$sip $1/REJETS;;
esac
done
}
post_sip () {
report="POST";
echo "rep des sip: $path_sip";
# Lancement des POST (versement des SIP de la directory $path_sip)
ls -l $path_sip | egrep -v '^d' | awk {'print $9'} > $path_sip/fichier_liste_sip.txt #liste ss les dir
# ls $1 > $1/fichier_liste_sip.txt #**
nbrSip=`cat $path_sip/fichier_liste_sip.txt | wc -l`
# Boucle de lecture , lancement des POST, enregistrement des Request-id des POST
exec 0<$path_sip/fichier_liste_sip.txt
tot=0;
z=1;
echo "`date +%Y/%m/%d-%H:%M:%S`: Versement des SIP de $path_sip dans VITAM ..." > ./out/$path_sip-$report.out
read sip # lecture de la 1ere ligne vide de fichier_liste_sip.txt
while read sip
do
echo "`date +%Y/%m/%d-%H:%M:%S`: Versement du SIP $path_sip/$sip dans VITAM ..."
$path_curl/curl_POST.sh $certificat $path_sip $sip $url$ing_ext_port
#####
## Recuperation du code retour HTTP et du X-request-Id dans la sortie du POST
if grep Accepted ./out/$path_sip-$sip-POST.out
then
crPost="Accepted"
else
crPost="Error"
fi
# crPost=`grep Accepted $path_sip-$sip-POST.out | awk {'print $1"-"$2"-"$3'}`
reqId=`grep X-Request-Id ./out/$path_sip-$sip-POST.out | awk {'print $2'}`
echo "`date +%Y/%m/%d-%H:%M:%S` $sip $reqId $crPost" >> ./out/$path_sip-$report.out
# mv $path_sip-$sip-POST.out ./out # deplacement du fichier out dans .out
done
}
# *************** FONCTIONS *********************
# **************** MAIN() ************************
## POST: Lecture du repertoire et construction fichier liste des SIP
## Lecture fichier de liste des SIP
## Boucle : pour chaque ligne:
## lancement du POST par curl_POST.sh
## Récupération du X-request-id > fichier liste des X-request-ID
## STATUT:
## Lecture du fichier de la liste des X-request-ID des POSTS
## Boucle: pour chaque ligne: recuperation du statut de chaque POST > fichier des statut des POSTS
## ETAT:
## Lecture du fichier de la liste des statut des POSTS
## Boucle: pour chaque ligne: recuperation de l'ATR et parse de <replyCOde> > fichier ETAT final
## Fin
# Construction des repertoires si il n'existent pas
if [[ ! -d $path_sip/SUCCES ]]
then
mkdir -p $path_sip/SUCCES;
fi
if [[ ! -d $path_sip/REJETS ]]
then
mkdir -p $path_sip/REJETS;
fi
# Lancement du traitement
case $2 in
POST) post_sip $path_sip;;
STATUT) recup_statut $path_sip;;
ETAT) recup_etat $path_sip;;
*) echo "Parametre de traitement incorrect: attendu: POST,STATUT,ETAT"
esac
exit;
Supports Markdown
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