Use dict.items() rather than six.iteritems()
six.iteritems() is unnecessary in most cases since items() works fine. Change-Id: I6911512fc67a74b32652cb84660d26d53fe711ed
This commit is contained in:
@@ -14,7 +14,6 @@
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
import six
|
||||
import sqlalchemy
|
||||
from sqlalchemy.sql.expression import false
|
||||
|
||||
@@ -415,4 +414,4 @@ class RoleAssignment(sql.ModelBase, sql.DictBase):
|
||||
RoleAssignment doesn't have non-indexed 'extra' attributes, so the
|
||||
parent implementation is not applicable.
|
||||
"""
|
||||
return dict(six.iteritems(self))
|
||||
return dict(self.items())
|
||||
|
||||
@@ -52,7 +52,7 @@ def convert_method_list_to_integer(methods):
|
||||
|
||||
method_ints = []
|
||||
for method in methods:
|
||||
for k, v in six.iteritems(method_map):
|
||||
for k, v in method_map.items():
|
||||
if v == method:
|
||||
method_ints.append(k)
|
||||
return sum(method_ints)
|
||||
@@ -72,7 +72,7 @@ def convert_integer_to_method_list(method_int):
|
||||
|
||||
method_map = construct_method_map_from_config()
|
||||
method_ints = []
|
||||
for k, v in six.iteritems(method_map):
|
||||
for k, v in method_map.items():
|
||||
method_ints.append(k)
|
||||
method_ints.sort(reverse=True)
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
import itertools
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
import sqlalchemy
|
||||
from sqlalchemy.sql import true
|
||||
|
||||
@@ -284,8 +283,7 @@ class Catalog(catalog.Driver):
|
||||
|
||||
"""
|
||||
substitutions = dict(
|
||||
itertools.chain(six.iteritems(CONF),
|
||||
six.iteritems(CONF.eventlet_server)))
|
||||
itertools.chain(CONF.items(), CONF.eventlet_server.items()))
|
||||
substitutions.update({'user_id': user_id})
|
||||
silent_keyerror_failures = []
|
||||
if tenant_id:
|
||||
@@ -342,8 +340,7 @@ class Catalog(catalog.Driver):
|
||||
|
||||
"""
|
||||
d = dict(
|
||||
itertools.chain(six.iteritems(CONF),
|
||||
six.iteritems(CONF.eventlet_server)))
|
||||
itertools.chain(CONF.items(), CONF.eventlet_server.items()))
|
||||
d.update({'user_id': user_id})
|
||||
silent_keyerror_failures = []
|
||||
if tenant_id:
|
||||
|
||||
@@ -17,7 +17,6 @@ import os.path
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
import six
|
||||
|
||||
from keystone.catalog.backends import kvs
|
||||
from keystone.catalog import core
|
||||
@@ -121,8 +120,7 @@ class Catalog(kvs.Catalog):
|
||||
|
||||
"""
|
||||
substitutions = dict(
|
||||
itertools.chain(six.iteritems(CONF),
|
||||
six.iteritems(CONF.eventlet_server)))
|
||||
itertools.chain(CONF.items(), CONF.eventlet_server.items()))
|
||||
substitutions.update({'user_id': user_id})
|
||||
silent_keyerror_failures = []
|
||||
if tenant_id:
|
||||
@@ -134,12 +132,12 @@ class Catalog(kvs.Catalog):
|
||||
# TODO(davechen): If there is service with no endpoints, we should
|
||||
# skip the service instead of keeping it in the catalog.
|
||||
# see bug #1436704.
|
||||
for region, region_ref in six.iteritems(self.templates):
|
||||
for region, region_ref in self.templates.items():
|
||||
catalog[region] = {}
|
||||
for service, service_ref in six.iteritems(region_ref):
|
||||
for service, service_ref in region_ref.items():
|
||||
service_data = {}
|
||||
try:
|
||||
for k, v in six.iteritems(service_ref):
|
||||
for k, v in service_ref.items():
|
||||
formatted_value = core.format_url(
|
||||
v, substitutions,
|
||||
silent_keyerror_failures=silent_keyerror_failures)
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from keystone.catalog import core
|
||||
from keystone.catalog import schema
|
||||
from keystone.common import controller
|
||||
@@ -133,7 +131,7 @@ class Endpoint(controller.V2Controller):
|
||||
legacy_endpoint_ref.pop(url)
|
||||
|
||||
legacy_endpoint_id = uuid.uuid4().hex
|
||||
for interface, url in six.iteritems(urls):
|
||||
for interface, url in urls.items():
|
||||
endpoint_ref = endpoint.copy()
|
||||
endpoint_ref['id'] = uuid.uuid4().hex
|
||||
endpoint_ref['legacy_endpoint_id'] = legacy_endpoint_id
|
||||
|
||||
@@ -514,14 +514,14 @@ class Driver(object):
|
||||
v2_catalog = self.get_catalog(user_id, tenant_id)
|
||||
v3_catalog = []
|
||||
|
||||
for region_name, region in six.iteritems(v2_catalog):
|
||||
for service_type, service in six.iteritems(region):
|
||||
for region_name, region in v2_catalog.items():
|
||||
for service_type, service in region.items():
|
||||
service_v3 = {
|
||||
'type': service_type,
|
||||
'endpoints': []
|
||||
}
|
||||
|
||||
for attr, value in six.iteritems(service):
|
||||
for attr, value in service.items():
|
||||
# Attributes that end in URL are interfaces. In the V2
|
||||
# catalog, these are internalURL, publicURL, and adminURL.
|
||||
# For example, <region_name>.publicURL=<URL> in the V2
|
||||
|
||||
+1
-1
@@ -399,7 +399,7 @@ class MongoApi(object):
|
||||
Refer to MongoDB documentation around TTL index for further details.
|
||||
"""
|
||||
indexes = collection.index_information()
|
||||
for indx_name, index_data in six.iteritems(indexes):
|
||||
for indx_name, index_data in indexes.items():
|
||||
if all(k in index_data for k in ('key', 'expireAfterSeconds')):
|
||||
existing_value = index_data['expireAfterSeconds']
|
||||
fld_present = 'doc_date' in index_data['key'][0]
|
||||
|
||||
@@ -27,8 +27,6 @@ See also:
|
||||
|
||||
import traceback
|
||||
|
||||
import six
|
||||
|
||||
from keystone.i18n import _
|
||||
|
||||
|
||||
@@ -203,7 +201,7 @@ def resolve_future_dependencies(__provider_name=None):
|
||||
# Resolve future dependencies, raises UnresolvableDependencyException if
|
||||
# there's no provider registered.
|
||||
try:
|
||||
for dependency, targets in six.iteritems(_future_dependencies.copy()):
|
||||
for dependency, targets in _future_dependencies.copy().items():
|
||||
if dependency not in _REGISTRY:
|
||||
# a Class was registered that could fulfill the dependency, but
|
||||
# it has not yet been initialized.
|
||||
|
||||
@@ -13,8 +13,6 @@
|
||||
# under the License.
|
||||
|
||||
|
||||
import six
|
||||
|
||||
from keystone import exception
|
||||
from keystone.i18n import _
|
||||
|
||||
@@ -82,7 +80,7 @@ class Status(object):
|
||||
def translate_urls(json_home, new_prefix):
|
||||
"""Given a JSON Home document, sticks new_prefix on each of the urls."""
|
||||
|
||||
for dummy_rel, resource in six.iteritems(json_home['resources']):
|
||||
for dummy_rel, resource in json_home['resources'].items():
|
||||
if 'href' in resource:
|
||||
resource['href'] = new_prefix + resource['href']
|
||||
elif 'href-template' in resource:
|
||||
|
||||
@@ -25,7 +25,6 @@ from dogpile.core import nameregistry
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
from oslo_utils import importutils
|
||||
import six
|
||||
|
||||
from keystone import exception
|
||||
from keystone.i18n import _
|
||||
@@ -232,7 +231,7 @@ class KeyValueStore(object):
|
||||
if config_args['lock_timeout'] > 0:
|
||||
config_args['lock_timeout'] += LOCK_WINDOW
|
||||
|
||||
for argument, value in six.iteritems(config_args):
|
||||
for argument, value in config_args.items():
|
||||
arg_key = '.'.join([prefix, 'arguments', argument])
|
||||
conf_dict[arg_key] = value
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ def convert_ldap_result(ldap_result):
|
||||
at_least_one_referral = True
|
||||
continue
|
||||
|
||||
for kind, values in six.iteritems(attrs):
|
||||
for kind, values in attrs.items():
|
||||
try:
|
||||
val2py = enabled2py if kind == 'enabled' else ldap2py
|
||||
ldap_attrs[kind] = [val2py(x) for x in values]
|
||||
@@ -739,7 +739,7 @@ class PooledLDAPHandler(LDAPHandler):
|
||||
# if connection has a lifetime, then it already has options specified
|
||||
if conn.get_lifetime() > 30:
|
||||
return
|
||||
for option, invalue in six.iteritems(self.conn_options):
|
||||
for option, invalue in self.conn_options.items():
|
||||
conn.set_option(option, invalue)
|
||||
|
||||
def _get_pool_connection(self):
|
||||
@@ -1085,7 +1085,7 @@ def register_handler(prefix, handler):
|
||||
|
||||
|
||||
def _get_connection(conn_url, use_pool=False, use_auth_pool=False):
|
||||
for prefix, handler in six.iteritems(_HANDLERS):
|
||||
for prefix, handler in _HANDLERS.items():
|
||||
if conn_url.startswith(prefix):
|
||||
return handler()
|
||||
|
||||
@@ -1171,7 +1171,7 @@ class BaseLdap(object):
|
||||
self.object_class = (getattr(conf.ldap, objclass)
|
||||
or self.DEFAULT_OBJECTCLASS)
|
||||
|
||||
for k, v in six.iteritems(self.attribute_options_names):
|
||||
for k, v in self.attribute_options_names.items():
|
||||
v = '%s_%s_attribute' % (self.options_name, v)
|
||||
self.attribute_mapping[k] = getattr(conf.ldap, v)
|
||||
|
||||
@@ -1320,7 +1320,7 @@ class BaseLdap(object):
|
||||
# in a case-insensitive way. We use the case specified in the
|
||||
# mapping for the model to ensure we have a predictable way of
|
||||
# retrieving values later.
|
||||
lower_res = {k.lower(): v for k, v in six.iteritems(res[1])}
|
||||
lower_res = {k.lower(): v for k, v in res[1].items()}
|
||||
|
||||
id_attrs = lower_res.get(self.id_attr.lower())
|
||||
if not id_attrs:
|
||||
@@ -1406,7 +1406,7 @@ class BaseLdap(object):
|
||||
self.affirm_unique(values)
|
||||
object_classes = self.structural_classes + [self.object_class]
|
||||
attrs = [('objectClass', object_classes)]
|
||||
for k, v in six.iteritems(values):
|
||||
for k, v in values.items():
|
||||
if k in self.attribute_ignore:
|
||||
continue
|
||||
if k == 'id':
|
||||
@@ -1418,7 +1418,7 @@ class BaseLdap(object):
|
||||
if attr_type is not None:
|
||||
attrs.append((attr_type, [v]))
|
||||
extra_attrs = [attr for attr, name
|
||||
in six.iteritems(self.extra_attr_mapping)
|
||||
in self.extra_attr_mapping.items()
|
||||
if name == k]
|
||||
for attr in extra_attrs:
|
||||
attrs.append((attr, [v]))
|
||||
@@ -1481,7 +1481,7 @@ class BaseLdap(object):
|
||||
|
||||
query = (u'(&%s%s)' %
|
||||
(query, ''.join([calc_filter(k, v) for k, v in
|
||||
six.iteritems(query_params)])))
|
||||
query_params.items()])))
|
||||
with self.get_connection() as conn:
|
||||
return conn.search_s(search_base, scope, query, attrlist)
|
||||
|
||||
@@ -1511,7 +1511,7 @@ class BaseLdap(object):
|
||||
old_obj = self.get(object_id)
|
||||
|
||||
modlist = []
|
||||
for k, v in six.iteritems(values):
|
||||
for k, v in values.items():
|
||||
if k == 'id':
|
||||
# id can't be modified.
|
||||
continue
|
||||
@@ -1650,7 +1650,7 @@ class BaseLdap(object):
|
||||
(query, ''.join(['(%s=%s)'
|
||||
% (k, ldap.filter.escape_filter_chars(v))
|
||||
for k, v in
|
||||
six.iteritems(query_params)])))
|
||||
query_params.items()])))
|
||||
not_deleted_nodes = []
|
||||
with self.get_connection() as conn:
|
||||
try:
|
||||
|
||||
+8
-10
@@ -86,7 +86,7 @@ def validate_token_bind(context, token_ref):
|
||||
LOG.info(_LI("Named bind mode %s not in bind information"), name)
|
||||
raise exception.Unauthorized()
|
||||
|
||||
for bind_type, identifier in six.iteritems(bind):
|
||||
for bind_type, identifier in bind.items():
|
||||
if bind_type == 'kerberos':
|
||||
if not (context['environment'].get('AUTH_TYPE', '').lower()
|
||||
== 'negotiate'):
|
||||
@@ -197,8 +197,8 @@ class Application(BaseApplication):
|
||||
|
||||
# allow middleware up the stack to provide context, params and headers.
|
||||
context = req.environ.get(CONTEXT_ENV, {})
|
||||
context['query_string'] = dict(six.iteritems(req.params))
|
||||
context['headers'] = dict(six.iteritems(req.headers))
|
||||
context['query_string'] = dict(req.params.items())
|
||||
context['headers'] = dict(req.headers.items())
|
||||
context['path'] = req.environ['PATH_INFO']
|
||||
scheme = (None if not CONF.secure_proxy_ssl_header
|
||||
else req.environ.get(CONF.secure_proxy_ssl_header))
|
||||
@@ -285,7 +285,7 @@ class Application(BaseApplication):
|
||||
return arg.replace(':', '_').replace('-', '_')
|
||||
|
||||
def _normalize_dict(self, d):
|
||||
return {self._normalize_arg(k): v for (k, v) in six.iteritems(d)}
|
||||
return {self._normalize_arg(k): v for (k, v) in d.items()}
|
||||
|
||||
def assert_admin(self, context):
|
||||
"""Ensure the user is an admin.
|
||||
@@ -367,8 +367,7 @@ class Application(BaseApplication):
|
||||
|
||||
if url:
|
||||
substitutions = dict(
|
||||
itertools.chain(six.iteritems(CONF),
|
||||
six.iteritems(CONF.eventlet_server)))
|
||||
itertools.chain(CONF.items(), CONF.eventlet_server.items()))
|
||||
|
||||
url = url % substitutions
|
||||
else:
|
||||
@@ -487,7 +486,7 @@ class Debug(Middleware):
|
||||
resp = req.get_response(self.application)
|
||||
if not hasattr(LOG, 'isEnabledFor') or LOG.isEnabledFor(LOG.debug):
|
||||
LOG.debug('%s %s %s', ('*' * 20), 'RESPONSE HEADERS', ('*' * 20))
|
||||
for (key, value) in six.iteritems(resp.headers):
|
||||
for (key, value) in resp.headers.items():
|
||||
LOG.debug('%s = %s', key, value)
|
||||
LOG.debug('')
|
||||
|
||||
@@ -773,7 +772,7 @@ def render_response(body=None, status=None, headers=None, method=None):
|
||||
# both py2x and py3x.
|
||||
stored_headers = resp.headers.copy()
|
||||
resp.body = b''
|
||||
for header, value in six.iteritems(stored_headers):
|
||||
for header, value in stored_headers.items():
|
||||
resp.headers[header] = value
|
||||
|
||||
return resp
|
||||
@@ -808,8 +807,7 @@ def render_exception(error, context=None, request=None, user_locale=None):
|
||||
url = 'http://localhost:%d' % CONF.eventlet_server.public_port
|
||||
else:
|
||||
substitutions = dict(
|
||||
itertools.chain(six.iteritems(CONF),
|
||||
six.iteritems(CONF.eventlet_server)))
|
||||
itertools.chain(CONF.items(), CONF.eventlet_server.items()))
|
||||
url = url % substitutions
|
||||
|
||||
headers.append(('WWW-Authenticate', 'Keystone uri="%s"' % url))
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
|
||||
from keystone.catalog.backends import sql
|
||||
from keystone.catalog import core as catalog_core
|
||||
@@ -27,7 +26,7 @@ CONF = cfg.CONF
|
||||
@dependency.requires('endpoint_filter_api')
|
||||
class EndpointFilterCatalog(sql.Catalog):
|
||||
def get_v3_catalog(self, user_id, project_id):
|
||||
substitutions = dict(six.iteritems(CONF))
|
||||
substitutions = dict(CONF.items())
|
||||
substitutions.update({'tenant_id': project_id, 'user_id': user_id})
|
||||
|
||||
services = {}
|
||||
@@ -67,7 +66,7 @@ class EndpointFilterCatalog(sql.Catalog):
|
||||
|
||||
# format catalog
|
||||
catalog = []
|
||||
for service_id, service in six.iteritems(services):
|
||||
for service_id, service in services.items():
|
||||
formatted_service = {}
|
||||
formatted_service['id'] = service['id']
|
||||
formatted_service['type'] = service['type']
|
||||
|
||||
@@ -49,7 +49,7 @@ class _ControllerBase(controller.V3Controller):
|
||||
|
||||
for endpoint in endpoints:
|
||||
is_candidate = True
|
||||
for key, value in six.iteritems(filters):
|
||||
for key, value in filters.items():
|
||||
if endpoint[key] != value:
|
||||
is_candidate = False
|
||||
break
|
||||
|
||||
@@ -608,7 +608,7 @@ class RuleProcessor(object):
|
||||
LOG.debug('direct_maps: %s', direct_maps)
|
||||
LOG.debug('local: %s', local)
|
||||
new = {}
|
||||
for k, v in six.iteritems(local):
|
||||
for k, v in local.items():
|
||||
if isinstance(v, dict):
|
||||
new_value = self._update_local_mapping(v, direct_maps)
|
||||
else:
|
||||
|
||||
@@ -18,7 +18,6 @@ import uuid
|
||||
|
||||
from oslo_serialization import jsonutils
|
||||
from oslo_utils import timeutils
|
||||
import six
|
||||
|
||||
from keystone.common import sql
|
||||
from keystone.common import utils
|
||||
@@ -59,7 +58,7 @@ class RequestToken(sql.ModelBase, sql.DictBase):
|
||||
return cls(**user_dict)
|
||||
|
||||
def to_dict(self):
|
||||
return dict(six.iteritems(self))
|
||||
return dict(self.items())
|
||||
|
||||
|
||||
class AccessToken(sql.ModelBase, sql.DictBase):
|
||||
@@ -82,7 +81,7 @@ class AccessToken(sql.ModelBase, sql.DictBase):
|
||||
return cls(**user_dict)
|
||||
|
||||
def to_dict(self):
|
||||
return dict(six.iteritems(self))
|
||||
return dict(self.items())
|
||||
|
||||
|
||||
class OAuth1(object):
|
||||
|
||||
@@ -145,7 +145,7 @@ class Manager(manager.Manager):
|
||||
]
|
||||
}
|
||||
|
||||
for event, cb_info in six.iteritems(callbacks):
|
||||
for event, cb_info in callbacks.items():
|
||||
for resource_type, callback_fns in cb_info:
|
||||
notifications.register_event_callback(event, resource_type,
|
||||
callback_fns)
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
from oslo_utils import encodeutils
|
||||
import six
|
||||
|
||||
from keystone.i18n import _, _LW
|
||||
|
||||
@@ -63,7 +62,7 @@ class Error(Exception):
|
||||
except UnicodeDecodeError:
|
||||
try:
|
||||
kwargs = {k: encodeutils.safe_decode(v)
|
||||
for k, v in six.iteritems(kwargs)}
|
||||
for k, v in kwargs.items()}
|
||||
except UnicodeDecodeError:
|
||||
# NOTE(jamielennox): This is the complete failure case
|
||||
# at least by showing the template we have some idea
|
||||
|
||||
@@ -17,7 +17,6 @@ from oslo_log import log
|
||||
from oslo_log import versionutils
|
||||
from oslo_middleware import sizelimit
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
|
||||
from keystone.common import authorization
|
||||
from keystone.common import wsgi
|
||||
@@ -82,7 +81,7 @@ class PostParamsMiddleware(wsgi.Middleware):
|
||||
def process_request(self, request):
|
||||
params_parsed = request.params
|
||||
params = {}
|
||||
for k, v in six.iteritems(params_parsed):
|
||||
for k, v in params_parsed.items():
|
||||
if k in ('self', 'context'):
|
||||
continue
|
||||
if k.startswith('_'):
|
||||
@@ -132,7 +131,7 @@ class JsonBodyMiddleware(wsgi.Middleware):
|
||||
return wsgi.render_exception(e, request=request)
|
||||
|
||||
params = {}
|
||||
for k, v in six.iteritems(params_parsed):
|
||||
for k, v in params_parsed.items():
|
||||
if k in ('self', 'context'):
|
||||
continue
|
||||
if k.startswith('_'):
|
||||
|
||||
@@ -216,7 +216,7 @@ class TestClient(object):
|
||||
|
||||
req = webob.Request.blank(path)
|
||||
req.method = method
|
||||
for k, v in six.iteritems(headers):
|
||||
for k, v in headers.items():
|
||||
req.headers[k] = v
|
||||
if body:
|
||||
req.body = body
|
||||
@@ -401,7 +401,7 @@ class TestCase(BaseTestCase):
|
||||
drivers, _unused = common.setup_backends(
|
||||
load_extra_backends_fn=self.load_extra_backends)
|
||||
|
||||
for manager_name, manager in six.iteritems(drivers):
|
||||
for manager_name, manager in drivers.items():
|
||||
setattr(self, manager_name, manager)
|
||||
self.addCleanup(self.cleanup_instance(*list(drivers.keys())))
|
||||
|
||||
|
||||
@@ -358,7 +358,7 @@ class FakeLdap(core.LDAPHandler):
|
||||
return self.delete_ext_s(dn, serverctrls=[])
|
||||
|
||||
def _getChildren(self, dn):
|
||||
return [k for k, v in six.iteritems(self.db)
|
||||
return [k for k, v in self.db.items()
|
||||
if re.match('%s.*,%s' % (
|
||||
re.escape(self.__prefix),
|
||||
re.escape(self.dn(dn))), k)]
|
||||
@@ -479,7 +479,7 @@ class FakeLdap(core.LDAPHandler):
|
||||
raise ldap.NO_SUCH_OBJECT
|
||||
results = [(base, item_dict)]
|
||||
extraresults = [(k[len(self.__prefix):], v)
|
||||
for k, v in six.iteritems(self.db)
|
||||
for k, v in self.db.items()
|
||||
if re.match('%s.*,%s' %
|
||||
(re.escape(self.__prefix),
|
||||
re.escape(self.dn(base))), k)]
|
||||
@@ -490,7 +490,7 @@ class FakeLdap(core.LDAPHandler):
|
||||
base_dn = ldap.dn.str2dn(core.utf8_encode(base))
|
||||
base_len = len(base_dn)
|
||||
|
||||
for k, v in six.iteritems(self.db):
|
||||
for k, v in self.db.items():
|
||||
if not k.startswith(self.__prefix):
|
||||
continue
|
||||
k_dn_str = k[len(self.__prefix):]
|
||||
@@ -523,7 +523,7 @@ class FakeLdap(core.LDAPHandler):
|
||||
('objectclass' not in attrs_checked)):
|
||||
raise AssertionError('No objectClass in search filter')
|
||||
# filter the attributes by attrlist
|
||||
attrs = {k: v for k, v in six.iteritems(attrs)
|
||||
attrs = {k: v for k, v in attrs.items()
|
||||
if not attrlist or k in attrlist}
|
||||
objects.append((dn, attrs))
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
# under the License.
|
||||
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
import webtest
|
||||
|
||||
from keystone.auth import controllers as auth_controllers
|
||||
@@ -75,7 +74,7 @@ class RestfulTestCase(tests.TestCase):
|
||||
def request(self, app, path, body=None, headers=None, token=None,
|
||||
expected_status=None, **kwargs):
|
||||
if headers:
|
||||
headers = {str(k): str(v) for k, v in six.iteritems(headers)}
|
||||
headers = {str(k): str(v) for k, v in headers.items()}
|
||||
else:
|
||||
headers = {}
|
||||
|
||||
|
||||
@@ -140,13 +140,13 @@ class MockCollection(object):
|
||||
if self._apply_filter(document, spec))
|
||||
|
||||
def _apply_filter(self, document, query):
|
||||
for key, search in six.iteritems(query):
|
||||
for key, search in query.items():
|
||||
doc_val = document.get(key)
|
||||
if isinstance(search, dict):
|
||||
op_dict = {'$in': lambda dv, sv: dv in sv}
|
||||
is_match = all(
|
||||
op_str in op_dict and op_dict[op_str](doc_val, search_val)
|
||||
for op_str, search_val in six.iteritems(search)
|
||||
for op_str, search_val in search.items()
|
||||
)
|
||||
else:
|
||||
is_match = doc_val == search
|
||||
@@ -199,7 +199,7 @@ class MockCollection(object):
|
||||
existing_doc = self._documents[self._insert(document)]
|
||||
|
||||
def _internalize_dict(self, d):
|
||||
return {k: copy.deepcopy(v) for k, v in six.iteritems(d)}
|
||||
return {k: copy.deepcopy(v) for k, v in d.items()}
|
||||
|
||||
def remove(self, spec_or_id=None, search_filter=None):
|
||||
"""Remove objects matching spec_or_id from the collection."""
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from keystone import catalog
|
||||
from keystone.tests import unit as tests
|
||||
from keystone.tests.unit.ksfixtures import database
|
||||
@@ -93,7 +91,7 @@ class V2CatalogTestCase(rest.RestfulTestCase):
|
||||
req_body, response = self._endpoint_create()
|
||||
self.assertIn('endpoint', response.result)
|
||||
self.assertIn('id', response.result['endpoint'])
|
||||
for field, value in six.iteritems(req_body['endpoint']):
|
||||
for field, value in req_body['endpoint'].items():
|
||||
self.assertEqual(response.result['endpoint'][field], value)
|
||||
|
||||
def test_endpoint_create_with_null_adminurl(self):
|
||||
|
||||
@@ -38,7 +38,6 @@ from oslo_config import cfg
|
||||
from oslo_db import exception as db_exception
|
||||
from oslo_db.sqlalchemy import migration
|
||||
from oslo_db.sqlalchemy import session as db_session
|
||||
import six
|
||||
from sqlalchemy.engine import reflection
|
||||
import sqlalchemy.exc
|
||||
from sqlalchemy import schema
|
||||
@@ -780,7 +779,7 @@ class VersionTests(SqlMigrateBase):
|
||||
|
||||
def test_extension_initial(self):
|
||||
"""When get the initial version of an extension, it's 0."""
|
||||
for name, extension in six.iteritems(EXTENSIONS):
|
||||
for name, extension in EXTENSIONS.items():
|
||||
abs_path = migration_helpers.find_migrate_repo(extension)
|
||||
migration.db_version_control(sql.get_engine(), abs_path)
|
||||
version = migration_helpers.get_db_version(extension=name)
|
||||
@@ -789,7 +788,7 @@ class VersionTests(SqlMigrateBase):
|
||||
|
||||
def test_extension_migrated(self):
|
||||
"""When get the version after migrating an extension, it's not 0."""
|
||||
for name, extension in six.iteritems(EXTENSIONS):
|
||||
for name, extension in EXTENSIONS.items():
|
||||
abs_path = migration_helpers.find_migrate_repo(extension)
|
||||
migration.db_version_control(sql.get_engine(), abs_path)
|
||||
migration.db_sync(sql.get_engine(), abs_path)
|
||||
|
||||
@@ -1368,7 +1368,7 @@ class AssignmentTestMixin(object):
|
||||
|
||||
query_params = '?effective' if effective else ''
|
||||
|
||||
for k, v in six.iteritems(filters):
|
||||
for k, v in filters.items():
|
||||
query_params += '?' if not query_params else '&'
|
||||
|
||||
if k == 'inherited_to_projects':
|
||||
|
||||
@@ -22,7 +22,6 @@ from keystoneclient.common import cms
|
||||
import mock
|
||||
from oslo_config import cfg
|
||||
from oslo_utils import timeutils
|
||||
import six
|
||||
from six.moves import range
|
||||
from testtools import matchers
|
||||
from testtools import testcase
|
||||
@@ -1493,7 +1492,7 @@ class TestTokenRevokeApi(TestTokenRevokeById):
|
||||
def assertValidRevokedTokenResponse(self, events_response, **kwargs):
|
||||
events = events_response['events']
|
||||
self.assertEqual(1, len(events))
|
||||
for k, v in six.iteritems(kwargs):
|
||||
for k, v in kwargs.items():
|
||||
self.assertEqual(v, events[0].get(k))
|
||||
self.assertIsNotNone(events[0]['issued_before'])
|
||||
self.assertIsNotNone(events_response['links'])
|
||||
@@ -1563,7 +1562,7 @@ class TestTokenRevokeApi(TestTokenRevokeById):
|
||||
def assertEventDataInList(self, events, **kwargs):
|
||||
found = False
|
||||
for e in events:
|
||||
for key, value in six.iteritems(kwargs):
|
||||
for key, value in kwargs.items():
|
||||
try:
|
||||
if e[key] != value:
|
||||
break
|
||||
@@ -1581,8 +1580,7 @@ class TestTokenRevokeApi(TestTokenRevokeById):
|
||||
'find event with key-value pairs. Expected: '
|
||||
'"%(expected)s" Events: "%(events)s"' %
|
||||
{'expected': ','.join(
|
||||
["'%s=%s'" % (k, v) for k, v in six.iteritems(
|
||||
kwargs)]),
|
||||
["'%s=%s'" % (k, v) for k, v in kwargs.items()]),
|
||||
'events': events})
|
||||
|
||||
def test_list_delete_token_shows_in_event_list(self):
|
||||
|
||||
@@ -512,8 +512,8 @@ class Auth(controller.V2Controller):
|
||||
return {}
|
||||
|
||||
endpoints = []
|
||||
for region_name, region_ref in six.iteritems(catalog_ref):
|
||||
for service_type, service_ref in six.iteritems(region_ref):
|
||||
for region_name, region_ref in catalog_ref.items():
|
||||
for service_type, service_ref in region_ref.items():
|
||||
endpoints.append({
|
||||
'id': service_ref.get('id'),
|
||||
'name': service_ref.get('name'),
|
||||
|
||||
@@ -147,7 +147,7 @@ class Manager(manager.Manager):
|
||||
]
|
||||
}
|
||||
|
||||
for event, cb_info in six.iteritems(callbacks):
|
||||
for event, cb_info in callbacks.items():
|
||||
for resource_type, callback_fns in cb_info:
|
||||
notifications.register_event_callback(event, resource_type,
|
||||
callback_fns)
|
||||
|
||||
@@ -181,8 +181,8 @@ class V2TokenDataHelper(object):
|
||||
return []
|
||||
|
||||
services = {}
|
||||
for region, region_ref in six.iteritems(catalog_ref):
|
||||
for service, service_ref in six.iteritems(region_ref):
|
||||
for region, region_ref in catalog_ref.items():
|
||||
for service, service_ref in region_ref.items():
|
||||
new_service_ref = services.get(service, {})
|
||||
new_service_ref['name'] = service_ref.pop('name')
|
||||
new_service_ref['type'] = service
|
||||
|
||||
Reference in New Issue
Block a user