优化代码

This commit is contained in:
GoEdgeLab
2020-12-17 17:36:20 +08:00
parent 4ba539c687
commit 83d7528b88
9 changed files with 114 additions and 71 deletions

View File

@@ -228,18 +228,9 @@ func (this *HTTPWebDAO) ComposeWebConfig(webId int64) (*serverconfigs.HTTPWebCon
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, cacheRef := range cacheConfig.CacheRefs {
if cacheRef.CachePolicyId > 0 {
cachePolicy, err := SharedHTTPCachePolicyDAO.ComposeCachePolicy(cacheRef.CachePolicyId)
if err != nil {
return nil, err
}
if cachePolicy != nil {
cacheRef.CachePolicy = cachePolicy
}
}
}
config.Cache = cacheConfig config.Cache = cacheConfig
// 暂不支持自定义缓存策略设置,因为同一个集群下的服务需要集中管理
} }
// 防火墙配置 // 防火墙配置
@@ -251,17 +242,7 @@ func (this *HTTPWebDAO) ComposeWebConfig(webId int64) (*serverconfigs.HTTPWebCon
} }
config.FirewallRef = firewallRef config.FirewallRef = firewallRef
if firewallRef.FirewallPolicyId > 0 { // 暂不支持自定义防火墙策略设置,因为同一个集群下的服务需要集中管理
firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(firewallRef.FirewallPolicyId)
if err != nil {
return nil, err
}
if firewallPolicy == nil {
config.FirewallRef = nil
} else {
config.FirewallPolicy = firewallPolicy
}
}
} }
// 路径规则 // 路径规则

View File

