When using python > 2.4, use the recommended hashlib. When using python 2.4, fall back to the md5 and sha modules. Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx> --- tko/models.py | 12 ++++++++++-- tko/parsers/version_1_unittest.py | 16 +++++++++++++--- utils/build_externals.py | 11 +++++++++-- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/tko/models.py b/tko/models.py index bc70074..2dc6724 100644 --- a/tko/models.py +++ b/tko/models.py @@ -1,4 +1,8 @@ -import os, md5 +import os +try: + import hashlib +except ImportError: + import md5 from autotest_lib.client.common_lib import utils from autotest_lib.tko import utils as tko_utils @@ -63,7 +67,11 @@ class kernel(object): @staticmethod def compute_hash(base, hashes): key_string = ','.join([base] + hashes) - return md5.new(key_string).hexdigest() + try: + hash = hashlib.md5(key_string).hexdigest() + except NameError: + hash = md5.new(key_string).hexdigest() + return hash class test(object): diff --git a/tko/parsers/version_1_unittest.py b/tko/parsers/version_1_unittest.py index 5110fe8..a6e87e4 100755 --- a/tko/parsers/version_1_unittest.py +++ b/tko/parsers/version_1_unittest.py @@ -1,6 +1,10 @@ #!/usr/bin/python -import unittest, datetime, time, md5 +import unittest, datetime, time +try: + import hashlib +except ImportError: + import md5 import common from autotest_lib.tko.parsers import version_1 @@ -163,7 +167,10 @@ class test_status_line(unittest.TestCase): "patch0": "first_patch 0 0", "patch1": "another_patch 0 0"}) kern = line.get_kernel() - kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() + try: + kernel_hash = hashlib.md5("2.6.24-rc40,0,0").hexdigest() + except NameError: + kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() self.assertEquals(kern.base, "2.6.24-rc40") self.assertEquals(kern.patches[0].spec, "first_patch") self.assertEquals(kern.patches[1].spec, "another_patch") @@ -178,7 +185,10 @@ class test_status_line(unittest.TestCase): "patch0": "first_patch 0 0", "patch2": "another_patch 0 0"}) kern = line.get_kernel() - kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() + try: + kernel_hash = hashlib.md5("2.6.24-rc40,0").hexdigest() + except: + kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() self.assertEquals(kern.base, "2.6.24-rc40") self.assertEquals(kern.patches[0].spec, "first_patch") self.assertEquals(len(kern.patches), 1) diff --git a/utils/build_externals.py b/utils/build_externals.py index d58975e..8993249 100755 --- a/utils/build_externals.py +++ b/utils/build_externals.py @@ -12,7 +12,11 @@ Usage? Just run it. utils/build_externals.py """ -import compileall, logging, os, sha, shutil, sys, tempfile, time, urllib2 +import compileall, logging, os, shutil, sys, tempfile, time, urllib2 +try: + import hashlib +except ImportError: + import sha import subprocess, re import common from autotest_lib.client.common_lib import logging_config, logging_manager @@ -152,7 +156,10 @@ def _checksum_file(full_path): """@returns The hex checksum of a file given its pathname.""" inputfile = open(full_path, 'rb') try: - hex_sum = sha.sha(inputfile.read()).hexdigest() + try: + hex_sum = hashlib.sha1(inputfile.read()).hexdigest() + except NameError: + hex_sum = sha.sha(inputfile.read()).hexdigest() finally: inputfile.close() return hex_sum -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html