From 8be63ac1680ecea0de77cc46bd559fcc8b5712d4 Mon Sep 17 00:00:00 2001 From: attacker Date: Mon, 15 Jun 2026 00:10:15 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=97=A5=E5=BF=97=20=E2=80=94=20=E8=AE=B0=E5=BD=95=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E5=BA=93=20ScriptManager=20=E5=85=A8=E6=A0=88CRUD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dev-log.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/docs/dev-log.md b/docs/dev-log.md index 614f334..97f0e06 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -503,3 +503,44 @@ cd ~/devops/aiops - 定时任务创建对话框增加目标服务器选择(当前仅本地执行) - 脚本编辑器增加在线编辑+保存功能(当前新建对话框无独立编辑入口) - CabinetView 仍使用 mock 数据(但未在 App.tsx 路由中使用,低优先级) + +## 2026-06-15 00:10 自动推进 + +- **任务**: 脚本库全栈 CRUD 管理器(ScriptManager)— 替换占位 AutomationManager,为 `/scripts` 路由补齐完整新建/编辑/查看/复制/删除/执行能力(自动化运维三大模块 CronJob/Script/Ansible 最后一个补全真实 CRUD) +- **修改**: + - `frontend/src/components/automation/ScriptManager.tsx`(新建,656 行): + - 两 tab 布局:脚本库(卡片网格)+ 执行记录(表格) + - 脚本库卡片:名称/类型徽章/描述/内容预览(3行)/执行次数·版本/超时 + 5 操作按钮(查看内容/执行/编辑/复制/删除) + - 搜索(名称·编码·描述)+ 类型筛选(全部/Shell/Python/PowerShell/YAML) + - 新建/编辑复用对话框:名称、类型(切换时自动填充对应模板)、描述、超时、内容编辑器;自动生成唯一 code(`sc--<随机>`) + - 查看:终端风格(黑底绿字)ScrollArea 内容展示 + 快捷编辑入口 + - 执行:ConfirmProvider 确认 → 本地执行 → toast 反馈(成功显示耗时,失败显示输出摘要) + - 执行记录 tab:真实 TaskExecution(task_type=script)记录,状态徽章 + 耗时 + 终端风格日志查看器 + - 4 统计卡片(脚本总数/执行中/今日成功/今日失败)基于真实执行记录 + - 主题感知(muted-foreground/muted CSS 变量,跟随 5 套主题) + - `frontend/src/App.tsx`: + - 新增 `import { ScriptManager }` + - `/scripts` 路由 `AutomationManager` → `ScriptManager` + - 移除 dead `/playbooks` 路由(侧边栏无入口,指向占位组件) + - 移除 `AutomationManager` import + - 删除 `frontend/src/components/automation/Automation.tsx`(占位显示页,Edit/新建/目标服务器按钮均为非功能性占位,违反「不留占位按钮」偏好) +- **结果**: + - 前端 `npx tsc --noEmit` 类型检查通过 ✅ + - 前端 `npm run build` 构建通过 ✅ + - 后端无改动(Script CRUD + Execute API 早已完整,前端 scriptApi 也已齐备) + - API 验证:POST /scripts 创建成功(id=6)✅ + - API 验证:POST /scripts/:id/execute → status=success, duration=6ms, 真实 stdout 捕获 ✅ + - API 验证:PUT /scripts/:id → name 更新 + version 自增 2 + timeout 更新 ✅ + - API 验证:DELETE /scripts/:id → 删除成功 ✅ + - 浏览器验证:脚本库 5→6 卡片正确展示(含新建的测试脚本)✅ + - 浏览器验证:新建对话框预填 Shell 模板,填写名称后创建成功(卡片数+1)✅ + - 浏览器验证:编辑对话框预填数据(重启服务/Shell/重启服务脚本/systemctl restart $1)✅ + - 浏览器验证:执行确认弹窗 → 确认后执行 → 统计「今日失败」0→1(重启脚本在 macOS 上执行失败,符合预期)✅ + - 浏览器验证:执行记录 tab 展示 3 条真实记录(#7重启服务-失败/#6测试-成功/#1检查磁盘-成功)+ 状态徽章 + 查看日志按钮 ✅ + - 浏览器验证:无 console 错误 ✅ + - git push origin master 成功 (commit 242389a) ✅ +- **下一步建议**: + - 定时任务/脚本执行接入 Agent 远程执行(当前仅 AIOps 主机本地执行,Agent 任务系统已就绪可复用) + - K8s 拓扑图增加缩放/拖拽交互 + - 脚本执行支持参数化(Params 字段已存在于 model,前端尚未接入参数填写) + - 定时任务编辑入口(CronJobManager 有新建但 Automation 列表的编辑按钮未接通)