Remove duplicates for md5 and keep only utils.md5 88/12188/6
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Wed, 8 Jun 2022 15:01:24 +0000 (17:01 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Mon, 20 Jun 2022 11:02:12 +0000 (13:02 +0200)
Change-Id: I527d099421cd61de7291ade3779d8b81500a7b23
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
osmclient/common/package_tool.py
osmclient/common/utils.py
osmclient/sol005/osmrepo.py

index 985a447..abdcd3c 100644 (file)
@@ -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):
         """
index 5336577..6279234 100644 (file)
@@ -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""):
index d731e30..beaea34 100644 (file)
@@ -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: