From 029afb5d0b91ed9f730023cb5445db45a45fe874 Mon Sep 17 00:00:00 2001 From: wubijie Date: Wed, 13 Nov 2024 10:37:44 +0800 Subject: [PATCH] add update sshd comfig --- .../server/controller/configinstance.go | 45 +++++++++++++++++++ configmanage/server/service/sshd.go | 4 ++ 2 files changed, 49 insertions(+) diff --git a/configmanage/server/controller/configinstance.go b/configmanage/server/controller/configinstance.go index 0998059b..c4578cfa 100644 --- a/configmanage/server/controller/configinstance.go +++ b/configmanage/server/controller/configinstance.go @@ -637,6 +637,51 @@ func UpdateConfigHandler(c *gin.Context) { response.Success(c, nil, "update sshconfig success") case global.SSHD: + // 解析参数 + sshdconfig := &service.SSHDConfig{} + if err := json.Unmarshal(query.Data, sshdconfig); err != nil { + logger.Error("failed to parse sshdconfig parameter: %s", err.Error()) + response.Fail(c, "failed to parse sshdconfig parameter:", err.Error()) + return + } + + file := common.File{} + if err := json.Unmarshal([]byte(sshdconfig.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)) + + // 查询此配置的内容 + sf, 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()) + return + } + + // 更新参数 + sshdconfig.UUID = sf.UUID + sshdconfig.ConfigInfoUUID = ci.UUID + sshdconfig.IsActive = false + sshdconfig.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 = sshdconfig.Record() + if err != nil { + logger.Error("failed to update sshdconfig: %s", err.Error()) + response.Fail(c, "failed to update sshdconfig:", err.Error()) + return + } + + logger.Debug("update sshdconfig success") + response.Success(c, nil, "update sshdconfig success") case global.Sysctl: diff --git a/configmanage/server/service/sshd.go b/configmanage/server/service/sshd.go index 475689bd..fedb94ee 100644 --- a/configmanage/server/service/sshd.go +++ b/configmanage/server/service/sshd.go @@ -231,6 +231,10 @@ func (sdc *SSHDConfig) Collect() error { return nil } +func GetSSHDFileByInfoUUID(uuid string, isindex interface{}) (SSHDFile, error) { + return internal.GetSSHDFileByInfoUUID(uuid, isindex) +} + // 根据配置uuid获取所有配置文件 func GetSSHDFilesByCinfigUUID(uuid string) ([]SSHDFile, error) { return internal.GetSSHDFilesByCinfigUUID(uuid) -- Gitee