修改节点停用时发送命令的提示

This commit is contained in:
刘祥超
2024-05-15 10:53:13 +08:00
parent 9b4d852d68
commit b43f523a78
8 changed files with 41 additions and 13 deletions

View File

@@ -20,7 +20,7 @@ type MessageResult struct {
}
// SendMessageToCluster 向集群发送命令消息
func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg interface{}, timeoutSeconds int32) (results []*MessageResult, err error) {
func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg any, timeoutSeconds int32, availableNodesOnly bool) (results []*MessageResult, err error) {
results = []*MessageResult{}
msgJSON, err := json.Marshal(msg)
@@ -41,11 +41,22 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
if err != nil {
return results, err
}
nodes := nodesResp.Nodes
var nodes = nodesResp.Nodes
if len(nodes) == 0 {
return results, nil
}
if availableNodesOnly {
var newNodes []*pb.Node
for _, node := range nodes {
if !node.IsOn {
continue
}
newNodes = append(newNodes, node)
}
nodes = newNodes
}
var rpcMap = map[int64]*rpc.RPCClient{} // apiNodeId => RPCClient
var locker = &sync.Mutex{}
@@ -55,6 +66,19 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
for _, node := range nodes {
// TODO 检查是否在线
if !node.IsOn {
locker.Lock()
results = append(results, &MessageResult{
NodeId: node.Id,
NodeName: node.Name,
IsOK: false,
Message: "节点尚未启用",
})
locker.Unlock()
wg.Done()
continue
}
if len(node.ConnectedAPINodeIds) == 0 {
locker.Lock()
results = append(results, &MessageResult{