Merge "Handle log message interpolation by the logger in common/"

This commit is contained in:
Jenkins 2017-06-07 06:22:57 +00:00 committed by Gerrit Code Review
commit c5d5007d18
8 changed files with 30 additions and 25 deletions

View File

@ -30,22 +30,22 @@ class AuthorizationMiddleware(wsgi.Middleware):
def __init__(self, application, auth_providers, **local_config): def __init__(self, application, auth_providers, **local_config):
self.auth_providers = auth_providers 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, super(AuthorizationMiddleware, self).__init__(application,
**local_config) **local_config)
def process_request(self, request): def process_request(self, request):
roles = request.headers.get('X_ROLE', '').split(',') 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) 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: for provider in self.auth_providers:
provider.authorize(request, tenant_id, roles) provider.authorize(request, tenant_id, roles)
@classmethod @classmethod
def factory(cls, global_config, **local_config): def factory(cls, global_config, **local_config):
def _factory(app): def _factory(app):
LOG.debug("Created auth middleware with config: %s" % LOG.debug("Created auth middleware with config: %s",
local_config) local_config)
return cls(app, [TenantBasedAuth()], **local_config) return cls(app, [TenantBasedAuth()], **local_config)
return _factory return _factory

View File

@ -1574,7 +1574,7 @@ def get_configuration_property(property_name):
if not datastore_manager: if not datastore_manager:
datastore_manager = 'mysql' datastore_manager = 'mysql'
LOG.warning(_("Manager name ('datastore_manager') not defined, " LOG.warning(_("Manager name ('datastore_manager') not defined, "
"using '%s' options instead.") % datastore_manager) "using '%s' options instead."), datastore_manager)
try: try:
return CONF.get(datastore_manager).get(property_name) return CONF.get(datastore_manager).get(property_name)

View File

@ -44,7 +44,7 @@ class TroveError(openstack_exception.OpenstackException):
self.message = message self.message = message
if self.internal_message is not None: if self.internal_message is not None:
try: try:
LOG.error(safe_fmt_string(self.internal_message) % kwargs) LOG.error(safe_fmt_string(self.internal_message), kwargs)
except Exception: except Exception:
LOG.error(self.internal_message) LOG.error(self.internal_message)
self.message = safe_fmt_string(self.message) self.message = safe_fmt_string(self.message)

View File

@ -142,7 +142,7 @@ class TroveBaseTraits(object):
publisher_id = publisher_id or CONF.host publisher_id = publisher_id or CONF.host
event_type = self.event_type_format % event_type event_type = self.event_type_format % event_type
event_payload = self.serialize(self.context) 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}) {'event_type': event_type, 'payload': event_payload})
notifier = rpc.get_notifier( notifier = rpc.get_notifier(
@ -275,7 +275,7 @@ class DBaaSQuotas(object):
} }
def notify(self): 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, {'event_type': DBaaSQuotas.event_type,
'payload': self.payload}) 'payload': self.payload})
@ -401,7 +401,7 @@ class DBaaSAPINotification(object):
qualified_event_type = (DBaaSAPINotification.event_type_format qualified_event_type = (DBaaSAPINotification.event_type_format
% (self.event_type(), event_qualifier)) % (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}) {'event_type': qualified_event_type, 'payload': payload})
context = copy.copy(self.context) context = copy.copy(self.context)

View File

