def _add_tree_root(cluster_name, node_path): """增加树形结构根节点,保持树形结构 """ root_node = ZdSnapshotTree(cluster_name=cluster_name, node_path=node_path, left=0, right=1) root_node.save()
def _add_tree_node(cluster_name, parent_node, node_path): """增加树形结构普通节点,需要保持树形结构 """ slot_left = parent_node.left # update left and right value update_left_query = ZdSnapshotTree.update( left=ZdSnapshotTree.left + 2).where((ZdSnapshotTree.left > slot_left) & (ZdSnapshotTree.cluster_name == cluster_name)) update_right_query = ZdSnapshotTree.update( right=ZdSnapshotTree.right + 2).where((ZdSnapshotTree.right > slot_left) & (ZdSnapshotTree.cluster_name == cluster_name)) update_left_query.execute() update_right_query.execute() # create new node child_node = ZdSnapshotTree(cluster_name=cluster_name, node_path=node_path, left=slot_left + 1, right=slot_left + 2) child_node.save()