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

This commit is contained in:
GoEdgeLab
2024-05-15 10:53:13 +08:00
parent e59b65af1d
commit 7eae39fe1c
8 changed files with 41 additions and 13 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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{

View File

@@ -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)
} }

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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