diff --git a/tacker/db/migration/alembic_migrations/versions/6e56d4474b2a_blob_to_json_text.py b/tacker/db/migration/alembic_migrations/versions/6e56d4474b2a_blob_to_json_text.py index 0916730dd..15d537e8b 100644 --- a/tacker/db/migration/alembic_migrations/versions/6e56d4474b2a_blob_to_json_text.py +++ b/tacker/db/migration/alembic_migrations/versions/6e56d4474b2a_blob_to_json_text.py @@ -21,9 +21,10 @@ Create Date: 2016-06-01 09:50:46.296206 """ -import json import pickle +from oslo_serialization import jsonutils + from alembic import op import sqlalchemy as sa @@ -40,7 +41,8 @@ def _migrate_data(table, column_name): for r in t.select().execute(): stmt = t.update().where(t.c.id == r.id).values( - {column_name: json.dumps(pickle.loads(getattr(r, column_name)))}) + {column_name: jsonutils.dump_as_bytes( + pickle.loads(getattr(r, column_name)))}) op.execute(stmt) op.alter_column(table, diff --git a/tacker/db/types.py b/tacker/db/types.py index ae563ab09..1fe199f13 100644 --- a/tacker/db/types.py +++ b/tacker/db/types.py @@ -10,9 +10,10 @@ # License for the specific language governing permissions and limitations # under the License. -import json import uuid +from oslo_serialization import jsonutils + from sqlalchemy.types import String from sqlalchemy.types import Text from sqlalchemy.types import TypeDecorator @@ -39,9 +40,9 @@ class Json(TypeDecorator): impl = Text def process_bind_param(self, value, dialect): - return json.dumps(value) + return jsonutils.dump_as_bytes(value) def process_result_value(self, value, dialect): if value is None: return None - return json.loads(value) + return jsonutils.loads(value) diff --git a/tacker/tests/unit/vnfm/test_monitor.py b/tacker/tests/unit/vnfm/test_monitor.py index b9672fa92..1352f322e 100644 --- a/tacker/tests/unit/vnfm/test_monitor.py +++ b/tacker/tests/unit/vnfm/test_monitor.py @@ -12,9 +12,8 @@ # under the License. # -import json - import mock +from oslo_serialization import jsonutils from oslo_utils import timeutils import testtools @@ -95,7 +94,7 @@ class TestVNFMonitor(testtools.TestCase): 'id': MOCK_VNF_ID, 'mgmt_ip_address': '{"vdu1": "a.b.c.d"}', 'attributes': { - 'monitoring_policy': json.dumps( + 'monitoring_policy': jsonutils.dump_as_bytes( MOCK_VNF['monitoring_policy']) } } @@ -119,7 +118,7 @@ class TestVNFMonitor(testtools.TestCase): 'id': MOCK_VNF_ID, 'mgmt_ip_address': '{"vdu1": "a.b.c.d"}', 'attributes': { - 'monitoring_policy': json.dumps( + 'monitoring_policy': jsonutils.dump_as_bytes( MOCK_VNF['monitoring_policy']) }, 'status': 'ACTIVE' @@ -167,7 +166,7 @@ class TestVNFMonitor(testtools.TestCase): 'id': MOCK_VNF_ID, 'mgmt_ip_address': '{"vdu1": "a.b.c.d"}', 'attributes': { - 'monitoring_policy': json.dumps( + 'monitoring_policy': jsonutils.dump_as_bytes( MOCK_VNF_DEVICE_FOR_VDU_AUTOHEAL['monitoring_policy']) } } @@ -191,7 +190,7 @@ class TestVNFMonitor(testtools.TestCase): 'id': MOCK_VNF_ID, 'mgmt_ip_address': '{"vdu1": "a.b.c.d"}', 'attributes': { - 'monitoring_policy': json.dumps( + 'monitoring_policy': jsonutils.dump_as_bytes( MOCK_VNF['monitoring_policy']) }, 'status': 'ACTIVE',