Merge "Move options to log level out of shell.py"

This commit is contained in:
Jenkins 2015-09-09 19:46:28 +00:00 committed by Gerrit Code Review
commit 67387ba9cd
3 changed files with 28 additions and 12 deletions

View File

@ -22,6 +22,22 @@ _LOG_MESSAGE_FORMAT = ('%(asctime)s.%(msecs)03d %(process)d '
_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
def log_level_from_options(options):
# if --debug, --quiet or --verbose is not specified,
# the default logging level is warning
log_level = logging.WARNING
if options.verbose_level == 0:
# --quiet
log_level = logging.ERROR
elif options.verbose_level == 2:
# One --verbose
log_level = logging.INFO
elif options.verbose_level >= 3:
# Two or more --verbose
log_level = logging.DEBUG
return log_level
def set_warning_filter(log_level):
if log_level == logging.ERROR:
warnings.simplefilter("ignore")

View File

@ -113,18 +113,7 @@ class OpenStackShell(app.App):
super(OpenStackShell, self).configure_logging()
# Set logging to the requested level
if self.options.verbose_level == 0:
# --quiet
log_level = logging.ERROR
elif self.options.verbose_level == 1:
# This is the default case, no --debug, --verbose or --quiet
log_level = logging.WARNING
elif self.options.verbose_level == 2:
# One --verbose
log_level = logging.INFO
elif self.options.verbose_level >= 3:
# Two or more --verbose
log_level = logging.DEBUG
log_level = context.log_level_from_options(self.options)
context.set_warning_filter(log_level)
# Set the handler logging level of FileHandler(--log-file)

View File

@ -62,6 +62,17 @@ class TestContext(utils.TestCase):
context.setup_logging(shell, cloud_config)
self.assertEqual(True, shell.enable_operation_logging)
def test_log_level_from_options(self):
opts = mock.Mock()
opts.verbose_level = 0
self.assertEqual(logging.ERROR, context.log_level_from_options(opts))
opts.verbose_level = 1
self.assertEqual(logging.WARNING, context.log_level_from_options(opts))
opts.verbose_level = 2
self.assertEqual(logging.INFO, context.log_level_from_options(opts))
opts.verbose_level = 3
self.assertEqual(logging.DEBUG, context.log_level_from_options(opts))
@mock.patch('warnings.simplefilter')
def test_set_warning_filter(self, simplefilter):
context.set_warning_filter(logging.ERROR)