A new program that evaluates hash strings, intended to help kvm autotest administrators was added, cd_hash. Usage: cd_hash.py [options] Options: -h, --help show this help message and exit -i FILENAME, --iso=FILENAME path to a ISO file whose hash string will be evaluated. This script will calculate: * MD5SUM for the 1st MB of the file * SHA1SUM for the 1st MB of the file * MD5SUM for the whole file * SHA1SUM for the whole file The hashes for the 1st MB are calculated first in the case the user only wants them. This program replaces calc_md5sum_1m. Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx> --- client/tests/kvm/calc_md5sum_1m.py | 21 -------------- client/tests/kvm/cd_hash.py | 54 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 21 deletions(-) delete mode 100755 client/tests/kvm/calc_md5sum_1m.py create mode 100755 client/tests/kvm/cd_hash.py diff --git a/client/tests/kvm/calc_md5sum_1m.py b/client/tests/kvm/calc_md5sum_1m.py deleted file mode 100755 index 153a1e0..0000000 --- a/client/tests/kvm/calc_md5sum_1m.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/python -""" -Program that calculates the md5sum for the first megabyte of a file. -It's faster than calculating the md5sum for the whole ISO image. - -@copyright: Red Hat 2008-2009 -@author: Uri Lublin (uril@xxxxxxxxxx) -""" - -import os, sys -import kvm_utils - - -if len(sys.argv) < 2: - print 'usage: %s <iso-filename>' % sys.argv[0] -else: - fname = sys.argv[1] - if not os.access(fname, os.F_OK) or not os.access(fname, os.R_OK): - print 'bad file name or permissions' - else: - print kvm_utils.hash_file(fname, 1024*1024, method="md5") diff --git a/client/tests/kvm/cd_hash.py b/client/tests/kvm/cd_hash.py new file mode 100755 index 0000000..483d71c --- /dev/null +++ b/client/tests/kvm/cd_hash.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +""" +Program that calculates several hashes for a given CD image. + +@copyright: Red Hat 2008-2009 +""" + +import os, sys, optparse, logging +import common, kvm_utils +from autotest_lib.client.common_lib import logging_config, logging_manager + + +class KvmLoggingConfig(logging_config.LoggingConfig): + def configure_logging(self, results_dir=None, verbose=False): + super(KvmLoggingConfig, self).configure_logging(use_console=True, + verbose=verbose) + +if __name__ == "__main__": + parser = optparse.OptionParser() + parser.add_option('-i', '--iso', type="string", dest="filename", + action='store', + help='path to a ISO file whose hash string will be ' + 'evaluated.') + + options, args = parser.parse_args() + filename = options.filename + + logging_manager.configure_logging(KvmLoggingConfig()) + + if not filename: + parser.print_help() + sys.exit(1) + + filename = os.path.abspath(filename) + + file_exists = os.path.isfile(filename) + can_read_file = os.access(filename, os.R_OK) + if not file_exists: + logging.critical("File %s does not exist. Aborting...", filename) + sys.exit(1) + if not can_read_file: + logging.critical("File %s does not have read permissions. " + "Aborting...", filename) + sys.exit(1) + + logging.info("Hash values for file %s", os.path.basename(filename)) + logging.info("md5 (1m): %s", kvm_utils.hash_file(filename, 1024*1024, + method="md5")) + logging.info("sha1 (1m): %s", kvm_utils.hash_file(filename, 1024*1024, + method="sha1")) + logging.info("md5 (full): %s", kvm_utils.hash_file(filename, + method="md5")) + logging.info("sha1 (full): %s", kvm_utils.hash_file(filename, + method="sha1")) -- 1.6.2.5 -- 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