Skip to content

fix(login): socks5h 不再被降级(#35) + events 调度诊断#39

Open
tianyilt wants to merge 1 commit into
masterfrom
fix/login-socks5h-and-events
Open

fix(login): socks5h 不再被降级(#35) + events 调度诊断#39
tianyilt wants to merge 1 commit into
masterfrom
fix/login-socks5h-and-events

Conversation

@tianyilt

Copy link
Copy Markdown
Owner

两件事

1. 修 #35 — 登录不再把 socks5h:// 降级成 socks5://

login_with_casqzcli/api.py)里有一行 proxy.replace("socks5h://", "socks5://"),把用户显式配的 socks5h://(DNS 走代理)悄悄降成 socks5://(本机解析 DNS)。在只能靠代理解析 qz.sii.edu.cn 的环境(WSL/VPN)下,登录直接连不上。

主 API 路径(_get_pool_manager)早已把原始 socks5h:// 正确交给 SOCKSProxyManagerrequests(依赖 PySocks)也原生支持 socks5h——只有 login 这一处多此一举。修复:删掉 replace,直接用原始 proxy。

2. 借鉴 InspireSkill 的调度诊断(qzcli events

补齐碎卡治理闭环的最后一环:看碎卡 → --exclude-node → 提交 → 若还排队,直接说出为什么排不上

  • APIget_job_events_with_cookie(任务/控制器级,含 Unschedulable)+ get_job_instance_events_with_cookie(Pod 级 FailedScheduling/Evict/Preempted,复用已有 _resolve_pod_names)。统一端点 POST /api/v1/train_job/events/list,按 filter.object_type=job|instance 区分——已真机验证端点与字段
  • CLI:新 qzcli events <job> [--reason/--type/--tail/--all-instances/--json]qzcli status <排队 job> 自动多打一行 排队原因: <reason> — <message>(仅排队/等待态、best-effort,不打断主流程)。

测试

  • tests/test_login_proxy.py(3):socks5h/socks5/无代理下 session.proxies 保持不被改写。
  • tests/test_job_events.py(20):端点/body/headers、401 与 code≠0 报错、空事件降级、--reason/--type/--tail 过滤、--all-instances 合并、--json、status 排队诊断行(运行态不额外请求)。
  • 全量 python3 -m unittest discover -s tests 通过(184,skip 3)。

Fixes #35

#35: login_with_cas 里 proxy.replace("socks5h://","socks5://") 会悄悄关掉
远程 DNS 解析。只能靠代理解析 qz.sii.edu.cn 的环境(WSL/VPN)因此登录失败。
主 API 路径早已正确透传 socks5h://,只有 login 这一处多此一举——直接用原始 proxy。

借鉴 InspireSkill 的调度诊断,补齐碎卡闭环最后一环(看碎卡→exclude→提交→
若还排队,说出为什么):
- api: get_job_events_with_cookie(job 级,含 Unschedulable)
  + get_job_instance_events_with_cookie(pod 级 FailedScheduling/Evict/Preempted,
  复用 _resolve_pod_names)。统一端点 POST /api/v1/train_job/events/list,
  按 filter.object_type 区分,真机验证字段。
- cli: 新 `qzcli events <job> [--reason/--type/--tail/--all-instances/--json]`;
  cmd_status 对排队态 best-effort 多打一行「排队原因: <reason> — <message>」。
- tests: test_login_proxy(3) + test_job_events(20),全绿。

Fixes #35

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

login_with_cas 中的 socks5h:// → socks5:// replace 不合理,导致正常 SOCKS 配置无法使用

1 participant