mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 21:50:28 +08:00 
			
		
		
		
	API RPC配置增加disableUpdate,可以停用自动更新API节点
This commit is contained in:
		@@ -12,7 +12,8 @@ import (
 | 
			
		||||
// APIConfig API配置
 | 
			
		||||
type APIConfig struct {
 | 
			
		||||
	RPC struct {
 | 
			
		||||
		Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
		Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
		DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
	} `yaml:"rpc"`
 | 
			
		||||
	NodeId string `yaml:"nodeId"`
 | 
			
		||||
	Secret string `yaml:"secret"`
 | 
			
		||||
 
 | 
			
		||||
@@ -58,6 +58,16 @@ func (this *SyncAPINodesTask) Loop() error {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	config, err := configs.LoadAPIConfig()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 是否禁止自动升级
 | 
			
		||||
	if config.RPC.DisableUpdate {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 获取所有可用的节点
 | 
			
		||||
	rpcClient, err := rpc.SharedRPC()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -68,7 +78,7 @@ func (this *SyncAPINodesTask) Loop() error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	newEndpoints := []string{}
 | 
			
		||||
	var newEndpoints = []string{}
 | 
			
		||||
	for _, node := range resp.ApiNodes {
 | 
			
		||||
		if !node.IsOn {
 | 
			
		||||
			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) {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -102,7 +102,8 @@ func SendMessageToCluster(ctx context.Context, clusterId int64, code string, msg
 | 
			
		||||
 | 
			
		||||
			apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{
 | 
			
		||||
				RPC: struct {
 | 
			
		||||
					Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
					Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
					DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
				}{
 | 
			
		||||
					Endpoints: apiNode.AccessAddrs,
 | 
			
		||||
				},
 | 
			
		||||
@@ -282,7 +283,8 @@ func SendMessageToNodeIds(ctx context.Context, nodeIds []int64, code string, msg
 | 
			
		||||
 | 
			
		||||
			apiRPCClient, err := rpc.NewRPCClient(&configs.APIConfig{
 | 
			
		||||
				RPC: struct {
 | 
			
		||||
					Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
					Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
					DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
				}{
 | 
			
		||||
					Endpoints: apiNode.AccessAddrs,
 | 
			
		||||
				},
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,8 @@ func (this *UpdateHostsAction) RunPost(params struct {
 | 
			
		||||
 | 
			
		||||
	client, err := rpc.NewRPCClient(&configs.APIConfig{
 | 
			
		||||
		RPC: struct {
 | 
			
		||||
			Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
			Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
			DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
		}{
 | 
			
		||||
			Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port},
 | 
			
		||||
		},
 | 
			
		||||
@@ -167,7 +168,8 @@ func (this *UpdateHostsAction) RunPost(params struct {
 | 
			
		||||
	// 修改api.yaml
 | 
			
		||||
	var apiConfig = &configs.APIConfig{
 | 
			
		||||
		RPC: struct {
 | 
			
		||||
			Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
			Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
			DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
		}{
 | 
			
		||||
			Endpoints: endpoints,
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,8 @@ func (this *ValidateApiAction) RunPost(params struct {
 | 
			
		||||
		Require("请输入节点secret")
 | 
			
		||||
	client, err := rpc.NewRPCClient(&configs.APIConfig{
 | 
			
		||||
		RPC: struct {
 | 
			
		||||
			Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
			Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
			DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
		}{
 | 
			
		||||
			Endpoints: []string{params.Protocol + "://" + configutils.QuoteIP(params.Host) + ":" + params.Port},
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
@@ -223,7 +223,8 @@ func (this *InstallAction) RunPost(params struct {
 | 
			
		||||
		// 写入API节点配置,完成安装
 | 
			
		||||
		apiConfig := &configs.APIConfig{
 | 
			
		||||
			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")},
 | 
			
		||||
			},
 | 
			
		||||
@@ -285,7 +286,8 @@ func (this *InstallAction) RunPost(params struct {
 | 
			
		||||
		// 构造RPC
 | 
			
		||||
		apiConfig := &configs.APIConfig{
 | 
			
		||||
			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")},
 | 
			
		||||
			},
 | 
			
		||||
 
 | 
			
		||||
@@ -85,7 +85,8 @@ func (this *ValidateApiAction) RunPost(params struct {
 | 
			
		||||
		Require("请输入节点secret")
 | 
			
		||||
	client, err := rpc.NewRPCClient(&configs.APIConfig{
 | 
			
		||||
		RPC: struct {
 | 
			
		||||
			Endpoints []string `yaml:"endpoints"`
 | 
			
		||||
			Endpoints     []string `yaml:"endpoints"`
 | 
			
		||||
			DisableUpdate bool     `yaml:"disableUpdate"`
 | 
			
		||||
		}{
 | 
			
		||||
			Endpoints: []string{params.OldProtocol + "://" + configutils.QuoteIP(params.OldHost) + ":" + params.OldPort},
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user