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

Skip to content
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
{
"_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