diff options
| author | Alon Levy <alon@pobox.com> | 2015-04-10 10:55:36 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-04-10 14:18:27 +0200 |
| commit | 61a187b808d9c49ab955ce3af1d75c09b9e000e9 (patch) | |
| tree | 4f67a5909f4d9a73e4864ff6b7395bdd333342ec /src/server | |
| parent | fc0427762d3e079b5f16e922fc296e05acb23065 (diff) | |
server/rz_kernel: rzdoc__create: avoid rethrow
Instead of raising and catching an exception by using the cache lookup
extract a function to lookup in cache and then in db that just returns
the result.
Avoids an exception trace we log whenever there is an exception.
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/rz_kernel.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py index 84d54acd..2f1ae59a 100644 --- a/src/server/rz_kernel.py +++ b/src/server/rz_kernel.py @@ -254,6 +254,12 @@ class RZ_Kernel(object): rzdoc = self.db_ctl.exec_op(op) return rzdoc # may be None + def rzdoc__lookup_by_name_with_cache(self, rzdoc_name): + cache_doc = self.cache__rzdoc_name_to_rzdoc.get(rzdoc_name) + if None != cache_doc: + return cache_doc + return self.rzdoc__lookup_by_name(rzdoc_name) + def rzdoc__create(self, rzdoc_name, ctx=None): """ Create & persist new RZDoc - may fail on unique name/id constraint violation @@ -261,11 +267,8 @@ class RZ_Kernel(object): @return: RZDoc object @raise RZDoc_Exception__already_exists """ - try: - self.cache_lookup__rzdoc(rzdoc_name) + if None != self.rzdoc__lookup_by_name_with_cache(rzdoc_name): raise RZDoc_Exception__already_exists(rzdoc_name) - except RZDoc_Exception__not_found: - pass rzdoc = RZDoc(rzdoc_name) rzdoc.id = neo4j_util.generate_random_rzdoc_id() |
