Igonore incoming edges when creating net transform

master
Ken 2024-01-25 19:16:28 +00:00
parent 62130a3e9d
commit bf2467dc88
2 changed files with 3 additions and 20 deletions

View File

@ -150,9 +150,9 @@ class GraphBuilder:
adj_list: ConnEdgeAdjacenctList,
transition_adj_list: ConnEdgeAdjacenctList,
):
ldlnks = {}
if 2 * self._min_successors > len(self._peers):
return # not enough peers to build LDL
ldlnks = {}
if not self._relink:
ldlnks = transition_adj_list.select_edges(
edge_type=EDGE_TYPE_OUT.LongDistance
@ -260,21 +260,6 @@ class GraphBuilder:
)
self._build_static(adj_list)
if not self._manual_topo:
# Preserve existing incoming links
inlnks = transition_adj_list.select_incoming_edges()
for ce in inlnks.values():
if (
ce.edge_state
in (
EDGE_STATES.Initialized,
EDGE_STATES.PreAuth,
EDGE_STATES.Authorized,
EDGE_STATES.Created,
EDGE_STATES.Connected,
)
and ce.peer_id not in adj_list
):
adj_list[ce.peer_id] = ce
self._build_successors(adj_list, transition_adj_list)
self._build_long_dist_links(adj_list, transition_adj_list)
self._build_ondemand_links(adj_list, transition_adj_list, request_list)

View File

@ -333,10 +333,6 @@ class ConnEdgeAdjacenctList(MutableMapping):
def update_edge(self, new_conn_edge: ConnectionEdge):
ce = self._conn_edges.get(new_conn_edge.peer_id)
if ce:
if ce.role != CONNECTION_ROLE.Initiator:
raise ValueError(
"Existing ConnectionEdge's role is not an initiator, ce=%s", ce
)
self._decr_edge_type_count(ce.edge_type)
ce.edge_type = new_conn_edge.edge_type
self._incr_edge_type_count(ce.edge_type)
@ -457,6 +453,8 @@ class GraphTransformation:
self._edits.append(op)
for peer_id in current:
if current[peer_id].role == CONNECTION_ROLE.Target:
continue # take no action on incoming links
if peer_id not in target:
# Op Remove
if current[peer_id].edge_type == EDGE_TYPE_OUT.OnDemand: