consistent i18n placeholders (flake8 H701, H702, H703)
- eliminates ambiguously defined keywords in i18n strings which may become incorrectly ordered in a corresponding translation. - ensures formatting operations occur outside of i18n calls - use bare multiline string concatenation instead of 'ab' + \n 'cd' - eliminates an 'empty localization string' (passing a variable to i18n function) Change-Id: I0d78b978cc730e5fb892b80dfacaaf6687cd80be
This commit is contained in:
committed by
Gerrit Code Review
parent
67175a6673
commit
f9b535c84e
@@ -15,10 +15,9 @@ DEFAULT_DOMAIN_ID = CONF.identity.default_domain_id
|
||||
|
||||
|
||||
def _build_policy_check_credentials(self, action, context, kwargs):
|
||||
|
||||
LOG.debug(_('RBAC: Authorizing %s(%s)') % (
|
||||
action,
|
||||
', '.join(['%s=%s' % (k, kwargs[k]) for k in kwargs])))
|
||||
LOG.debug(_('RBAC: Authorizing %(action)s(%(kwargs)s)') % {
|
||||
'action': action,
|
||||
'kwargs': ', '.join(['%s=%s' % (k, kwargs[k]) for k in kwargs])})
|
||||
|
||||
try:
|
||||
token_ref = self.token_api.get_token(
|
||||
|
||||
@@ -84,17 +84,21 @@ def parse_tls_cert(opt):
|
||||
try:
|
||||
return LDAP_TLS_CERTS[opt]
|
||||
except KeyError:
|
||||
raise ValueError((_('Invalid LDAP tls certs option: %s. '
|
||||
'Choose one of: ') %
|
||||
opt) + ', '.join(LDAP_TLS_CERTS.keys()))
|
||||
raise ValueError(_(
|
||||
'Invalid LDAP TLS certs option: %(option). '
|
||||
'Choose one of: %(options)s') % {
|
||||
'option': opt,
|
||||
'options': ', '.join(LDAP_TLS_CERTS.keys())})
|
||||
|
||||
|
||||
def ldap_scope(scope):
|
||||
try:
|
||||
return LDAP_SCOPES[scope]
|
||||
except KeyError:
|
||||
raise ValueError(_('Invalid LDAP scope: %s. Choose one of: ' % scope) +
|
||||
', '.join(LDAP_SCOPES.keys()))
|
||||
raise ValueError(
|
||||
_('Invalid LDAP scope: %(scope)s. Choose one of: %(options)s') % {
|
||||
'scope': scope,
|
||||
'options': ', '.join(LDAP_SCOPES.keys())})
|
||||
|
||||
|
||||
class BaseLdap(object):
|
||||
@@ -182,9 +186,10 @@ class BaseLdap(object):
|
||||
try:
|
||||
ldap_attr, attr_map = item.split(':')
|
||||
except Exception:
|
||||
LOG.warn(_('Invalid additional attribute mapping: "%s". '
|
||||
'Format must be ' +
|
||||
'<ldap_attribute>:<keystone_attribute>') % item)
|
||||
LOG.warn(_(
|
||||
'Invalid additional attribute mapping: "%s". '
|
||||
'Format must be <ldap_attribute>:<keystone_attribute>')
|
||||
% item)
|
||||
continue
|
||||
if attr_map not in self.attribute_mapping:
|
||||
LOG.warn(_('Invalid additional attribute mapping: "%(item)s". '
|
||||
@@ -500,16 +505,19 @@ class LdapWrapper(object):
|
||||
if kind != 'userPassword'
|
||||
else ['****'])
|
||||
for kind, values in ldap_attrs]
|
||||
LOG.debug(_('LDAP add: dn=%s, attrs=%s'), dn, sane_attrs)
|
||||
LOG.debug(_('LDAP add: dn=%(dn)s, attrs=%(attrs)s') % {
|
||||
'dn': dn, 'attrs': sane_attrs})
|
||||
return self.conn.add_s(dn, ldap_attrs)
|
||||
|
||||
def search_s(self, dn, scope, query, attrlist=None):
|
||||
if LOG.isEnabledFor(logging.DEBUG):
|
||||
LOG.debug(_('LDAP search: dn=%s, scope=%s, query=%s, attrs=%s'),
|
||||
dn,
|
||||
scope,
|
||||
query,
|
||||
attrlist)
|
||||
LOG.debug(_(
|
||||
'LDAP search: dn=%(dn)s, scope=%(scope)s, query=%(query)s, '
|
||||
'attrs=%(attrs)s') % {
|
||||
'dn': dn,
|
||||
'scope': scope,
|
||||
'query': query,
|
||||
'attrlist': attrlist})
|
||||
if self.page_size:
|
||||
res = self.paged_search_s(dn, scope, query, attrlist)
|
||||
else:
|
||||
@@ -573,7 +581,8 @@ class LdapWrapper(object):
|
||||
sane_modlist = [(op, kind, (values if kind != 'userPassword'
|
||||
else ['****']))
|
||||
for op, kind, values in ldap_modlist]
|
||||
LOG.debug(_("LDAP modify: dn=%s, modlist=%s"), dn, sane_modlist)
|
||||
LOG.debug(_('LDAP modify: dn=%(dn)s, modlist=%(modlist)s') % {
|
||||
'dn': dn, 'modlist': sane_modlist})
|
||||
|
||||
return self.conn.modify_s(dn, ldap_modlist)
|
||||
|
||||
@@ -582,7 +591,9 @@ class LdapWrapper(object):
|
||||
return self.conn.delete_s(dn)
|
||||
|
||||
def delete_ext_s(self, dn, serverctrls):
|
||||
LOG.debug(_("LDAP delete_ext: dn=%s, serverctrls=%s"), dn, serverctrls)
|
||||
LOG.debug(
|
||||
_('LDAP delete_ext: dn=%(dn)s, serverctrls=%(serverctrls)s') % {
|
||||
'dn': dn, 'serverctrls': serverctrls})
|
||||
return self.conn.delete_ext_s(dn, serverctrls)
|
||||
|
||||
def _disable_paging(self):
|
||||
|
||||
@@ -187,7 +187,8 @@ class FakeLdap(object):
|
||||
raise ldap.SERVER_DOWN
|
||||
|
||||
key = '%s%s' % (self.__prefix, dn)
|
||||
LOG.debug(_('FakeLdap add item: dn=%s, attrs=%s'), dn, attrs)
|
||||
LOG.debug(_('FakeLdap add item: dn=%(dn)s, attrs=%(attrs)s') % {
|
||||
'dn': dn, 'attrs': attrs})
|
||||
if key in self.db:
|
||||
LOG.debug(_('FakeLdap add item failed: dn=%s is'
|
||||
' already in store.'), dn)
|
||||
@@ -236,7 +237,8 @@ class FakeLdap(object):
|
||||
raise ldap.SERVER_DOWN
|
||||
|
||||
key = '%s%s' % (self.__prefix, dn)
|
||||
LOG.debug(_('FakeLdap modify item: dn=%s attrs=%s'), dn, attrs)
|
||||
LOG.debug(_('FakeLdap modify item: dn=%(dn)s attrs=%(attrs)s') % {
|
||||
'dn': dn, 'attrs': attrs})
|
||||
try:
|
||||
entry = self.db[key]
|
||||
except KeyError:
|
||||
@@ -269,8 +271,9 @@ class FakeLdap(object):
|
||||
values.remove(val)
|
||||
except ValueError:
|
||||
LOG.debug(_('FakeLdap modify item failed: '
|
||||
' item has no attribute "%s" with'
|
||||
' value "%s" to delete'), k, val)
|
||||
'item has no attribute "%(k)s" with '
|
||||
'value "%(v)s" to delete') % {
|
||||
'k': k, 'v': val})
|
||||
raise ldap.NO_SUCH_ATTRIBUTE
|
||||
else:
|
||||
LOG.debug(_('FakeLdap modify item failed: unknown'
|
||||
@@ -293,8 +296,9 @@ class FakeLdap(object):
|
||||
if server_fail:
|
||||
raise ldap.SERVER_DOWN
|
||||
|
||||
LOG.debug(_('FakeLdap search at dn=%s scope=%s query=%s'),
|
||||
dn, SCOPE_NAMES.get(scope, scope), query)
|
||||
LOG.debug(
|
||||
_('FakeLdap search at dn=%(dn)s scope=%(scope)s query=%(query)s') %
|
||||
{'dn': dn, 'scope': SCOPE_NAMES.get(scope, scope), 'query': query})
|
||||
if scope == ldap.SCOPE_BASE:
|
||||
try:
|
||||
item_dict = self.db['%s%s' % (self.__prefix, dn)]
|
||||
|
||||
@@ -85,7 +85,8 @@ def _create_memberships(api, memberships, user_map, tenant_map):
|
||||
for membership in memberships:
|
||||
user_id = user_map[membership['user_id']]
|
||||
tenant_id = tenant_map[membership['tenant_id']]
|
||||
LOG.debug(_('Add user %s to tenant %s') % (user_id, tenant_id))
|
||||
LOG.debug(_('Add user %(user_id)s to tenant %(tenant_id)s') % {
|
||||
'user_id': user_id, 'tenant_id': tenant_id})
|
||||
api.add_user_to_project(tenant_id, user_id)
|
||||
|
||||
|
||||
@@ -110,8 +111,12 @@ def _assign_roles(api, assignments, role_map, user_map, tenant_map):
|
||||
role_id = role_map[assignment['role']]
|
||||
user_id = user_map[assignment['user_id']]
|
||||
tenant_id = tenant_map[assignment['tenant_id']]
|
||||
LOG.debug(_('Assign role %s to user %s on tenant %s') %
|
||||
(role_id, user_id, tenant_id))
|
||||
LOG.debug(_(
|
||||
'Assign role %(role_id)s to user %(user_id)s on tenant '
|
||||
'%(tenant_id)s') % {
|
||||
'role_id': role_id,
|
||||
'user_id': user_id,
|
||||
'tenant_id': tenant_id})
|
||||
api.add_role_to_user_and_project(user_id, tenant_id, role_id)
|
||||
|
||||
|
||||
@@ -125,6 +130,8 @@ def _create_ec2_creds(ec2_api, identity_api, ec2_creds, user_map):
|
||||
'user_id': user_id,
|
||||
'tenant_id': tenant_id,
|
||||
}
|
||||
LOG.debug(_('Creating ec2 cred for user %s and tenant %s') %
|
||||
(user_id, tenant_id))
|
||||
LOG.debug(_(
|
||||
'Creating ec2 cred for user %(user_id)s and tenant '
|
||||
'%(tenant_id)s') % {
|
||||
'user_id': user_id, 'tenant_id': tenant_id})
|
||||
ec2_api.create_credential(None, cred_dict)
|
||||
|
||||
@@ -217,10 +217,6 @@ def hash_signed_token(signed_text):
|
||||
|
||||
def setup_remote_pydev_debug():
|
||||
if CONF.pydev_debug_host and CONF.pydev_debug_port:
|
||||
error_msg = ('Error setting up the debug environment. Verify that the'
|
||||
' option --debug-url has the format <host>:<port> and '
|
||||
'that a debugger processes is listening on that port.')
|
||||
|
||||
try:
|
||||
try:
|
||||
from pydevd import pydevd
|
||||
@@ -233,7 +229,10 @@ def setup_remote_pydev_debug():
|
||||
stderrToServer=True)
|
||||
return True
|
||||
except:
|
||||
LOG.exception(_(error_msg))
|
||||
LOG.exception(_(
|
||||
'Error setting up the debug environment. Verify that the '
|
||||
'option --debug-url has the format <host>:<port> and that a '
|
||||
'debugger processes is listening on that port.'))
|
||||
raise
|
||||
|
||||
|
||||
|
||||
@@ -181,8 +181,9 @@ class Application(BaseApplication):
|
||||
try:
|
||||
result = method(context, **params)
|
||||
except exception.Unauthorized as e:
|
||||
LOG.warning(_("Authorization failed. %s from %s")
|
||||
% (e, req.environ['REMOTE_ADDR']))
|
||||
LOG.warning(
|
||||
_('Authorization failed. %(exception)s from %(remote_addr)s') %
|
||||
{'exception': e, 'remote_addr': req.environ['REMOTE_ADDR']})
|
||||
return render_exception(e)
|
||||
except exception.Error as e:
|
||||
LOG.warning(e)
|
||||
|
||||
@@ -922,9 +922,9 @@ class GroupApi(common_ldap.BaseLdap, ApiShimMixin):
|
||||
self.member_attribute,
|
||||
self.user_api._id_to_dn(user_id))])
|
||||
except ldap.TYPE_OR_VALUE_EXISTS:
|
||||
msg = _('User %s is already a member of group %s'
|
||||
% (user_id, group_id))
|
||||
raise exception.Conflict(msg)
|
||||
raise exception.Conflict(_(
|
||||
'User %(user_id)s is already a member of group %(group_id)s') %
|
||||
{'user_id': user_id, 'group_id': group_id})
|
||||
|
||||
def remove_user(self, user_id, group_id):
|
||||
conn = self.get_connection()
|
||||
|
||||
@@ -421,9 +421,9 @@ class Identity(sql.Base, identity.Driver):
|
||||
metadata_ref = self.get_metadata(user_id, tenant_id)
|
||||
roles = set(metadata_ref.get('roles', []))
|
||||
if role_id not in roles:
|
||||
msg = _('Cannot remove role that has not been granted, %s' %
|
||||
raise exception.RoleNotFound(message=_(
|
||||
'Cannot remove role that has not been granted, %s') %
|
||||
role_id)
|
||||
raise exception.RoleNotFound(message=msg)
|
||||
roles.remove(role_id)
|
||||
metadata_ref['roles'] = list(roles)
|
||||
if len(roles):
|
||||
|
||||
@@ -90,5 +90,7 @@ def enforce(credentials, action, target, do_raise=True):
|
||||
|
||||
class Policy(policy.Driver):
|
||||
def enforce(self, credentials, action, target):
|
||||
LOG.debug(_('enforce %s: %s'), action, credentials)
|
||||
LOG.debug(_('enforce %(action)s: %(credentials)s') % {
|
||||
'action': action,
|
||||
'credentials': credentials})
|
||||
enforce(credentials, action, target)
|
||||
|
||||
5
tox.ini
5
tox.ini
@@ -40,10 +40,7 @@ show-source = true
|
||||
# H402: one line docstring needs punctuation
|
||||
# H403: multi line docstring end on new line
|
||||
# H404: multi line docstring should start with a summary
|
||||
# H701: empty localization string
|
||||
# H702: use bare string concatenation instead of +; formatting operation should be outside of localization method call
|
||||
# H703: multiple positional placeholders
|
||||
ignore = H201,H301,H302,H304,H306,H401,H402,H403,H404,H701,H702,H703
|
||||
ignore = H201,H301,H302,H304,H306,H401,H402,H403,H404
|
||||
|
||||
builtins = _
|
||||
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,vendor
|
||||
|
||||
Reference in New Issue
Block a user