Use jsonutils instead of stdlib json

jsonutils provides multiple benefits in comparison to pure stdlib json
(like using simplejson on Python 2.6).

Similar patch was already merged before [1], but since it lacked hacking
rule to enforce jsonutils usage, new occurrences of stdlib json module
usage were introduced.

This patch switches all the code to using jsonutils and adds a hacking
rule to enforce the rule.

The hacking rule requires that jsonutils module does not mimic as 'json'
thru using import renames, so the code was updated not to rename the
module when doing import.

The hacking rule was shamelessly copied from the corresponding nova
review [2].

[1]: https://review.openstack.org/#/c/99760/
[2]: https://review.openstack.org/111296/

Change-Id: Ie7a5bb76445e15cde9fbf9ff3d2101a014637b37
This commit is contained in:
Ihar Hrachyshka
2014-08-08 00:04:44 +02:00
parent 3c5ce011f2
commit 4a36519393
28 changed files with 214 additions and 151 deletions

View File

@@ -18,7 +18,7 @@ import eventlet
import httplib
import urllib
from neutron.openstack.common import jsonutils as json
from neutron.openstack.common import jsonutils
from neutron.openstack.common import log as logging
from neutron.plugins.vmware.api_client import request
@@ -199,7 +199,7 @@ class GetApiProvidersRequestEventlet(EventletApiRequest):
try:
if self.successful():
ret = []
body = json.loads(self.value.body)
body = jsonutils.loads(self.value.body)
for node in body.get('results', []):
for role in node.get('roles', []):
if role.get('role') == 'api_provider':