feat: full node isolation - use node-specific swapper_url and router_url from DB
- Add migration 041_node_local_endpoints.sql - Add get_node_endpoints() to repo_city.py - Update routes_city.py to use DB endpoints instead of hardcoded URLs - Update node-guardian-loop.py to use NODE_SWAPPER_URL/NODE_ROUTER_URL env vars - Update launchd plist for NODE2 with router URL
This commit is contained in:
@@ -3287,6 +3287,8 @@ async def get_node_metrics_current(node_id: str) -> Optional[Dict[str, Any]]:
|
||||
COALESCE(swapper_healthy, false) as swapper_healthy,
|
||||
COALESCE(swapper_models_loaded, 0) as swapper_models_loaded,
|
||||
COALESCE(swapper_models_total, 0) as swapper_models_total,
|
||||
router_url,
|
||||
swapper_url,
|
||||
updated_at
|
||||
FROM node_cache
|
||||
WHERE node_id = $1
|
||||
@@ -3341,6 +3343,34 @@ async def get_node_metrics_current(node_id: str) -> Optional[Dict[str, Any]]:
|
||||
return result
|
||||
|
||||
|
||||
async def get_node_endpoints(node_id: str) -> Dict[str, str]:
|
||||
"""
|
||||
Отримати URL endpoints для конкретної ноди.
|
||||
Якщо в БД немає значень — підставляє дефолти для NODE1.
|
||||
"""
|
||||
pool = await get_pool()
|
||||
|
||||
row = await pool.fetchrow("""
|
||||
SELECT router_url, swapper_url
|
||||
FROM node_cache
|
||||
WHERE node_id = $1
|
||||
""", node_id)
|
||||
|
||||
# Default values (NODE1 Docker-based)
|
||||
defaults = {
|
||||
"router_url": "http://dagi-router:9102",
|
||||
"swapper_url": "http://swapper-service:8890"
|
||||
}
|
||||
|
||||
if not row:
|
||||
return defaults
|
||||
|
||||
return {
|
||||
"router_url": row["router_url"] or defaults["router_url"],
|
||||
"swapper_url": row["swapper_url"] or defaults["swapper_url"]
|
||||
}
|
||||
|
||||
|
||||
async def get_node_metrics(node_id: str) -> Optional[Dict[str, Any]]:
|
||||
"""
|
||||
Отримати розширені метрики ноди (включаючи Swapper).
|
||||
@@ -3353,7 +3383,9 @@ async def get_node_metrics(node_id: str) -> Optional[Dict[str, Any]]:
|
||||
swapper_healthy,
|
||||
swapper_models_loaded,
|
||||
swapper_models_total,
|
||||
swapper_state
|
||||
swapper_state,
|
||||
router_url,
|
||||
swapper_url
|
||||
FROM node_cache
|
||||
WHERE node_id = $1
|
||||
""", node_id)
|
||||
|
||||
Reference in New Issue
Block a user