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