Skip to content

Commit c8020cf

Browse files
willcl-arkpinheadmz
authored andcommitted
quickstart: don't permit A -> B -> A connections
1 parent ba62009 commit c8020cf

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/warnet/main.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def quickstart():
127127
inquirer.List(
128128
"connections",
129129
message=click.style(
130-
"How many addnode connections would you like each node to have?",
130+
"How many connections would you like each node to have?",
131131
fg="blue",
132132
bold=True,
133133
),
@@ -137,7 +137,7 @@ def quickstart():
137137
inquirer.List(
138138
"version",
139139
message=click.style(
140-
"Which version would you like nodes to be by default?", fg="blue", bold=True
140+
"Which version would you like nodes to run by default?", fg="blue", bold=True
141141
),
142142
choices=SUPPORTED_TAGS,
143143
default=DEFAULT_TAG,
@@ -360,13 +360,15 @@ def custom_graph(num_nodes: int, num_connections: int, version: str, datadir: Pa
360360
datadir.mkdir(parents=False, exist_ok=False)
361361
# Generate network.yaml
362362
nodes = []
363+
connections = set()
363364

364365
for i in range(num_nodes):
365366
node = {"name": f"tank-{i:04d}", "connect": [], "image": {"tag": version}}
366367

367368
# Add round-robin connection
368369
next_node = (i + 1) % num_nodes
369370
node["connect"].append(f"tank-{next_node:04d}")
371+
connections.add((i, next_node))
370372

371373
# Add random connections
372374
available_nodes = list(range(num_nodes))
@@ -376,8 +378,11 @@ def custom_graph(num_nodes: int, num_connections: int, version: str, datadir: Pa
376378

377379
for _ in range(min(num_connections - 1, len(available_nodes))):
378380
random_node = random.choice(available_nodes)
379-
node["connect"].append(f"tank-{random_node:04d}")
380-
available_nodes.remove(random_node)
381+
# Avoid circular loops of A -> B -> A
382+
if (random_node, i) not in connections:
383+
node["connect"].append(f"tank-{random_node:04d}")
384+
connections.add((i, random_node))
385+
available_nodes.remove(random_node)
381386

382387
nodes.append(node)
383388

0 commit comments

Comments
 (0)