From: garciadeblas Date: Wed, 8 Jun 2022 15:01:24 +0000 (+0200) Subject: Remove duplicates for md5 and keep only utils.md5 X-Git-Tag: v12.0.0rc1~5 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fosmclient.git;a=commitdiff_plain;h=51a2a09f30b969bd0ecc6b3cd6fced3b5010743a Remove duplicates for md5 and keep only utils.md5 Change-Id: I527d099421cd61de7291ade3779d8b81500a7b23 Signed-off-by: garciadeblas --- diff --git a/osmclient/common/package_tool.py b/osmclient/common/package_tool.py index 985a447..abdcd3c 100644 --- a/osmclient/common/package_tool.py +++ b/osmclient/common/package_tool.py @@ -16,7 +16,6 @@ # under the License. import glob -import hashlib import logging import os import shutil @@ -29,6 +28,7 @@ from osm_im.validation import ValidationException from osm_im import im_translation from osmclient.common import package_handling as package_handling from osmclient.common.exceptions import ClientException +from osmclient.common import utils from .sol004_package import SOL004Package from .sol007_package import SOL007Package import yaml @@ -396,13 +396,7 @@ class PackageTool(object): for file_item in files: if "checksums.txt" in file_item: continue - # from https://www.quickprogrammingtips.com/python/how-to-calculate-md5-hash-of-a-file-in-python.html - md5_hash = hashlib.md5() - with open(file_item, "rb") as f: - # Read and update hash in chunks of 4K - for byte_block in iter(lambda: f.read(4096), b""): - md5_hash.update(byte_block) - checksum.write("{}\t{}\n".format(md5_hash.hexdigest(), file_item)) + checksum.write("{}\t{}\n".format(utils.md5(file_item), file_item)) def create_folders(self, folders, package_type): """ diff --git a/osmclient/common/utils.py b/osmclient/common/utils.py index 5336577..6279234 100644 --- a/osmclient/common/utils.py +++ b/osmclient/common/utils.py @@ -47,6 +47,11 @@ def validate_uuid4(uuid_text): def md5(fname): + """ + Checksum generator + :param fname: file path + :return: checksum string + """ hash_md5 = hashlib.md5() with open(fname, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): diff --git a/osmclient/sol005/osmrepo.py b/osmclient/sol005/osmrepo.py index d731e30..beaea34 100644 --- a/osmclient/sol005/osmrepo.py +++ b/osmclient/sol005/osmrepo.py @@ -16,7 +16,6 @@ OSM Repo API handling """ import glob -import hashlib import logging from os import listdir, mkdir, getcwd, remove from os.path import isfile, isdir, join, abspath @@ -29,6 +28,7 @@ from osm_im.validation import Validation as validation_im from osmclient.common.exceptions import ClientException from osmclient.common.package_tool import PackageTool from osmclient.sol005.repo import Repo +from osmclient.common import utils from packaging import version as versioning import requests import yaml @@ -226,19 +226,6 @@ class OSMRepo(Repo): + str(len(glob.glob(destination + "/nst/*/*/metadata.yaml"))) ) - def md5(self, fname): - """ - Checksum generator - :param fname: file path - :return: checksum string - """ - self._logger.debug("") - hash_md5 = hashlib.md5() - with open(fname, "rb") as f: - for chunk in iter(lambda: f.read(4096), b""): - hash_md5.update(chunk) - return hash_md5.hexdigest() - def fields_building(self, descriptor_dict, file, package_type): """ From an artifact descriptor, obtain the fields required for indexing @@ -438,7 +425,7 @@ class OSMRepo(Repo): path = pt.build(path) self._logger.debug(f"Directory path {path}") compressed = True - fields["checksum"] = self.md5(path) + fields["checksum"] = utils.md5(path) self.indexation(destination, path, package_type, fields) except Exception as e: