def initialize_logging(self): if self.initialized: return # Three flags control the output modes of the command: # --verbose prints logs to CLI as well as to files # --debug increases the log level to produce more detailed internal # behavior logging # --quiet opposes both verbose and debug if self.debug: log_level = logging.DEBUG elif self.quiet: log_level = logging.WARN else: log_level = logging.INFO default_log_formatter = logging.Formatter( '%(asctime)s %(levelname)s %(message)s') root_logger = logging.getLogger() root_logger.setLevel(logging.WARN) root_stream_handler = logging.StreamHandler() root_stream_handler.setFormatter(default_log_formatter) root_logger.addHandler(root_stream_handler) # If in debug mode, let all modules log if not self.debug: # Otherwise, only allow children of ocp to log root_logger.addFilter(logging.Filter("ocp")) # Get a reference to the logger for elliott self.logger = logutil.getLogger() self.logger.propagate = False # levels will be set at the handler level. Make sure main level is low. self.logger.setLevel(logging.DEBUG) main_stream_handler = logging.StreamHandler() main_stream_handler.setFormatter(default_log_formatter) main_stream_handler.setLevel(log_level) self.logger.addHandler(main_stream_handler) self.debug_log_path = os.path.join(self.working_dir, "debug.log") debug_log_handler = logging.FileHandler(self.debug_log_path) # Add thread information for debug log debug_log_handler.setFormatter( logging.Formatter( '%(asctime)s %(levelname)s (%(thread)d) %(message)s')) debug_log_handler.setLevel(logging.DEBUG) self.logger.addHandler(debug_log_handler)
import json import click import sys import traceback from datetime import datetime from typing import List, Optional from elliottlib.assembly import assembly_issues_config from elliottlib.bzutil import BugTracker, Bug from elliottlib import (Runtime, bzutil, constants, errata, logutil) from elliottlib.cli import common from elliottlib.util import green_prefix, green_print, red_prefix, yellow_print, chunk LOGGER = logutil.getLogger(__name__) class FindBugsMode: def __init__(self, status: List): self.status = set(status) def include_status(self, status: List): self.status |= set(status) def exclude_status(self, status: List): self.status -= set(status) def search(self, bug_tracker_obj: BugTracker, verbose: bool = False): return bug_tracker_obj.search( self.status, verbose=verbose
""" import asyncio import contextvars import functools import json import shlex import subprocess import time import urllib from elliottlib import assertion, logutil, pushd SUCCESS = 0 logger = logutil.getLogger(__name__) class RetryException(Exception): """ Provide a custom exception for retry failures """ pass def retry(retries, task_f, check_f=bool, wait_f=None): """ Try a function up to n times. Raise an exception if it does not pass in time :param retries int: The number of times to retry