diff --git a/configmanage/server/controller/configinstance.go b/configmanage/server/controller/configinstance.go index c4578cfa61e4db0a99e588b8fcc93767af381f93..8e22b7abd1bd2273e1c406fbc844a8c7f8ef671a 100644 --- a/configmanage/server/controller/configinstance.go +++ b/configmanage/server/controller/configinstance.go @@ -654,7 +654,7 @@ func UpdateConfigHandler(c *gin.Context) { file.Content = base64.StdEncoding.EncodeToString([]byte(file.Content)) // 查询此配置的内容 - sf, err := service.GetSSHDFileByInfoUUID(ci.UUID, nil) + sdf, err := service.GetSSHDFileByInfoUUID(ci.UUID, nil) if err != nil { logger.Error("failed to get sshdconfig parameter: %s", err.Error()) response.Fail(c, "failed to get sshdconfig parameter:", err.Error()) @@ -662,7 +662,7 @@ func UpdateConfigHandler(c *gin.Context) { } // 更新参数 - sshdconfig.UUID = sf.UUID + sshdconfig.UUID = sdf.UUID sshdconfig.ConfigInfoUUID = ci.UUID sshdconfig.IsActive = false sshdconfig.Content, err = json.Marshal(file) @@ -684,6 +684,51 @@ func UpdateConfigHandler(c *gin.Context) { response.Success(c, nil, "update sshdconfig success") case global.Sysctl: + // 解析参数 + sysctlconfig := &service.SysctlConfig{} + if err := json.Unmarshal(query.Data, sysctlconfig); err != nil { + logger.Error("failed to parse sysctlconfig parameter: %s", err.Error()) + response.Fail(c, "failed to parse sysctlconfig parameter:", err.Error()) + return + } + + file := common.File{} + if err := json.Unmarshal([]byte(sysctlconfig.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)) + + // 查询此配置的内容 + sysf, err := service.GetSysctlFileByInfoUUID(ci.UUID, nil) + if err != nil { + logger.Error("failed to get sysctlconfig parameter: %s", err.Error()) + response.Fail(c, "failed to get sysctlconfig parameter:", err.Error()) + return + } + + // 更新参数 + sysctlconfig.UUID = sysf.UUID + sysctlconfig.ConfigInfoUUID = ci.UUID + sysctlconfig.IsActive = false + sysctlconfig.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 = sysctlconfig.Record() + if err != nil { + logger.Error("failed to update sysctlconfig: %s", err.Error()) + response.Fail(c, "failed to update sysctlconfig:", err.Error()) + return + } + + logger.Debug("update sysctlconfig success") + response.Success(c, nil, "update sysctlconfig success") default: response.Fail(c, nil, "Unknown type of configinfo:"+query.UUID) diff --git a/configmanage/server/service/sysctl.go b/configmanage/server/service/sysctl.go index 333da9683e20411aeef0111cd81095ea08105b3b..d1706f935294dfc3f9449a3260c432015c1e471c 100644 --- a/configmanage/server/service/sysctl.go +++ b/configmanage/server/service/sysctl.go @@ -241,6 +241,10 @@ func (sysc *SysctlConfig) Collect() error { return nil } +func GetSysctlFileByInfoUUID(uuid string, isindex interface{}) (SysctlFile, error) { + return internal.GetSysctlFileByInfoUUID(uuid, isindex) +} + // 根据配置uuid获取所有配置文件 func GetSysctlFilesByCinfigUUID(uuid string) ([]SysctlFile, error) { return internal.GetSysctlFilesByCinfigUUID(uuid)