From fa0ffe0948c9707ad89cdbc922a8ce5de2514cf5 Mon Sep 17 00:00:00 2001 From: wubijie Date: Wed, 13 Nov 2024 16:47:09 +0800 Subject: [PATCH] Modify the repo-config collection function to return the result --- .../server/controller/configinstance.go | 4 +-- configmanage/server/service/configinstance.go | 2 +- configmanage/server/service/repo.go | 35 ++++++++++++------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/configmanage/server/controller/configinstance.go b/configmanage/server/controller/configinstance.go index 8e22b7ab..81b1469c 100644 --- a/configmanage/server/controller/configinstance.go +++ b/configmanage/server/controller/configinstance.go @@ -84,10 +84,10 @@ func AddConfigHandler(c *gin.Context) { return } //收集机器的配置信息 - err = repoconfig.Collect() + result, err := repoconfig.Collect() if err != nil { logger.Error("failed to collect repofile: %s", err.Error()) - response.Fail(c, "failed to collect repofile:", err.Error()) + response.Fail(c, result, err.Error()) return } logger.Debug("add repoconfig success") diff --git a/configmanage/server/service/configinstance.go b/configmanage/server/service/configinstance.go index cd47bc99..e33b610f 100644 --- a/configmanage/server/service/configinstance.go +++ b/configmanage/server/service/configinstance.go @@ -70,7 +70,7 @@ type Config interface { // 配置加载 Load() error // 单机采集数据 - Collect() error + Collect() ([]NodeResult, error) // 依据agent uuid进行配置下发 Apply() ([]NodeResult, error) } diff --git a/configmanage/server/service/repo.go b/configmanage/server/service/repo.go index e7d61fa1..0ba86e7a 100644 --- a/configmanage/server/service/repo.go +++ b/configmanage/server/service/repo.go @@ -174,10 +174,10 @@ func (rc *RepoConfig) Apply() ([]NodeResult, error) { return results, errors.New("failed to apply repo config") } -func (rc *RepoConfig) Collect() error { +func (rc *RepoConfig) Collect() ([]NodeResult, error) { ci, err := GetConfigByUUID(rc.ConfigInfoUUID) if err != nil { - return err + return nil, err } //发请求获取配置详情 @@ -199,25 +199,25 @@ func (rc *RepoConfig) Collect() error { Body: p, }) if err != nil { - return err + return nil, err } if r.StatusCode != http.StatusOK { - return errors.New("server process error:" + strconv.Itoa(r.StatusCode)) + return nil, errors.New("server process error:" + strconv.Itoa(r.StatusCode)) } resp := &common.CommonResult{} if err := json.Unmarshal(r.Body, resp); err != nil { - return err + return nil, err } if resp.Code != http.StatusOK { - return errors.New(resp.Message) + return nil, errors.New(resp.Message) } data := []common.NodeResult{} if err := resp.ParseData(&data); err != nil { - return err + return nil, err } - result := "" + results := []NodeResult{} for _, v := range data { if v.Error == "" { file, _ := json.Marshal(v.Data) @@ -232,15 +232,26 @@ func (rc *RepoConfig) Collect() error { err = rf.Add() if err != nil { logger.Error("failed to add repoconfig: %s", err.Error()) + results = append(results, NodeResult{ + Type: global.Repo, + NodeUUID: v.UUID, + Detail: "failed to collect repo config to db", + Result: false, + Err: err.Error()}) } } else { - result = result + v.UUID + ":" + v.Error + "\n" + results = append(results, NodeResult{ + Type: global.Repo, + NodeUUID: v.UUID, + Detail: "failed to collect repo config:" + v.Data.(string), + Result: false, + Err: v.Error}) } } - if result != "" { - return errors.New(result + "failed to collect repo config") + if results != nil { + return results, errors.New("failed to collect repo config") } - return nil + return nil, nil } func GetRepoFileByInfoUUID(uuid string, isindex interface{}) (RepoFile, error) { -- Gitee