diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-09-09 03:09:43 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-09-09 03:09:43 +0000 |
commit | 4bc37901af8b8863ffaccf977e03238d73245919 (patch) | |
tree | f548e26a621968b65faf2bcce2f9c1f7a6809333 | |
parent | f22dbd20446ef5d316ffd3fffb630cf2731b8229 (diff) | |
parent | 54a2d3d866989eff0c2a2f972b5d854fdaa60007 (diff) | |
download | python-neutronclient-4bc37901af8b8863ffaccf977e03238d73245919.tar.gz |
Merge "Leverage openstack.common.jsonutils"
-rw-r--r-- | neutronclient/common/utils.py | 37 | ||||
-rw-r--r-- | neutronclient/neutron/v2_0/__init__.py | 5 | ||||
-rw-r--r-- | neutronclient/neutron/v2_0/port.py | 3 | ||||
-rw-r--r-- | neutronclient/neutron/v2_0/quota.py | 5 | ||||
-rw-r--r-- | neutronclient/neutron/v2_0/subnet.py | 7 | ||||
-rw-r--r-- | neutronclient/tests/unit/test_cli20_agents.py | 6 | ||||
-rw-r--r-- | neutronclient/tests/unit/test_cli20_network.py | 6 | ||||
-rw-r--r-- | neutronclient/tests/unit/test_utils.py | 77 |
8 files changed, 18 insertions, 128 deletions
diff --git a/neutronclient/common/utils.py b/neutronclient/common/utils.py index 1c78577..af0ddb9 100644 --- a/neutronclient/common/utils.py +++ b/neutronclient/common/utils.py @@ -17,14 +17,10 @@ """Utilities and helper functions.""" -import datetime -import json import logging import os import sys -import six - from neutronclient.common import _ from neutronclient.common import exceptions from neutronclient.openstack.common import strutils @@ -42,39 +38,6 @@ def env(*vars, **kwargs): return kwargs.get('default', '') -def to_primitive(value): - if isinstance(value, list) or isinstance(value, tuple): - o = [] - for v in value: - o.append(to_primitive(v)) - return o - elif isinstance(value, dict): - o = {} - for k, v in six.iteritems(value): - o[k] = to_primitive(v) - return o - elif isinstance(value, datetime.datetime): - return str(value) - elif hasattr(value, 'iteritems'): - return to_primitive(dict(value.iteritems())) - elif hasattr(value, '__iter__'): - return to_primitive(list(value)) - else: - return value - - -def dumps(value, indent=None): - try: - return json.dumps(value, indent=indent) - except TypeError: - pass - return json.dumps(to_primitive(value)) - - -def loads(s): - return json.loads(s) - - def import_class(import_str): """Returns a class from a string including module and class. diff --git a/neutronclient/neutron/v2_0/__init__.py b/neutronclient/neutron/v2_0/__init__.py index 20bbbff..66f1919 100644 --- a/neutronclient/neutron/v2_0/__init__.py +++ b/neutronclient/neutron/v2_0/__init__.py @@ -30,6 +30,7 @@ from neutronclient.common import command from neutronclient.common import exceptions from neutronclient.common import utils from neutronclient.openstack.common.gettextutils import _ +from neutronclient.openstack.common import jsonutils HEX_ELEM = '[0-9A-Fa-f]' UUID_PATTERN = '-'.join([HEX_ELEM + '{8}', HEX_ELEM + '{4}', @@ -416,12 +417,12 @@ class NeutronCommand(command.OpenStackCommand): if self.resource in data: for k, v in six.iteritems(data[self.resource]): if isinstance(v, list): - value = '\n'.join(utils.dumps( + value = '\n'.join(jsonutils.dumps( i, indent=self.json_indent) if isinstance(i, dict) else str(i) for i in v) data[self.resource][k] = value elif isinstance(v, dict): - value = utils.dumps(v, indent=self.json_indent) + value = jsonutils.dumps(v, indent=self.json_indent) data[self.resource][k] = value elif v is None: data[self.resource][k] = '' diff --git a/neutronclient/neutron/v2_0/port.py b/neutronclient/neutron/v2_0/port.py index 1cc0e0c..2aad26b 100644 --- a/neutronclient/neutron/v2_0/port.py +++ b/neutronclient/neutron/v2_0/port.py @@ -20,11 +20,12 @@ from neutronclient.common import exceptions from neutronclient.common import utils from neutronclient.neutron import v2_0 as neutronV20 from neutronclient.openstack.common.gettextutils import _ +from neutronclient.openstack.common import jsonutils def _format_fixed_ips(port): try: - return '\n'.join([utils.dumps(ip) for ip in port['fixed_ips']]) + return '\n'.join([jsonutils.dumps(ip) for ip in port['fixed_ips']]) except Exception: return '' diff --git a/neutronclient/neutron/v2_0/quota.py b/neutronclient/neutron/v2_0/quota.py index af8076e..6e5ad17 100644 --- a/neutronclient/neutron/v2_0/quota.py +++ b/neutronclient/neutron/v2_0/quota.py @@ -26,6 +26,7 @@ from neutronclient.common import exceptions from neutronclient.common import utils from neutronclient.neutron import v2_0 as neutronV20 from neutronclient.openstack.common.gettextutils import _ +from neutronclient.openstack.common import jsonutils def get_tenant_id(tenant_id, client): @@ -128,7 +129,7 @@ class ShowQuota(neutronV20.NeutronCommand, show.ShowOne): if value: value += "\n" if isinstance(_item, dict): - value += utils.dumps(_item) + value += jsonutils.dumps(_item) else: value += str(_item) data[self.resource][k] = value @@ -233,7 +234,7 @@ class UpdateQuota(neutronV20.NeutronCommand, show.ShowOne): if value: value += "\n" if isinstance(_item, dict): - value += utils.dumps(_item) + value += jsonutils.dumps(_item) else: value += str(_item) data[self.resource][k] = value diff --git a/neutronclient/neutron/v2_0/subnet.py b/neutronclient/neutron/v2_0/subnet.py index 6ab8ae2..ece1632 100644 --- a/neutronclient/neutron/v2_0/subnet.py +++ b/neutronclient/neutron/v2_0/subnet.py @@ -20,11 +20,12 @@ from neutronclient.common import exceptions from neutronclient.common import utils from neutronclient.neutron import v2_0 as neutronV20 from neutronclient.openstack.common.gettextutils import _ +from neutronclient.openstack.common import jsonutils def _format_allocation_pools(subnet): try: - return '\n'.join([utils.dumps(pool) for pool in + return '\n'.join([jsonutils.dumps(pool) for pool in subnet['allocation_pools']]) except Exception: return '' @@ -32,7 +33,7 @@ def _format_allocation_pools(subnet): def _format_dns_nameservers(subnet): try: - return '\n'.join([utils.dumps(server) for server in + return '\n'.join([jsonutils.dumps(server) for server in subnet['dns_nameservers']]) except Exception: return '' @@ -40,7 +41,7 @@ def _format_dns_nameservers(subnet): def _format_host_routes(subnet): try: - return '\n'.join([utils.dumps(route) for route in + return '\n'.join([jsonutils.dumps(route) for route in subnet['host_routes']]) except Exception: return '' diff --git a/neutronclient/tests/unit/test_cli20_agents.py b/neutronclient/tests/unit/test_cli20_agents.py index 6992019..710f4ba 100644 --- a/neutronclient/tests/unit/test_cli20_agents.py +++ b/neutronclient/tests/unit/test_cli20_agents.py @@ -16,8 +16,8 @@ import sys -from neutronclient.common import utils from neutronclient.neutron.v2_0 import agent +from neutronclient.openstack.common import jsonutils from neutronclient.tests.unit import test_cli20 @@ -32,7 +32,7 @@ class CLITestV20Agent(test_cli20.CLITestV20Base): self._test_list_columns(cmd, resources, contents, args) _str = self.fake_stdout.make_string() - returned_agents = utils.loads(_str) + returned_agents = jsonutils.loads(_str) self.assertEqual(1, len(returned_agents)) ag = returned_agents[0] self.assertEqual(3, len(ag)) @@ -48,7 +48,7 @@ class CLITestV20Agent(test_cli20.CLITestV20Base): self._test_list_columns(cmd, resources, contents, args) _str = self.fake_stdout.make_string() - returned_agents = utils.loads(_str) + returned_agents = jsonutils.loads(_str) self.assertEqual(1, len(returned_agents)) ag = returned_agents[0] self.assertEqual(1, len(ag)) diff --git a/neutronclient/tests/unit/test_cli20_network.py b/neutronclient/tests/unit/test_cli20_network.py index 0b68e1b..a3b964d 100644 --- a/neutronclient/tests/unit/test_cli20_network.py +++ b/neutronclient/tests/unit/test_cli20_network.py @@ -19,8 +19,8 @@ import sys from mox3 import mox from neutronclient.common import exceptions -from neutronclient.common import utils from neutronclient.neutron.v2_0 import network +from neutronclient.openstack.common import jsonutils from neutronclient import shell from neutronclient.tests.unit import test_cli20 @@ -282,7 +282,7 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base): self._test_list_nets_columns(cmd, returned_body, args=['-f', 'json', '-c', 'id']) _str = self.fake_stdout.make_string() - returned_networks = utils.loads(_str) + returned_networks = jsonutils.loads(_str) self.assertEqual(1, len(returned_networks)) net = returned_networks[0] self.assertEqual(1, len(net)) @@ -296,7 +296,7 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base): "subnets": []}]} self._test_list_nets_columns(cmd, returned_body) _str = self.fake_stdout.make_string() - returned_networks = utils.loads(_str) + returned_networks = jsonutils.loads(_str) self.assertEqual(1, len(returned_networks)) net = returned_networks[0] self.assertEqual(3, len(net)) diff --git a/neutronclient/tests/unit/test_utils.py b/neutronclient/tests/unit/test_utils.py index 44c0870..f387835 100644 --- a/neutronclient/tests/unit/test_utils.py +++ b/neutronclient/tests/unit/test_utils.py @@ -13,10 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. -import datetime import sys -import six import testtools from neutronclient.common import exceptions @@ -107,81 +105,6 @@ class TestUtils(testtools.TestCase): self.assertEqual(('test_name', 'test_id', 'test', 'pass'), act) -class JSONUtilsTestCase(testtools.TestCase): - def test_dumps(self): - self.assertEqual(utils.dumps({'a': 'b'}), '{"a": "b"}') - - def test_dumps_dict_with_date_value(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - res = utils.dumps({1: 'a', 2: x}) - expected = '{"1": "a", "2": "1920-02-03 04:05:06.000007"}' - self.assertEqual(expected, res) - - def test_dumps_dict_with_spaces(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - res = utils.dumps({1: 'a ', 2: x}) - expected = '{"1": "a ", "2": "1920-02-03 04:05:06.000007"}' - self.assertEqual(expected, res) - - def test_loads(self): - self.assertEqual(utils.loads('{"a": "b"}'), {'a': 'b'}) - - -class ToPrimitiveTestCase(testtools.TestCase): - def test_list(self): - self.assertEqual(utils.to_primitive([1, 2, 3]), [1, 2, 3]) - - def test_empty_list(self): - self.assertEqual(utils.to_primitive([]), []) - - def test_tuple(self): - self.assertEqual(utils.to_primitive((1, 2, 3)), [1, 2, 3]) - - def test_empty_tuple(self): - self.assertEqual(utils.to_primitive(()), []) - - def test_dict(self): - self.assertEqual( - utils.to_primitive(dict(a=1, b=2, c=3)), - dict(a=1, b=2, c=3)) - - def test_empty_dict(self): - self.assertEqual(utils.to_primitive({}), {}) - - def test_datetime(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - self.assertEqual( - utils.to_primitive(x), - '1920-02-03 04:05:06.000007') - - def test_iter(self): - x = range(1, 6) - self.assertEqual(utils.to_primitive(x), [1, 2, 3, 4, 5]) - - def test_iteritems(self): - d = {'a': 1, 'b': 2, 'c': 3} - - class IterItemsClass(object): - def iteritems(self): - return six.iteritems(d) - - x = IterItemsClass() - p = utils.to_primitive(x) - self.assertEqual(p, {'a': 1, 'b': 2, 'c': 3}) - - def test_nasties(self): - def foo(): - pass - x = [datetime, foo, dir] - ret = utils.to_primitive(x) - self.assertEqual(len(ret), 3) - - def test_to_primitive_dict_with_date_value(self): - x = datetime.datetime(1920, 2, 3, 4, 5, 6, 7) - res = utils.to_primitive({'a': x}) - self.assertEqual({'a': '1920-02-03 04:05:06.000007'}, res) - - class ImportClassTestCase(testtools.TestCase): def test_import_class(self): dt = utils.import_class('datetime.datetime') |