Merge "log_method: get logger from decorated method if unspecified"

This commit is contained in:
Jenkins 2016-01-21 09:26:54 +00:00 committed by Gerrit Code Review
commit f51f26868c
2 changed files with 44 additions and 99 deletions

View File

@ -26,28 +26,32 @@ from oslo_utils import importutils
from openstackclient.common import exceptions from openstackclient.common import exceptions
def log_method(log, level=logging.DEBUG): class log_method(object):
"""Logs a method and its arguments when entered."""
def decorator(func): def __init__(self, log=None, level=logging.DEBUG):
self._log = log
self._level = level
def __call__(self, func):
func_name = func.__name__ func_name = func.__name__
if not self._log:
self._log = logging.getLogger(func.__class__.__name__)
@six.wraps(func) @six.wraps(func)
def wrapper(self, *args, **kwargs): def wrapper(*args, **kwargs):
if log.isEnabledFor(level): if self._log.isEnabledFor(self._level):
pretty_args = [] pretty_args = []
if args: if args:
pretty_args.extend(str(a) for a in args) pretty_args.extend(str(a) for a in args)
if kwargs: if kwargs:
pretty_args.extend( pretty_args.extend(
"%s=%s" % (k, v) for k, v in six.iteritems(kwargs)) "%s=%s" % (k, v) for k, v in six.iteritems(kwargs))
log.log(level, "%s(%s)", func_name, ", ".join(pretty_args)) self._log.log(self._level, "%s(%s)",
return func(self, *args, **kwargs) func_name, ", ".join(pretty_args))
return func(*args, **kwargs)
return wrapper return wrapper
return decorator
def find_resource(manager, name_or_id, **kwargs): def find_resource(manager, name_or_id, **kwargs):
"""Helper for the _find_* methods. """Helper for the _find_* methods.

View File

