[节点]可以设置节点区域

This commit is contained in:
GoEdgeLab
2020-12-10 16:11:35 +08:00
parent 7578f50551
commit 2ce199455f
2 changed files with 55 additions and 9 deletions

View File

@@ -80,7 +80,7 @@ func (this *NodeDAO) FindNodeName(id uint32) (string, error) {
} }
// 创建节点 // 创建节点
func (this *NodeDAO) CreateNode(adminId int64, name string, clusterId int64, groupId int64) (nodeId int64, err error) { func (this *NodeDAO) CreateNode(adminId int64, name string, clusterId int64, groupId int64, regionId int64) (nodeId int64, err error) {
uniqueId, err := this.genUniqueId() uniqueId, err := this.genUniqueId()
if err != nil { if err != nil {
return 0, err return 0, err
@@ -101,6 +101,7 @@ func (this *NodeDAO) CreateNode(adminId int64, name string, clusterId int64, gro
op.Secret = secret op.Secret = secret
op.ClusterId = clusterId op.ClusterId = clusterId
op.GroupId = groupId op.GroupId = groupId
op.RegionId = regionId
op.IsOn = 1 op.IsOn = 1
op.State = NodeStateEnabled op.State = NodeStateEnabled
err = this.Save(op) err = this.Save(op)
@@ -112,7 +113,7 @@ func (this *NodeDAO) CreateNode(adminId int64, name string, clusterId int64, gro
} }
// 修改节点 // 修改节点
func (this *NodeDAO) UpdateNode(nodeId int64, name string, clusterId int64, groupId int64, maxCPU int32, isOn bool) error { func (this *NodeDAO) UpdateNode(nodeId int64, name string, clusterId int64, groupId int64, regionId int64, maxCPU int32, isOn bool) error {
if nodeId <= 0 { if nodeId <= 0 {
return errors.New("invalid nodeId") return errors.New("invalid nodeId")
} }
@@ -121,6 +122,7 @@ func (this *NodeDAO) UpdateNode(nodeId int64, name string, clusterId int64, grou
op.Name = name op.Name = name
op.ClusterId = clusterId op.ClusterId = clusterId
op.GroupId = groupId op.GroupId = groupId
op.RegionId = regionId
op.LatestVersion = dbs.SQL("latestVersion+1") op.LatestVersion = dbs.SQL("latestVersion+1")
op.MaxCPU = maxCPU op.MaxCPU = maxCPU
op.IsOn = isOn op.IsOn = isOn
@@ -187,7 +189,7 @@ func (this *NodeDAO) CountAllEnabledNodes() (int64, error) {
} }
// 列出单页节点 // 列出单页节点
func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId int64, installState configutils.BoolState, activeState configutils.BoolState, keyword string, groupId int64) (result []*Node, err error) { func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId int64, installState configutils.BoolState, activeState configutils.BoolState, keyword string, groupId int64, regionId int64) (result []*Node, err error) {
query := this.Query(). query := this.Query().
State(NodeStateEnabled). State(NodeStateEnabled).
Offset(offset). Offset(offset).
@@ -231,6 +233,11 @@ func (this *NodeDAO) ListEnabledNodesMatch(offset int64, size int64, clusterId i
query.Attr("groupId", groupId) query.Attr("groupId", groupId)
} }
// 区域
if regionId > 0 {
query.Attr("regionId", regionId)
}
_, err = query.FindAll() _, err = query.FindAll()
return return
} }
@@ -318,7 +325,7 @@ func (this *NodeDAO) FindAllInactiveNodesWithClusterId(clusterId int64) (result
} }
// 计算节点数量 // 计算节点数量
func (this *NodeDAO) CountAllEnabledNodesMatch(clusterId int64, installState configutils.BoolState, activeState configutils.BoolState, keyword string, groupId int64) (int64, error) { func (this *NodeDAO) CountAllEnabledNodesMatch(clusterId int64, installState configutils.BoolState, activeState configutils.BoolState, keyword string, groupId int64, regionId int64) (int64, error) {
query := this.Query() query := this.Query()
query.State(NodeStateEnabled) query.State(NodeStateEnabled)
@@ -358,6 +365,11 @@ func (this *NodeDAO) CountAllEnabledNodesMatch(clusterId int64, installState con
query.Attr("groupId", groupId) query.Attr("groupId", groupId)
} }
// 区域
if regionId > 0 {
query.Attr("regionId", regionId)
}
return query.Count() return query.Count()
} }

View File

@@ -43,7 +43,7 @@ func (this *NodeService) CreateNode(ctx context.Context, req *pb.CreateNodeReque
return nil, err return nil, err
} }
nodeId, err := models.SharedNodeDAO.CreateNode(adminId, req.Name, req.ClusterId, req.GroupId) nodeId, err := models.SharedNodeDAO.CreateNode(adminId, req.Name, req.ClusterId, req.GroupId, req.RegionId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -92,7 +92,7 @@ func (this *NodeService) RegisterClusterNode(ctx context.Context, req *pb.Regist
return nil, err return nil, err
} }
nodeId, err := models.SharedNodeDAO.CreateNode(adminId, req.Name, clusterId, 0) nodeId, err := models.SharedNodeDAO.CreateNode(adminId, req.Name, clusterId, 0, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -144,7 +144,7 @@ func (this *NodeService) CountAllEnabledNodesMatch(ctx context.Context, req *pb.
if err != nil { if err != nil {
return nil, err return nil, err
} }
count, err := models.SharedNodeDAO.CountAllEnabledNodesMatch(req.ClusterId, configutils.ToBoolState(req.InstallState), configutils.ToBoolState(req.ActiveState), req.Keyword, req.GroupId) count, err := models.SharedNodeDAO.CountAllEnabledNodesMatch(req.ClusterId, configutils.ToBoolState(req.InstallState), configutils.ToBoolState(req.ActiveState), req.Keyword, req.GroupId, req.RegionId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -171,7 +171,7 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
} }
} }
nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(req.Offset, req.Size, req.ClusterId, configutils.ToBoolState(req.InstallState), configutils.ToBoolState(req.ActiveState), req.Keyword, req.GroupId) nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(req.Offset, req.Size, req.ClusterId, configutils.ToBoolState(req.InstallState), configutils.ToBoolState(req.ActiveState), req.Keyword, req.GroupId, req.RegionId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -233,6 +233,22 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
} }
} }
// 区域
var pbRegion *pb.NodeRegion = nil
if node.RegionId > 0 {
region, err := models.SharedNodeRegionDAO.FindEnabledNodeRegion(int64(node.RegionId))
if err != nil {
return nil, err
}
if region != nil {
pbRegion = &pb.NodeRegion{
Id: int64(region.Id),
IsOn: region.IsOn == 1,
Name: region.Name,
}
}
}
result = append(result, &pb.Node{ result = append(result, &pb.Node{
Id: int64(node.Id), Id: int64(node.Id),
Name: node.Name, Name: node.Name,
@@ -248,6 +264,7 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
IsOn: node.IsOn == 1, IsOn: node.IsOn == 1,
IsUp: node.IsUp == 1, IsUp: node.IsUp == 1,
Group: pbGroup, Group: pbGroup,
Region: pbRegion,
DnsRoutes: pbRoutes, DnsRoutes: pbRoutes,
}) })
} }
@@ -321,7 +338,7 @@ func (this *NodeService) UpdateNode(ctx context.Context, req *pb.UpdateNodeReque
return nil, err return nil, err
} }
err = models.SharedNodeDAO.UpdateNode(req.NodeId, req.Name, req.ClusterId, req.GroupId, req.MaxCPU, req.IsOn) err = models.SharedNodeDAO.UpdateNode(req.NodeId, req.Name, req.ClusterId, req.GroupId, req.RegionId, req.MaxCPU, req.IsOn)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -435,6 +452,22 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
} }
} }
// 区域
var pbRegion *pb.NodeRegion = nil
if node.RegionId > 0 {
region, err := models.SharedNodeRegionDAO.FindEnabledNodeRegion(int64(node.RegionId))
if err != nil {
return nil, err
}
if region != nil {
pbRegion = &pb.NodeRegion{
Id: int64(region.Id),
IsOn: region.IsOn == 1,
Name: region.Name,
}
}
}
return &pb.FindEnabledNodeResponse{Node: &pb.Node{ return &pb.FindEnabledNodeResponse{Node: &pb.Node{
Id: int64(node.Id), Id: int64(node.Id),
Name: node.Name, Name: node.Name,
@@ -454,6 +487,7 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
MaxCPU: types.Int32(node.MaxCPU), MaxCPU: types.Int32(node.MaxCPU),
IsOn: node.IsOn == 1, IsOn: node.IsOn == 1,
Group: pbGroup, Group: pbGroup,
Region: pbRegion,
}}, nil }}, nil
} }