API RPC配置增加disableUpdate,可以停用自动更新API节点

This commit is contained in:
GoEdgeLab
2022-07-21 14:13:23 +08:00
parent 2314995670
commit e64bf03ba1
7 changed files with 29 additions and 14 deletions

View File

@@ -12,7 +12,8 @@ import (
// APIConfig API配置 // APIConfig API配置
type APIConfig struct { type APIConfig struct {
RPC struct { RPC struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
} `yaml:"rpc"` } `yaml:"rpc"`
NodeId string `yaml:"nodeId"` NodeId string `yaml:"nodeId"`
Secret string `yaml:"secret"` Secret string `yaml:"secret"`

View File

@@ -58,6 +58,16 @@ func (this *SyncAPINodesTask) Loop() error {
return nil return nil
} }
config, err := configs.LoadAPIConfig()
if err != nil {
return err
}
// 是否禁止自动升级
if config.RPC.DisableUpdate {
return nil
}
// 获取所有可用的节点 // 获取所有可用的节点
rpcClient, err := rpc.SharedRPC() rpcClient, err := rpc.SharedRPC()
if err != nil { if err != nil {
@@ -68,7 +78,7 @@ func (this *SyncAPINodesTask) Loop() error {
return err return err
} }
newEndpoints := []string{} var newEndpoints = []string{}
for _, node := range resp.ApiNodes { for _, node := range resp.ApiNodes {
if !node.IsOn { if !node.IsOn {
continue continue
@@ -77,10 +87,6 @@ func (this *SyncAPINodesTask) Loop() error {
} }
// 和现有的对比 // 和现有的对比
config, err := configs.LoadAPIConfig()
if err != nil {
return err
}
if this.isSame(newEndpoints, config.RPC.Endpoints) { if this.isSame(newEndpoints, config.RPC.Endpoints) {
return nil return nil
} }

View File

@@ -102,7 +102,8 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{ apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: apiNode.AccessAddrs, Endpoints: apiNode.AccessAddrs,
}, },
@@ -282,7 +283,8 @@ func SendMessageToNodeIds(ctx context.Context, nodeIds []int64, code string, msg
apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{ apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: apiNode.AccessAddrs, Endpoints: apiNode.AccessAddrs,
}, },

View File

@@ -36,7 +36,8 @@ func (this *UpdateHostsAction) RunPost(params struct {
client, err := rpc.NewRPCClient(&configs.APIConfig{ client, err := rpc.NewRPCClient(&configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port}, Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port},
}, },
@@ -167,7 +168,8 @@ func (this *UpdateHostsAction) RunPost(params struct {
// 修改api.yaml // 修改api.yaml
var apiConfig = &configs.APIConfig{ var apiConfig = &configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: endpoints, Endpoints: endpoints,
}, },

View File

@@ -43,7 +43,8 @@ func (this *ValidateApiAction) RunPost(params struct {
Require("请输入节点secret") Require("请输入节点secret")
client, err := rpc.NewRPCClient(&configs.APIConfig{ client, err := rpc.NewRPCClient(&configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port}, Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port},
}, },

View File

@@ -223,7 +223,8 @@ func (this *InstallAction) RunPost(params struct {
// 写入API节点配置完成安装 // 写入API节点配置完成安装
apiConfig := &configs.APIConfig{ apiConfig := &configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: []string{"http://" + configutils.QuoteIP(apiNodeMap.GetString("newHost")) + ":" + apiNodeMap.GetString("newPort")}, Endpoints: []string{"http://" + configutils.QuoteIP(apiNodeMap.GetString("newHost")) + ":" + apiNodeMap.GetString("newPort")},
}, },
@@ -285,7 +286,8 @@ func (this *InstallAction) RunPost(params struct {
// 构造RPC // 构造RPC
apiConfig := &configs.APIConfig{ apiConfig := &configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: []string{apiNodeMap.GetString("oldProtocol") + "://" + configutils.QuoteIP(apiNodeMap.GetString("oldHost")) + ":" + apiNodeMap.GetString("oldPort")}, Endpoints: []string{apiNodeMap.GetString("oldProtocol") + "://" + configutils.QuoteIP(apiNodeMap.GetString("oldHost")) + ":" + apiNodeMap.GetString("oldPort")},
}, },

View File

@@ -85,7 +85,8 @@ func (this *ValidateApiAction) RunPost(params struct {
Require("请输入节点secret") Require("请输入节点secret")
client, err := rpc.NewRPCClient(&configs.APIConfig{ client, err := rpc.NewRPCClient(&configs.APIConfig{
RPC: struct { RPC: struct {
Endpoints []string `yaml:"endpoints"` Endpoints []string `yaml:"endpoints"`
DisableUpdate bool `yaml:"disableUpdate"`
}{ }{
Endpoints: []string{params.OldProtocol + "://" + configutils.QuoteIP(params.OldHost) + ":" + params.OldPort}, Endpoints: []string{params.OldProtocol + "://" + configutils.QuoteIP(params.OldHost) + ":" + params.OldPort},
}, },