Skip to content

Commit ca9965c

Browse files
committed
Move options to log level out of shell.py
Move the conversion of command line options to log level out of shell.py. Change-Id: I86cb45a85cd63927aa1c87c1eed27542981df659 Implements: blueprint logging-migration
1 parent 9c3c336 commit ca9965c

3 files changed

Lines changed: 28 additions & 12 deletions

File tree

openstackclient/common/context.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,22 @@
2222
_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
2323

2424

25+
def log_level_from_options(options):
26+
# if --debug, --quiet or --verbose is not specified,
27+
# the default logging level is warning
28+
log_level = logging.WARNING
29+
if options.verbose_level == 0:
30+
# --quiet
31+
log_level = logging.ERROR
32+
elif options.verbose_level == 2:
33+
# One --verbose
34+
log_level = logging.INFO
35+
elif options.verbose_level >= 3:
36+
# Two or more --verbose
37+
log_level = logging.DEBUG
38+
return log_level
39+
40+
2541
def set_warning_filter(log_level):
2642
if log_level == logging.ERROR:
2743
warnings.simplefilter("ignore")

openstackclient/shell.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,7 @@ def configure_logging(self):
113113
super(OpenStackShell, self).configure_logging()
114114

115115
# Set logging to the requested level
116-
if self.options.verbose_level == 0:
117-
# --quiet
118-
log_level = logging.ERROR
119-
elif self.options.verbose_level == 1:
120-
# This is the default case, no --debug, --verbose or --quiet
121-
log_level = logging.WARNING
122-
elif self.options.verbose_level == 2:
123-
# One --verbose
124-
log_level = logging.INFO
125-
elif self.options.verbose_level >= 3:
126-
# Two or more --verbose
127-
log_level = logging.DEBUG
116+
log_level = context.log_level_from_options(self.options)
128117
context.set_warning_filter(log_level)
129118

130119
# Set the handler logging level of FileHandler(--log-file)

openstackclient/tests/common/test_context.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,17 @@ def test_setup_logging(self, setuph):
6262
context.setup_logging(shell, cloud_config)
6363
self.assertEqual(True, shell.enable_operation_logging)
6464

65+
def test_log_level_from_options(self):
66+
opts = mock.Mock()
67+
opts.verbose_level = 0
68+
self.assertEqual(logging.ERROR, context.log_level_from_options(opts))
69+
opts.verbose_level = 1
70+
self.assertEqual(logging.WARNING, context.log_level_from_options(opts))
71+
opts.verbose_level = 2
72+
self.assertEqual(logging.INFO, context.log_level_from_options(opts))
73+
opts.verbose_level = 3
74+
self.assertEqual(logging.DEBUG, context.log_level_from_options(opts))
75+
6576
@mock.patch('warnings.simplefilter')
6677
def test_set_warning_filter(self, simplefilter):
6778
context.set_warning_filter(logging.ERROR)

0 commit comments

Comments
 (0)