Files

46 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

# 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 脚本仍待后续接入。