diff options
| author | Florent Flament <florent.flament-ext@cloudwatt.com> | 2013-12-18 15:07:03 +0000 |
|---|---|---|
| committer | Florent Flament <florent.flament-ext@cloudwatt.com> | 2014-01-02 11:08:53 +0100 |
| commit | a5e087e7a9b88e2ce698ddc32d89e1462509fbb5 (patch) | |
| tree | 223640f85330c5de15b430132125052e42554c56 /openstackclient | |
| parent | de27c1b455624b6123b26bfdd022d2763c541a25 (diff) | |
| download | python-openstackclient-a5e087e7a9b88e2ce698ddc32d89e1462509fbb5.tar.gz | |
Displaying curl commands for nova and cinder calls
When using the -v option, displays curl equivalent commands and http
messages exchanged with the nova and cinder API servers. Displays the
same messages as those displayed with the --debug option of
python-novaclient and python-cinderclient.
Implements: blueprint curl-commands-in-debugging-messages for nova and
cinder related calls
Change-Id: Ibc8ef79d874334585b81d652b9c7df9e874fffa9
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/common/utils.py | 14 | ||||
| -rw-r--r-- | openstackclient/compute/client.py | 7 | ||||
| -rw-r--r-- | openstackclient/volume/client.py | 5 |
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 |
