From a33f9cd67e5b7ed1eafd99ddfcd81d00f8cf795e Mon Sep 17 00:00:00 2001 From: LV-426 Date: Tue, 20 Jan 2015 17:49:11 +0200 Subject: mv DBO_block_chain__commit() op execution handling to kernel --- src/server/db_op.py | 8 -------- src/server/rz_kernel.py | 25 ++++++++++++++++++++++--- 2 files changed, 22 insertions(+), 11 deletions(-) (limited to 'src') 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) -- cgit v1.3.1