Use six.string_types instead of basestring
basestring only exists in Python 2. Use six.string_types to make code Python 3 compatible. See http://pythonhosted.org/six/#six.string_types Part of blueprint keystone-py3kcompat Change-Id: I5022259cfd648ba2680aabbb0fbc403f10c5dc7e
This commit is contained in:
parent
c8099159f9
commit
5555ded3d4
|
@ -22,6 +22,8 @@ import urllib
|
|||
import urlparse
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from keystone.common import controller
|
||||
from keystone.common import dependency
|
||||
from keystone import config
|
||||
|
@ -828,7 +830,7 @@ class RoleAssignmentV3(controller.V3Controller):
|
|||
|
||||
"""
|
||||
|
||||
if (isinstance(filter_value, basestring) and
|
||||
if (isinstance(filter_value, six.string_types) and
|
||||
filter_value == '0'):
|
||||
val = False
|
||||
else:
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
|
||||
from keystone import exception
|
||||
|
||||
|
||||
|
@ -50,7 +52,8 @@ def check_enabled(property_name, enabled):
|
|||
|
||||
|
||||
def check_name(property_name, name, min_length=1, max_length=64):
|
||||
check_type('%s name' % property_name, name, basestring, 'str or unicode')
|
||||
check_type('%s name' % property_name, name, six.string_types,
|
||||
'str or unicode')
|
||||
name = name.strip()
|
||||
check_length('%s name' % property_name, name,
|
||||
min_length=min_length, max_length=max_length)
|
||||
|
|
|
@ -18,6 +18,8 @@ import collections
|
|||
import functools
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from keystone.common import dependency
|
||||
from keystone.common import wsgi
|
||||
from keystone import config
|
||||
|
@ -317,7 +319,7 @@ class V3Controller(wsgi.Application):
|
|||
|
||||
"""
|
||||
if type(ref_attr) is bool:
|
||||
if (isinstance(val_attr, basestring) and
|
||||
if (isinstance(val_attr, six.string_types) and
|
||||
val_attr == '0'):
|
||||
val = False
|
||||
else:
|
||||
|
|
|
@ -25,6 +25,8 @@ by convention, with a few hardcoded exceptions.
|
|||
from lxml import etree
|
||||
import re
|
||||
|
||||
import six
|
||||
|
||||
|
||||
DOCTYPE = '<?xml version="1.0" encoding="UTF-8"?>'
|
||||
XMLNS = 'http://docs.openstack.org/identity/api/v2.0'
|
||||
|
@ -313,7 +315,7 @@ class XmlSerializer(object):
|
|||
self.populate_element(child, item)
|
||||
element.append(child)
|
||||
|
||||
elif isinstance(value, basestring):
|
||||
elif isinstance(value, six.string_types):
|
||||
element.text = unicode(value)
|
||||
|
||||
def _populate_sequence(self, element, l):
|
||||
|
@ -339,7 +341,7 @@ class XmlSerializer(object):
|
|||
self._populate_list(element, k, v)
|
||||
elif isinstance(v, bool):
|
||||
self._populate_bool(element, k, v)
|
||||
elif isinstance(v, basestring):
|
||||
elif isinstance(v, six.string_types):
|
||||
self._populate_str(element, k, v)
|
||||
elif type(v) in [int, float, long, complex]:
|
||||
self._populate_number(element, k, v)
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
import json
|
||||
|
||||
import six
|
||||
|
||||
from sqlalchemy import MetaData, Table
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
|
@ -27,7 +29,8 @@ def is_enabled(enabled):
|
|||
# no explicit value means enabled
|
||||
if enabled is True or enabled is None:
|
||||
return True
|
||||
if isinstance(enabled, basestring) and enabled.lower() in DISABLED_VALUES:
|
||||
if (isinstance(enabled, six.string_types)
|
||||
and enabled.lower() in DISABLED_VALUES):
|
||||
return False
|
||||
return bool(enabled)
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import os
|
|||
import pwd
|
||||
|
||||
import passlib.hash
|
||||
import six
|
||||
|
||||
from keystone.common import config
|
||||
from keystone.common import environment
|
||||
|
@ -330,7 +331,7 @@ def get_unix_user(user=None):
|
|||
:return: tuple of (uid, name)
|
||||
'''
|
||||
|
||||
if isinstance(user, basestring):
|
||||
if isinstance(user, six.string_types):
|
||||
try:
|
||||
user_info = pwd.getpwnam(user)
|
||||
except KeyError:
|
||||
|
@ -386,7 +387,7 @@ def get_unix_group(group=None):
|
|||
:return: tuple of (gid, name)
|
||||
'''
|
||||
|
||||
if isinstance(group, basestring):
|
||||
if isinstance(group, six.string_types):
|
||||
try:
|
||||
group_info = grp.getgrnam(group)
|
||||
except KeyError:
|
||||
|
|
|
@ -231,7 +231,7 @@ class Application(BaseApplication):
|
|||
|
||||
if result is None:
|
||||
return render_response(status=(204, 'No Content'))
|
||||
elif isinstance(result, basestring):
|
||||
elif isinstance(result, six.string_types):
|
||||
return result
|
||||
elif isinstance(result, webob.Response):
|
||||
return result
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
"""oAuthlib request validator."""
|
||||
|
||||
import six
|
||||
|
||||
from keystone.common import dependency
|
||||
from keystone.contrib.oauth1 import core as oauth1
|
||||
from keystone import exception
|
||||
|
@ -151,7 +153,7 @@ class OAuthValidator(oauth1.RequestValidator):
|
|||
|
||||
def verify_request_token(self, token, request):
|
||||
# there aren't strong expectations on the request token format
|
||||
return isinstance(token, basestring)
|
||||
return isinstance(token, six.string_types)
|
||||
|
||||
def verify_realms(self, token, realms, request):
|
||||
return True
|
||||
|
|
|
@ -28,6 +28,7 @@ import warnings
|
|||
import fixtures
|
||||
import logging
|
||||
from paste import deploy
|
||||
import six
|
||||
import testtools
|
||||
from testtools import testcase
|
||||
|
||||
|
@ -471,7 +472,7 @@ class TestCase(testtools.TestCase):
|
|||
try:
|
||||
callable_obj(*args, **kwargs)
|
||||
except expected_exception as exc_value:
|
||||
if isinstance(expected_regexp, basestring):
|
||||
if isinstance(expected_regexp, six.string_types):
|
||||
expected_regexp = re.compile(expected_regexp)
|
||||
|
||||
if isinstance(exc_value.args[0], gettextutils.Message):
|
||||
|
|
|
@ -18,6 +18,7 @@ import datetime
|
|||
import uuid
|
||||
|
||||
from lxml import etree
|
||||
import six
|
||||
|
||||
from keystone import auth
|
||||
from keystone.common import cache
|
||||
|
@ -250,7 +251,7 @@ class RestfulTestCase(rest.RestfulTestCase):
|
|||
ref['impersonation'] = impersonation or False
|
||||
ref['project_id'] = project_id
|
||||
|
||||
if isinstance(expires, basestring):
|
||||
if isinstance(expires, six.string_types):
|
||||
ref['expires_at'] = expires
|
||||
elif isinstance(expires, dict):
|
||||
ref['expires_at'] = timeutils.strtime(
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
from __future__ import absolute_import
|
||||
import copy
|
||||
|
||||
import six
|
||||
|
||||
from keystone.common import kvs
|
||||
from keystone import config
|
||||
from keystone import exception
|
||||
|
@ -192,7 +194,7 @@ class Token(token.Driver):
|
|||
current_time = self._get_current_time()
|
||||
expires = data['expires']
|
||||
|
||||
if isinstance(expires, basestring):
|
||||
if isinstance(expires, six.string_types):
|
||||
expires = timeutils.parse_isotime(expires)
|
||||
|
||||
expires = timeutils.normalize_time(expires)
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
import json
|
||||
import sys
|
||||
|
||||
import six
|
||||
|
||||
from keystone.common import dependency
|
||||
from keystone import config
|
||||
from keystone import exception
|
||||
|
@ -288,7 +290,7 @@ class V3TokenDataHelper(object):
|
|||
def _populate_token_dates(self, token_data, expires=None, trust=None):
|
||||
if not expires:
|
||||
expires = token.default_expire_time()
|
||||
if not isinstance(expires, basestring):
|
||||
if not isinstance(expires, six.string_types):
|
||||
expires = timeutils.isotime(expires, subsecond=True)
|
||||
token_data['expires_at'] = expires
|
||||
token_data['issued_at'] = timeutils.isotime(subsecond=True)
|
||||
|
@ -359,7 +361,7 @@ class BaseProvider(provider.Provider):
|
|||
token_data['access']['token']['id'] = token_id
|
||||
try:
|
||||
expiry = token_data['access']['token']['expires']
|
||||
if isinstance(expiry, basestring):
|
||||
if isinstance(expiry, six.string_types):
|
||||
expiry = timeutils.normalize_time(
|
||||
timeutils.parse_isotime(expiry))
|
||||
data = dict(key=token_id,
|
||||
|
@ -415,7 +417,7 @@ class BaseProvider(provider.Provider):
|
|||
token_id = self._get_token_id(token_data)
|
||||
try:
|
||||
expiry = token_data['token']['expires_at']
|
||||
if isinstance(expiry, basestring):
|
||||
if isinstance(expiry, six.string_types):
|
||||
expiry = timeutils.normalize_time(
|
||||
timeutils.parse_isotime(expiry))
|
||||
# FIXME(gyee): is there really a need to store roles in metadata?
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
import uuid
|
||||
|
||||
import six
|
||||
|
||||
from keystone import assignment
|
||||
from keystone.common import controller
|
||||
from keystone.common import dependency
|
||||
|
@ -94,7 +96,7 @@ class TrustV3(controller.V3Controller):
|
|||
trust['roles'] = []
|
||||
trust_full_roles = []
|
||||
for trust_role in trust['roles']:
|
||||
if isinstance(trust_role, basestring):
|
||||
if isinstance(trust_role, six.string_types):
|
||||
trust_role = {'id': trust_role}
|
||||
matching_roles = [x for x in all_roles
|
||||
if x['id'] == trust_role['id']]
|
||||
|
|
Loading…
Reference in New Issue