summaryrefslogtreecommitdiff
path: root/src/server/rz_kernel.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-01-20 17:49:11 +0200
committerLV-426 <lv-426@taproot.org.il>2015-01-20 17:49:11 +0200
commita33f9cd67e5b7ed1eafd99ddfcd81d00f8cf795e (patch)
treee53fd5d007035889ca81f2a7a08c1d66c91ccc19 /src/server/rz_kernel.py
parent4e41fd46d2907308e832f7483820711ab0add6b1 (diff)
mv DBO_block_chain__commit() op execution handling to kernel
Diffstat (limited to 'src/server/rz_kernel.py')
-rw-r--r--src/server/rz_kernel.py25
1 files changed, 22 insertions, 3 deletions
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)