From ac8d731ff4c9f64f8ffaa81c285e7bbeb8a48e9c Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 25 Mar 2015 14:50:16 +0530 Subject: [PATCH] fixes in redis if redis server is off --- frappe/utils/redis_wrapper.py | 15 +++++++++------ frappe/utils/user.py | 4 ++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/frappe/utils/redis_wrapper.py b/frappe/utils/redis_wrapper.py index 4c14ca0f34..a57ffb86b1 100644 --- a/frappe/utils/redis_wrapper.py +++ b/frappe/utils/redis_wrapper.py @@ -2,7 +2,7 @@ # MIT License. See license.txt from __future__ import unicode_literals -import redis, frappe, pickle +import redis, frappe, pickle, re class RedisWrapper(redis.Redis): """Redis client that will automatically prefix conf.db_name""" @@ -19,7 +19,7 @@ class RedisWrapper(redis.Redis): """Sets cache value.""" key = self.make_key(key, user) frappe.local.cache[key] = val - if frappe.local.flags.in_install: + if frappe.local.flags.in_install or frappe.local.flags.in_install_db: return try: @@ -38,7 +38,7 @@ class RedisWrapper(redis.Redis): if key not in frappe.local.cache: val = None - if not frappe.local.flags.in_install: + if not frappe.local.flags.in_install and not frappe.local.flags.in_install_db: try: val = self.get(key) except redis.exceptions.ConnectionError: @@ -63,9 +63,12 @@ class RedisWrapper(redis.Redis): def get_keys(self, key): """Return keys with wildcard `*`.""" try: - return self.keys(self.make_key(key + "*")) + key = self.make_key(key + "*") + return self.keys(key) + except redis.exceptions.ConnectionError: - return [] + regex = re.compile(key.replace("|", "\|").replace("*", "[\w]*")) + return [k for k in frappe.local.cache.keys() if regex.match(k)] def delete_keys(self, key): """Delete keys with wildcard `*`.""" @@ -84,7 +87,7 @@ class RedisWrapper(redis.Redis): key = self.make_key(key) - if not frappe.local.flags.in_install: + if not frappe.local.flags.in_install and not frappe.local.flags.in_install_db: try: self.delete(key) except redis.exceptions.ConnectionError: diff --git a/frappe/utils/user.py b/frappe/utils/user.py index ebb47257b3..0196be9f2d 100644 --- a/frappe/utils/user.py +++ b/frappe/utils/user.py @@ -35,6 +35,10 @@ class User: if not frappe.flags.in_install_db and not frappe.flags.in_test: try: self.doc = frappe.get_doc("User", self.name) + + except frappe.DoesNotExistError: + pass + except Exception, e: # install boo-boo if e.args[0] != 1146: raise