From dae498eedbf393ec4fd8eeecb07936b085540b64 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Thu, 3 Jul 2014 13:10:29 +0200 Subject: [PATCH] Python 3: use six.iteritems() Change-Id: I9d86dd948bc2241bbb69a04c0024f90b805d7cc8 --- neutronclient/common/utils.py | 4 +++- neutronclient/neutron/v2_0/__init__.py | 11 ++++++----- neutronclient/neutron/v2_0/lb/pool.py | 4 +++- neutronclient/neutron/v2_0/quota.py | 9 +++++---- neutronclient/tests/unit/test_cli20.py | 9 +++++---- .../tests/unit/test_cli20_nsx_networkgateway.py | 3 ++- neutronclient/tests/unit/test_utils.py | 3 ++- 7 files changed, 26 insertions(+), 17 deletions(-) diff --git a/neutronclient/common/utils.py b/neutronclient/common/utils.py index 3fe025a2d..b26166d2b 100644 --- a/neutronclient/common/utils.py +++ b/neutronclient/common/utils.py @@ -23,6 +23,8 @@ import logging import os import sys +import six + from neutronclient.common import _ from neutronclient.common import exceptions from neutronclient.openstack.common import strutils @@ -48,7 +50,7 @@ def to_primitive(value): return o elif isinstance(value, dict): o = {} - for k, v in value.iteritems(): + for k, v in six.iteritems(value): o[k] = to_primitive(v) return o elif isinstance(value, datetime.datetime): diff --git a/neutronclient/neutron/v2_0/__init__.py b/neutronclient/neutron/v2_0/__init__.py index f11bbb6a6..565edc69d 100644 --- a/neutronclient/neutron/v2_0/__init__.py +++ b/neutronclient/neutron/v2_0/__init__.py @@ -23,6 +23,7 @@ import re from cliff.formatters import table from cliff import lister from cliff import show +import six from neutronclient.common import command from neutronclient.common import exceptions @@ -274,7 +275,7 @@ def parse_args_to_dict(values_specs): # populate the parser with arguments _parser = argparse.ArgumentParser(add_help=False) - for opt, optspec in _options.iteritems(): + for opt, optspec in six.iteritems(_options): _parser.add_argument(opt, **optspec) _args = _parser.parse_args(_values_specs) @@ -298,7 +299,7 @@ def _merge_args(qCmd, parsed_args, _extra_values, value_specs): @param values_specs: the unparsed unknown parts """ temp_values = _extra_values.copy() - for key, value in temp_values.iteritems(): + for key, value in six.iteritems(temp_values): if hasattr(parsed_args, key): arg_value = getattr(parsed_args, key) if arg_value is not None and value is not None: @@ -369,7 +370,7 @@ class NeutronCommand(command.OpenStackCommand): def format_output_data(self, data): # Modify data to make it more readable if self.resource in data: - for k, v in data[self.resource].iteritems(): + for k, v in six.iteritems(data[self.resource]): if isinstance(v, list): value = '\n'.join(utils.dumps( i, indent=self.json_indent) if isinstance(i, dict) @@ -427,7 +428,7 @@ class CreateCommand(NeutronCommand, show.ShowOne): file=self.app.stdout) else: info = {'': ''} - return zip(*sorted(info.iteritems())) + return zip(*sorted(six.iteritems(info))) class UpdateCommand(NeutronCommand): @@ -659,6 +660,6 @@ class ShowCommand(NeutronCommand, show.ShowOne): self.format_output_data(data) resource = data[self.resource] if self.resource in data: - return zip(*sorted(resource.iteritems())) + return zip(*sorted(six.iteritems(resource))) else: return None diff --git a/neutronclient/neutron/v2_0/lb/pool.py b/neutronclient/neutron/v2_0/lb/pool.py index 5de916bfc..06724342d 100644 --- a/neutronclient/neutron/v2_0/lb/pool.py +++ b/neutronclient/neutron/v2_0/lb/pool.py @@ -18,6 +18,8 @@ import logging +import six + from neutronclient.neutron import v2_0 as neutronV20 from neutronclient.openstack.common.gettextutils import _ @@ -132,6 +134,6 @@ class RetrievePoolStats(neutronV20.ShowCommand): self.format_output_data(data) stats = data['stats'] if 'stats' in data: - return zip(*sorted(stats.iteritems())) + return zip(*sorted(six.iteritems(stats))) else: return None diff --git a/neutronclient/neutron/v2_0/quota.py b/neutronclient/neutron/v2_0/quota.py index e13a26b3f..2ee462b96 100644 --- a/neutronclient/neutron/v2_0/quota.py +++ b/neutronclient/neutron/v2_0/quota.py @@ -21,6 +21,7 @@ import logging from cliff import lister from cliff import show +import six from neutronclient.common import exceptions from neutronclient.common import utils @@ -124,7 +125,7 @@ class ShowQuota(neutronV20.NeutronCommand, show.ShowOne): "show_%s" % self.resource) data = obj_shower(tenant_id, **params) if self.resource in data: - for k, v in data[self.resource].iteritems(): + for k, v in six.iteritems(data[self.resource]): if isinstance(v, list): value = "" for _item in v: @@ -137,7 +138,7 @@ class ShowQuota(neutronV20.NeutronCommand, show.ShowOne): data[self.resource][k] = value elif v is None: data[self.resource][k] = '' - return zip(*sorted(data[self.resource].iteritems())) + return zip(*sorted(six.iteritems(data[self.resource]))) else: return None @@ -230,7 +231,7 @@ class UpdateQuota(neutronV20.NeutronCommand, show.ShowOne): neutron_client) data = obj_updator(tenant_id, body) if self.resource in data: - for k, v in data[self.resource].iteritems(): + for k, v in six.iteritems(data[self.resource]): if isinstance(v, list): value = "" for _item in v: @@ -243,6 +244,6 @@ class UpdateQuota(neutronV20.NeutronCommand, show.ShowOne): data[self.resource][k] = value elif v is None: data[self.resource][k] = '' - return zip(*sorted(data[self.resource].iteritems())) + return zip(*sorted(six.iteritems(data[self.resource]))) else: return None diff --git a/neutronclient/tests/unit/test_cli20.py b/neutronclient/tests/unit/test_cli20.py index 40502f2c8..822475254 100644 --- a/neutronclient/tests/unit/test_cli20.py +++ b/neutronclient/tests/unit/test_cli20.py @@ -14,15 +14,16 @@ # under the License. # -import urllib - import contextlib import cStringIO +import sys +import urllib + import fixtures from mox3 import mox from oslotest import base import requests -import sys +import six from neutronclient.common import constants from neutronclient.common import exceptions @@ -112,7 +113,7 @@ class MyComparator(mox.Comparator): def _com_dict(self, lhs, rhs): if len(lhs) != len(rhs): return False - for key, value in lhs.iteritems(): + for key, value in six.iteritems(lhs): if key not in rhs: return False rhs_value = rhs[key] diff --git a/neutronclient/tests/unit/test_cli20_nsx_networkgateway.py b/neutronclient/tests/unit/test_cli20_nsx_networkgateway.py index 8a52a281c..0d77d4ddf 100644 --- a/neutronclient/tests/unit/test_cli20_nsx_networkgateway.py +++ b/neutronclient/tests/unit/test_cli20_nsx_networkgateway.py @@ -17,6 +17,7 @@ import sys from mox3 import mox +import six from neutronclient.neutron.v2_0.nsx import networkgateway as nwgw from neutronclient.tests.unit import test_cli20 @@ -131,7 +132,7 @@ class CLITestV20NetworkGatewayJSON(test_cli20.CLITestV20Base): position_names = ['name', ] position_values = [name, ] args = [] - for (k, v) in extra_body.iteritems(): + for (k, v) in six.iteritems(extra_body): if (k == 'client_certificate' and client_certificate_file): v = client_certificate_file k = 'client_certificate_file' diff --git a/neutronclient/tests/unit/test_utils.py b/neutronclient/tests/unit/test_utils.py index 4ccce648a..44c08707f 100644 --- a/neutronclient/tests/unit/test_utils.py +++ b/neutronclient/tests/unit/test_utils.py @@ -16,6 +16,7 @@ import datetime import sys +import six import testtools from neutronclient.common import exceptions @@ -162,7 +163,7 @@ class ToPrimitiveTestCase(testtools.TestCase): class IterItemsClass(object): def iteritems(self): - return d.iteritems() + return six.iteritems(d) x = IterItemsClass() p = utils.to_primitive(x)