From patchwork Fri Oct 19 12:38:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milo Casagrande X-Patchwork-Id: 12369 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id A124F23EFE for ; Fri, 19 Oct 2012 12:38:15 +0000 (UTC) Received: from mail-ie0-f180.google.com (mail-ie0-f180.google.com [209.85.223.180]) by fiordland.canonical.com (Postfix) with ESMTP id 2020DA181D2 for ; Fri, 19 Oct 2012 12:38:15 +0000 (UTC) Received: by mail-ie0-f180.google.com with SMTP id e10so488677iej.11 for ; Fri, 19 Oct 2012 05:38:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf :content-type:mime-version:x-launchpad-project:x-launchpad-branch :x-launchpad-message-rationale:x-launchpad-branch-revision-number :x-launchpad-notification-type:to:from:subject:message-id:date :reply-to:sender:errors-to:precedence:x-generated-by :x-launchpad-hash:x-gm-message-state; bh=wFHSJ37boBJxfInSNXXqdA5apXKl8Ihuxf8gRx+6cUg=; b=U8KGiYenVbN+/A3+ghACtIPP1HggdlgMZF8mMwU1eLFU4Q6DoAecR/4pCHSuwF6VRg wSY51fAu0Vmj4FL+y0CMDdR15WiZIVH4cqw23tSaguiU9RGjgcEPxp+ExbMtIUQBOBr2 vxGLdZJPPg5pnh6LHErlsogZx8KYiQE4rWWmAx918lWzWfAEpu+7xbWKNaYskriCpFIA IqqriusO1ZtKhnGQltWgLLR5mlv81wvNFeRZMNxfF+15Ho3feZQfRF0x3NwRCJI4yDRn WV6sYMdZxCa0bB0z7aZ732y1MdfM7l7vLA4B5qe1sE4zvCSzMWZ7LUgskPG9ZX95oOc4 4I0w== Received: by 10.50.168.37 with SMTP id zt5mr1010381igb.57.1350650294527; Fri, 19 Oct 2012 05:38:14 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.50.67.148 with SMTP id n20csp78539igt; Fri, 19 Oct 2012 05:38:13 -0700 (PDT) Received: by 10.180.80.104 with SMTP id q8mr3015457wix.6.1350650292778; Fri, 19 Oct 2012 05:38:12 -0700 (PDT) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id u2si18152880wia.22.2012.10.19.05.38.12 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 19 Oct 2012 05:38:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) client-ip=91.189.90.7; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) smtp.mail=bounces@canonical.com Received: from ackee.canonical.com ([91.189.89.26]) by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1TPBq8-0001jR-5m for ; Fri, 19 Oct 2012 12:38:12 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 1E2E1E025F for ; Fri, 19 Oct 2012 12:38:12 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: linaro-image-tools X-Launchpad-Branch: ~linaro-image-tools/linaro-image-tools/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 581 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-image-tools/linaro-image-tools/trunk] Rev 581: Use common logging infrastructure, add --debug option to linaro-media-create. Message-Id: <20121019123812.25146.28372.launchpad@ackee.canonical.com> Date: Fri, 19 Oct 2012 12:38:12 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="16165"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: 263b967a90c6b23c0870d1516a9c7e11d249565f X-Gm-Message-State: ALoCoQmqFsP3HM/A98jNNMe5YAa/X0T+RZuLrVpEkIgbE/SiLkbKvFftlEhitTjygnlNwp5bYLhz Merge authors: Milo Casagrande (milo) Related merge proposals: https://code.launchpad.net/~milo/linaro-image-tools/bug1059579/+merge/128029 proposed by: Milo Casagrande (milo) review: Approve - Paul Sokolovsky (pfalcon) ------------------------------------------------------------ revno: 581 [merge] committer: Milo Casagrande branch nick: trunk timestamp: Fri 2012-10-19 14:37:48 +0200 message: Use common logging infrastructure, add --debug option to linaro-media-create. modified: linaro-hwpack-convert linaro-hwpack-create linaro-hwpack-replace linaro-media-create linaro_image_tools/hwpack/__init__.py linaro_image_tools/hwpack/hwpack_convert.py linaro_image_tools/media_create/__init__.py linaro_image_tools/media_create/boards.py linaro_image_tools/media_create/partitions.py linaro_image_tools/utils.py --- lp:linaro-image-tools https://code.launchpad.net/~linaro-image-tools/linaro-image-tools/trunk You are subscribed to branch lp:linaro-image-tools. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-image-tools/linaro-image-tools/trunk/+edit-subscription === modified file 'linaro-hwpack-convert' --- linaro-hwpack-convert 2012-07-23 07:07:55 +0000 +++ linaro-hwpack-convert 2012-10-04 14:19:47 +0000 @@ -22,35 +22,17 @@ import argparse -import logging import sys -import os from linaro_image_tools.hwpack.hwpack_convert import ( HwpackConverter, HwpackConverterException, check_and_validate_args, ) +from linaro_image_tools.utils import get_logger from linaro_image_tools.__version__ import __version__ -def get_logger(debug=False): - ch = logging.StreamHandler() - logger = logging.getLogger("linaro_hwpack_converter") - - if debug: - ch.setLevel(logging.DEBUG) - formatter = logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s") - ch.setFormatter(formatter) - logger.setLevel(logging.DEBUG) - else: - ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(message)s") - ch.setFormatter(formatter) - logger.setLevel(logging.INFO) - logger.addHandler(ch) - if __name__ == '__main__': parser = argparse.ArgumentParser(version='%(prog)s ' + __version__) parser.add_argument("CONFIG_FILE", @@ -64,10 +46,10 @@ logger = get_logger(debug=args.debug) try: input_file, output_file = check_and_validate_args(args) - print "Converting '%s' into new YAML format..." % (input_file) + logger.info("Converting '%s' into new YAML format..." % input_file) converter = HwpackConverter(input_file, output_file) except HwpackConverterException, e: - sys.stderr.write(str(e) + "\n") + logger.error(str(e)) sys.exit(1) converter.convert() - print "File '%s' converted in '%s'." % (input_file, output_file) + logger.info("File '%s' converted in '%s'." % (input_file, output_file)) === modified file 'linaro-hwpack-create' --- linaro-hwpack-create 2011-10-03 08:18:45 +0000 +++ linaro-hwpack-create 2012-10-04 14:20:32 +0000 @@ -21,14 +21,14 @@ # USA. import argparse -import logging import sys from linaro_image_tools.hwpack.builder import ( ConfigFileMissing, HardwarePackBuilder) - +from linaro_image_tools.utils import get_logger from linaro_image_tools.__version__ import __version__ + if __name__ == '__main__': parser = argparse.ArgumentParser(version='%(prog)s ' + __version__) parser.add_argument( @@ -44,24 +44,14 @@ "version than a package that would be otherwise installed. " "Can be used more than once.")) parser.add_argument("--debug", action="store_true") + args = parser.parse_args() - ch = logging.StreamHandler() - ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(message)s") - ch.setFormatter(formatter) - logger = logging.getLogger("linaro_image_tools") - logger.setLevel(logging.INFO) - logger.addHandler(ch) - if args.debug: - ch.setLevel(logging.DEBUG) - formatter = logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s") - ch.setFormatter(formatter) - logger.setLevel(logging.DEBUG) + logger = get_logger(debug=args.debug) + try: - builder = HardwarePackBuilder( - args.CONFIG_FILE, args.VERSION, args.local_debs) + builder = HardwarePackBuilder(args.CONFIG_FILE, + args.VERSION, args.local_debs) except ConfigFileMissing, e: - sys.stderr.write(str(e) + "\n") + logger.error(str(e)) sys.exit(1) builder.build() === modified file 'linaro-hwpack-replace' --- linaro-hwpack-replace 2012-10-17 07:01:20 +0000 +++ linaro-hwpack-replace 2012-10-19 12:37:48 +0000 @@ -26,7 +26,6 @@ import sys import shutil import glob -import logging import tarfile import tempfile import argparse @@ -35,6 +34,7 @@ from debian.deb822 import Packages from linaro_image_tools.hwpack.packages import get_packages_file from linaro_image_tools.hwpack.packages import FetchedPackage +from linaro_image_tools.utils import get_logger parser = argparse.ArgumentParser() @@ -53,7 +53,7 @@ parser.add_argument("-d", "--debug-output", action="store_true", dest="debug", help="Verbose messages are displayed when specified") -logger = logging.getLogger("linaro-hwpack-replace") +logger = None class DummyStanza(object): @@ -65,20 +65,6 @@ fd.write(get_packages_file([self.info])) -def set_logging_param(args): - ch = logging.StreamHandler() - ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(message)s") - ch.setFormatter(formatter) - logger.setLevel(logging.INFO) - logger.addHandler(ch) - if args.debug: - ch.setLevel(logging.DEBUG) - formatter = logging.Formatter( - "%(asctime)s - %(name)s - %(levelname)s - %(message)s") - ch.setFormatter(formatter) - logger.setLevel(logging.DEBUG) - def get_hwpack_name(old_hwpack, build_number): # The build_number would be the job build number. @@ -178,7 +164,7 @@ "and the debian package information\n") return 1 - set_logging_param(args) + logger = get_logger(debug=args.debug) old_hwpack = args.hwpack_name new_deb_file_to_copy = args.deb_pack === modified file 'linaro-media-create' --- linaro-media-create 2012-10-01 12:50:55 +0000 +++ linaro-media-create 2012-10-04 14:21:31 +0000 @@ -22,7 +22,6 @@ import os import sys import tempfile -import logging from linaro_image_tools import cmd_runner @@ -57,6 +56,7 @@ MissingRequiredOption, path_in_tarfile_exists, prep_media_path, + get_logger, ) # Just define the global variables @@ -106,35 +106,29 @@ parser = get_args_parser() args = parser.parse_args() - ch = logging.StreamHandler() - ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(message)s") - ch.setFormatter(formatter) - logger = logging.getLogger("linaro_image_tools") - logger.setLevel(logging.INFO) - logger.addHandler(ch) + logger = get_logger(debug=args.debug) try: additional_option_checks(args) except IncompatibleOptions as e: parser.print_help() - print >> sys.stderr, "\nError:", e.value + logger.error(e.value) sys.exit(1) if args.readhwpack: try: reader = HwpackReader(args.hwpacks) - print reader.get_supported_boards() + logger.info(reader.get_supported_boards()) sys.exit(0) except HwpackReaderError as e: - print >> sys.stderr, "\nError:", e.value + logger.error(e.value) sys.exit(1) try: check_required_args(args) except MissingRequiredOption as e: parser.print_help() - print >> sys.stderr, "\nError:", e.value + logger.error(e.value) sys.exit(1) board_config = board_configs[args.dev] @@ -147,16 +141,16 @@ if media.is_block_device: if not board_config.supports_writing_to_mmc: - print ("The board '%s' does not support the --mmc option. " - "Please use --image_file to create an image file for this " - "board." % args.dev) + logger.error("The board '%s' does not support the --mmc option. " + "Please use --image_file to create an image file for " + "this board." % args.dev) sys.exit(1) if not confirm_device_selection_and_ensure_it_is_ready( args.device, args.nocheck_mmc): sys.exit(1) elif not args.should_format_rootfs or not args.should_format_bootfs: - print ("Do not use --no-boot or --no-part in conjunction with " - "--image_file.") + logger.error("Do not use --no-boot or --no-part in conjunction with " + "--image_file.") sys.exit(1) else: # All good, move on. @@ -170,6 +164,7 @@ BIN_DIR = os.path.join(TMP_DIR, 'rootfs') os.mkdir(BIN_DIR) + logger.info('Searching correct rootfs path') # Identify the correct path for the rootfs filesystem_dir = '' if path_in_tarfile_exists('binary/etc', args.binary): @@ -212,12 +207,12 @@ if args.rootfs == 'btrfs': if not extract_kpkgs: - print ("Desired rootfs type is 'btrfs', trying to auto-install " - "the 'btrfs-tools' package") + logger.info("Desired rootfs type is 'btrfs', trying to " + "auto-install the 'btrfs-tools' package") install_packages(ROOTFS_DIR, TMP_DIR, "btrfs-tools") else: - print ("Desired rootfs type is 'btrfs', please make sure the " - "rootfs also includes 'btrfs-tools'") + logger.info("Desired rootfs type is 'btrfs', please make sure the " + "rootfs also includes 'btrfs-tools'") boot_partition, root_partition = setup_partitions( board_config, media, args.image_size, args.boot_label, args.rfs_label, @@ -248,4 +243,4 @@ board_config.mmc_device_id, board_config.mmc_part_offset, board_config) - print "Done creating Linaro image on %s" % media.path + logger.info("Done creating Linaro image on %s" % media.path) === modified file 'linaro_image_tools/hwpack/__init__.py' --- linaro_image_tools/hwpack/__init__.py 2012-06-13 14:26:02 +0000 +++ linaro_image_tools/hwpack/__init__.py 2012-10-04 14:21:54 +0000 @@ -20,6 +20,7 @@ # USA. import logging +from linaro_image_tools.utils import DEFAULT_LOGGER_NAME class NullHandler(logging.Handler): @@ -28,4 +29,4 @@ h = NullHandler() -logging.getLogger(__name__).addHandler(h) +logging.getLogger(DEFAULT_LOGGER_NAME).addHandler(h) === modified file 'linaro_image_tools/hwpack/hwpack_convert.py' --- linaro_image_tools/hwpack/hwpack_convert.py 2012-10-17 14:53:24 +0000 +++ linaro_image_tools/hwpack/hwpack_convert.py 2012-10-19 12:37:48 +0000 @@ -85,7 +85,7 @@ # The default name used for renaming dtb file DEFAULT_DTB_NAME = 'board.dtb' -logger = logging.getLogger("linaro_hwpack_converter") +logger = logging.getLogger(__name__) class HwpackConverterException(Exception): === modified file 'linaro_image_tools/media_create/__init__.py' --- linaro_image_tools/media_create/__init__.py 2012-10-01 13:44:05 +0000 +++ linaro_image_tools/media_create/__init__.py 2012-10-04 14:23:50 +0000 @@ -173,6 +173,7 @@ help="Select a bootloader from a hardware pack that contains more " "than one. If not specified, it will default to '%s'." % DEFAULT_BOOTLOADER) + parser.add_argument("--debug", action="store_true") add_common_options(parser) return parser === modified file 'linaro_image_tools/media_create/boards.py' --- linaro_image_tools/media_create/boards.py 2012-10-12 12:40:11 +0000 +++ linaro_image_tools/media_create/boards.py 2012-10-19 12:37:48 +0000 @@ -47,6 +47,8 @@ partition_mounted, SECTOR_SIZE, register_loopback) from StringIO import StringIO +logger = logging.getLogger(__name__) + KERNEL_GLOB = 'vmlinuz-*-%(kernel_flavor)s' INITRD_GLOB = 'initrd.img-*-%(kernel_flavor)s' DTB_GLOB = 'dt-*-%(kernel_flavor)s/%(dtb_name)s' @@ -457,14 +459,6 @@ hardwarepack_handler = None - @staticmethod - def _get_logger(): - """ - Gets the logger instance. - :return: The logger instance - """ - return logging.getLogger('linaro_image_tools') - @classmethod def get_metadata_field(cls, field_name): """ Return the metadata value for field_name if it can be found. @@ -877,7 +871,6 @@ :param dest_dir: The directory where to copy each dtb file. :param search_dir: The directory where to search for the real file. """ - logger = logging.getLogger("linaro_image_tools") logger.info("Copying dtb files") for dtb_file in dtb_files: if dtb_file: @@ -922,7 +915,6 @@ if max_size is not None: assert os.path.getsize(from_file) <= max_size, ( "'%s' is larger than %s" % (from_file, max_size)) - logger = logging.getLogger("linaro_image_tools") logger.info("Writing '%s' to '%s' at %s." % (from_file, to_file, seek)) _dd(from_file, to_file, seek=seek) @@ -945,7 +937,6 @@ if cls.spl_in_boot_part: assert spl_file is not None, ( "SPL binary could not be found") - logger = logging.getLogger("linaro_image_tools") logger.info( "Copying spl '%s' to boot partition." % spl_file) cmd_runner.run(["cp", "-v", spl_file, boot_dir], @@ -1105,7 +1096,6 @@ @classmethod def _get_kflavor_files_v2(cls, path): kernel = initrd = dtb = None - logger = logging.getLogger("linaro_image_tools") if cls.vmlinuz: kernel = _get_file_matching(os.path.join(path, cls.vmlinuz)) === modified file 'linaro_image_tools/media_create/partitions.py' --- linaro_image_tools/media_create/partitions.py 2012-06-13 13:42:08 +0000 +++ linaro_image_tools/media_create/partitions.py 2012-10-04 14:25:28 +0000 @@ -36,6 +36,8 @@ from linaro_image_tools import cmd_runner +logger = logging.getLogger(__name__) + HEADS = 128 SECTORS = 32 SECTOR_SIZE = 512 # bytes @@ -205,7 +207,6 @@ try: umount(path) except cmd_runner.SubcommandNonZeroReturnValue, e: - logger = logging.getLogger("linaro_image_tools") logger.warn("Failed to umount %s, but ignoring it because of a " "previous error" % path) logger.warn(e) @@ -586,7 +587,6 @@ :param media: A setup_partitions.Media object to partition. """ - logger = logging.getLogger("linaro_image_tools") tts = 1 while (tts > 0) and (tts <= MAX_TTS): try: === modified file 'linaro_image_tools/utils.py' --- linaro_image_tools/utils.py 2012-07-26 19:49:43 +0000 +++ linaro_image_tools/utils.py 2012-10-04 14:19:05 +0000 @@ -28,6 +28,8 @@ from linaro_image_tools import cmd_runner +DEFAULT_LOGGER_NAME = 'linaro_image_tools' + # try_import was copied from python-testtools 0.9.12 and was originally # licensed under a MIT-style license but relicensed under the GPL in Linaro @@ -76,13 +78,15 @@ def path_in_tarfile_exists(path, tar_file): - tarinfo = tarfile.open(tar_file, 'r:gz') + exists = True try: + tarinfo = tarfile.open(tar_file, 'r:gz') tarinfo.getmember(path) - return True + tarinfo.close() except KeyError: - return False - tarinfo.close() + exists = False + finally: + return exists def verify_file_integrity(sig_file_list): @@ -145,24 +149,24 @@ # Check the outputs from verify_file_integrity # Abort if anything fails. + logger = logging.getLogger(__name__) if len(sig_file_list): if not gpg_sig_pass: - logging.error("GPG signature verification failed.") + logger.error("GPG signature verification failed.") return False, [] if not os.path.basename(binary) in verified_files: - logging.error("OS Binary verification failed") + logger.error("OS Binary verification failed") return False, [] for hwpack in hwpacks: if not os.path.basename(hwpack) in verified_files: - logging.error("Hwpack {0} verification failed".format(hwpack)) + logger.error("Hwpack {0} verification failed".format(hwpack)) return False, [] for verified_file in verified_files: - logging.info('Hash verification of file {0} OK.'.format( + logger.info('Hash verification of file {0} OK.'.format( verified_file)) - return True, verified_files @@ -348,3 +352,31 @@ raise MissingRequiredOption("--dev option is required") if args.binary is None: raise MissingRequiredOption("--binary option is required") + + +def get_logger(name=DEFAULT_LOGGER_NAME, debug=False): + """ + Retrieves a named logger. Default name is set in the variable + DEFAULT_LOG_NAME. Debug is set to False by default. + + :param name: The name of the logger. + :param debug: If debug level should be turned on + :return: A logger instance. + """ + logger = logging.getLogger(name) + ch = logging.StreamHandler() + + if debug: + ch.setLevel(logging.DEBUG) + formatter = logging.Formatter( + "%(asctime)s - %(name)s - %(levelname)s - %(message)s") + ch.setFormatter(formatter) + logger.setLevel(logging.DEBUG) + else: + ch.setLevel(logging.INFO) + formatter = logging.Formatter("%(message)s") + ch.setFormatter(formatter) + logger.setLevel(logging.INFO) + + logger.addHandler(ch) + return logger