Commit 0f1eb3cf by James Cammarata

Better fix for serializing/deserializing cache plugins (v2)

parent cd6d1f92
...@@ -26,9 +26,6 @@ from six import add_metaclass ...@@ -26,9 +26,6 @@ from six import add_metaclass
@add_metaclass(ABCMeta) @add_metaclass(ABCMeta)
class BaseCacheModule: class BaseCacheModule:
def __init__(self):
self.__getstate__ = self.copy
@abstractmethod @abstractmethod
def get(self, key): def get(self, key):
pass pass
......
...@@ -113,8 +113,6 @@ class CacheModuleKeys(collections.MutableSet): ...@@ -113,8 +113,6 @@ class CacheModuleKeys(collections.MutableSet):
self._cache = cache self._cache = cache
self._keyset = dict(*args, **kwargs) self._keyset = dict(*args, **kwargs)
super(CacheModule, self).__init__()
def __contains__(self, key): def __contains__(self, key):
return key in self._keyset return key in self._keyset
...@@ -193,3 +191,9 @@ class CacheModule(BaseCacheModule): ...@@ -193,3 +191,9 @@ class CacheModule(BaseCacheModule):
def copy(self): def copy(self):
return self._keys.copy() return self._keys.copy()
def __getstate__(self):
return dict()
def __setstate__(self, data):
self.__init__()
...@@ -24,8 +24,6 @@ class CacheModule(BaseCacheModule): ...@@ -24,8 +24,6 @@ class CacheModule(BaseCacheModule):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self._cache = {} self._cache = {}
super(CacheModule, self).__init__()
def get(self, key): def get(self, key):
return self._cache.get(key) return self._cache.get(key)
...@@ -46,3 +44,9 @@ class CacheModule(BaseCacheModule): ...@@ -46,3 +44,9 @@ class CacheModule(BaseCacheModule):
def copy(self): def copy(self):
return self._cache.copy() return self._cache.copy()
def __getstate__(self):
return self.copy()
def __setstate__(self, data):
self._cache = data
...@@ -51,8 +51,6 @@ class CacheModule(BaseCacheModule): ...@@ -51,8 +51,6 @@ class CacheModule(BaseCacheModule):
self._cache = StrictRedis(*connection) self._cache = StrictRedis(*connection)
self._keys_set = 'ansible_cache_keys' self._keys_set = 'ansible_cache_keys'
super(CacheModule, self).__init__()
def _make_key(self, key): def _make_key(self, key):
return self._prefix + key return self._prefix + key
...@@ -103,3 +101,8 @@ class CacheModule(BaseCacheModule): ...@@ -103,3 +101,8 @@ class CacheModule(BaseCacheModule):
ret[key] = self.get(key) ret[key] = self.get(key)
return ret return ret
def __getstate__(self):
return dict()
def __setstate__(self, data):
self.__init__()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment