summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/db_op.py8
-rw-r--r--src/server/rz_kernel.py25
2 files changed, 22 insertions, 11 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 9fbb8717..7cb2d6e7 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -331,10 +331,6 @@ class DBO_diff_commit__topo(DB_composed_op):
op = DBO_rm_node_set(n_rm_set)
self.add_sub_op(op)
- blob = json.dumps(topo_diff.to_json_dict())
- chain_commit_op = DBO_block_chain__commit(blob, commit_obj=topo_diff)
- self.add_sub_op(chain_commit_op)
-
def process_result_set(self):
ret_nid_set_add = []
ret_lid_set_add = []
@@ -437,10 +433,6 @@ class DBO_diff_commit__attr(DB_op):
self.add_statement(q_arr, q_param_set)
- blob = json.dumps(attr_diff)
- chain_commit_op = DBO_block_chain__commit(blob, commit_obj=attr_diff)
- for db_q in chain_commit_op.statement_set:
- self.add_db_query(db_q)
def add_link_rename_statements(self, id_attr, new_label):
# TODO - where do we sanitize the label name? any better way of doing this?
diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py
index 925ebeaf..a4280faa 100644
--- a/src/server/rz_kernel.py
+++ b/src/server/rz_kernel.py
@@ -1,19 +1,32 @@
"""
Rhizi kernel, home to core operation login
"""
+import json
import logging
import traceback
import db_controller
-from db_op import DBO_diff_commit__attr
+from db_op import DBO_diff_commit__attr, DBO_block_chain__commit
from db_op import DBO_diff_commit__topo
+from model.graph import Topo_Diff
log = logging.getLogger('rhizi')
class RZ_Kernel(object):
- def diff_commit__topo(self, topo_diff):
+ def exec_chain_commit_op(self, diff_obj, ctx):
+
+ # FIXME: clean
+ if isinstance(diff_obj, Topo_Diff):
+ blob = json.dumps(diff_obj.to_json_dict())
+ else:
+ blob = json.dumps(diff_obj)
+
+ chain_commit_op = DBO_block_chain__commit(blob, commit_obj=diff_obj, ctx=ctx)
+ self.db_ctl.exec_op(chain_commit_op)
+
+ def diff_commit__topo(self, topo_diff, ctx=None):
"""
commit a graph topology diff - this is a common pathway for:
- RESP API calls
@@ -25,13 +38,16 @@ class RZ_Kernel(object):
op = DBO_diff_commit__topo(topo_diff)
try:
op_ret = self.db_ctl.exec_op(op)
+
+ self.exec_chain_commit_op(topo_diff, ctx)
+
return topo_diff, op_ret
except Exception as e:
log.error(e.message)
log.error(traceback.print_exc())
raise e
- def diff_commit__attr(self, attr_diff):
+ def diff_commit__attr(self, attr_diff, ctx=None):
"""
commit a graph attribute diff - this is a common pathway for:
- RESP API calls
@@ -43,6 +59,9 @@ class RZ_Kernel(object):
op = DBO_diff_commit__attr(attr_diff)
try:
op_ret = self.db_ctl.exec_op(op)
+
+ self.exec_chain_commit_op(attr_diff, ctx)
+
return attr_diff, op_ret
except Exception as e:
log.error(e.message)