summaryrefslogtreecommitdiff
path: root/src/server/rz_kernel.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-03-30 20:07:42 +0300
committerLV-426 <lv-426@taproot.org.il>2015-04-01 22:25:54 +0300
commitf4b7c6c8c94c445f01b473b10449dbf70cb94e31 (patch)
treed978788b3be5f76731be0f282ec3aabc735da443 /src/server/rz_kernel.py
parent89bc058ada77a28f31150c2ab2de926f07d6cae8 (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.py75
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