feat: K8s→Kubernetes命名统一 + 工具安装bug修复 + 资源可视化编辑器
1. 工具安装bug修复 (P0 critical):
- 根因: ToolConfigHandler.InstallTool的goroutine只打了日志,
从未调用实际安装逻辑
- 修复: 注入ToolInstaller到handler, 新增ForceInstall方法绕过sync.Once
- 影响: 流水线工具配置页「安装」按钮现在能真正触发下载安装
2. K8s→Kubernetes命名统一:
- Dashboard/Prometheus/AIOpsAssistant等8个文件12处用户可见文案
- 内部变量名/文件名/API group保持不变
3. 资源可视化编辑器 (新增ResourceVisualEditor.tsx):
- ConfigMap: 键值对表格编辑器(增删改)
- Secret: 键值对编辑器(自动Base64编解码)
- Service: 端口/类型/选择器可视化配置
- Ingress: Host/Path路由规则可视化编辑
- PVC: 存储大小/访问模式/StorageClass配置
- 双模式: 可视化编辑 ↔ YAML编辑一键切换
- NamespaceResourcePage: 所有资源类型添加编辑按钮入口
This commit is contained in:
1 parent
e29dfb5868
commit
aaab923f4e
14 files changed
+748
-20
No files matched your search
@@ -6,6 +6,7 @@ import (
|
||||
"os/exec"
|
||||
|
||||
"ezops/internal/models"
|
||||
"ezops/pkg/toolinstaller"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
@@ -15,12 +16,13 @@ import (
|
||||
|
||||
// ToolConfigHandler handles deploy tool configuration
|
||||
type ToolConfigHandler struct {
|
||||
db *gorm.DB
|
||||
db *gorm.DB
|
||||
installer *toolinstaller.ToolInstaller
|
||||
}
|
||||
|
||||
// NewToolConfigHandler creates handler
|
||||
func NewToolConfigHandler(db *gorm.DB) *ToolConfigHandler {
|
||||
return &ToolConfigHandler{db: db}
|
||||
func NewToolConfigHandler(db *gorm.DB, ti *toolinstaller.ToolInstaller) *ToolConfigHandler {
|
||||
return &ToolConfigHandler{db: db, installer: ti}
|
||||
}
|
||||
|
||||
// ListTools returns all configured tools
|
||||
@@ -127,8 +129,17 @@ func (h *ToolConfigHandler) InstallTool(c *gin.Context) {
|
||||
tool.DefaultVersion = version
|
||||
}
|
||||
|
||||
// Mark as installing immediately
|
||||
h.db.Model(&tool).Update("status", models.ToolInstalling)
|
||||
|
||||
// Background installation — actually call the installer
|
||||
go func() {
|
||||
log.Printf("[ToolConfig] Background install triggered for %s (version: %s)", tool.Name, version)
|
||||
if err := h.installer.ForceInstall(tool.Name, version); err != nil {
|
||||
log.Printf("[ToolConfig] ERROR installing %s: %v", tool.Name, err)
|
||||
} else {
|
||||
log.Printf("[ToolConfig] %s installed successfully", tool.Name)
|
||||
}
|
||||
}()
|
||||
|
||||
c.JSON(http.StatusOK, models.Response{Code: 200, Message: "安装已触发", Data: gin.H{"version": version}})
|
||||
|
||||
@@ -558,7 +558,7 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
}
|
||||
|
||||
// 工具配置路由(发布配置 Tab ④)// Logan.Li
|
||||
toolConfigHandler := handlers.NewToolConfigHandler(db)
|
||||
toolConfigHandler := handlers.NewToolConfigHandler(db, ti)
|
||||
tools := authorized.Group("/deploy/tools")
|
||||
{
|
||||
tools.GET("", toolConfigHandler.ListTools)
|
||||
|
||||
Reference in new issue
Block a user