diff --git a/configmanage/server/service/host.go b/configmanage/server/service/host.go index 6fd0f3643e5f415ce956743715f61eb7e30ee01e..cf304340b09d37f29f75b00a0e4418b42d4a419d 100644 --- a/configmanage/server/service/host.go +++ b/configmanage/server/service/host.go @@ -148,7 +148,23 @@ func (hc *HostConfig) Apply() ([]NodeResult, error) { } // 将执行失败的文件、机器信息和原因添加到结果字符串中 for _, d := range data { + // 存储每一台机器的执行结果 + hfNode := HostFile{ + UUID: hf.UUID, + ConfigInfoUUID: hf.ConfigInfoUUID, + Path: hf.Path, + Name: hf.Name, + Content: hf.Content, + Version: hf.Version, + IsActive: true, + IsFromHost: false, + Hostuuid: d.UUID, + CreatedAt: time.Now(), + } + + // 返回执行失败的机器详情 if d.Error != "" { + hfNode.IsActive = false results = append(results, NodeResult{ Type: global.Host, NodeUUID: d.UUID, @@ -157,9 +173,19 @@ func (hc *HostConfig) Apply() ([]NodeResult, error) { Err: d.Error, }) } + err = hfNode.Add() + if err != nil { + results = append(results, NodeResult{ + Type: global.Host, + NodeUUID: d.UUID, + Detail: "failed to collect host config to db", + Result: false, + Err: err.Error(), + }) + } } - //TODO:部分成功如何修改数据库 + // 全部下发成功直接修改数据库是否激活字段 if results == nil { //下发成功修改数据库应用版本 err = hf.UpdateByuuid()