From 48557c0eab81485142990e08535f90c203e7f771 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Thu, 12 Mar 2015 17:33:11 +0100 Subject: [PATCH] rpc: clean JSON serializer, remove strtime() usage strtime() is going to be deprecated in oslo_utils, see I8b5119e64369ccac3423dccc04421f99912df733. Change-Id: Ie34619d0c2c5db90d1bc34530a027884c6b124db --- glance/common/rpc.py | 15 +++++++++------ glance/tests/unit/common/test_rpc.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/glance/common/rpc.py b/glance/common/rpc.py index 43969efe..b0791f88 100644 --- a/glance/common/rpc.py +++ b/glance/common/rpc.py @@ -55,20 +55,23 @@ CONF.register_opts(rpc_opts) class RPCJSONSerializer(wsgi.JSONResponseSerializer): - def _sanitizer(self, obj): - def to_primitive(_type, _value): - return {"_type": _type, "_value": _value} + @staticmethod + def _to_primitive(_type, _value): + return {"_type": _type, "_value": _value} + def _sanitizer(self, obj): if isinstance(obj, datetime.datetime): - return to_primitive("datetime", timeutils.strtime(obj)) + return self._to_primitive("datetime", + obj.isoformat()) return super(RPCJSONSerializer, self)._sanitizer(obj) class RPCJSONDeserializer(wsgi.JSONRequestDeserializer): - def _to_datetime(self, obj): - return timeutils.parse_strtime(obj) + @staticmethod + def _to_datetime(obj): + return timeutils.normalize_time(timeutils.parse_isotime(obj)) def _sanitizer(self, obj): try: diff --git a/glance/tests/unit/common/test_rpc.py b/glance/tests/unit/common/test_rpc.py index 81b90522..2fac9135 100644 --- a/glance/tests/unit/common/test_rpc.py +++ b/glance/tests/unit/common/test_rpc.py @@ -260,7 +260,7 @@ class TestRPCJSONSerializer(test_utils.BaseTestCase): def test_to_json_with_date_format_value(self): fixture = {"date": datetime.datetime(1900, 3, 8, 2)} - expected = {"date": {"_value": "1900-03-08T02:00:00.000000", + expected = {"date": {"_value": "1900-03-08T02:00:00", "_type": "datetime"}} actual = rpc.RPCJSONSerializer().to_json(fixture) actual = jsonutils.loads(actual)