From 911f540945a86a5c1eb5a7019927177fc2cbb843 Mon Sep 17 00:00:00 2001 From: wubijie Date: Wed, 13 Nov 2024 10:23:57 +0800 Subject: [PATCH] add update host comfig --- .../server/controller/configinstance.go | 57 +++++++++++++++++-- configmanage/server/service/host.go | 4 ++ 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/configmanage/server/controller/configinstance.go b/configmanage/server/controller/configinstance.go index d97619bf..1c89baf8 100644 --- a/configmanage/server/controller/configinstance.go +++ b/configmanage/server/controller/configinstance.go @@ -516,8 +516,8 @@ func UpdateConfigHandler(c *gin.Context) { // 查询此配置的内容 rf, err := service.GetRepoFileByInfoUUID(ci.UUID, nil) if err != nil { - logger.Error("failed to parse repoconfig parameter: %s", err.Error()) - response.Fail(c, "failed to parse repoconfig parameter:", err.Error()) + logger.Error("failed to get repoconfig parameter: %s", err.Error()) + response.Fail(c, "failed to get repoconfig parameter:", err.Error()) return } @@ -535,14 +535,59 @@ func UpdateConfigHandler(c *gin.Context) { // 将参数添加到数据库 err = repoconfig.Record() if err != nil { - logger.Error("failed to add repoconfig: %s", err.Error()) - response.Fail(c, "failed to add repoconfig:", err.Error()) + logger.Error("failed to update repoconfig: %s", err.Error()) + response.Fail(c, "failed to update repoconfig:", err.Error()) return } - logger.Debug("add repoconfig success") - response.Success(c, nil, "Add repo config success") + logger.Debug("update repoconfig success") + response.Success(c, nil, "update repo config success") case global.Host: + // 解析参数 + hostconfig := &service.HostConfig{} + if err := json.Unmarshal(query.Data, hostconfig); err != nil { + logger.Error("failed to parse hostconfig parameter: %s", err.Error()) + response.Fail(c, "failed to parse hostconfig parameter:", err.Error()) + return + } + + file := common.File{} + if err := json.Unmarshal([]byte(hostconfig.Content), &file); err != nil { + logger.Error("failed to parse file parameter: %s", err.Error()) + response.Fail(c, "failed to parse file parameter:", err.Error()) + return + } + file.Content = base64.StdEncoding.EncodeToString([]byte(file.Content)) + + // 查询此配置的内容 + hf, err := service.GetHostFileByInfoUUID(ci.UUID, nil) + if err != nil { + logger.Error("failed to get hostconfig parameter: %s", err.Error()) + response.Fail(c, "failed to get hostconfig parameter:", err.Error()) + return + } + + // 更新参数 + hostconfig.UUID = hf.UUID + hostconfig.ConfigInfoUUID = ci.UUID + hostconfig.IsActive = false + hostconfig.Content, err = json.Marshal(file) + if err != nil { + logger.Error("Error encoding JSON:: %s", err.Error()) + response.Fail(c, "Error encoding JSON:", err.Error()) + return + } + + // 将参数添加到数据库 + err = hostconfig.Record() + if err != nil { + logger.Error("failed to update hostconfig: %s", err.Error()) + response.Fail(c, "failed to update hostconfig:", err.Error()) + return + } + + logger.Debug("update hostconfig success") + response.Success(c, nil, "update host config success") case global.SSH: diff --git a/configmanage/server/service/host.go b/configmanage/server/service/host.go index 67e378ed..1699c812 100644 --- a/configmanage/server/service/host.go +++ b/configmanage/server/service/host.go @@ -230,6 +230,10 @@ func (hc *HostConfig) Collect() error { return nil } +func GetHostFileByInfoUUID(uuid string, isindex interface{}) (HostFile, error) { + return internal.GetHostFileByInfoUUID(uuid, isindex) +} + // 根据配置uuid获取所有配置文件 func GetHostFilesByConfigUUID(uuid string) ([]HostFile, error) { return internal.GetHostFilesByConfigUUID(uuid) -- Gitee