independant caches for each environment
diff --git a/reclass/storage/memcache_proxy.py b/reclass/storage/memcache_proxy.py
index 485024b..6c898a2 100644
--- a/reclass/storage/memcache_proxy.py
+++ b/reclass/storage/memcache_proxy.py
@@ -34,7 +34,7 @@
if not self._cache_nodes:
return self._real_storage.get_node(name)
try:
- ret = self._nodes_cache[name]
+ return self._nodes_cache[name]
except KeyError, e:
ret = self._real_storage.get_node(name)
self._nodes_cache[name] = ret
@@ -44,10 +44,12 @@
if not self._cache_classes:
return self._real_storage.get_class(name, environment)
try:
- ret = self._classes_cache[name]
+ return self._classes_cache[environment][name]
except KeyError, e:
+ if environment not in self._classes_cache:
+ self._classes_cache[environment] = dict()
ret = self._real_storage.get_class(name, environment)
- self._classes_cache[name] = ret
+ self._classes_cache[environment][name] = ret
return ret
def enumerate_nodes(self):