summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/db_op.py15
-rw-r--r--src/server/model/graph.py19
2 files changed, 24 insertions, 10 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index 2cb05074..e08b46c1 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -238,12 +238,8 @@ class DBO_cypher_query(DB_op):
super(DBO_cypher_query, self).__init__()
self.add_statement(q, q_params)
-Topo_Diff_Result = namedtuple('Topo_Diff_Result', ['node_id_set_add',
- 'link_id_set_add',
- 'node_id_set_rm',
- 'link_id_set_rm'])
-
class DBO_diff_commit__topo(DB_composed_op):
+
"""
commit a Topo_Diff
@@ -316,11 +312,10 @@ class DBO_diff_commit__topo(DB_composed_op):
for n_id in row_set:
ret_nid_set_rm.extend(n_id)
- ret = Topo_Diff_Result(
- node_id_set_add=ret_nid_set_add,
- link_id_set_add=ret_lid_set_add,
- node_id_set_rm=ret_nid_set_rm,
- link_id_set_rm=ret_lid_set_rm)
+ ret = Topo_Diff.Commit_Result_Type(node_id_set_add=ret_nid_set_add,
+ link_id_set_add=ret_lid_set_add,
+ node_id_set_rm=ret_nid_set_rm,
+ link_id_set_rm=ret_lid_set_rm)
return ret
diff --git a/src/server/model/graph.py b/src/server/model/graph.py
index 430ffd13..1744ba46 100644
--- a/src/server/model/graph.py
+++ b/src/server/model/graph.py
@@ -97,6 +97,25 @@ class Topo_Diff(object):
Represents a change to the graph topology
"""
+ class Commit_Result_Type(dict):
+ """
+ Topo_Diff graph commit result type
+ """
+ def __init__(self, node_id_set_add=[],
+ link_id_set_add=[],
+ node_id_set_rm=[],
+ link_id_set_rm=[]):
+ self['node_id_set_add'] = node_id_set_add
+ self['link_id_set_add'] = link_id_set_add
+ self['node_id_set_rm'] = node_id_set_rm
+ self['link_id_set_rm'] = link_id_set_rm
+
+ @staticmethod
+ def from_json_dict(json_dict):
+ ret = Topo_Diff.Commit_Result_Type()
+ ret.__dict__ = json_dict
+ return ret
+
class JSON_Encoder(json.JSONEncoder):
"""
Topo_Diff is not a plain dict, so we provide a json encoder