summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/utils.py14
-rw-r--r--openstackclient/compute/client.py7
-rw-r--r--openstackclient/volume/client.py5
3 files changed, 25 insertions, 1 deletions
diff --git a/openstackclient/common/utils.py b/openstackclient/common/utils.py
index 91a20895..94ea2225 100644
--- a/openstackclient/common/utils.py
+++ b/openstackclient/common/utils.py
@@ -15,6 +15,7 @@
"""Common client utilities"""
+import logging
import os
import six
import sys
@@ -215,3 +216,16 @@ def wait_for_status(status_f,
callback(progress)
time.sleep(sleep_time)
return retval
+
+
+def get_effective_log_level():
+ """Returns the lowest logging level considered by logging handlers
+
+ Retrieve an return the smallest log level set among the root
+ logger's handlers (in case of multiple handlers).
+ """
+ root_log = logging.getLogger()
+ min_log_lvl = logging.CRITICAL
+ for handler in root_log.handlers:
+ min_log_lvl = min(min_log_lvl, handler.level)
+ return min_log_lvl
diff --git a/openstackclient/compute/client.py b/openstackclient/compute/client.py
index 4ccb2f6d..765a48db 100644
--- a/openstackclient/compute/client.py
+++ b/openstackclient/compute/client.py
@@ -35,6 +35,10 @@ def make_client(instance):
instance._api_version[API_NAME],
API_VERSIONS)
LOG.debug('instantiating compute client: %s' % compute_client)
+
+ # Set client http_log_debug to True if verbosity level is high enough
+ http_log_debug = utils.get_effective_log_level() <= logging.DEBUG
+
client = compute_client(
username=instance._username,
api_key=instance._password,
@@ -49,7 +53,8 @@ def make_client(instance):
extensions=[],
service_type=API_NAME,
# FIXME(dhellmann): what is service_name?
- service_name='')
+ service_name='',
+ http_log_debug=http_log_debug)
# Populate the Nova client to skip another auth query to Identity
if instance._url:
diff --git a/openstackclient/volume/client.py b/openstackclient/volume/client.py
index e04e8cd7..a53203f1 100644
--- a/openstackclient/volume/client.py
+++ b/openstackclient/volume/client.py
@@ -37,6 +37,10 @@ def make_client(instance):
)
LOG.debug('instantiating volume client')
+
+ # Set client http_log_debug to True if verbosity level is high enough
+ http_log_debug = utils.get_effective_log_level() <= logging.DEBUG
+
client = volume_client(
username=instance._username,
api_key=instance._password,
@@ -44,6 +48,7 @@ def make_client(instance):
auth_url=instance._auth_url,
cacert=instance._cacert,
insecure=instance._insecure,
+ http_log_debug=http_log_debug
)
return client