diff --git a/watcherclient/common/httpclient.py b/watcherclient/common/httpclient.py index 7df2326..c5e5577 100644 --- a/watcherclient/common/httpclient.py +++ b/watcherclient/common/httpclient.py @@ -17,7 +17,6 @@ import copy from distutils import version import functools import hashlib -import json import logging import os import socket @@ -27,6 +26,7 @@ import time from keystoneauth1 import adapter from keystoneauth1 import exceptions as kexceptions +from oslo_serialization import jsonutils from oslo_utils import strutils import requests import six @@ -70,10 +70,10 @@ def _extract_error_json(body): """Return error_message from the HTTP response body.""" error_json = {} try: - body_json = json.loads(body) + body_json = jsonutils.loads(body) if 'error_message' in body_json: raw_msg = body_json['error_message'] - error_json = json.loads(raw_msg) + error_json = jsonutils.loads(raw_msg) except ValueError: pass @@ -382,7 +382,7 @@ class HTTPClient(VersionNegotiationMixin): kwargs['headers'].setdefault('Accept', 'application/json') if 'body' in kwargs: - kwargs['body'] = json.dumps(kwargs['body']) + kwargs['body'] = jsonutils.dumps(kwargs['body']) resp, body_iter = self._http_request(url, method, **kwargs) content_type = resp.headers.get('Content-Type') @@ -395,7 +395,7 @@ class HTTPClient(VersionNegotiationMixin): if 'application/json' in content_type: body = ''.join([chunk for chunk in body_iter]) try: - body = json.loads(body) + body = jsonutils.loads(body) except ValueError: LOG.error(_LE('Could not decode response body as JSON')) else: @@ -545,7 +545,7 @@ class SessionClient(VersionNegotiationMixin, adapter.LegacyJsonAdapter): kwargs['headers'].setdefault('Accept', 'application/json') if 'body' in kwargs: - kwargs['data'] = json.dumps(kwargs.pop('body')) + kwargs['data'] = jsonutils.dumps(kwargs.pop('body')) resp = self._http_request(url, method, **kwargs) body = resp.content diff --git a/watcherclient/common/utils.py b/watcherclient/common/utils.py index a11c799..4778404 100644 --- a/watcherclient/common/utils.py +++ b/watcherclient/common/utils.py @@ -17,11 +17,11 @@ from __future__ import print_function import argparse -import json import os import uuid import yaml +from oslo_serialization import jsonutils from oslo_utils import importutils from watcherclient._i18n import _ @@ -89,7 +89,7 @@ def split_and_deserialize(string): raise exc.CommandError(_('Attributes must be a list of ' 'PATH=VALUE not "%s"') % string) try: - value = json.loads(value) + value = jsonutils.loads(value) except ValueError: pass diff --git a/watcherclient/tests/unit/keystone_client_fixtures.py b/watcherclient/tests/unit/keystone_client_fixtures.py index 562de76..a3aadb9 100644 --- a/watcherclient/tests/unit/keystone_client_fixtures.py +++ b/watcherclient/tests/unit/keystone_client_fixtures.py @@ -10,7 +10,7 @@ # License for the specific language governing permissions and limitations # under the License. -import json +from oslo_serialization import jsonutils from oslo_utils import uuidutils from keystoneauth1.fixture import v2 as ks_v2_fixture @@ -53,11 +53,11 @@ TOKENID = uuidutils.generate_uuid(dashed=False) def _create_version_list(versions): - return json.dumps({'versions': {'values': versions}}) + return jsonutils.dumps({'versions': {'values': versions}}) def _create_single_version(version): - return json.dumps({'version': version}) + return jsonutils.dumps({'version': version}) V3_VERSION_LIST = _create_version_list([V3_VERSION, V2_VERSION]) @@ -74,8 +74,8 @@ def keystone_request_callback(request, uri, headers): return (200, headers, V3_VERSION_LIST) elif uri == BASE_URL + "/v2.0": v2_token = ks_v2_fixture.Token(token_id) - return (200, response_headers, json.dumps(v2_token)) + return (200, response_headers, jsonutils.dumps(v2_token)) elif uri == BASE_URL + "/v3": v3_token = ks_v3_fixture.Token() response_headers["X-Subject-Token"] = token_id - return (201, response_headers, json.dumps(v3_token)) + return (201, response_headers, jsonutils.dumps(v3_token)) diff --git a/watcherclient/tests/unit/v1/base.py b/watcherclient/tests/unit/v1/base.py index d8bec08..e50eebf 100644 --- a/watcherclient/tests/unit/v1/base.py +++ b/watcherclient/tests/unit/v1/base.py @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json import shlex import mock from osc_lib import utils as oscutils +from oslo_serialization import jsonutils from watcherclient.common import httpclient from watcherclient.tests.unit import utils @@ -55,7 +55,7 @@ class CommandTestCase(utils.BaseTestCase): def run_cmd(self, cmd, formatting='json'): if formatting: formatter_arg = " -f %s" % formatting - formatter = json.loads + formatter = jsonutils.loads else: formatter_arg = '' formatter = str diff --git a/watcherclient/v1/strategy_shell.py b/watcherclient/v1/strategy_shell.py index 4ecf7bb..edb4e58 100644 --- a/watcherclient/v1/strategy_shell.py +++ b/watcherclient/v1/strategy_shell.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json from osc_lib import utils +from oslo_serialization import jsonutils from watcherclient._i18n import _ from watcherclient.common import command @@ -38,7 +38,7 @@ class ShowStrategy(command.ShowOne): def _format_spec(self, strategy): parameters_spec = strategy.parameters_spec.get('properties') if parameters_spec: - return json.dumps(parameters_spec, indent=2) + return jsonutils.dumps(parameters_spec, indent=2) return {}