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
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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:
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user