diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-03-30 20:07:42 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-04-01 22:25:54 +0300 |
| commit | f4b7c6c8c94c445f01b473b10449dbf70cb94e31 (patch) | |
| tree | d978788b3be5f76731be0f282ec3aabc735da443 /src/server/rz_kernel.py | |
| parent | 89bc058ada77a28f31150c2ab2de926f07d6cae8 (diff) | |
rz_kernel: rzdoc__xx: create, list, delete, lookup_by_name
Diffstat (limited to 'src/server/rz_kernel.py')
| -rw-r--r-- | src/server/rz_kernel.py | 75 |
1 files changed, 72 insertions, 3 deletions
diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py index 927391d4..f9ae612f 100644 --- a/src/server/rz_kernel.py +++ b/src/server/rz_kernel.py @@ -5,11 +5,13 @@ import json import logging import traceback -import db_controller -from db_op import DBO_diff_commit__attr, DBO_block_chain__commit +from db_op import DBO_diff_commit__attr, DBO_block_chain__commit, DBO_rzdoc__create, \ + DBO_rzdoc__lookup_by_name, DBO_rz_clone, DBO_rzdoc__delete, DBO_rzdoc__list from db_op import DBO_diff_commit__topo from model.graph import Topo_Diff -from neo4j_cypher import QT_Node_Filter__Doc_ID_Label +from neo4j_cypher import QT_RZDOC_NS_Filter, QT_RZDOC_Meta_NS_Filter +from model.model import RZDoc +import neo4j_util log = logging.getLogger('rhizi') @@ -102,3 +104,70 @@ class RZ_Kernel(object): log.error(traceback.print_exc()) raise e + def rzdoc__lookup_by_name(self, rzdoc_name, ctx=None): + """ + @param ctx: may be None + + @return: RZDoc object or None if rzdoc was not found + """ + + op = DBO_rzdoc__lookup_by_name(rzdoc_name) + try: + rzdoc = self.db_ctl.exec_op(op) + if None == rzdoc: return None + + return rzdoc + except Exception as e: + log.error(e.message) + raise e + + def rzdoc__create(self, rzdoc_name, ctx=None): + """ + Create & persist new RZDoc - may fail on unique name/id constraint violation + + @return: RZDoc object + """ + + rzdoc_id = neo4j_util.generate_random_rzdoc_id() + rzdoc = RZDoc(rzdoc_id, rzdoc_name) + + op = DBO_rzdoc__create(rzdoc) + try: + self.db_ctl.exec_op(op) + return rzdoc + except Exception as e: + log.error(e.message) + log.error(traceback.print_exc()) + raise e + + def rzdoc__delete(self, rzdoc, ctx=None): + """ + Delete RZDoc + + @return: RZDoc object + """ + + op = DBO_rzdoc__delete(rzdoc) + try: + self.db_ctl.exec_op(op) + except Exception as e: + log.error(e.message) + log.error(traceback.print_exc()) + raise e + + # TODO: broadcast delete event, clear cache mapping entry + + def rzdoc__list(self, rzdoc, ctx=None): + """ + List available RZDocs + + @return: RZDoc object + """ + op = DBO_rzdoc__list() + try: + op_ret = self.db_ctl.exec_op(op) + return op_ret; + except Exception as e: + log.error(e.message) + log.error(traceback.print_exc()) + raise e |
