From d12d7a73ff6a1de482bcdb978e0fb7afd8cfe648 Mon Sep 17 00:00:00 2001 From: Chuck Short <chuck.short@canonical.com> Date: Tue, 11 Jun 2013 13:22:56 -0500 Subject: [PATCH] python3: compatibility for iteritems and iterkeys Use six to allow python2/pyton3 for iteritems and iterkeys. six.iteriems() replaces dictionary.iteritems() (python2) and dictionary.iterms() (python3) six.iterkeys() replaces dictionary.iterkeys (python2) and dictionary.keys() (python3) Change-Id: I26c80b78a7dedf3aa32eedf01a83ff6d1e592ba7 Signed-off-by: Chuck Short <chuck.short@canonical.com> --- cinderclient/base.py | 5 ++++- cinderclient/utils.py | 3 ++- cinderclient/v1/volume_snapshots.py | 3 ++- cinderclient/v1/volumes.py | 3 ++- cinderclient/v2/volume_snapshots.py | 3 ++- cinderclient/v2/volumes.py | 3 ++- requirements.txt | 1 + tools/colorizer.py | 3 ++- 8 files changed, 17 insertions(+), 7 deletions(-) diff --git a/cinderclient/base.py b/cinderclient/base.py index 6024f59c3..7577773a6 100644 --- a/cinderclient/base.py +++ b/cinderclient/base.py @@ -22,6 +22,9 @@ import abc import contextlib import hashlib import os + +import six + from cinderclient import exceptions from cinderclient import utils @@ -248,7 +251,7 @@ class Resource(object): return None def _add_details(self, info): - for (k, v) in info.iteritems(): + for (k, v) in six.iteritems(info): try: setattr(self, k, v) except AttributeError: diff --git a/cinderclient/utils.py b/cinderclient/utils.py index 1a0034a41..44522e08e 100644 --- a/cinderclient/utils.py +++ b/cinderclient/utils.py @@ -18,6 +18,7 @@ import re import sys import uuid +import six import prettytable from cinderclient import exceptions @@ -165,7 +166,7 @@ def print_list(objs, fields, formatters={}): def print_dict(d, property="Property"): pt = prettytable.PrettyTable([property, 'Value'], caching=False) pt.aligns = ['l', 'l'] - [pt.add_row(list(r)) for r in d.iteritems()] + [pt.add_row(list(r)) for r in six.iteritems(d)] print strutils.safe_encode(pt.get_string(sortby=property)) diff --git a/cinderclient/v1/volume_snapshots.py b/cinderclient/v1/volume_snapshots.py index 50fa56645..be1ae5200 100644 --- a/cinderclient/v1/volume_snapshots.py +++ b/cinderclient/v1/volume_snapshots.py @@ -19,6 +19,7 @@ Volume snapshot interface (1.1 extension). import urllib from cinderclient import base +import six class Snapshot(base.Resource): @@ -95,7 +96,7 @@ class SnapshotManager(base.ManagerWithFind): qparams = {} - for opt, val in search_opts.iteritems(): + for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val diff --git a/cinderclient/v1/volumes.py b/cinderclient/v1/volumes.py index 7ab7e3c22..9903f10fa 100644 --- a/cinderclient/v1/volumes.py +++ b/cinderclient/v1/volumes.py @@ -18,6 +18,7 @@ Volume interface (1.1 extension). """ import urllib +import six from cinderclient import base @@ -167,7 +168,7 @@ class VolumeManager(base.ManagerWithFind): qparams = {} - for opt, val in search_opts.iteritems(): + for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val diff --git a/cinderclient/v2/volume_snapshots.py b/cinderclient/v2/volume_snapshots.py index d3ae632f9..240bdc662 100644 --- a/cinderclient/v2/volume_snapshots.py +++ b/cinderclient/v2/volume_snapshots.py @@ -15,6 +15,7 @@ """Volume snapshot interface (1.1 extension).""" +import six import urllib from cinderclient import base @@ -83,7 +84,7 @@ class SnapshotManager(base.ManagerWithFind): qparams = {} - for opt, val in search_opts.iteritems(): + for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val diff --git a/cinderclient/v2/volumes.py b/cinderclient/v2/volumes.py index cf9f9acf2..a9b69ab1c 100644 --- a/cinderclient/v2/volumes.py +++ b/cinderclient/v2/volumes.py @@ -15,6 +15,7 @@ """Volume interface (v2 extension).""" +import six import urllib from cinderclient import base @@ -161,7 +162,7 @@ class VolumeManager(base.ManagerWithFind): qparams = {} - for opt, val in search_opts.iteritems(): + for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val diff --git a/requirements.txt b/requirements.txt index d677ca2d9..27c12b9cf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ argparse prettytable>=0.6,<0.8 requests>=0.8 simplejson>=2.0.9 +six diff --git a/tools/colorizer.py b/tools/colorizer.py index a49abb141..9547802b8 100755 --- a/tools/colorizer.py +++ b/tools/colorizer.py @@ -47,6 +47,7 @@ import subunit import sys import unittest +import six import testtools @@ -277,7 +278,7 @@ class NovaTestResult(testtools.TestResult): self.stopTestRun() def stopTestRun(self): - for cls in list(self.results.iterkeys()): + for cls in list(six.iterkeys(self.results)): self.writeTestCase(cls) self.stream.writeln() self.writeSlowTests()