@ -18,14 +18,11 @@
import argparse import argparse
import getpass import getpass
import io import io
import logging
import os import os
import six import six
import sys import sys
from cliff import command from openstackclient.common import command
from cliff import lister
from cliff import show
try: try:
from novaclient.v2 import servers from novaclient.v2 import servers
@ -173,8 +170,6 @@ def _show_progress(progress):
class AddServerSecurityGroup(command.Command): class AddServerSecurityGroup(command.Command):
"""Add security group to server""" """Add security group to server"""
log = logging.getLogger(__name__ + '.AddServerSecurityGroup')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(AddServerSecurityGroup, self).get_parser(prog_name) parser = super(AddServerSecurityGroup, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -209,8 +204,6 @@ class AddServerSecurityGroup(command.Command):
class AddServerVolume(command.Command): class AddServerVolume(command.Command):
"""Add volume to server""" """Add volume to server"""
log = logging.getLogger(__name__ + '.AddServerVolume')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(AddServerVolume, self).get_parser(prog_name) parser = super(AddServerVolume, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -252,11 +245,9 @@ class AddServerVolume(command.Command):
) )
class CreateServer(show.ShowOne): class CreateServer(command.ShowOne):
"""Create a new server""" """Create a new server"""
log = logging.getLogger(__name__ + '.CreateServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(CreateServer, self).get_parser(prog_name) parser = super(CreateServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -379,7 +370,7 @@ class CreateServer(show.ShowOne):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
volume_client = self.app.client_manager.volume volume_client = self.app.client_manager.volume
@ -556,11 +547,9 @@ class CreateServer(show.ShowOne):
return zip(*sorted(six.iteritems(details))) return zip(*sorted(six.iteritems(details)))
class CreateServerImage(show.ShowOne): class CreateServerImage(command.ShowOne):
"""Create a new disk image from a running server""" """Create a new disk image from a running server"""
log = logging.getLogger(__name__ + '.CreateServerImage')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(CreateServerImage, self).get_parser(prog_name) parser = super(CreateServerImage, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -580,7 +569,7 @@ class CreateServerImage(show.ShowOne):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
image_client = self.app.client_manager.image image_client = self.app.client_manager.image
@ -622,8 +611,6 @@ class CreateServerImage(show.ShowOne):
class DeleteServer(command.Command): class DeleteServer(command.Command):
"""Delete server(s)""" """Delete server(s)"""
log = logging.getLogger(__name__ + '.DeleteServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(DeleteServer, self).get_parser(prog_name) parser = super(DeleteServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -639,7 +626,7 @@ class DeleteServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server:
@ -660,11 +647,9 @@ class DeleteServer(command.Command):
raise SystemExit raise SystemExit
class ListServer(lister.Lister): class ListServer(command.Lister):
"""List servers""" """List servers"""
log = logging.getLogger(__name__ + '.ListServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(ListServer, self).get_parser(prog_name) parser = super(ListServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -756,7 +741,7 @@ class ListServer(lister.Lister):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
identity_client = self.app.client_manager.identity identity_client = self.app.client_manager.identity
@ -877,8 +862,6 @@ class LockServer(command.Command):
"""Lock server(s). A non-admin user will not be able to execute actions""" """Lock server(s). A non-admin user will not be able to execute actions"""
log = logging.getLogger(__name__ + '.LockServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(LockServer, self).get_parser(prog_name) parser = super(LockServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -889,7 +872,7 @@ class LockServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -913,8 +896,6 @@ class LockServer(command.Command):
class MigrateServer(command.Command): class MigrateServer(command.Command):
"""Migrate server to different host""" """Migrate server to different host"""
log = logging.getLogger(__name__ + '.MigrateServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(MigrateServer, self).get_parser(prog_name) parser = super(MigrateServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -963,7 +944,7 @@ class MigrateServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -996,8 +977,6 @@ class MigrateServer(command.Command):
class PauseServer(command.Command): class PauseServer(command.Command):
"""Pause server(s)""" """Pause server(s)"""
log = logging.getLogger(__name__ + '.PauseServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(PauseServer, self).get_parser(prog_name) parser = super(PauseServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1008,7 +987,7 @@ class PauseServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server:
@ -1021,8 +1000,6 @@ class PauseServer(command.Command):
class RebootServer(command.Command): class RebootServer(command.Command):
"""Perform a hard or soft server reboot""" """Perform a hard or soft server reboot"""
log = logging.getLogger(__name__ + '.RebootServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(RebootServer, self).get_parser(prog_name) parser = super(RebootServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1054,7 +1031,7 @@ class RebootServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
server = utils.find_resource( server = utils.find_resource(
@ -1073,11 +1050,9 @@ class RebootServer(command.Command):
raise SystemExit raise SystemExit
class RebuildServer(show.ShowOne): class RebuildServer(command.ShowOne):
"""Rebuild server""" """Rebuild server"""
log = logging.getLogger(__name__ + '.RebuildServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(RebuildServer, self).get_parser(prog_name) parser = super(RebuildServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1103,7 +1078,7 @@ class RebuildServer(show.ShowOne):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1133,8 +1108,6 @@ class RebuildServer(show.ShowOne):
class RemoveServerSecurityGroup(command.Command): class RemoveServerSecurityGroup(command.Command):
"""Remove security group from server""" """Remove security group from server"""
log = logging.getLogger(__name__ + '.RemoveServerSecurityGroup')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(RemoveServerSecurityGroup, self).get_parser(prog_name) parser = super(RemoveServerSecurityGroup, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1169,8 +1142,6 @@ class RemoveServerSecurityGroup(command.Command):
class RemoveServerVolume(command.Command): class RemoveServerVolume(command.Command):
"""Remove volume from server""" """Remove volume from server"""
log = logging.getLogger(__name__ + '.RemoveServerVolume')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(RemoveServerVolume, self).get_parser(prog_name) parser = super(RemoveServerVolume, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1206,11 +1177,9 @@ class RemoveServerVolume(command.Command):
) )
class RescueServer(show.ShowOne): class RescueServer(command.ShowOne):
"""Put server in rescue mode""" """Put server in rescue mode"""
log = logging.getLogger(__name__ + '.RescueServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(RescueServer, self).get_parser(prog_name) parser = super(RescueServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1220,7 +1189,7 @@ class RescueServer(show.ShowOne):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1234,8 +1203,6 @@ class RescueServer(show.ShowOne):
class ResizeServer(command.Command): class ResizeServer(command.Command):
"""Scale server to a new flavor""" """Scale server to a new flavor"""
log = logging.getLogger(__name__ + '.ResizeServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(ResizeServer, self).get_parser(prog_name) parser = super(ResizeServer, self).get_parser(prog_name)
phase_group = parser.add_mutually_exclusive_group() phase_group = parser.add_mutually_exclusive_group()
@ -1266,7 +1233,7 @@ class ResizeServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1300,8 +1267,6 @@ class ResizeServer(command.Command):
class ResumeServer(command.Command): class ResumeServer(command.Command):
"""Resume server(s)""" """Resume server(s)"""
log = logging.getLogger(__name__ + '.ResumeServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(ResumeServer, self).get_parser(prog_name) parser = super(ResumeServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1312,7 +1277,7 @@ class ResumeServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1326,8 +1291,6 @@ class ResumeServer(command.Command):
class SetServer(command.Command): class SetServer(command.Command):
"""Set server properties""" """Set server properties"""
log = logging.getLogger(__name__ + '.SetServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(SetServer, self).get_parser(prog_name) parser = super(SetServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1354,7 +1317,7 @@ class SetServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1385,8 +1348,6 @@ class SetServer(command.Command):
class ShelveServer(command.Command): class ShelveServer(command.Command):
"""Shelve server(s)""" """Shelve server(s)"""
log = logging.getLogger(__name__ + '.ShelveServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(ShelveServer, self).get_parser(prog_name) parser = super(ShelveServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1397,7 +1358,7 @@ class ShelveServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server:
@ -1407,11 +1368,9 @@ class ShelveServer(command.Command):
).shelve() ).shelve()
class ShowServer(show.ShowOne): class ShowServer(command.ShowOne):
"""Show server details""" """Show server details"""
log = logging.getLogger(__name__ + '.ShowServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(ShowServer, self).get_parser(prog_name) parser = super(ShowServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1427,7 +1386,7 @@ class ShowServer(show.ShowOne):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
server = utils.find_resource(compute_client.servers, server = utils.find_resource(compute_client.servers,
@ -1447,8 +1406,6 @@ class ShowServer(show.ShowOne):
class SshServer(command.Command): class SshServer(command.Command):
"""Ssh to server""" """Ssh to server"""
log = logging.getLogger(__name__ + '.SshServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(SshServer, self).get_parser(prog_name) parser = super(SshServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1550,7 +1507,7 @@ class SshServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1594,8 +1551,6 @@ class SshServer(command.Command):
class StartServer(command.Command): class StartServer(command.Command):
"""Start server(s).""" """Start server(s)."""
log = logging.getLogger(__name__ + '.StartServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(StartServer, self).get_parser(prog_name) parser = super(StartServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1606,7 +1561,7 @@ class StartServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server:
@ -1619,8 +1574,6 @@ class StartServer(command.Command):
class StopServer(command.Command): class StopServer(command.Command):
"""Stop server(s).""" """Stop server(s)."""
log = logging.getLogger(__name__ + '.StopServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(StopServer, self).get_parser(prog_name) parser = super(StopServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1631,7 +1584,7 @@ class StopServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server:
@ -1644,8 +1597,6 @@ class StopServer(command.Command):
class SuspendServer(command.Command): class SuspendServer(command.Command):
"""Suspend server(s)""" """Suspend server(s)"""
log = logging.getLogger(__name__ + '.SuspendServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(SuspendServer, self).get_parser(prog_name) parser = super(SuspendServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1656,7 +1607,7 @@ class SuspendServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1670,8 +1621,6 @@ class SuspendServer(command.Command):
class UnlockServer(command.Command): class UnlockServer(command.Command):
"""Unlock server(s)""" """Unlock server(s)"""
log = logging.getLogger(__name__ + '.UnlockServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UnlockServer, self).get_parser(prog_name) parser = super(UnlockServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1682,7 +1631,7 @@ class UnlockServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1696,8 +1645,6 @@ class UnlockServer(command.Command):
class UnpauseServer(command.Command): class UnpauseServer(command.Command):
"""Unpause server(s)""" """Unpause server(s)"""
log = logging.getLogger(__name__ + '.UnpauseServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UnpauseServer, self).get_parser(prog_name) parser = super(UnpauseServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1708,7 +1655,7 @@ class UnpauseServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1722,8 +1669,6 @@ class UnpauseServer(command.Command):
class UnrescueServer(command.Command): class UnrescueServer(command.Command):
"""Restore server from rescue mode""" """Restore server from rescue mode"""
log = logging.getLogger(__name__ + '.UnrescueServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UnrescueServer, self).get_parser(prog_name) parser = super(UnrescueServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1733,7 +1678,7 @@ class UnrescueServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
@ -1746,8 +1691,6 @@ class UnrescueServer(command.Command):
class UnsetServer(command.Command): class UnsetServer(command.Command):
"""Unset server properties""" """Unset server properties"""
log = logging.getLogger(__name__ + '.UnsetServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UnsetServer, self).get_parser(prog_name) parser = super(UnsetServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1765,7 +1708,7 @@ class UnsetServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
server = utils.find_resource( server = utils.find_resource(
@ -1783,8 +1726,6 @@ class UnsetServer(command.Command):
class UnshelveServer(command.Command): class UnshelveServer(command.Command):
"""Unshelve server(s)""" """Unshelve server(s)"""
log = logging.getLogger(__name__ + '.UnshelveServer')
def get_parser(self, prog_name): def get_parser(self, prog_name):
parser = super(UnshelveServer, self).get_parser(prog_name) parser = super(UnshelveServer, self).get_parser(prog_name)
parser.add_argument( parser.add_argument(
@ -1795,7 +1736,7 @@ class UnshelveServer(command.Command):
) )
return parser return parser
@utils.log_method(log) @utils.log_method()
def take_action(self, parsed_args): def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute compute_client = self.app.client_manager.compute
for server in parsed_args.server: for server in parsed_args.server: