| #!/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 |
| from autotest_lib.client.common_lib import logging_manager |
| from autotest_lib.client.bin import utils |
| from autotest_lib.client.virt import virt_utils |
| |
| |
| if __name__ == "__main__": |
| parser = optparse.OptionParser("usage: %prog [options] [filenames]") |
| options, args = parser.parse_args() |
| |
| logging_manager.configure_logging(virt_utils.VirtLoggingConfig()) |
| |
| if args: |
| filenames = args |
| else: |
| parser.print_help() |
| sys.exit(1) |
| |
| for filename in filenames: |
| 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!", filename) |
| continue |
| if not can_read_file: |
| logging.critical("File %s does not have read permissions!", |
| filename) |
| continue |
| |
| logging.info("Hash values for file %s", os.path.basename(filename)) |
| logging.info("md5 (1m): %s", utils.hash_file(filename, 1024*1024, |
| method="md5")) |
| logging.info("sha1 (1m): %s", utils.hash_file(filename, 1024*1024, |
| method="sha1")) |
| logging.info("md5 (full): %s", utils.hash_file(filename, method="md5")) |
| logging.info("sha1 (full): %s", utils.hash_file(filename, |
| method="sha1")) |
| logging.info("") |