From 8d2f9dd456da303ff16af860fc28cd116c4f154e Mon Sep 17 00:00:00 2001 From: Chuck Short Date: Sun, 4 Aug 2013 01:43:41 +0000 Subject: [PATCH] python3: Add basic compatibility support Use six.iteritems to replace dictionary.iteritems() on python2 or dictionary.items() on python3. Change-Id: I623009200f3a90985a2c0178673df7d54b36a686 Signed-off-by: Chuck Short --- keystoneclient/contrib/ec2/utils.py | 4 +++- keystoneclient/generic/shell.py | 6 ++++-- keystoneclient/middleware/auth_token.py | 4 +++- keystoneclient/v2_0/shell.py | 4 +++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/keystoneclient/contrib/ec2/utils.py b/keystoneclient/contrib/ec2/utils.py index 70c3cbd5b..a73bef3ce 100644 --- a/keystoneclient/contrib/ec2/utils.py +++ b/keystoneclient/contrib/ec2/utils.py @@ -24,6 +24,8 @@ import hmac import re import urllib +import six + class Ec2Signer(object): """ @@ -211,7 +213,7 @@ class Ec2Signer(object): # - the Authorization header (SignedHeaders key) # - the X-Amz-SignedHeaders query parameter headers_lower = dict((k.lower().strip(), v.strip()) - for (k, v) in headers.iteritems()) + for (k, v) in six.iteritems(headers)) # Boto versions < 2.9.3 strip the port component of the host:port # header, so detect the user-agent via the header and strip the diff --git a/keystoneclient/generic/shell.py b/keystoneclient/generic/shell.py index e4a52639a..97f6308a1 100644 --- a/keystoneclient/generic/shell.py +++ b/keystoneclient/generic/shell.py @@ -18,6 +18,8 @@ from keystoneclient.generic import client from keystoneclient import utils +import six + CLIENT_CLASS = client.Client @@ -45,13 +47,13 @@ def do_discover(cs, args): if versions: if 'message' in versions: print(versions['message']) - for key, version in versions.iteritems(): + for key, version in six.iteritems(versions): if key != 'message': print (" - supports version %s (%s) here %s" % (version['id'], version['status'], version['url'])) extensions = cs.discover_extensions(version['url']) if extensions: - for key, extension in extensions.iteritems(): + for key, extension in six.iteritems(extensions): if key != 'message': print (" - and %s: %s" % (key, extension)) diff --git a/keystoneclient/middleware/auth_token.py b/keystoneclient/middleware/auth_token.py index 3d5900220..b19c6a48c 100644 --- a/keystoneclient/middleware/auth_token.py +++ b/keystoneclient/middleware/auth_token.py @@ -154,6 +154,8 @@ import tempfile import time import urllib +import six + from keystoneclient.common import cms from keystoneclient.middleware import memcache_crypt from keystoneclient.openstack.common import jsonutils @@ -843,7 +845,7 @@ class AuthProtocol(object): def _add_headers(self, env, headers): """Add http headers to environment.""" - for (k, v) in headers.iteritems(): + for (k, v) in six.iteritems(headers): env_key = self._header_to_env_var(k) env[env_key] = v diff --git a/keystoneclient/v2_0/shell.py b/keystoneclient/v2_0/shell.py index 8decb6239..a580a7217 100755 --- a/keystoneclient/v2_0/shell.py +++ b/keystoneclient/v2_0/shell.py @@ -19,6 +19,8 @@ import argparse import getpass import sys +import six + from keystoneclient import utils from keystoneclient.v2_0 import client @@ -440,7 +442,7 @@ def do_ec2_credentials_delete(kc, args): def do_catalog(kc, args): """List service catalog, possibly filtered by service.""" endpoints = kc.service_catalog.get_endpoints(service_type=args.service) - for (service, service_endpoints) in endpoints.iteritems(): + for (service, service_endpoints) in six.iteritems(endpoints): if len(service_endpoints) > 0: print("Service: %s" % service) for ep in service_endpoints: