diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-09-11 02:43:53 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-09-11 02:43:54 +0000 |
| commit | 0daa0969392dce50266d8dcac31a68d2ba02602f (patch) | |
| tree | b064e34392225d0ab144765784f4f171b8760429 /openstackclient/common/utils.py | |
| parent | fa4b11a86f05cbf3b542a795267490a65d477b0e (diff) | |
| parent | e3c46ece4a496584a54b9d39b55921990db4a7b3 (diff) | |
| download | python-openstackclient-0daa0969392dce50266d8dcac31a68d2ba02602f.tar.gz | |
Merge "Use a common decorator to log 'take_action' activation"
Diffstat (limited to 'openstackclient/common/utils.py')
| -rw-r--r-- | openstackclient/common/utils.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/openstackclient/common/utils.py b/openstackclient/common/utils.py index 2f8419f4..b6726bfa 100644 --- a/openstackclient/common/utils.py +++ b/openstackclient/common/utils.py @@ -26,6 +26,29 @@ from oslo_utils import importutils from openstackclient.common import exceptions +def log_method(log, level=logging.DEBUG): + """Logs a method and its arguments when entered.""" + + def decorator(func): + func_name = func.__name__ + + @six.wraps(func) + def wrapper(self, *args, **kwargs): + if log.isEnabledFor(level): + pretty_args = [] + if args: + pretty_args.extend(str(a) for a in args) + if kwargs: + pretty_args.extend( + "%s=%s" % (k, v) for k, v in six.iteritems(kwargs)) + log.log(level, "%s(%s)", func_name, ", ".join(pretty_args)) + return func(self, *args, **kwargs) + + return wrapper + + return decorator + + def find_resource(manager, name_or_id, **kwargs): """Helper for the _find_* methods. |
