summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/context.py10
-rw-r--r--openstackclient/shell.py5
-rw-r--r--openstackclient/tests/common/test_context.py9
3 files changed, 20 insertions, 4 deletions
diff --git a/openstackclient/common/context.py b/openstackclient/common/context.py
index b7b16e94..348c5509 100644
--- a/openstackclient/common/context.py
+++ b/openstackclient/common/context.py
@@ -14,6 +14,7 @@
"""Context and Formatter"""
import logging
+import warnings
_LOG_MESSAGE_FORMAT = ('%(asctime)s.%(msecs)03d %(process)d '
'%(levelname)s %(name)s [%(clouds_name)s '
@@ -21,6 +22,15 @@ _LOG_MESSAGE_FORMAT = ('%(asctime)s.%(msecs)03d %(process)d '
_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
+def set_warning_filter(log_level):
+ if log_level == logging.ERROR:
+ warnings.simplefilter("ignore")
+ elif log_level == logging.WARNING:
+ warnings.simplefilter("ignore")
+ elif log_level == logging.INFO:
+ warnings.simplefilter("once")
+
+
def setup_handler_logging_level(handler_type, level):
"""Setup of the handler for set the logging level
diff --git a/openstackclient/shell.py b/openstackclient/shell.py
index 7cef51ba..58eb9f54 100644
--- a/openstackclient/shell.py
+++ b/openstackclient/shell.py
@@ -20,7 +20,6 @@ import getpass
import logging
import sys
import traceback
-import warnings
from cliff import app
from cliff import command
@@ -117,18 +116,16 @@ class OpenStackShell(app.App):
if self.options.verbose_level == 0:
# --quiet
log_level = logging.ERROR
- warnings.simplefilter("ignore")
elif self.options.verbose_level == 1:
# This is the default case, no --debug, --verbose or --quiet
log_level = logging.WARNING
- warnings.simplefilter("ignore")
elif self.options.verbose_level == 2:
# One --verbose
log_level = logging.INFO
- warnings.simplefilter("once")
elif self.options.verbose_level >= 3:
# Two or more --verbose
log_level = logging.DEBUG
+ context.set_warning_filter(log_level)
# Set the handler logging level of FileHandler(--log-file)
# and StreamHandler
diff --git a/openstackclient/tests/common/test_context.py b/openstackclient/tests/common/test_context.py
index 145546a3..8e1bcf83 100644
--- a/openstackclient/tests/common/test_context.py
+++ b/openstackclient/tests/common/test_context.py
@@ -62,6 +62,15 @@ class TestContext(utils.TestCase):
context.setup_logging(shell, cloud_config)
self.assertEqual(True, shell.enable_operation_logging)
+ @mock.patch('warnings.simplefilter')
+ def test_set_warning_filter(self, simplefilter):
+ context.set_warning_filter(logging.ERROR)
+ simplefilter.assert_called_with("ignore")
+ context.set_warning_filter(logging.WARNING)
+ simplefilter.assert_called_with("ignore")
+ context.set_warning_filter(logging.INFO)
+ simplefilter.assert_called_with("once")
+
class Test_LogContext(utils.TestCase):
def setUp(self):