@@ -609,6 +609,14 @@ func (this *NodeClusterDAO) FindAllEnabledNodeClustersWithHTTPFirewallPolicyId(h
return return
} }
// 获取集群的WAF策略ID
func (this *NodeClusterDAO) FindClusterHTTPFirewallPolicyId(clusterId int64) (int64, error) {
return this.Query().
Pk(clusterId).
Result("httpFirewallPolicyId").
FindInt64Col(0)
}
// 设置集群的缓存策略 // 设置集群的缓存策略
func (this *NodeClusterDAO) UpdateNodeClusterHTTPCachePolicyId(clusterId int64, httpCachePolicyId int64) error { func (this *NodeClusterDAO) UpdateNodeClusterHTTPCachePolicyId(clusterId int64, httpCachePolicyId int64) error {
_, err := this.Query(). _, err := this.Query().
@@ -618,6 +626,14 @@ func (this *NodeClusterDAO) UpdateNodeClusterHTTPCachePolicyId(clusterId int64,
return err return err
} }
// 获取集群的缓存策略ID
func (this *NodeClusterDAO) FindClusterHTTPCachePolicyId(clusterId int64) (int64, error) {
return this.Query().
Pk(clusterId).
Result("cachePolicyId").
FindInt64Col(0)
}
// 设置集群的WAF策略 // 设置集群的WAF策略
func (this *NodeClusterDAO) UpdateNodeClusterHTTPFirewallPolicyId(clusterId int64, httpFirewallPolicyId int64) error { func (this *NodeClusterDAO) UpdateNodeClusterHTTPFirewallPolicyId(clusterId int64, httpFirewallPolicyId int64) error {
_, err := this.Query(). _, err := this.Query().

View File

@@ -143,7 +143,7 @@ func (this *NodeDAO) UpdateNodeLatestVersion(nodeId int64) error {
} }
// 批量更新节点版本 // 批量更新节点版本
func (this *NodeDAO) UpdateAllNodesLatestVersionMatch(clusterId int64) error { func (this *NodeDAO) IncreaseAllNodesLatestVersionMatch(clusterId int64) error {
_, err := this.Query(). _, err := this.Query().
Attr("clusterId", clusterId). Attr("clusterId", clusterId).
Set("latestVersion", dbs.SQL("latestVersion+1")). Set("latestVersion", dbs.SQL("latestVersion+1")).
@@ -459,6 +459,7 @@ func (this *NodeDAO) UpdateNodeInstallStatus(nodeId int64, status *NodeInstallSt
} }
// 组合配置 // 组合配置
// TODO 提升运行速度
func (this *NodeDAO) ComposeNodeConfig(nodeId int64) (*nodeconfigs.NodeConfig, error) { func (this *NodeDAO) ComposeNodeConfig(nodeId int64) (*nodeconfigs.NodeConfig, error) {
node, err := this.FindEnabledNode(nodeId) node, err := this.FindEnabledNode(nodeId)
if err != nil { if err != nil {
@@ -513,8 +514,39 @@ func (this *NodeDAO) ComposeNodeConfig(nodeId int64) (*nodeconfigs.NodeConfig, e
config.GlobalConfig = globalConfig config.GlobalConfig = globalConfig
} }
// WAF
clusterId := int64(node.ClusterId)
httpFirewallPolicyId, err := SharedNodeClusterDAO.FindClusterHTTPFirewallPolicyId(clusterId)
if err != nil {
return nil, err
}
if httpFirewallPolicyId > 0 {
firewallPolicy, err := SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(httpFirewallPolicyId)
if err != nil {
return nil, err
}
if firewallPolicy != nil {
config.HTTPFirewallPolicy = firewallPolicy
}
}
// 缓存策略
httpCachePolicyId, err := SharedNodeClusterDAO.FindClusterHTTPCachePolicyId(clusterId)
if err != nil {
return nil, err
}
if httpCachePolicyId > 0 {
cachePolicy, err := SharedHTTPCachePolicyDAO.ComposeCachePolicy(httpCachePolicyId)
if err != nil {
return nil, err
}
if cachePolicy != nil {
config.HTTPCachePolicy = cachePolicy
}
}
// TOA // TOA
toaConfig, err := SharedNodeClusterDAO.FindClusterTOAConfig(int64(node.ClusterId)) toaConfig, err := SharedNodeClusterDAO.FindClusterTOAConfig(clusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -54,7 +54,7 @@ func (this *ServerChangeEvent) Run() error {
if !isOk { if !isOk {
continue continue
} }
err = SharedNodeDAO.UpdateAllNodesLatestVersionMatch(clusterId) err = SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(clusterId)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -70,15 +70,15 @@ func (this *MessageService) ListUnreadMessages(ctx context.Context, req *pb.List
} }
result = append(result, &pb.Message{ result = append(result, &pb.Message{
Id: int64(message.Id), Id: int64(message.Id),
Type: message.Type, Type: message.Type,
Body: message.Body, Body: message.Body,
Level: message.Level, Level: message.Level,
ParamsJSON: []byte(message.Params), ParamsJSON: []byte(message.Params),
IsRead: message.IsRead == 1, IsRead: message.IsRead == 1,
CreatedAt: int64(message.CreatedAt), CreatedAt: int64(message.CreatedAt),
Cluster: pbCluster, NodeCluster: pbCluster,
Node: pbNode, Node: pbNode,
}) })
} }

View File

@@ -255,7 +255,7 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
Version: int64(node.Version), Version: int64(node.Version),
IsInstalled: node.IsInstalled == 1, IsInstalled: node.IsInstalled == 1,
StatusJSON: []byte(node.Status), StatusJSON: []byte(node.Status),
Cluster: &pb.NodeCluster{ NodeCluster: &pb.NodeCluster{
Id: int64(node.ClusterId), Id: int64(node.ClusterId),
Name: clusterName, Name: clusterName,
}, },
@@ -478,7 +478,7 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable
Secret: node.Secret, Secret: node.Secret,
InstallDir: node.InstallDir, InstallDir: node.InstallDir,
IsInstalled: node.IsInstalled == 1, IsInstalled: node.IsInstalled == 1,
Cluster: &pb.NodeCluster{ NodeCluster: &pb.NodeCluster{
Id: int64(node.ClusterId), Id: int64(node.ClusterId),
Name: clusterName, Name: clusterName,
}, },
@@ -744,7 +744,7 @@ func (this *NodeService) FindAllEnabledNodesWithGrantId(ctx context.Context, req
Version: int64(node.Version), Version: int64(node.Version),
IsInstalled: node.IsInstalled == 1, IsInstalled: node.IsInstalled == 1,
StatusJSON: []byte(node.Status), StatusJSON: []byte(node.Status),
Cluster: &pb.NodeCluster{ NodeCluster: &pb.NodeCluster{
Id: int64(node.ClusterId), Id: int64(node.ClusterId),
Name: clusterName, Name: clusterName,
}, },

View File

@@ -78,7 +78,7 @@ func (this *NodeClusterService) FindEnabledNodeCluster(ctx context.Context, req
return &pb.FindEnabledNodeClusterResponse{}, nil return &pb.FindEnabledNodeClusterResponse{}, nil
} }
return &pb.FindEnabledNodeClusterResponse{Cluster: &pb.NodeCluster{ return &pb.FindEnabledNodeClusterResponse{NodeCluster: &pb.NodeCluster{
Id: int64(cluster.Id), Id: int64(cluster.Id),
Name: cluster.Name, Name: cluster.Name,
CreatedAt: int64(cluster.CreatedAt), CreatedAt: int64(cluster.CreatedAt),
@@ -168,7 +168,7 @@ func (this *NodeClusterService) FindAllEnabledNodeClusters(ctx context.Context,
} }
return &pb.FindAllEnabledNodeClustersResponse{ return &pb.FindAllEnabledNodeClustersResponse{
Clusters: result, NodeClusters: result,
}, nil }, nil
} }
@@ -185,7 +185,7 @@ func (this *NodeClusterService) FindAllChangedNodeClusters(ctx context.Context,
} }
if len(clusterIds) == 0 { if len(clusterIds) == 0 {
return &pb.FindAllChangedNodeClustersResponse{ return &pb.FindAllChangedNodeClustersResponse{
Clusters: []*pb.NodeCluster{}, NodeClusters: []*pb.NodeCluster{},
}, nil }, nil
} }
result := []*pb.NodeCluster{} result := []*pb.NodeCluster{}
@@ -205,7 +205,7 @@ func (this *NodeClusterService) FindAllChangedNodeClusters(ctx context.Context,
Secret: cluster.Secret, Secret: cluster.Secret,
}) })
} }
return &pb.FindAllChangedNodeClustersResponse{Clusters: result}, nil return &pb.FindAllChangedNodeClustersResponse{NodeClusters: result}, nil
} }
// 计算所有集群数量 // 计算所有集群数量
@@ -250,7 +250,7 @@ func (this *NodeClusterService) ListEnabledNodeClusters(ctx context.Context, req
}) })
} }
return &pb.ListEnabledNodeClustersResponse{Clusters: result}, nil return &pb.ListEnabledNodeClustersResponse{NodeClusters: result}, nil
} }
// 查找集群的健康检查配置 // 查找集群的健康检查配置
@@ -354,7 +354,7 @@ func (this *NodeClusterService) FindAllEnabledNodeClustersWithGrantId(ctx contex
Secret: cluster.Secret, Secret: cluster.Secret,
}) })
} }
return &pb.FindAllEnabledNodeClustersWithGrantIdResponse{Clusters: result}, nil return &pb.FindAllEnabledNodeClustersWithGrantIdResponse{NodeClusters: result}, nil
} }
// 查找集群的DNS配置 // 查找集群的DNS配置
@@ -566,8 +566,8 @@ func (this *NodeClusterService) UpdateNodeClusterTOA(ctx context.Context, req *p
return nil, err return nil, err
} }
// 更新节点版本 // 增加节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.NodeClusterId) err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -655,6 +655,13 @@ func (this *NodeClusterService) UpdateNodeClusterHTTPCachePolicyId(ctx context.C
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 增加节点版本号
err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil {
return nil, err
}
return this.Success() return this.Success()
} }
@@ -668,5 +675,12 @@ func (this *NodeClusterService) UpdateNodeClusterHTTPFirewallPolicyId(ctx contex
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 增加节点版本号
err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil {
return nil, err
}
return this.Success() return this.Success()
} }