@ -36,7 +36,7 @@ class ServerGroup(object):
if compute_id in sg.members: if compute_id in sg.members:
server_group = sg server_group = sg
except Exception: except Exception:
LOG.exception(_("Could not load server group for compute %s") % LOG.exception(_("Could not load server group for compute %s"),
compute_id) compute_id)
return server_group return server_group
@ -46,8 +46,10 @@ class ServerGroup(object):
server_group_name = "%s_%s" % ('locality', name_suffix) server_group_name = "%s_%s" % ('locality', name_suffix)
server_group = client.server_groups.create( server_group = client.server_groups.create(
name=server_group_name, policies=[locality]) name=server_group_name, policies=[locality])
LOG.debug("Created '%s' server group called %s (id: %s)." % LOG.debug("Created '%(locality)s' server group called %(group_name)s "
(locality, server_group_name, server_group.id)) "(id: %(group_id)s).",
{'locality': locality, 'group_name': server_group_name,
'group_id': server_group.id})
return server_group return server_group
@ -59,10 +61,12 @@ class ServerGroup(object):
if force or len(server_group.members) <= 1: if force or len(server_group.members) <= 1:
client = create_nova_client(context) client = create_nova_client(context)
client.server_groups.delete(server_group.id) 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: else:
LOG.debug("Skipping delete of server group %s (members: %s)." % LOG.debug("Skipping delete of server group %(id)s "
(server_group.id, server_group.members)) "(members: %(members)s).",
{'id': server_group.id,
'members': server_group.members})
@classmethod @classmethod
def convert_to_hint(cls, server_group, hints=None): def convert_to_hint(cls, server_group, hints=None):

View File

@ -246,7 +246,7 @@ def execute_with_timeout(*args, **kwargs):
LOG.error( LOG.error(
_("Command '%(cmd)s' failed. %(description)s " _("Command '%(cmd)s' failed. %(description)s "
"Exit code: %(exit_code)s\nstderr: %(stderr)s\n" "Exit code: %(exit_code)s\nstderr: %(stderr)s\n"
"stdout: %(stdout)s") % "stdout: %(stdout)s"),
{'cmd': e.cmd, 'description': e.description or '', {'cmd': e.cmd, 'description': e.description or '',
'exit_code': e.exit_code, 'stderr': e.stderr, 'exit_code': e.exit_code, 'stderr': e.stderr,
'stdout': e.stdout}) 'stdout': e.stdout})
@ -301,7 +301,7 @@ def try_recover(func):
if recover_func is not None: if recover_func is not None:
recover_func(func) recover_func(func)
else: else:
LOG.debug("No recovery method defined for %(func)s" % { LOG.debug("No recovery method defined for %(func)s", {
'func': func.__name__}) 'func': func.__name__})
raise raise
return _decorator return _decorator

View File

@ -374,14 +374,13 @@ class Controller(object):
@classmethod @classmethod
def get_schema(cls, action, body): def get_schema(cls, action, body):
LOG.debug("Getting schema for %s:%s" % LOG.debug("Getting schema for %(name)s:%(action)s",
(cls.__class__.__name__, action)) {'name': cls.__class__.__name__, 'action': action})
if cls.schemas: if cls.schemas:
matching_schema = cls.schemas.get(action, {}) matching_schema = cls.schemas.get(action, {})
if matching_schema: if matching_schema:
LOG.debug( LOG.debug("Found Schema: %s",
"Found Schema: %s" % matching_schema.get("name", matching_schema.get("name", matching_schema))
matching_schema))
return matching_schema return matching_schema
@staticmethod @staticmethod
@ -557,7 +556,7 @@ class ContextMiddleware(base_wsgi.Middleware):
@classmethod @classmethod
def factory(cls, global_config, **local_config): def factory(cls, global_config, **local_config):
def _factory(app): def _factory(app):
LOG.debug("Created context middleware with config: %s" % LOG.debug("Created context middleware with config: %s",
local_config) local_config)
return cls(app) return cls(app)

View File

@ -63,8 +63,10 @@ class TestUtils(trove_testtools.TestCase):
'/usr/bin/foo', log_output_on_error=True) '/usr/bin/foo', log_output_on_error=True)
utils.LOG.error.assert_called_with( utils.LOG.error.assert_called_with(
u"Command 'test' failed. test-desc Exit code: 42\n" u"Command '%(cmd)s' failed. %(description)s Exit code: "
"stderr: err\nstdout: out") 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): def test_unpack_singleton(self):
self.assertEqual([1, 2, 3], utils.unpack_singleton([1, 2, 3])) self.assertEqual([1, 2, 3], utils.unpack_singleton([1, 2, 3]))