Voici la documentation : https://geoplateforme.pages.gpf-tech.ign.fr/documentation

Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found

Cible

Sélectionner le projet cible
  • geoplateforme/scripts-verification/check-md5
1 résultat
Afficher les modifications
Validations sur la source (3)
......@@ -15,9 +15,16 @@ Unreleased
### Removed
-->
## 2.5.1 - 2023-12-21
### Added
- IGNGPF-3076: Log each line of a md5 file
## 2.5.0 - 2023-12-18
### Added
- Use Toolbelt 1.7.1 for filesystem storage
## 2.4.1 - 2023-07-26
......
......@@ -40,7 +40,7 @@ __uri_repository__ = (
__uri_tracker__ = f"{__uri_repository__}issues/"
__uri__ = __uri_repository__
__version__ = "2.5.0"
__version__ = "2.5.1"
__version_info__ = tuple(
[
int(num) if num.isdigit() else num
......
......@@ -9,7 +9,6 @@
import hashlib
import logging
import os
from collections import namedtuple
from pathlib import Path
# package
......@@ -40,7 +39,6 @@ def generate_md5_sum(filename: str, chunksize: int = 8192) -> str:
Postconditions:
Retourne un hash md5 (chaîne hexadécimale de 32 caractères)
"""
logger.user_info(f"Génère un hash md5 pour le fichier : {filename}")
with open(filename, "rb") as f:
file_hash = hashlib.md5()
while chunk := f.read(chunksize):
......@@ -92,10 +90,10 @@ def check_md5_file(filename: Path, chunksize: int = 8192) -> int:
try:
with open(filename) as checksum_file:
li_results = []
no_line = 0
for line in checksum_file:
no_line += 1
line = line.strip()
if len(line) <= 32:
logger.user_error(
f"FAILURE : la longueur de la ligne {line} du fichier "
......@@ -110,9 +108,17 @@ def check_md5_file(filename: Path, chunksize: int = 8192) -> int:
ret = validate(
filename=sourceFilename, md5digest=checksum, chunksize=chunksize
)
result_obj = namedtuple("Result", ["filename", "status"])
if ret != Status.SUCCESS:
logger.user_error(
f"Fichier {filename} - vérification ligne {no_line} : {ret}"
)
else:
logger.user_info(
f"Fichier {filename} - vérification ligne {no_line} : {ret}"
)
result |= ret.value
li_results.append(result_obj(sourceFilename, ret.name))
except OSError as err:
logger.user_error(
f"TECHNICAL ERROR : impossible de traiter les fichiers/ Trace : {err}"
......
772ac1a55fab1122f3b369ee9cd31549 md5.txt
772ac1a55fab1122f3b369ee9cd31549 oslandia.txt
md5
oslandia
{
"_id": "1231544456-1546546-164565",
"job_name": "",
"pipeline_status": {
"job_name1" : "SUCCESS",
"job_name2" : "FAILURE"
},
"inputs": {
"uploads" : [{
"_id": "invalid_one_line" ,
"type": "stringEnum(uploadType)",
"name": "",
"type_infos": {},
"srs" : "",
"extent": {"east": 0 , "west" : 0 , "north": 0, "south" : 0},
"size": 0,
"storage": {
"_id": "string",
"name": "string",
"type": "S3",
"type_infos": {
"pot_name": "upload-test-check-md5"
}
}
}],
"stored_datas" : []
},
"parameters":[{
"name": "",
"value": ""
}],
"global_variables": {
"postgresql": {
"user":"",
"pass":""
},
"swift": {
"identity_api_version": "",
"auth_url": "",
"project_domain_name": "",
"region_name": "",
"tenant_id": "",
"tenant_name":"",
"user_domain_name":"",
"username": "",
"password": ""
}
}
}
\ No newline at end of file