summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-05-12 12:01:31 +0300
committerAlon Levy <alon@pobox.com>2015-05-12 12:30:04 +0300
commit59561dd91a845f2d442691ee3e3c6e21e597c2e4 (patch)
tree4c99220538041b0ca16871707f35705986141e4c /src/server
parentf945ce9461e2cc9364d48ea7a52391f579e47a36 (diff)
server: return ts_created in meta dicts for topo_diff and attr_diff
Diffstat (limited to 'src/server')
-rw-r--r--src/server/db_op.py6
-rw-r--r--src/server/rz_kernel.py14
2 files changed, 14 insertions, 6 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 8a08feb6..b2bb9932 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -245,7 +245,7 @@ class DBO_block_chain__commit(DB_op):
'create (new_head)-[r:%s {link_attr}]->(old_head)' % (neo4j_schema.META_LABEL__VC_PARENT),
'remove old_head:%s' % (neo4j_schema.META_LABEL__VC_HEAD),
'set new_head.ts_created=timestamp()',
- 'return {head_parent_commit: old_head, head_commit: new_head}'
+ 'return {head_parent_commit: old_head, head_commit: new_head, ts_created: new_head.ts_created}'
]
q_param_set = {'commit_attr': {'blob': blob,
@@ -292,15 +292,18 @@ class DBO_block_chain__commit(DB_op):
hash_parent = None
hash_child = None
+ ts_created = None
for _, _, r_set in self.iter__r_set():
for row in r_set:
for ret_dict in row:
assert None == hash_parent # assert hash values set once only
assert None == hash_child
+ assert None == ts_created
hash_parent = ret_dict['head_parent_commit']['hash']
hash_child = ret_dict['head_commit']['hash']
+ ts_created = ret_dict['ts_created']
ret.node_set_add = [{'id': self.n_id,
'__label_set': ['__Commit']}
@@ -309,6 +312,7 @@ class DBO_block_chain__commit(DB_op):
l['id'] = self.l_id
l['__type'] = '__Parent'
ret.link_set_add = [l]
+ ret.meta['ts_created'] = ts_created
return ret
class DBO_block_chain__init(DB_op):
diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py
index 7bc2ceef..8a719317 100644
--- a/src/server/rz_kernel.py
+++ b/src/server/rz_kernel.py
@@ -204,7 +204,9 @@ class RZ_Kernel(object):
op = QT_RZDOC_NS_Filter(rzdoc)(op)
op_ret = self.db_ctl.exec_op(op)
- self.exec_chain_commit_op(topo_diff, ctx)
+ ts_created = self.exec_chain_commit_op(topo_diff, ctx, topo_diff.meta)
+ topo_diff.meta['ts_created'] = ts_created
+ op_ret['meta'] = topo_diff.meta
return topo_diff, op_ret
def diff_commit__attr(self, attr_diff, ctx):
@@ -221,10 +223,11 @@ class RZ_Kernel(object):
op = QT_RZDOC_NS_Filter(rzdoc)(op)
op_ret = self.db_ctl.exec_op(op)
- self.exec_chain_commit_op(attr_diff, ctx)
+ ts_created = self.exec_chain_commit_op(attr_diff, ctx)
+ attr_diff.meta['ts_created'] = ts_created
return attr_diff, op_ret
- def exec_chain_commit_op(self, diff_obj, ctx):
+ def exec_chain_commit_op(self, diff_obj, ctx, meta=None):
# FIXME: clean
if isinstance(diff_obj, Topo_Diff):
@@ -233,9 +236,10 @@ class RZ_Kernel(object):
commit_obj = diff_obj
rzdoc = ctx.rzdoc
- op = DBO_block_chain__commit(commit_obj, ctx)
+ op = DBO_block_chain__commit(commit_obj, ctx, meta)
op = QT_RZDOC_Meta_NS_Filter(rzdoc)(op)
- self.db_ctl.exec_op(op)
+ op_ret = self.db_ctl.exec_op(op)
+ return op_ret.meta['ts_created']
def load_node_set_by_id_attr(self, id_set, ctx=None):
op = DBO_match_node_set_by_id_attribute(id_set=id_set)