From 24a1cdfe4422792e710498db70823b35d3dad049 Mon Sep 17 00:00:00 2001 From: wubijie Date: Fri, 1 Nov 2024 16:53:34 +0800 Subject: [PATCH] add config_history by node_uuid --- configmanage/server/controller/lists.go | 40 +++++++++++++++++++++++++ configmanage/server/router/router.go | 2 ++ configmanage/server/service/repo.go | 27 +++++++++++++++++ 3 files changed, 69 insertions(+) diff --git a/configmanage/server/controller/lists.go b/configmanage/server/controller/lists.go index 02a7e2e2..46b1e8e9 100644 --- a/configmanage/server/controller/lists.go +++ b/configmanage/server/controller/lists.go @@ -87,3 +87,43 @@ func ConfigInfoHandler(c *gin.Context) { response.Fail(c, nil, "Unknown type of configinfo:"+query.UUID) } } + +// 查看某台机器某种类型的的历史配置信息 +func ConfigHistoryHandler(c *gin.Context) { + //TODO:修改请求的参数 + query := &struct { + UUID string `json:"node_uuid"` + Type string `json:"type"` + }{} + err := c.ShouldBindJSON(query) + if err != nil { + response.Fail(c, "parameter error", err.Error()) + return + } + logger.Debug("load config") + + // 获取对应配置管理的参数 + switch query.Type { + case global.Repo: + // 获取有关本台机器配置的所有文件信息 + repofiles, err := service.GetRopeFilesByNode(query.UUID) + if err != nil { + logger.Error("failed to get repoconfig file:s %s", err.Error()) + response.Fail(c, "failed to get repoconfig files", err.Error()) + return + } + logger.Debug("load repoconfig success") + response.Success(c, repofiles, "load repo config success") + + case global.Host: + + case global.SSH: + + case global.SSHD: + + case global.Sysctl: + + default: + response.Fail(c, nil, "Unknown type of configinfo:"+query.UUID) + } +} diff --git a/configmanage/server/router/router.go b/configmanage/server/router/router.go index 68624e6a..70d1a087 100644 --- a/configmanage/server/router/router.go +++ b/configmanage/server/router/router.go @@ -27,6 +27,8 @@ func RegisterAPIs(router *gin.Engine) { list.GET("/config_infos", controller.ConfigInfosHandler) // 根据列表中的configinfo_uuid获取某一个config信息 list.GET("/config_info", controller.ConfigInfoHandler) + // 查看某台机器某种类型的的历史配置信息 + list.GET("/config_history", controller.ConfigHistoryHandler) } // 添加配置管理 api.POST("/add", controller.AddConfigHandler) diff --git a/configmanage/server/service/repo.go b/configmanage/server/service/repo.go index 4d76d9c3..32b727e8 100644 --- a/configmanage/server/service/repo.go +++ b/configmanage/server/service/repo.go @@ -216,3 +216,30 @@ func (rc *RepoConfig) Collect() error { func GetRopeFilesByCinfigUUID(uuid string) ([]RepoFile, error) { return internal.GetRopeFilesByCinfigUUID(uuid) } + +// 查看某台机器某种类型的的历史配置信息 +func GetRopeFilesByNode(nodeid string) ([]RepoConfig, error) { + // 查找本台机器所属的配置uuid + config_nodes, err := internal.GetConfigNodesByNode(nodeid) + if err != nil { + return nil, err + } + var rcs []RepoConfig + for _, v := range config_nodes { + rf, err := internal.GetRepoFileByInfoUUID(v.ConfigInfoUUID, nil) + if err != nil { + return nil, err + } + rc := RepoConfig{ + UUID: rf.UUID, + ConfigInfoUUID: rf.ConfigInfoUUID, + Path: rf.Path, + Name: rf.Name, + Content: rf.Content, + Version: rf.Version, + IsActive: rf.IsActive, + } + rcs = append(rcs, rc) + } + return rcs, nil +} -- Gitee