summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-18 12:56:43 +0000
committerGerrit Code Review <review@openstack.org>2014-09-18 12:56:43 +0000
commitfa5642f1550bc8f818c1686c40edbaf3672d356a (patch)
tree655ed9bf68d3452e46d1e6d6aa4ff17ae2fc61f9
parentede859ebf6199e29d45978eb402c7c07f0170e75 (diff)
parent9bf8b71e33d52c72d0842dad0beca3df60da60ce (diff)
downloadpython-neutronclient-fa5642f1550bc8f818c1686c40edbaf3672d356a.tar.gz
Merge "Fix Py3 compatibility issues"2.3.9
-rw-r--r--neutronclient/common/serializer.py12
-rw-r--r--neutronclient/common/utils.py12
-rw-r--r--neutronclient/neutron/v2_0/fw/firewallpolicy.py3
-rw-r--r--neutronclient/neutron/v2_0/network.py2
-rw-r--r--neutronclient/neutron/v2_0/securitygroup.py2
-rw-r--r--neutronclient/shell.py10
-rw-r--r--neutronclient/tests/unit/test_auth.py7
-rw-r--r--neutronclient/tests/unit/test_cli20.py2
-rw-r--r--neutronclient/tests/unit/test_cli20_agents.py4
-rw-r--r--neutronclient/tests/unit/test_cli20_network.py2
-rw-r--r--neutronclient/tests/unit/test_cli20_packetfilter.py2
-rw-r--r--neutronclient/tests/unit/test_cli20_securitygroup.py2
-rw-r--r--neutronclient/v2_0/client.py3
13 files changed, 33 insertions, 30 deletions
diff --git a/neutronclient/common/serializer.py b/neutronclient/common/serializer.py
index 73f0bec..ef95e40 100644
--- a/neutronclient/common/serializer.py
+++ b/neutronclient/common/serializer.py
@@ -30,6 +30,9 @@ from neutronclient.openstack.common import jsonutils
LOG = logging.getLogger(__name__)
+if six.PY3:
+ long = int
+
class ActionDispatcher(object):
"""Maps method name to local methods through action name."""
@@ -59,7 +62,7 @@ class JSONDictSerializer(DictSerializer):
def default(self, data):
def sanitizer(obj):
- return unicode(obj)
+ return six.text_type(obj, 'utf8')
return jsonutils.dumps(data, default=sanitizer)
@@ -100,7 +103,7 @@ class XMLDictSerializer(DictSerializer):
links = data.pop(link_keys[0], None)
has_atom = True
root_key = (len(data) == 1 and
- data.keys()[0] or constants.VIRTUAL_ROOT_KEY)
+ list(data.keys())[0] or constants.VIRTUAL_ROOT_KEY)
root_value = data.get(root_key, data)
doc = etree.Element("_temp_root")
used_prefixes = []
@@ -195,10 +198,7 @@ class XMLDictSerializer(DictSerializer):
LOG.debug("Data %(data)s type is %(type)s",
{'data': data,
'type': type(data)})
- if isinstance(data, str):
- result.text = unicode(data, 'utf-8')
- else:
- result.text = unicode(data)
+ result.text = six.text_type(data)
return result
def _create_link_nodes(self, xml_doc, links):
diff --git a/neutronclient/common/utils.py b/neutronclient/common/utils.py
index aa7b688..b68a608 100644
--- a/neutronclient/common/utils.py
+++ b/neutronclient/common/utils.py
@@ -21,6 +21,8 @@ import logging
import os
import sys
+import six
+
from neutronclient.common import _
from neutronclient.common import exceptions
from neutronclient.openstack.common import strutils
@@ -134,8 +136,8 @@ def http_log_req(_logger, args, kwargs):
if 'body' in kwargs and kwargs['body']:
string_parts.append(" -d '%s'" % (kwargs['body']))
- string_parts = safe_encode_list(string_parts)
- _logger.debug("\nREQ: %s\n", "".join(string_parts))
+ req = strutils.safe_encode("".join(string_parts))
+ _logger.debug("\nREQ: %s\n", req)
def http_log_resp(_logger, resp, body):
@@ -148,13 +150,13 @@ def http_log_resp(_logger, resp, body):
def _safe_encode_without_obj(data):
- if isinstance(data, basestring):
+ if isinstance(data, six.string_types):
return strutils.safe_encode(data)
return data
def safe_encode_list(data):
- return map(_safe_encode_without_obj, data)
+ return list(map(_safe_encode_without_obj, data))
def safe_encode_dict(data):
@@ -166,4 +168,4 @@ def safe_encode_dict(data):
return (k, safe_encode_dict(v))
return (k, _safe_encode_without_obj(v))
- return dict(map(_encode_item, data.items()))
+ return dict(list(map(_encode_item, data.items())))
diff --git a/neutronclient/neutron/v2_0/fw/firewallpolicy.py b/neutronclient/neutron/v2_0/fw/firewallpolicy.py
index f278fbf..e2771c2 100644
--- a/neutronclient/neutron/v2_0/fw/firewallpolicy.py
+++ b/neutronclient/neutron/v2_0/fw/firewallpolicy.py
@@ -19,7 +19,6 @@
from __future__ import print_function
import argparse
-import string
from neutronclient.neutron import v2_0 as neutronv20
from neutronclient.openstack.common.gettextutils import _
@@ -71,7 +70,7 @@ class CreateFirewallPolicy(neutronv20.CreateCommand):
help=_('Create a shared policy.'),
default=argparse.SUPPRESS)
parser.add_argument(
- '--firewall-rules', type=string.split,
+ '--firewall-rules', type=str.split,
help=_('Ordered list of whitespace-delimited firewall rule '
'names or IDs; e.g., --firewall-rules \"rule1 rule2\"'))
parser.add_argument(
diff --git a/neutronclient/neutron/v2_0/network.py b/neutronclient/neutron/v2_0/network.py
index aef3e4c..54d5465 100644
--- a/neutronclient/neutron/v2_0/network.py
+++ b/neutronclient/neutron/v2_0/network.py
@@ -68,7 +68,7 @@ class ListNetwork(neutronV20.ListCommand):
subnet_count = len(subnet_ids)
max_size = ((self.subnet_id_filter_len * subnet_count) -
uri_len_exc.excess)
- chunk_size = max_size / self.subnet_id_filter_len
+ chunk_size = max_size // self.subnet_id_filter_len
subnets = []
for i in range(0, subnet_count, chunk_size):
subnets.extend(
diff --git a/neutronclient/neutron/v2_0/securitygroup.py b/neutronclient/neutron/v2_0/securitygroup.py
index 14d25fa..8c554a9 100644
--- a/neutronclient/neutron/v2_0/securitygroup.py
+++ b/neutronclient/neutron/v2_0/securitygroup.py
@@ -154,7 +154,7 @@ class ListSecurityGroupRule(neutronV20.ListCommand):
sec_group_count = len(sec_group_ids)
max_size = ((sec_group_id_filter_len * sec_group_count) -
uri_len_exc.excess)
- chunk_size = max_size / sec_group_id_filter_len
+ chunk_size = max_size // sec_group_id_filter_len
secgroups = []
for i in range(0, sec_group_count, chunk_size):
secgroups.extend(
diff --git a/neutronclient/shell.py b/neutronclient/shell.py
index fa73329..51804e9 100644
--- a/neutronclient/shell.py
+++ b/neutronclient/shell.py
@@ -666,10 +666,10 @@ class NeutronShell(app.App):
self.initialize_app(remainder)
except Exception as err:
if self.options.verbose_level >= self.DEBUG_LEVEL:
- self.log.exception(unicode(err))
+ self.log.exception(err)
raise
else:
- self.log.error(unicode(err))
+ self.log.error(err)
return 1
if self.interactive_mode:
_argv = [sys.argv[0]]
@@ -923,12 +923,12 @@ class NeutronShell(app.App):
def main(argv=sys.argv[1:]):
try:
- return NeutronShell(NEUTRON_API_VERSION).run(map(strutils.safe_decode,
- argv))
+ return NeutronShell(NEUTRON_API_VERSION).run(
+ list(map(strutils.safe_decode, argv)))
except exc.NeutronClientException:
return 1
except Exception as e:
- print(unicode(e))
+ print(e)
return 1
diff --git a/neutronclient/tests/unit/test_auth.py b/neutronclient/tests/unit/test_auth.py
index 42f6745..5561ecc 100644
--- a/neutronclient/tests/unit/test_auth.py
+++ b/neutronclient/tests/unit/test_auth.py
@@ -21,6 +21,7 @@ import fixtures
import httpretty
from mox3 import mox
import requests
+import six
import testtools
from keystoneclient.auth.identity import v2 as ks_v2_auth
@@ -468,12 +469,14 @@ class CLITestAuthKeystone(testtools.TestCase):
utils.http_log_req(mox.IgnoreArg(), mox.IgnoreArg(), mox.Func(
verify_no_credentials))
self.client.request(
- mox.IsA(str), mox.IsA(str), body=mox.Func(verify_credentials),
+ mox.IsA(six.string_types), mox.IsA(six.string_types),
+ body=mox.Func(verify_credentials),
headers=mox.IgnoreArg()
).AndReturn((res200, json.dumps(KS_TOKEN_RESULT)))
utils.http_log_req(mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg())
self.client.request(
- mox.IsA(str), mox.IsA(str), headers=mox.IsA(dict)
+ mox.IsA(six.string_types), mox.IsA(six.string_types),
+ headers=mox.IsA(dict)
).AndReturn((res200, ''))
self.mox.ReplayAll()
diff --git a/neutronclient/tests/unit/test_cli20.py b/neutronclient/tests/unit/test_cli20.py
index 78d1567..38b5aa1 100644
--- a/neutronclient/tests/unit/test_cli20.py
+++ b/neutronclient/tests/unit/test_cli20.py
@@ -599,7 +599,7 @@ class ClientV2TestJson(CLITestV20Base):
self.client.format = self.format
self.mox.StubOutWithMock(self.client.httpclient, "request")
params = {'test': 'value'}
- expect_query = urllib.urlencode(params)
+ expect_query = six.moves.urllib.parse.urlencode(params)
self.client.httpclient.auth_token = 'token'
self.client.httpclient.request(
diff --git a/neutronclient/tests/unit/test_cli20_agents.py b/neutronclient/tests/unit/test_cli20_agents.py
index 710f4ba..2b02266 100644
--- a/neutronclient/tests/unit/test_cli20_agents.py
+++ b/neutronclient/tests/unit/test_cli20_agents.py
@@ -52,5 +52,5 @@ class CLITestV20Agent(test_cli20.CLITestV20Base):
self.assertEqual(1, len(returned_agents))
ag = returned_agents[0]
self.assertEqual(1, len(ag))
- self.assertEqual("alive", ag.keys()[0])
- self.assertEqual(smile, ag.values()[0])
+ self.assertIn("alive", ag.keys())
+ self.assertIn(smile, ag.values())
diff --git a/neutronclient/tests/unit/test_cli20_network.py b/neutronclient/tests/unit/test_cli20_network.py
index a3b964d..c5891a2 100644
--- a/neutronclient/tests/unit/test_cli20_network.py
+++ b/neutronclient/tests/unit/test_cli20_network.py
@@ -286,7 +286,7 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base):
self.assertEqual(1, len(returned_networks))
net = returned_networks[0]
self.assertEqual(1, len(net))
- self.assertEqual("id", net.keys()[0])
+ self.assertIn("id", net.keys())
def test_list_nets_with_default_column(self):
cmd = network.ListNetwork(test_cli20.MyApp(sys.stdout), None)
diff --git a/neutronclient/tests/unit/test_cli20_packetfilter.py b/neutronclient/tests/unit/test_cli20_packetfilter.py
index 9d7546d..dcb190e 100644
--- a/neutronclient/tests/unit/test_cli20_packetfilter.py
+++ b/neutronclient/tests/unit/test_cli20_packetfilter.py
@@ -173,7 +173,7 @@ class CLITestV20PacketFilterJSON(test_cli20.CLITestV20Base):
self._test_update_resource,
resource, cmd, 'myid', ['myid'], {})
self.assertEqual('Must specify new values to update packet_filter',
- unicode(exc))
+ str(exc))
def test_delete_packetfilter(self):
"""Delete packetfilter: myid."""
diff --git a/neutronclient/tests/unit/test_cli20_securitygroup.py b/neutronclient/tests/unit/test_cli20_securitygroup.py
index d09f48d..d1cc136 100644
--- a/neutronclient/tests/unit/test_cli20_securitygroup.py
+++ b/neutronclient/tests/unit/test_cli20_securitygroup.py
@@ -234,7 +234,7 @@ class CLITestV20SecurityGroupsJSON(test_cli20.CLITestV20Base):
sec_group_count = len(sec_group_ids)
max_size = ((sec_group_id_filter_len * sec_group_count) - excess)
- chunk_size = max_size / sec_group_id_filter_len
+ chunk_size = max_size // sec_group_id_filter_len
for i in range(0, sec_group_count, chunk_size):
search_opts['id'] = sec_group_ids[i: i + chunk_size]
diff --git a/neutronclient/v2_0/client.py b/neutronclient/v2_0/client.py
index eb84125..fcce028 100644
--- a/neutronclient/v2_0/client.py
+++ b/neutronclient/v2_0/client.py
@@ -16,7 +16,6 @@
import logging
import time
-import urllib
import requests
import six.moves.urllib.parse as urlparse
@@ -1228,7 +1227,7 @@ class Client(object):
action = self.action_prefix + action
if type(params) is dict and params:
params = utils.safe_encode_dict(params)
- action += '?' + urllib.urlencode(params, doseq=1)
+ action += '?' + urlparse.urlencode(params, doseq=1)
# Ensure client always has correct uri - do not guesstimate anything
self.httpclient.authenticate_and_fetch_endpoint_url()
self._check_uri_length(action)