mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	修改节点停用时发送命令的提示
This commit is contained in:
		@@ -34,7 +34,7 @@ func (this *StatusAction) RunPost(params struct {
 | 
				
			|||||||
}) {
 | 
					}) {
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCheckLocalFirewall, &messageconfigs.CheckLocalFirewallMessage{
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCheckLocalFirewall, &messageconfigs.CheckLocalFirewallMessage{
 | 
				
			||||||
		Name: "nftables",
 | 
							Name: "nftables",
 | 
				
			||||||
	}, 10)
 | 
						}, 10, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@ func (this *StatusAction) RunPost(params struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	Must *actions.Must
 | 
						Must *actions.Must
 | 
				
			||||||
}) {
 | 
					}) {
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCheckSystemdService, &messageconfigs.CheckSystemdServiceMessage{}, 10)
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCheckSystemdService, &messageconfigs.CheckSystemdServiceMessage{}, 10, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,7 @@ type MessageResult struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SendMessageToCluster 向集群发送命令消息
 | 
					// 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{}
 | 
						results = []*MessageResult{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	msgJSON, err := json.Marshal(msg)
 | 
						msgJSON, err := json.Marshal(msg)
 | 
				
			||||||
@@ -41,11 +41,22 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return results, err
 | 
							return results, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	nodes := nodesResp.Nodes
 | 
						var nodes = nodesResp.Nodes
 | 
				
			||||||
	if len(nodes) == 0 {
 | 
						if len(nodes) == 0 {
 | 
				
			||||||
		return results, nil
 | 
							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 rpcMap = map[int64]*rpc.RPCClient{} // apiNodeId => RPCClient
 | 
				
			||||||
	var locker = &sync.Mutex{}
 | 
						var locker = &sync.Mutex{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -55,6 +66,19 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
 | 
				
			|||||||
	for _, node := range nodes {
 | 
						for _, node := range nodes {
 | 
				
			||||||
		// TODO 检查是否在线
 | 
							// 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 {
 | 
							if len(node.ConnectedAPINodeIds) == 0 {
 | 
				
			||||||
			locker.Lock()
 | 
								locker.Lock()
 | 
				
			||||||
			results = append(results, &MessageResult{
 | 
								results = append(results, &MessageResult{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ func TestSendMessageToCluster(t *testing.T) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	ctx := rpcClient.Context(1)
 | 
						ctx := rpcClient.Context(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	results, err := SendMessageToCluster(ctx, 1, "test", nil, 30)
 | 
						results, err := SendMessageToCluster(ctx, 1, "test", nil, 30, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal(err)
 | 
							t.Fatal(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package cache
 | 
					package cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					import (
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
				
			||||||
@@ -73,7 +74,7 @@ func (this *CleanAction) RunPost(params struct {
 | 
				
			|||||||
	msg := &messageconfigs.CleanCacheMessage{
 | 
						msg := &messageconfigs.CleanCacheMessage{
 | 
				
			||||||
		CachePolicyJSON: cachePolicyJSON,
 | 
							CachePolicyJSON: cachePolicyJSON,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCleanCache, msg, 60)
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeCleanCache, msg, 60, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package cache
 | 
					package cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					import (
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
				
			||||||
@@ -73,7 +74,7 @@ func (this *StatAction) RunPost(params struct {
 | 
				
			|||||||
	msg := &messageconfigs.StatCacheMessage{
 | 
						msg := &messageconfigs.StatCacheMessage{
 | 
				
			||||||
		CachePolicyJSON: cachePolicyJSON,
 | 
							CachePolicyJSON: cachePolicyJSON,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeStatCache, msg, 10)
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeStatCache, msg, 10, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package cache
 | 
					package cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					import (
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
				
			||||||
@@ -39,7 +40,7 @@ func (this *TestReadAction) RunPost(params struct {
 | 
				
			|||||||
		CachePolicyJSON: cachePolicyJSON,
 | 
							CachePolicyJSON: cachePolicyJSON,
 | 
				
			||||||
		Key:             params.Key,
 | 
							Key:             params.Key,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeReadCache, msg, 10)
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeReadCache, msg, 10, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package cache
 | 
					package cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
					import (
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/nodeutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/messageconfigs"
 | 
				
			||||||
@@ -42,7 +43,7 @@ func (this *TestWriteAction) RunPost(params struct {
 | 
				
			|||||||
		Value:           []byte(params.Value),
 | 
							Value:           []byte(params.Value),
 | 
				
			||||||
		LifeSeconds:     3600,
 | 
							LifeSeconds:     3600,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeWriteCache, msg, 10)
 | 
						results, err := nodeutils.SendMessageToCluster(this.AdminContext(), params.ClusterId, messageconfigs.MessageCodeWriteCache, msg, 10, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		this.ErrorPage(err)
 | 
							this.ErrorPage(err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user