View File

@@ -28,7 +28,7 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe
} }
// 更新节点版本 // 更新节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.NodeClusterId) err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -75,14 +75,14 @@ func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.Update
// 更新老的节点版本 // 更新老的节点版本
if req.NodeClusterId != int64(server.ClusterId) { if req.NodeClusterId != int64(server.ClusterId) {
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId)) err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(int64(server.ClusterId))
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
// 更新新的节点版本 // 更新新的节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.NodeClusterId) err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -461,7 +461,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
ServerNamesJSON: []byte(server.ServerNames), ServerNamesJSON: []byte(server.ServerNames),
CreatedAt: int64(server.CreatedAt), CreatedAt: int64(server.CreatedAt),
DnsName: server.DnsName, DnsName: server.DnsName,
Cluster: &pb.NodeCluster{ NodeCluster: &pb.NodeCluster{
Id: int64(server.ClusterId), Id: int64(server.ClusterId),
Name: clusterName, Name: clusterName,
}, },
@@ -497,7 +497,7 @@ func (this *ServerService) DisableServer(ctx context.Context, req *pb.DisableSer
} }
// 更新节点版本 // 更新节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId)) err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(int64(server.ClusterId))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -572,7 +572,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
IncludeNodes: []byte(server.IncludeNodes), IncludeNodes: []byte(server.IncludeNodes),
ExcludeNodes: []byte(server.ExcludeNodes), ExcludeNodes: []byte(server.ExcludeNodes),
CreatedAt: int64(server.CreatedAt), CreatedAt: int64(server.CreatedAt),
Cluster: &pb.NodeCluster{ NodeCluster: &pb.NodeCluster{
Id: int64(server.ClusterId), Id: int64(server.ClusterId),
Name: clusterName, Name: clusterName,
}, },

