mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-03 04:10:27 +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