diff --git a/changes/566.fix.md b/changes/566.fix.md new file mode 100644 index 000000000..d82fa5cc3 --- /dev/null +++ b/changes/566.fix.md @@ -0,0 +1 @@ +Fix up newly found type errors for updating `common.etcd` using `etcetra` diff --git a/src/ai/backend/manager/api/etcd.py b/src/ai/backend/manager/api/etcd.py index 105152015..4bdf9c3c5 100644 --- a/src/ai/backend/manager/api/etcd.py +++ b/src/ai/backend/manager/api/etcd.py @@ -69,10 +69,11 @@ async def get_config(request: web.Request, params: Any) -> web.Response: ) if params['prefix']: # Flatten the returned ChainMap object for JSON serialization - value = dict(await root_ctx.shared_config.etcd.get_prefix_dict(params['key'])) + tree_value = dict(await root_ctx.shared_config.etcd.get_prefix_dict(params['key'])) + return web.json_response({'result': tree_value}) else: - value = await root_ctx.shared_config.etcd.get(params['key']) - return web.json_response({'result': value}) + scalar_value = await root_ctx.shared_config.etcd.get(params['key']) + return web.json_response({'result': scalar_value}) @superadmin_required diff --git a/src/ai/backend/manager/api/resource.py b/src/ai/backend/manager/api/resource.py index e40494b80..551919b2a 100644 --- a/src/ai/backend/manager/api/resource.py +++ b/src/ai/backend/manager/api/resource.py @@ -631,11 +631,10 @@ async def get_watcher_info(request: web.Request, agent_id: str) -> dict: if token is None: token = 'insecure' agent_ip = await root_ctx.shared_config.etcd.get(f'nodes/agents/{agent_id}/ip') - watcher_port = await root_ctx.shared_config.etcd.get( + raw_watcher_port = await root_ctx.shared_config.etcd.get( f'nodes/agents/{agent_id}/watcher_port', ) - if watcher_port is None: - watcher_port = 6009 + watcher_port = 6099 if raw_watcher_port is None else int(raw_watcher_port) # TODO: watcher scheme is assumed to be http addr = yarl.URL(f'http://{agent_ip}:{watcher_port}') return { diff --git a/src/ai/backend/manager/api/stream.py b/src/ai/backend/manager/api/stream.py index 62057f06c..e5be25fc4 100644 --- a/src/ai/backend/manager/api/stream.py +++ b/src/ai/backend/manager/api/stream.py @@ -633,7 +633,7 @@ async def stream_conn_tracker_gc(root_ctx: RootContext, app_ctx: PrivateContext) try: while True: no_packet_timeout: timedelta = tx.TimeDuration().check( - await shared_config.etcd.get('config/idle/app-streaming-packet-timeout', '5m'), + await shared_config.etcd.get('config/idle/app-streaming-packet-timeout') or '5m', ) async with app_ctx.conn_tracker_lock: now = await redis.execute(redis_live, lambda r: r.time())