Files
xas-test-library/docs/implementation-plan.md

46 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XAS 测试控制台实施计划
> 历史计划:本文件只描述已完成的 Rundeck 阶段。当前实施入口是 [console-plan.md](console-plan.md)。
日期:2026-10-13。设计见 design.md。当前会话内执行,遵循用户不创建 Git 历史的规则。
## 验收要求
保留现有服务和其他工作区;不使用 GPU、不调用模型;代码和服务器运行数据分开;先实现轻量验收全流程。
## 任务
- [x] 1. 运行器与验收脚本:先写失败测试,覆盖成功、失败、报告异常、重复编号、输入拒绝、超时和 Linux 子进程取消,再实现最小功能。
- 文件:scripts/run_smoke.py、scripts/smoke_task.py、tests/test_runner.py。
- 接口:run_smoke.py --mode MODE --run-id ID --timeout SECONDS --results-root PATH。
- 验证:python -m unittest discover -s tests -v;Linux 上进程测试不得跳过。
- [x] 2. Rundeck 配置:固定版本、限制资源、回环绑定、专用数据目录;生成单一白名单任务定义与外部来源目录。
- 文件:deploy/、catalog/、README.md。
- 验证:服务运行身份、挂载和设备可见性;任务参数校验和非授权请求拒绝。
- [x] 3. 服务器验证:复核资源后只部署本项目,验证 API 正常、失败、报告异常、超时、取消和运行记录。
- 证据:脱敏汇总保存于 docs/acceptance-2026-10-13.md。
- [x] 4. 浏览器与交付:核对登录、任务、参数、日志与历史页面;交代未验证范围、访问方式和恢复方式。
## 重点故障
- 运行编号复用、路径穿越和无效模式:在创建进程前拒绝。
- 进程正常退出但报告无效:结果失败。
- 取消、超时与正常结束:只清理本次进程组,并核验后代退出。
- 管理页面与脚本输入:只有登记任务可执行,普通操作角色不能执行任意命令。
- 新容器不能访问 GPU、其他维护者目录或 Docker socket。
## 执行记录
- 10:53 只读预检查:现有 DeepSeek 容器运行,GPU 0~7 占用显存;磁盘约 1.4 TiB 可用。现有 Docker 可通过正常 sudo 使用,未安装 Compose;直接使用项目部署脚本,不修改系统工具链。
- Final: 独立审查的 runtime 父链接越界问题已修复;test_runtime_parent_link_cannot_escape_project 与相关测试 RED→GREEN,Linux 全套 10/10 通过。
- UI/API: 实际执行 1~6 已核验;浏览器状态伪元素造成的自动定位问题仅重读已有执行,没有重跑业务任务。
- 交付保留项:用户私密设置网页登录密码;公司远程 Git 仓库稍后接入;正式 GPU 脚本尚未开放。
## 后续内网免登录调整(用户最新要求)
- [x] 固定访客角色与核对过的网段限制,移除密码设置工具。
- [x] 通过共享网络命名空间和后端回环阻止宿主机直连伪造角色;回归先失败再通过。
- [x] 保存旧容器、源码与停机数据快照;验证权限拒绝、浏览器执行 7、日志及全部历史。
- [x] 最终 Linux 14/14,更新 README、ADR 和当前验收。
- 原“用户设置密码”保留项被最新要求取消;Git 远程与正式 GPU 脚本仍待后续接入。