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