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 <chuck.short@canonical.com>
This commit is contained in:
@@ -24,6 +24,8 @@ import hmac
|
|||||||
import re
|
import re
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
|
|
||||||
class Ec2Signer(object):
|
class Ec2Signer(object):
|
||||||
"""
|
"""
|
||||||
@@ -211,7 +213,7 @@ class Ec2Signer(object):
|
|||||||
# - the Authorization header (SignedHeaders key)
|
# - the Authorization header (SignedHeaders key)
|
||||||
# - the X-Amz-SignedHeaders query parameter
|
# - the X-Amz-SignedHeaders query parameter
|
||||||
headers_lower = dict((k.lower().strip(), v.strip())
|
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
|
# 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
|
# header, so detect the user-agent via the header and strip the
|
||||||
|
@@ -18,6 +18,8 @@
|
|||||||
from keystoneclient.generic import client
|
from keystoneclient.generic import client
|
||||||
from keystoneclient import utils
|
from keystoneclient import utils
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
CLIENT_CLASS = client.Client
|
CLIENT_CLASS = client.Client
|
||||||
|
|
||||||
|
|
||||||
@@ -45,13 +47,13 @@ def do_discover(cs, args):
|
|||||||
if versions:
|
if versions:
|
||||||
if 'message' in versions:
|
if 'message' in versions:
|
||||||
print(versions['message'])
|
print(versions['message'])
|
||||||
for key, version in versions.iteritems():
|
for key, version in six.iteritems(versions):
|
||||||
if key != 'message':
|
if key != 'message':
|
||||||
print (" - supports version %s (%s) here %s" %
|
print (" - supports version %s (%s) here %s" %
|
||||||
(version['id'], version['status'], version['url']))
|
(version['id'], version['status'], version['url']))
|
||||||
extensions = cs.discover_extensions(version['url'])
|
extensions = cs.discover_extensions(version['url'])
|
||||||
if extensions:
|
if extensions:
|
||||||
for key, extension in extensions.iteritems():
|
for key, extension in six.iteritems(extensions):
|
||||||
if key != 'message':
|
if key != 'message':
|
||||||
print (" - and %s: %s" %
|
print (" - and %s: %s" %
|
||||||
(key, extension))
|
(key, extension))
|
||||||
|
@@ -154,6 +154,8 @@ import tempfile
|
|||||||
import time
|
import time
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
from keystoneclient.common import cms
|
from keystoneclient.common import cms
|
||||||
from keystoneclient.middleware import memcache_crypt
|
from keystoneclient.middleware import memcache_crypt
|
||||||
from keystoneclient.openstack.common import jsonutils
|
from keystoneclient.openstack.common import jsonutils
|
||||||
@@ -843,7 +845,7 @@ class AuthProtocol(object):
|
|||||||
|
|
||||||
def _add_headers(self, env, headers):
|
def _add_headers(self, env, headers):
|
||||||
"""Add http headers to environment."""
|
"""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_key = self._header_to_env_var(k)
|
||||||
env[env_key] = v
|
env[env_key] = v
|
||||||
|
|
||||||
|
@@ -19,6 +19,8 @@ import argparse
|
|||||||
import getpass
|
import getpass
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
import six
|
||||||
|
|
||||||
from keystoneclient import utils
|
from keystoneclient import utils
|
||||||
from keystoneclient.v2_0 import client
|
from keystoneclient.v2_0 import client
|
||||||
|
|
||||||
@@ -440,7 +442,7 @@ def do_ec2_credentials_delete(kc, args):
|
|||||||
def do_catalog(kc, args):
|
def do_catalog(kc, args):
|
||||||
"""List service catalog, possibly filtered by service."""
|
"""List service catalog, possibly filtered by service."""
|
||||||
endpoints = kc.service_catalog.get_endpoints(service_type=args.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:
|
if len(service_endpoints) > 0:
|
||||||
print("Service: %s" % service)
|
print("Service: %s" % service)
|
||||||
for ep in service_endpoints:
|
for ep in service_endpoints:
|
||||||
|
Reference in New Issue
Block a user