View File

@@ -99,16 +99,16 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl
} }
result = append(result, &pb.User{ result = append(result, &pb.User{
Id: int64(user.Id), Id: int64(user.Id),
Username: user.Username, Username: user.Username,
Fullname: user.Fullname, Fullname: user.Fullname,
Mobile: user.Mobile, Mobile: user.Mobile,
Tel: user.Tel, Tel: user.Tel,
Email: user.Email, Email: user.Email,
Remark: user.Remark, Remark: user.Remark,
IsOn: user.IsOn == 1, IsOn: user.IsOn == 1,
CreatedAt: int64(user.CreatedAt), CreatedAt: int64(user.CreatedAt),
Cluster: pbCluster, NodeCluster: pbCluster,
}) })
} }
@@ -144,16 +144,16 @@ func (this *UserService) FindEnabledUser(ctx context.Context, req *pb.FindEnable
} }
return &pb.FindEnabledUserResponse{User: &pb.User{ return &pb.FindEnabledUserResponse{User: &pb.User{
Id: int64(user.Id), Id: int64(user.Id),
Username: user.Username, Username: user.Username,
Fullname: user.Fullname, Fullname: user.Fullname,
Mobile: user.Mobile, Mobile: user.Mobile,
Tel: user.Tel, Tel: user.Tel,
Email: user.Email, Email: user.Email,
Remark: user.Remark, Remark: user.Remark,
IsOn: user.IsOn == 1, IsOn: user.IsOn == 1,
CreatedAt: int64(user.CreatedAt), CreatedAt: int64(user.CreatedAt),
Cluster: pbCluster, NodeCluster: pbCluster,
}}, nil }}, nil
} }