节点可以单独设置所使用的API节点地址

This commit is contained in:
刘祥超
2022-11-21 19:55:01 +08:00
parent 991e08fa71
commit d6f311e057
6 changed files with 144 additions and 0 deletions

View File

@@ -961,6 +961,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, cacheMap *utils
Level: types.Int32(node.Level),
GroupId: int64(node.GroupId),
EnableIPLists: node.EnableIPLists,
APINodeAddrs: node.DecodeAPINodeAddrs(),
}
// API节点IP
@@ -2038,6 +2039,46 @@ func (this *NodeDAO) UpdateNodeDDoSProtection(tx *dbs.Tx, nodeId int64, ddosProt
return nil
}
// FindNodeAPIConfig 查找API相关配置信息
func (this *NodeDAO) FindNodeAPIConfig(tx *dbs.Tx, nodeId int64) (*Node, error) {
if nodeId <= 0 {
return nil, nil
}
one, err := this.Query(tx).
Pk(nodeId).
Result("apiNodeAddrs").
Find()
if err != nil || one == nil {
return nil, err
}
return one.(*Node), nil
}
// UpdateNodeAPIConfig 修改API相关配置信息
func (this *NodeDAO) UpdateNodeAPIConfig(tx *dbs.Tx, nodeId int64, apiNodeAddrs []*serverconfigs.NetworkAddressConfig) error {
if nodeId <= 0 {
return errors.New("invalid nodeId")
}
if apiNodeAddrs == nil {
apiNodeAddrs = []*serverconfigs.NetworkAddressConfig{}
}
apiNodeAddrsJSON, err := json.Marshal(apiNodeAddrs)
if err != nil {
return err
}
var op = NewNodeOperator()
op.Id = nodeId
op.ApiNodeAddrs = apiNodeAddrsJSON
err = this.Save(tx, op)
if err != nil {
return err
}
return this.NotifyUpdate(tx, nodeId)
}
// NotifyUpdate 通知节点相关更新
func (this *NodeDAO) NotifyUpdate(tx *dbs.Tx, nodeId int64) error {
// 这里只需要通知单个集群即可,因为节点是公用的,更新一个就相当于更新了所有