diff --git a/configmanage/server/service/repo.go b/configmanage/server/service/repo.go index 91bc61921bcd420d36548f888797f95ebc998ce1..e7d61fa18264a3ea2360284e1529f8d3ef6b53fa 100644 --- a/configmanage/server/service/repo.go +++ b/configmanage/server/service/repo.go @@ -13,6 +13,7 @@ import ( "gitee.com/openeuler/PilotGo/sdk/plugin/client" "gitee.com/openeuler/PilotGo/sdk/utils/httputils" "github.com/google/uuid" + "openeuler.org/PilotGo/configmanage-plugin/global" "openeuler.org/PilotGo/configmanage-plugin/internal" ) @@ -87,7 +88,7 @@ func (rc *RepoConfig) Load() error { return nil } -func (rc *RepoConfig) Apply() (json.RawMessage, error) { +func (rc *RepoConfig) Apply() ([]NodeResult, error) { //从数据库获取下发的信息 rf, err := internal.GetRepoFileByUUID(rc.UUID) if err != nil { @@ -116,7 +117,7 @@ func (rc *RepoConfig) Apply() (json.RawMessage, error) { if err != nil { return nil, err } - result := "" + results := []NodeResult{} for _, v := range Repofiles { de := Deploy{ DeployBatch: common.Batch{ @@ -154,17 +155,23 @@ func (rc *RepoConfig) Apply() (json.RawMessage, error) { // 将执行失败的文件、机器信息和原因添加到结果字符串中 for _, d := range data { if d.Error != "" { - result = result + v.Content + "文件" + d.UUID + ":" + d.Error + "\n" + results = append(results, NodeResult{ + Type: global.Repo, + NodeUUID: d.UUID, + Detail: v.Content, + Result: false, + Err: d.Error, + }) } } } //TODO:部分成功如何修改数据库 - if result == "" { + if results == nil { //下发成功修改数据库应用版本 err = rf.UpdateByuuid() return nil, err } - return nil, errors.New(result + "failed to apply repo config") + return results, errors.New("failed to apply repo config") } func (rc *RepoConfig) Collect() error {