etcd3 : get rid of ast_literal

Drop ast_literal and use json to get/set the value

Change-Id: I8cfb00543c14da59a8ecaadf440ea87c2b9c3663
This commit is contained in:
Davanum Srinivas 2017-06-01 13:10:55 -04:00
parent e79d1ab159
commit f65f2ede06
1 changed files with 3 additions and 3 deletions

View File

@ -15,9 +15,9 @@
"""dogpile.cache backend that uses etcd 3.x for storage"""
from __future__ import absolute_import
import ast
from dogpile.cache import api
import etcd3gw
import json
from oslo_cache import core
@ -50,7 +50,7 @@ class Etcd3gwCacheBackend(api.CacheBackend):
values = self._client.get(key, False)
if not values:
return core.NO_VALUE
(value, metadata) = ast.literal_eval(values[0])
value, metadata = json.loads(values[0])
return api.CachedValue(value, metadata)
def get_multi(self, keys):
@ -65,7 +65,7 @@ class Etcd3gwCacheBackend(api.CacheBackend):
if self.timeout:
lease = self._client.lease(ttl=self.timeout)
for key, value in mapping.items():
self._client.put(key, value, lease)
self._client.put(key, json.dumps(value), lease)
def delete(self, key):
self._client.delete(key)