diff --git a/trove/common/auth.py b/trove/common/auth.py index d32f9a646a..674a963425 100644 --- a/trove/common/auth.py +++ b/trove/common/auth.py @@ -30,22 +30,22 @@ class AuthorizationMiddleware(wsgi.Middleware): def __init__(self, application, auth_providers, **local_config): self.auth_providers = auth_providers - LOG.debug("Auth middleware providers: %s" % auth_providers) + LOG.debug("Auth middleware providers: %s", auth_providers) super(AuthorizationMiddleware, self).__init__(application, **local_config) def process_request(self, request): roles = request.headers.get('X_ROLE', '').split(',') - LOG.debug("Processing auth request with roles: %s" % roles) + LOG.debug("Processing auth request with roles: %s", roles) tenant_id = request.headers.get('X-Tenant-Id', None) - LOG.debug("Processing auth request with tenant_id: %s" % tenant_id) + LOG.debug("Processing auth request with tenant_id: %s", tenant_id) for provider in self.auth_providers: provider.authorize(request, tenant_id, roles) @classmethod def factory(cls, global_config, **local_config): def _factory(app): - LOG.debug("Created auth middleware with config: %s" % + LOG.debug("Created auth middleware with config: %s", local_config) return cls(app, [TenantBasedAuth()], **local_config) return _factory diff --git a/trove/common/cfg.py b/trove/common/cfg.py index e9e3dd17bd..b96eb03b4a 100644 --- a/trove/common/cfg.py +++ b/trove/common/cfg.py @@ -1574,7 +1574,7 @@ def get_configuration_property(property_name): if not datastore_manager: datastore_manager = 'mysql' LOG.warning(_("Manager name ('datastore_manager') not defined, " - "using '%s' options instead.") % datastore_manager) + "using '%s' options instead."), datastore_manager) try: return CONF.get(datastore_manager).get(property_name) diff --git a/trove/common/exception.py b/trove/common/exception.py index 50194f21b3..58f81f9764 100644 --- a/trove/common/exception.py +++ b/trove/common/exception.py @@ -44,7 +44,7 @@ class TroveError(openstack_exception.OpenstackException): self.message = message if self.internal_message is not None: try: - LOG.error(safe_fmt_string(self.internal_message) % kwargs) + LOG.error(safe_fmt_string(self.internal_message), kwargs) except Exception: LOG.error(self.internal_message) self.message = safe_fmt_string(self.message) diff --git a/trove/common/notification.py b/trove/common/notification.py index fa25b4c67d..73ec7990f5 100644 --- a/trove/common/notification.py +++ b/trove/common/notification.py @@ -142,7 +142,7 @@ class TroveBaseTraits(object): publisher_id = publisher_id or CONF.host event_type = self.event_type_format % event_type event_payload = self.serialize(self.context) - LOG.debug('Sending event: %(event_type)s, %(payload)s' % + LOG.debug('Sending event: %(event_type)s, %(payload)s', {'event_type': event_type, 'payload': event_payload}) notifier = rpc.get_notifier( @@ -275,7 +275,7 @@ class DBaaSQuotas(object): } def notify(self): - LOG.debug('Sending event: %(event_type)s, %(payload)s' % + LOG.debug('Sending event: %(event_type)s, %(payload)s', {'event_type': DBaaSQuotas.event_type, 'payload': self.payload}) @@ -401,7 +401,7 @@ class DBaaSAPINotification(object): qualified_event_type = (DBaaSAPINotification.event_type_format % (self.event_type(), event_qualifier)) - LOG.debug('Sending event: %(event_type)s, %(payload)s' % + LOG.debug('Sending event: %(event_type)s, %(payload)s', {'event_type': qualified_event_type, 'payload': payload}) context = copy.copy(self.context) diff --git a/trove/common/server_group.py b/trove/common/server_group.py index f66f6a2c04..a51a6930aa 100644 --- a/trove/common/server_group.py +++ b/trove/common/server_group.py @@ -36,7 +36,7 @@ class ServerGroup(object): if compute_id in sg.members: server_group = sg except Exception: - LOG.exception(_("Could not load server group for compute %s") % + LOG.exception(_("Could not load server group for compute %s"), compute_id) return server_group @@ -46,8 +46,10 @@ class ServerGroup(object): server_group_name = "%s_%s" % ('locality', name_suffix) server_group = client.server_groups.create( name=server_group_name, policies=[locality]) - LOG.debug("Created '%s' server group called %s (id: %s)." % - (locality, server_group_name, server_group.id)) + LOG.debug("Created '%(locality)s' server group called %(group_name)s " + "(id: %(group_id)s).", + {'locality': locality, 'group_name': server_group_name, + 'group_id': server_group.id}) return server_group @@ -59,10 +61,12 @@ class ServerGroup(object): if force or len(server_group.members) <= 1: client = create_nova_client(context) client.server_groups.delete(server_group.id) - LOG.debug("Deleted server group %s." % server_group.id) + LOG.debug("Deleted server group %s.", server_group.id) else: - LOG.debug("Skipping delete of server group %s (members: %s)." % - (server_group.id, server_group.members)) + LOG.debug("Skipping delete of server group %(id)s " + "(members: %(members)s).", + {'id': server_group.id, + 'members': server_group.members}) @classmethod def convert_to_hint(cls, server_group, hints=None): diff --git a/trove/common/utils.py b/trove/common/utils.py index 4efe4771b5..9a81be4569 100644 --- a/trove/common/utils.py +++ b/trove/common/utils.py @@ -246,7 +246,7 @@ def execute_with_timeout(*args, **kwargs): LOG.error( _("Command '%(cmd)s' failed. %(description)s " "Exit code: %(exit_code)s\nstderr: %(stderr)s\n" - "stdout: %(stdout)s") % + "stdout: %(stdout)s"), {'cmd': e.cmd, 'description': e.description or '', 'exit_code': e.exit_code, 'stderr': e.stderr, 'stdout': e.stdout}) @@ -301,7 +301,7 @@ def try_recover(func): if recover_func is not None: recover_func(func) else: - LOG.debug("No recovery method defined for %(func)s" % { + LOG.debug("No recovery method defined for %(func)s", { 'func': func.__name__}) raise return _decorator diff --git a/trove/common/wsgi.py b/trove/common/wsgi.py index c087f6c8fc..c63e9bbe00 100644 --- a/trove/common/wsgi.py +++ b/trove/common/wsgi.py @@ -374,14 +374,13 @@ class Controller(object): @classmethod def get_schema(cls, action, body): - LOG.debug("Getting schema for %s:%s" % - (cls.__class__.__name__, action)) + LOG.debug("Getting schema for %(name)s:%(action)s", + {'name': cls.__class__.__name__, 'action': action}) if cls.schemas: matching_schema = cls.schemas.get(action, {}) if matching_schema: - LOG.debug( - "Found Schema: %s" % matching_schema.get("name", - matching_schema)) + LOG.debug("Found Schema: %s", + matching_schema.get("name", matching_schema)) return matching_schema @staticmethod @@ -557,7 +556,7 @@ class ContextMiddleware(base_wsgi.Middleware): @classmethod def factory(cls, global_config, **local_config): def _factory(app): - LOG.debug("Created context middleware with config: %s" % + LOG.debug("Created context middleware with config: %s", local_config) return cls(app) diff --git a/trove/tests/unittests/common/test_utils.py b/trove/tests/unittests/common/test_utils.py index c469a5f0e3..87b3d31b4d 100644 --- a/trove/tests/unittests/common/test_utils.py +++ b/trove/tests/unittests/common/test_utils.py @@ -63,8 +63,10 @@ class TestUtils(trove_testtools.TestCase): '/usr/bin/foo', log_output_on_error=True) utils.LOG.error.assert_called_with( - u"Command 'test' failed. test-desc Exit code: 42\n" - "stderr: err\nstdout: out") + u"Command '%(cmd)s' failed. %(description)s Exit code: " + u"%(exit_code)s\nstderr: %(stderr)s\nstdout: %(stdout)s", + {'description': 'test-desc', 'stderr': 'err', 'exit_code': 42, + 'stdout': 'out', 'cmd': 'test'}) def test_unpack_singleton(self): self.assertEqual([1, 2, 3], utils.unpack_singleton([1, 2, 3]))