diff --git a/nova/tests/unit/virt/lxd/test_driver.py b/nova/tests/unit/virt/lxd/test_driver.py index b417186a..196adea5 100644 --- a/nova/tests/unit/virt/lxd/test_driver.py +++ b/nova/tests/unit/virt/lxd/test_driver.py @@ -12,13 +12,14 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. + import collections -import json import base64 from contextlib import closing import eventlet from oslo_config import cfg +from oslo_serialization import jsonutils import mock from nova import context from nova import exception @@ -1197,7 +1198,7 @@ class LXDDriverTest(test.NoDBTestCase): lxd_driver.client.host_info = lxd_config value = lxd_driver.get_available_resource(None) # This is funky, but json strings make for fragile tests. - value['cpu_info'] = json.loads(value['cpu_info']) + value['cpu_info'] = jsonutils.loads(value['cpu_info']) self.assertEqual(expected, value) @@ -1294,7 +1295,7 @@ class LXDDriverTest(test.NoDBTestCase): lxd_driver.client.host_info = lxd_config value = lxd_driver.get_available_resource(None) # This is funky, but json strings make for fragile tests. - value['cpu_info'] = json.loads(value['cpu_info']) + value['cpu_info'] = jsonutils.loads(value['cpu_info']) self.assertEqual(expected, value) diff --git a/nova/virt/lxd/driver.py b/nova/virt/lxd/driver.py index 0ca3e3ef..d853ce56 100644 --- a/nova/virt/lxd/driver.py +++ b/nova/virt/lxd/driver.py @@ -17,7 +17,6 @@ from __future__ import absolute_import import errno import io -import json import os import platform import pwd @@ -352,7 +351,7 @@ def _sync_glance_image_to_lxd(client, context, image_ref): 'hw_architecture', obj_fields.Architecture.from_host()), 'creation_date': int(os.stat(image_file).st_ctime)} - metadata_yaml = json.dumps( + metadata_yaml = jsonutils.dumps( metadata, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False).encode('utf-8') + b"\n" @@ -1273,7 +1272,7 @@ class LXDDriver(driver.ComputeDriver): "volatile.tap5fd6808a-7b.name": "eth0" } """ - container_id_map = json.loads( + container_id_map = jsonutils.loads( container.config['volatile.last_state.idmap']) uid_map = list(filter(lambda id_map: id_map.get("Isuid"), container_id_map)) diff --git a/nova_lxd_tempest_plugin/tests/scenario/test_server_basic_ops.py b/nova_lxd_tempest_plugin/tests/scenario/test_server_basic_ops.py index fa3fd95e..601a3ccb 100644 --- a/nova_lxd_tempest_plugin/tests/scenario/test_server_basic_ops.py +++ b/nova_lxd_tempest_plugin/tests/scenario/test_server_basic_ops.py @@ -14,8 +14,6 @@ # License for the specific language governing permissions and limitations # under the License. -import json - from tempest.common import utils from tempest import config from tempest import exceptions @@ -23,6 +21,7 @@ from tempest.lib.common.utils import test_utils from tempest.lib import decorators from nova_lxd_tempest_plugin.tests.scenario import manager +from oslo_serialization import jsonutils CONF = config.CONF @@ -86,7 +85,7 @@ class TestServerBasicOps(manager.ScenarioTest): cmd_md = \ 'cat /var/lib/cloud/data/openstack/latest/meta_data.json' result = self.ssh_client.exec_command(cmd_md) - result = json.loads(result) + result = jsonutils.loads(result) self.assertIn('meta', result) msg = ('Failed while verifying metadata on config_drive on server.' ' Result of command "%s" is NOT "%s".' % (cmd_md, self.md)) @@ -98,7 +97,7 @@ class TestServerBasicOps(manager.ScenarioTest): cmd_md = \ 'cat /var/lib/cloud/data/openstack/latest/network_data.json' result = self.ssh_client.exec_command(cmd_md) - result = json.loads(result) + result = jsonutils.loads(result) self.assertIn('services', result) self.assertIn('links', result) self.assertIn('networks', result)