Skip to content

Commit 2b2591a

Browse files
feat(node): Add /nodes/reconnect endpoint
1 parent be5495e commit 2b2591a

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

app/operation/node.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ async def update_node_status(
7878

7979
@staticmethod
8080
async def connect_node(node_id: int) -> None:
81-
gozargah_node: PasarGuardNode | None = await node_manager.get_node(node_id)
82-
if gozargah_node is None:
81+
pg_node: PasarGuardNode | None = await node_manager.get_node(node_id)
82+
if pg_node is None:
8383
return
8484

8585
async with GetDB() as db:
@@ -96,7 +96,7 @@ async def connect_node(node_id: int) -> None:
9696
core = await core_manager.get_core(db_node.core_config_id if db_node.core_config_id else 1)
9797

9898
try:
99-
info = await gozargah_node.start(
99+
info = await pg_node.start(
100100
config=core.to_str(),
101101
backend_type=0,
102102
users=await core_users(db=db),
@@ -325,12 +325,12 @@ async def sync_node_users(self, db: AsyncSession, node_id: int, flush_users: boo
325325
if db_node.status != NodeStatus.connected:
326326
await self.raise_error(message="Node is not connected", code=406)
327327

328-
gozargah_node = await node_manager.get_node(node_id)
329-
if gozargah_node is None:
328+
pg_node = await node_manager.get_node(node_id)
329+
if pg_node is None:
330330
await self.raise_error(message="Node is not connected", code=409)
331331

332332
try:
333-
await gozargah_node.sync_users(await core_users(db=db), flush_queue=flush_users)
333+
await pg_node.sync_users(await core_users(db=db), flush_queue=flush_users)
334334
except NodeAPIError as e:
335335
await update_node_status(db=db, db_node=db_node, status=NodeStatus.error, message=e.detail)
336336
await self.raise_error(message=e.detail, code=e.code)

app/routers/node.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,19 @@ async def get_nodes(
5353
return await node_operator.get_db_nodes(db=db, core_id=backend_id, offset=offset, limit=limit)
5454

5555

56+
@router.post("s/reconnect")
57+
async def reconnect_all_node(
58+
core_id: int | None = None,
59+
db: AsyncSession = Depends(get_db),
60+
admin: AdminDetails = Depends(check_sudo_admin),
61+
):
62+
"""
63+
Trigger reconnection for all nodes or a specific core.
64+
"""
65+
await node_operator.restart_all_node(db=db, admin=admin, core_id=core_id)
66+
return {}
67+
68+
5669
@router.post(
5770
"",
5871
response_model=NodeResponse,

0 commit comments

Comments
 (0)