集群可以设置默认的WAF策略、缓存策略

This commit is contained in:
GoEdgeLab
2020-12-17 15:51:02 +08:00
parent 728c82711c
commit 4ba539c687
12 changed files with 337 additions and 231 deletions

View File

@@ -102,7 +102,7 @@ func (this *NodeClusterDAO) FindAllEnableClusters() (result []*NodeCluster, err
} }
// 创建集群 // 创建集群
func (this *NodeClusterDAO) CreateCluster(adminId int64, name string, grantId int64, installDir string, dnsDomainId int64, dnsName string) (clusterId int64, err error) { func (this *NodeClusterDAO) CreateCluster(adminId int64, name string, grantId int64, installDir string, dnsDomainId int64, dnsName string, cachePolicyId int64, httpFirewallPolicyId int64) (clusterId int64, err error) {
uniqueId, err := this.genUniqueId() uniqueId, err := this.genUniqueId()
if err != nil { if err != nil {
return 0, err return 0, err
@@ -133,6 +133,12 @@ func (this *NodeClusterDAO) CreateCluster(adminId int64, name string, grantId in
} }
op.Dns = dnsJSON op.Dns = dnsJSON
// 缓存策略
op.CachePolicyId = cachePolicyId
// WAF策略
op.HttpFirewallPolicyId = httpFirewallPolicyId
op.UseAllAPINodes = 1 op.UseAllAPINodes = 1
op.ApiNodes = "[]" op.ApiNodes = "[]"
op.UniqueId = uniqueId op.UniqueId = uniqueId
@@ -565,6 +571,62 @@ func (this *NodeClusterDAO) UpdateClusterTOA(clusterId int64, toaJSON []byte) er
return err return err
} }
// 计算使用某个缓存策略的集群数量
func (this *NodeClusterDAO) CountAllEnabledNodeClustersWithHTTPCachePolicyId(httpCachePolicyId int64) (int64, error) {
return this.Query().
State(NodeClusterStateEnabled).
Attr("cachePolicyId", httpCachePolicyId).
Count()
}
// 查找使用缓存策略的所有集群
func (this *NodeClusterDAO) FindAllEnabledNodeClustersWithHTTPCachePolicyId(httpCachePolicyId int64) (result []*NodeCluster, err error) {
_, err = this.Query().
State(NodeClusterStateEnabled).
Attr("cachePolicyId", httpCachePolicyId).
DescPk().
Slice(&result).
FindAll()
return
}
// 计算使用某个WAF策略的集群数量
func (this *NodeClusterDAO) CountAllEnabledNodeClustersWithHTTPFirewallPolicyId(httpFirewallPolicyId int64) (int64, error) {
return this.Query().
State(NodeClusterStateEnabled).
Attr("httpFirewallPolicyId", httpFirewallPolicyId).
Count()
}
// 查找使用WAF策略的所有集群
func (this *NodeClusterDAO) FindAllEnabledNodeClustersWithHTTPFirewallPolicyId(httpFirewallPolicyId int64) (result []*NodeCluster, err error) {
_, err = this.Query().
State(NodeClusterStateEnabled).
Attr("httpFirewallPolicyId", httpFirewallPolicyId).
DescPk().
Slice(&result).
FindAll()
return
}
// 设置集群的缓存策略
func (this *NodeClusterDAO) UpdateNodeClusterHTTPCachePolicyId(clusterId int64, httpCachePolicyId int64) error {
_, err := this.Query().
Pk(clusterId).
Set("cachePolicyId", httpCachePolicyId).
Update()
return err
}
// 设置集群的WAF策略
func (this *NodeClusterDAO) UpdateNodeClusterHTTPFirewallPolicyId(clusterId int64, httpFirewallPolicyId int64) error {
_, err := this.Query().
Pk(clusterId).
Set("httpFirewallPolicyId", httpFirewallPolicyId).
Update()
return err
}
// 生成唯一ID // 生成唯一ID
func (this *NodeClusterDAO) genUniqueId() (string, error) { func (this *NodeClusterDAO) genUniqueId() (string, error) {
for { for {

View File

@@ -21,6 +21,9 @@ type NodeCluster struct {
DnsDomainId uint32 `field:"dnsDomainId"` // 域名ID DnsDomainId uint32 `field:"dnsDomainId"` // 域名ID
Dns string `field:"dns"` // DNS配置 Dns string `field:"dns"` // DNS配置
Toa string `field:"toa"` // TOA配置 Toa string `field:"toa"` // TOA配置
CachePolicyId uint32 `field:"cachePolicyId"` // 缓存策略ID
HttpFirewallPolicyId uint32 `field:"httpFirewallPolicyId"` // WAF策略ID
AccessLog string `field:"accessLog"` // 访问日志设置
} }
type NodeClusterOperator struct { type NodeClusterOperator struct {
@@ -43,6 +46,9 @@ type NodeClusterOperator struct {
DnsDomainId interface{} // 域名ID DnsDomainId interface{} // 域名ID
Dns interface{} // DNS配置 Dns interface{} // DNS配置
Toa interface{} // TOA配置 Toa interface{} // TOA配置
CachePolicyId interface{} // 缓存策略ID
HttpFirewallPolicyId interface{} // WAF策略ID
AccessLog interface{} // 访问日志设置
} }
func NewNodeClusterOperator() *NodeClusterOperator { func NewNodeClusterOperator() *NodeClusterOperator {

View File

@@ -85,7 +85,7 @@ func (this *UserDAO) FindUserFullname(userId int64) (string, error) {
} }
// 创建用户 // 创建用户
func (this *UserDAO) CreateUser(username string, password string, fullname string, mobile string, tel string, email string, remark string, source string) (int64, error) { func (this *UserDAO) CreateUser(username string, password string, fullname string, mobile string, tel string, email string, remark string, source string, clusterId int64) (int64, error) {
op := NewUserOperator() op := NewUserOperator()
op.Username = username op.Username = username
op.Password = stringutil.Md5(password) op.Password = stringutil.Md5(password)
@@ -95,6 +95,7 @@ func (this *UserDAO) CreateUser(username string, password string, fullname strin
op.Email = email op.Email = email
op.Remark = remark op.Remark = remark
op.Source = source op.Source = source
op.ClusterId = clusterId
op.IsOn = true op.IsOn = true
op.State = UserStateEnabled op.State = UserStateEnabled
@@ -106,7 +107,7 @@ func (this *UserDAO) CreateUser(username string, password string, fullname strin
} }
// 修改用户 // 修改用户
func (this *UserDAO) UpdateUser(userId int64, username string, password string, fullname string, mobile string, tel string, email string, remark string, isOn bool) error { func (this *UserDAO) UpdateUser(userId int64, username string, password string, fullname string, mobile string, tel string, email string, remark string, isOn bool, clusterId int64) error {
if userId <= 0 { if userId <= 0 {
return errors.New("invalid userId") return errors.New("invalid userId")
} }
@@ -122,6 +123,7 @@ func (this *UserDAO) UpdateUser(userId int64, username string, password string,
op.Email = email op.Email = email
op.Remark = remark op.Remark = remark
op.IsOn = isOn op.IsOn = isOn
op.ClusterId = clusterId
err := this.Save(op) err := this.Save(op)
return err return err
} }

View File

@@ -16,6 +16,7 @@ type User struct {
UpdatedAt uint64 `field:"updatedAt"` // 修改时间 UpdatedAt uint64 `field:"updatedAt"` // 修改时间
State uint8 `field:"state"` // 状态 State uint8 `field:"state"` // 状态
Source string `field:"source"` // 来源 Source string `field:"source"` // 来源
ClusterId uint32 `field:"clusterId"` // 集群ID
} }
type UserOperator struct { type UserOperator struct {
@@ -33,6 +34,7 @@ type UserOperator struct {
UpdatedAt interface{} // 修改时间 UpdatedAt interface{} // 修改时间
State interface{} // 状态 State interface{} // 状态
Source interface{} // 来源 Source interface{} // 来源
ClusterId interface{} // 集群ID
} }
func NewUserOperator() *UserOperator { func NewUserOperator() *UserOperator {

View File

@@ -79,7 +79,7 @@ func (this *APINodeService) FindAllEnabledAPINodes(ctx context.Context, req *pb.
result = append(result, &pb.APINode{ result = append(result, &pb.APINode{
Id: int64(node.Id), Id: int64(node.Id),
IsOn: node.IsOn == 1, IsOn: node.IsOn == 1,
ClusterId: int64(node.ClusterId), NodeClusterId: int64(node.ClusterId),
UniqueId: node.UniqueId, UniqueId: node.UniqueId,
Secret: node.Secret, Secret: node.Secret,
Name: node.Name, Name: node.Name,
@@ -131,7 +131,7 @@ func (this *APINodeService) ListEnabledAPINodes(ctx context.Context, req *pb.Lis
result = append(result, &pb.APINode{ result = append(result, &pb.APINode{
Id: int64(node.Id), Id: int64(node.Id),
IsOn: node.IsOn == 1, IsOn: node.IsOn == 1,
ClusterId: int64(node.ClusterId), NodeClusterId: int64(node.ClusterId),
UniqueId: node.UniqueId, UniqueId: node.UniqueId,
Secret: node.Secret, Secret: node.Secret,
Name: node.Name, Name: node.Name,
@@ -170,7 +170,7 @@ func (this *APINodeService) FindEnabledAPINode(ctx context.Context, req *pb.Find
result := &pb.APINode{ result := &pb.APINode{
Id: int64(node.Id), Id: int64(node.Id),
IsOn: node.IsOn == 1, IsOn: node.IsOn == 1,
ClusterId: int64(node.ClusterId), NodeClusterId: int64(node.ClusterId),
UniqueId: node.UniqueId, UniqueId: node.UniqueId,
Secret: node.Secret, Secret: node.Secret,
Name: node.Name, Name: node.Name,

View File

@@ -47,7 +47,7 @@ func (this *HTTPCachePolicyService) CreateHTTPCachePolicy(ctx context.Context, r
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &pb.CreateHTTPCachePolicyResponse{CachePolicyId: policyId}, nil return &pb.CreateHTTPCachePolicyResponse{HttpCachePolicyId: policyId}, nil
} }
// 修改缓存策略 // 修改缓存策略
@@ -58,7 +58,7 @@ func (this *HTTPCachePolicyService) UpdateHTTPCachePolicy(ctx context.Context, r
return nil, err return nil, err
} }
err = models.SharedHTTPCachePolicyDAO.UpdateCachePolicy(req.CachePolicyId, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON) err = models.SharedHTTPCachePolicyDAO.UpdateCachePolicy(req.HttpCachePolicyId, req.IsOn, req.Name, req.Description, req.CapacityJSON, req.MaxKeys, req.MaxSizeJSON, req.Type, req.OptionsJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -74,7 +74,7 @@ func (this *HTTPCachePolicyService) DeleteHTTPCachePolicy(ctx context.Context, r
return nil, err return nil, err
} }
err = models.SharedHTTPCachePolicyDAO.DisableHTTPCachePolicy(req.CachePolicyId) err = models.SharedHTTPCachePolicyDAO.DisableHTTPCachePolicy(req.HttpCachePolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -113,7 +113,7 @@ func (this *HTTPCachePolicyService) ListEnabledHTTPCachePolicies(ctx context.Con
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &pb.ListEnabledHTTPCachePoliciesResponse{CachePoliciesJSON: cachePoliciesJSON}, nil return &pb.ListEnabledHTTPCachePoliciesResponse{HttpCachePoliciesJSON: cachePoliciesJSON}, nil
} }
// 查找单个缓存策略配置 // 查找单个缓存策略配置
@@ -124,10 +124,31 @@ func (this *HTTPCachePolicyService) FindEnabledHTTPCachePolicyConfig(ctx context
return nil, err return nil, err
} }
cachePolicy, err := models.SharedHTTPCachePolicyDAO.ComposeCachePolicy(req.CachePolicyId) cachePolicy, err := models.SharedHTTPCachePolicyDAO.ComposeCachePolicy(req.HttpCachePolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
cachePolicyJSON, err := json.Marshal(cachePolicy) cachePolicyJSON, err := json.Marshal(cachePolicy)
return &pb.FindEnabledHTTPCachePolicyConfigResponse{CachePolicyJSON: cachePolicyJSON}, nil return &pb.FindEnabledHTTPCachePolicyConfigResponse{HttpCachePolicyJSON: cachePolicyJSON}, nil
}
// 查找单个缓存策略信息
func (this *HTTPCachePolicyService) FindEnabledHTTPCachePolicy(ctx context.Context, req *pb.FindEnabledHTTPCachePolicyRequest) (*pb.FindEnabledHTTPCachePolicyResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
policy, err := models.SharedHTTPCachePolicyDAO.FindEnabledHTTPCachePolicy(req.HttpCachePolicyId)
if err != nil {
return nil, err
}
if policy == nil {
return &pb.FindEnabledHTTPCachePolicyResponse{HttpCachePolicy: nil}, nil
}
return &pb.FindEnabledHTTPCachePolicyResponse{HttpCachePolicy: &pb.HTTPCachePolicy{
Id: int64(policy.Id),
Name: policy.Name,
IsOn: policy.IsOn == 1,
}}, nil
} }

View File

@@ -63,7 +63,7 @@ func (this *HTTPFirewallPolicyService) CreateHTTPFirewallPolicy(ctx context.Cont
templatePolicy := firewallconfigs.HTTPFirewallTemplate() templatePolicy := firewallconfigs.HTTPFirewallTemplate()
if templatePolicy.Inbound != nil { if templatePolicy.Inbound != nil {
for _, group := range templatePolicy.Inbound.Groups { for _, group := range templatePolicy.Inbound.Groups {
isOn := lists.ContainsString(req.FirewallGroupCodes, group.Code) isOn := lists.ContainsString(req.HttpFirewallGroupCodes, group.Code)
group.IsOn = isOn group.IsOn = isOn
groupId, err := models.SharedHTTPFirewallRuleGroupDAO.CreateGroupFromConfig(group) groupId, err := models.SharedHTTPFirewallRuleGroupDAO.CreateGroupFromConfig(group)
@@ -78,7 +78,7 @@ func (this *HTTPFirewallPolicyService) CreateHTTPFirewallPolicy(ctx context.Cont
} }
if templatePolicy.Outbound != nil { if templatePolicy.Outbound != nil {
for _, group := range templatePolicy.Outbound.Groups { for _, group := range templatePolicy.Outbound.Groups {
isOn := lists.ContainsString(req.FirewallGroupCodes, group.Code) isOn := lists.ContainsString(req.HttpFirewallGroupCodes, group.Code)
group.IsOn = isOn group.IsOn = isOn
groupId, err := models.SharedHTTPFirewallRuleGroupDAO.CreateGroupFromConfig(group) groupId, err := models.SharedHTTPFirewallRuleGroupDAO.CreateGroupFromConfig(group)
@@ -107,7 +107,7 @@ func (this *HTTPFirewallPolicyService) CreateHTTPFirewallPolicy(ctx context.Cont
return nil, err return nil, err
} }
return &pb.CreateHTTPFirewallPolicyResponse{FirewallPolicyId: policyId}, nil return &pb.CreateHTTPFirewallPolicyResponse{HttpFirewallPolicyId: policyId}, nil
} }
// 修改防火墙策略 // 修改防火墙策略
@@ -121,7 +121,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont
templatePolicy := firewallconfigs.HTTPFirewallTemplate() templatePolicy := firewallconfigs.HTTPFirewallTemplate()
// 已经有的数据 // 已经有的数据
firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.FirewallPolicyId) firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -228,7 +228,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicy(ctx context.Cont
return nil, err return nil, err
} }
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(req.FirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON) err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicy(req.HttpFirewallPolicyId, req.IsOn, req.Name, req.Description, inboundConfigJSON, outboundConfigJSON, req.BlockOptionsJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -244,7 +244,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallPolicyGroups(ctx contex
return nil, err return nil, err
} }
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInboundAndOutbound(req.FirewallPolicyId, req.InboundJSON, req.OutboundJSON) err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInboundAndOutbound(req.HttpFirewallPolicyId, req.InboundJSON, req.OutboundJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -260,7 +260,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallInboundConfig(ctx conte
return nil, err return nil, err
} }
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInbound(req.FirewallPolicyId, req.InboundJSON) err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInbound(req.HttpFirewallPolicyId, req.InboundJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -269,7 +269,7 @@ func (this *HTTPFirewallPolicyService) UpdateHTTPFirewallInboundConfig(ctx conte
} }
// 计算可用的防火墙策略数量 // 计算可用的防火墙策略数量
func (this *HTTPFirewallPolicyService) CountAllEnabledFirewallPolicies(ctx context.Context, req *pb.CountAllEnabledFirewallPoliciesRequest) (*pb.RPCCountResponse, error) { func (this *HTTPFirewallPolicyService) CountAllEnabledHTTPFirewallPolicies(ctx context.Context, req *pb.CountAllEnabledHTTPFirewallPoliciesRequest) (*pb.RPCCountResponse, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil { if err != nil {
@@ -284,7 +284,7 @@ func (this *HTTPFirewallPolicyService) CountAllEnabledFirewallPolicies(ctx conte
} }
// 列出单页的防火墙策略 // 列出单页的防火墙策略
func (this *HTTPFirewallPolicyService) ListEnabledFirewallPolicies(ctx context.Context, req *pb.ListEnabledFirewallPoliciesRequest) (*pb.ListEnabledFirewallPoliciesResponse, error) { func (this *HTTPFirewallPolicyService) ListEnabledHTTPFirewallPolicies(ctx context.Context, req *pb.ListEnabledHTTPFirewallPoliciesRequest) (*pb.ListEnabledHTTPFirewallPoliciesResponse, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil { if err != nil {
@@ -308,18 +308,18 @@ func (this *HTTPFirewallPolicyService) ListEnabledFirewallPolicies(ctx context.C
}) })
} }
return &pb.ListEnabledFirewallPoliciesResponse{FirewallPolicies: result}, nil return &pb.ListEnabledHTTPFirewallPoliciesResponse{HttpFirewallPolicies: result}, nil
} }
// 删除某个防火墙策略 // 删除某个防火墙策略
func (this *HTTPFirewallPolicyService) DeleteFirewallPolicy(ctx context.Context, req *pb.DeleteFirewallPolicyRequest) (*pb.RPCSuccess, error) { func (this *HTTPFirewallPolicyService) DeleteHTTPFirewallPolicy(ctx context.Context, req *pb.DeleteHTTPFirewallPolicyRequest) (*pb.RPCSuccess, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil { if err != nil {
return nil, err return nil, err
} }
err = models.SharedHTTPFirewallPolicyDAO.DisableHTTPFirewallPolicy(req.FirewallPolicyId) err = models.SharedHTTPFirewallPolicyDAO.DisableHTTPFirewallPolicy(req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -328,19 +328,19 @@ func (this *HTTPFirewallPolicyService) DeleteFirewallPolicy(ctx context.Context,
} }
// 查找单个防火墙配置 // 查找单个防火墙配置
func (this *HTTPFirewallPolicyService) FindEnabledFirewallPolicyConfig(ctx context.Context, req *pb.FindEnabledFirewallPolicyConfigRequest) (*pb.FindEnabledFirewallPolicyConfigResponse, error) { func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicyConfig(ctx context.Context, req *pb.FindEnabledHTTPFirewallPolicyConfigRequest) (*pb.FindEnabledHTTPFirewallPolicyConfigResponse, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil { if err != nil {
return nil, err return nil, err
} }
config, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.FirewallPolicyId) config, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if config == nil { if config == nil {
return &pb.FindEnabledFirewallPolicyConfigResponse{FirewallPolicyJSON: nil}, nil return &pb.FindEnabledHTTPFirewallPolicyConfigResponse{HttpFirewallPolicyJSON: nil}, nil
} }
configJSON, err := json.Marshal(config) configJSON, err := json.Marshal(config)
@@ -348,25 +348,25 @@ func (this *HTTPFirewallPolicyService) FindEnabledFirewallPolicyConfig(ctx conte
return nil, err return nil, err
} }
return &pb.FindEnabledFirewallPolicyConfigResponse{FirewallPolicyJSON: configJSON}, nil return &pb.FindEnabledHTTPFirewallPolicyConfigResponse{HttpFirewallPolicyJSON: configJSON}, nil
} }
// 获取防火墙的基本信息 // 获取防火墙的基本信息
func (this *HTTPFirewallPolicyService) FindEnabledFirewallPolicy(ctx context.Context, req *pb.FindEnabledFirewallPolicyRequest) (*pb.FindEnabledFirewallPolicyResponse, error) { func (this *HTTPFirewallPolicyService) FindEnabledHTTPFirewallPolicy(ctx context.Context, req *pb.FindEnabledHTTPFirewallPolicyRequest) (*pb.FindEnabledHTTPFirewallPolicyResponse, error) {
// 校验请求 // 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil { if err != nil {
return nil, err return nil, err
} }
policy, err := models.SharedHTTPFirewallPolicyDAO.FindEnabledHTTPFirewallPolicy(req.FirewallPolicyId) policy, err := models.SharedHTTPFirewallPolicyDAO.FindEnabledHTTPFirewallPolicy(req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if policy == nil { if policy == nil {
return &pb.FindEnabledFirewallPolicyResponse{FirewallPolicy: nil}, nil return &pb.FindEnabledHTTPFirewallPolicyResponse{HttpFirewallPolicy: nil}, nil
} }
return &pb.FindEnabledFirewallPolicyResponse{FirewallPolicy: &pb.HTTPFirewallPolicy{ return &pb.FindEnabledHTTPFirewallPolicyResponse{HttpFirewallPolicy: &pb.HTTPFirewallPolicy{
Id: int64(policy.Id), Id: int64(policy.Id),
Name: policy.Name, Name: policy.Name,
Description: policy.Description, Description: policy.Description,
@@ -385,7 +385,7 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont
// TODO 检查权限 // TODO 检查权限
oldConfig, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.FirewallPolicyId) oldConfig, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -395,7 +395,7 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont
// 解析数据 // 解析数据
newConfig := &firewallconfigs.HTTPFirewallPolicy{} newConfig := &firewallconfigs.HTTPFirewallPolicy{}
err = json.Unmarshal(req.FirewallPolicyJSON, newConfig) err = json.Unmarshal(req.HttpFirewallPolicyJSON, newConfig)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -524,7 +524,7 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont
return nil, err return nil, err
} }
err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInboundAndOutbound(req.FirewallPolicyId, inboundJSON, outboundJSON) err = models.SharedHTTPFirewallPolicyDAO.UpdateFirewallPolicyInboundAndOutbound(req.HttpFirewallPolicyId, inboundJSON, outboundJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }

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, req.RegionId) nodeId, err := models.SharedNodeDAO.CreateNode(adminId, req.Name, req.NodeClusterId, req.GroupId, req.RegionId)
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, req.RegionId) count, err := models.SharedNodeDAO.CountAllEnabledNodesMatch(req.NodeClusterId, 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
} }
@@ -158,7 +158,7 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List
return nil, err return nil, err
} }
clusterDNS, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(req.ClusterId) clusterDNS, err := models.SharedNodeClusterDAO.FindClusterDNSInfo(req.NodeClusterId)
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, req.RegionId) nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(req.Offset, req.Size, req.NodeClusterId, 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
} }
@@ -281,7 +281,7 @@ func (this *NodeService) FindAllEnabledNodesWithClusterId(ctx context.Context, r
return nil, err return nil, err
} }
nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(req.ClusterId) nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -338,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.RegionId, req.MaxCPU, req.IsOn) err = models.SharedNodeDAO.UpdateNode(req.NodeId, req.Name, req.NodeClusterId, req.GroupId, req.RegionId, req.MaxCPU, req.IsOn)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -553,7 +553,7 @@ func (this *NodeService) SyncNodesVersionWithCluster(ctx context.Context, req *p
return nil, err return nil, err
} }
err = models.SharedNodeDAO.SyncNodeVersionsWithCluster(req.ClusterId) err = models.SharedNodeDAO.SyncNodeVersionsWithCluster(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -763,7 +763,7 @@ func (this *NodeService) FindAllNotInstalledNodesWithClusterId(ctx context.Conte
return nil, err return nil, err
} }
nodes, err := models.SharedNodeDAO.FindAllNotInstalledNodesWithClusterId(req.ClusterId) nodes, err := models.SharedNodeDAO.FindAllNotInstalledNodesWithClusterId(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -847,7 +847,7 @@ func (this *NodeService) CountAllUpgradeNodesWithClusterId(ctx context.Context,
deployFiles := installers.SharedDeployManager.LoadFiles() deployFiles := installers.SharedDeployManager.LoadFiles()
total := int64(0) total := int64(0)
for _, deployFile := range deployFiles { for _, deployFile := range deployFiles {
count, err := models.SharedNodeDAO.CountAllLowerVersionNodesWithClusterId(req.ClusterId, deployFile.OS, deployFile.Arch, deployFile.Version) count, err := models.SharedNodeDAO.CountAllLowerVersionNodesWithClusterId(req.NodeClusterId, deployFile.OS, deployFile.Arch, deployFile.Version)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -869,7 +869,7 @@ func (this *NodeService) FindAllUpgradeNodesWithClusterId(ctx context.Context, r
deployFiles := installers.SharedDeployManager.LoadFiles() deployFiles := installers.SharedDeployManager.LoadFiles()
result := []*pb.FindAllUpgradeNodesWithClusterIdResponse_NodeUpgrade{} result := []*pb.FindAllUpgradeNodesWithClusterIdResponse_NodeUpgrade{}
for _, deployFile := range deployFiles { for _, deployFile := range deployFiles {
nodes, err := models.SharedNodeDAO.FindAllLowerVersionNodesWithClusterId(req.ClusterId, deployFile.OS, deployFile.Arch, deployFile.Version) nodes, err := models.SharedNodeDAO.FindAllLowerVersionNodesWithClusterId(req.NodeClusterId, deployFile.OS, deployFile.Arch, deployFile.Version)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -1146,7 +1146,7 @@ func (this *NodeService) FindEnabledNodeDNS(ctx context.Context, req *pb.FindEna
Name: node.Name, Name: node.Name,
IpAddr: ipAddr, IpAddr: ipAddr,
Routes: pbRoutes, Routes: pbRoutes,
ClusterId: clusterId, NodeClusterId: clusterId,
DnsDomainId: dnsDomainId, DnsDomainId: dnsDomainId,
DnsDomainName: dnsDomainName, DnsDomainName: dnsDomainName,
}, },

View File

@@ -24,12 +24,12 @@ func (this *NodeClusterService) CreateNodeCluster(ctx context.Context, req *pb.C
return nil, err return nil, err
} }
clusterId, err := models.SharedNodeClusterDAO.CreateCluster(adminId, req.Name, req.GrantId, req.InstallDir, req.DnsDomainId, req.DnsName) clusterId, err := models.SharedNodeClusterDAO.CreateCluster(adminId, req.Name, req.GrantId, req.InstallDir, req.DnsDomainId, req.DnsName, req.HttpCachePolicyId, req.HttpFirewallPolicyId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &pb.CreateNodeClusterResponse{ClusterId: clusterId}, nil return &pb.CreateNodeClusterResponse{NodeClusterId: clusterId}, nil
} }
// 修改集群 // 修改集群
@@ -39,7 +39,7 @@ func (this *NodeClusterService) UpdateNodeCluster(ctx context.Context, req *pb.U
return nil, err return nil, err
} }
err = models.SharedNodeClusterDAO.UpdateCluster(req.ClusterId, req.Name, req.GrantId, req.InstallDir) err = models.SharedNodeClusterDAO.UpdateCluster(req.NodeClusterId, req.Name, req.GrantId, req.InstallDir)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -54,7 +54,7 @@ func (this *NodeClusterService) DeleteNodeCluster(ctx context.Context, req *pb.D
return nil, err return nil, err
} }
err = models.SharedNodeClusterDAO.DisableNodeCluster(req.ClusterId) err = models.SharedNodeClusterDAO.DisableNodeCluster(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -69,7 +69,7 @@ func (this *NodeClusterService) FindEnabledNodeCluster(ctx context.Context, req
return nil, err return nil, err
} }
cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.ClusterId) cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -86,6 +86,8 @@ func (this *NodeClusterService) FindEnabledNodeCluster(ctx context.Context, req
GrantId: int64(cluster.GrantId), GrantId: int64(cluster.GrantId),
UniqueId: cluster.UniqueId, UniqueId: cluster.UniqueId,
Secret: cluster.Secret, Secret: cluster.Secret,
HttpCachePolicyId: int64(cluster.CachePolicyId),
HttpFirewallPolicyId: int64(cluster.HttpFirewallPolicyId),
}}, nil }}, nil
} }
@@ -97,12 +99,12 @@ func (this *NodeClusterService) FindAPINodesWithNodeCluster(ctx context.Context,
return nil, err return nil, err
} }
cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.ClusterId) cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if cluster == nil { if cluster == nil {
return nil, errors.New("can not find cluster with id '" + strconv.FormatInt(req.ClusterId, 10) + "'") return nil, errors.New("can not find cluster with id '" + strconv.FormatInt(req.NodeClusterId, 10) + "'")
} }
result := &pb.FindAPINodesWithNodeClusterResponse{} result := &pb.FindAPINodesWithNodeClusterResponse{}
@@ -128,7 +130,7 @@ func (this *NodeClusterService) FindAPINodesWithNodeCluster(ctx context.Context,
apiNodes = append(apiNodes, &pb.APINode{ apiNodes = append(apiNodes, &pb.APINode{
Id: int64(apiNode.Id), Id: int64(apiNode.Id),
IsOn: apiNode.IsOn == 1, IsOn: apiNode.IsOn == 1,
ClusterId: int64(apiNode.ClusterId), NodeClusterId: int64(apiNode.ClusterId),
Name: apiNode.Name, Name: apiNode.Name,
Description: apiNode.Description, Description: apiNode.Description,
AccessAddrs: apiNodeAddrs, AccessAddrs: apiNodeAddrs,
@@ -259,7 +261,7 @@ func (this *NodeClusterService) FindNodeClusterHealthCheckConfig(ctx context.Con
return nil, err return nil, err
} }
config, err := models.SharedNodeClusterDAO.FindClusterHealthCheckConfig(req.ClusterId) config, err := models.SharedNodeClusterDAO.FindClusterHealthCheckConfig(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -278,7 +280,7 @@ func (this *NodeClusterService) UpdateNodeClusterHealthCheck(ctx context.Context
return nil, err return nil, err
} }
err = models.SharedNodeClusterDAO.UpdateClusterHealthCheck(req.ClusterId, req.HealthCheckJSON) err = models.SharedNodeClusterDAO.UpdateClusterHealthCheck(req.NodeClusterId, req.HealthCheckJSON)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -293,7 +295,7 @@ func (this *NodeClusterService) ExecuteNodeClusterHealthCheck(ctx context.Contex
return nil, err return nil, err
} }
executor := tasks.NewHealthCheckExecutor(req.ClusterId) executor := tasks.NewHealthCheckExecutor(req.NodeClusterId)
results, err := executor.Run() results, err := executor.Run()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -572,3 +574,99 @@ func (this *NodeClusterService) UpdateNodeClusterTOA(ctx context.Context, req *p
return this.Success() return this.Success()
} }
// 计算使用某个缓存策略的集群数量
func (this *NodeClusterService) CountAllEnabledNodeClustersWithHTTPCachePolicyId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) (*pb.RPCCountResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
count, err := models.SharedNodeClusterDAO.CountAllEnabledNodeClustersWithHTTPCachePolicyId(req.HttpCachePolicyId)
if err != nil {
return nil, err
}
return this.SuccessCount(count)
}
// 查找使用缓存策略的所有集群
func (this *NodeClusterService) FindAllEnabledNodeClustersWithHTTPCachePolicyId(ctx context.Context, req *pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdRequest) (*pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
result := []*pb.NodeCluster{}
clusters, err := models.SharedNodeClusterDAO.FindAllEnabledNodeClustersWithHTTPCachePolicyId(req.HttpCachePolicyId)
if err != nil {
return nil, err
}
for _, cluster := range clusters {
result = append(result, &pb.NodeCluster{
Id: int64(cluster.Id),
Name: cluster.Name,
})
}
return &pb.FindAllEnabledNodeClustersWithHTTPCachePolicyIdResponse{
NodeClusters: result,
}, nil
}
// 计算使用某个WAF策略的集群数量
func (this *NodeClusterService) CountAllEnabledNodeClustersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.CountAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) (*pb.RPCCountResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
count, err := models.SharedNodeClusterDAO.CountAllEnabledNodeClustersWithHTTPFirewallPolicyId(req.HttpFirewallPolicyId)
if err != nil {
return nil, err
}
return this.SuccessCount(count)
}
// 查找使用WAF策略的所有集群
func (this *NodeClusterService) FindAllEnabledNodeClustersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdRequest) (*pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
result := []*pb.NodeCluster{}
clusters, err := models.SharedNodeClusterDAO.FindAllEnabledNodeClustersWithHTTPFirewallPolicyId(req.HttpFirewallPolicyId)
if err != nil {
return nil, err
}
for _, cluster := range clusters {
result = append(result, &pb.NodeCluster{
Id: int64(cluster.Id),
Name: cluster.Name,
})
}
return &pb.FindAllEnabledNodeClustersWithHTTPFirewallPolicyIdResponse{
NodeClusters: result,
}, nil
}
// 修改集群的缓存策略
func (this *NodeClusterService) UpdateNodeClusterHTTPCachePolicyId(ctx context.Context, req *pb.UpdateNodeClusterHTTPCachePolicyIdRequest) (*pb.RPCSuccess, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
err = models.SharedNodeClusterDAO.UpdateNodeClusterHTTPCachePolicyId(req.NodeClusterId, req.HttpCachePolicyId)
if err != nil {
return nil, err
}
return this.Success()
}
// 修改集群的WAF策略
func (this *NodeClusterService) UpdateNodeClusterHTTPFirewallPolicyId(ctx context.Context, req *pb.UpdateNodeClusterHTTPFirewallPolicyIdRequest) (*pb.RPCSuccess, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
err = models.SharedNodeClusterDAO.UpdateNodeClusterHTTPFirewallPolicyId(req.NodeClusterId, req.HttpFirewallPolicyId)
if err != nil {
return nil, err
}
return this.Success()
}

View File

@@ -20,7 +20,7 @@ func (this *NodeGroupService) CreateNodeGroup(ctx context.Context, req *pb.Creat
return nil, err return nil, err
} }
groupId, err := models.SharedNodeGroupDAO.CreateNodeGroup(req.ClusterId, req.Name) groupId, err := models.SharedNodeGroupDAO.CreateNodeGroup(req.NodeClusterId, req.Name)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -67,7 +67,7 @@ func (this *NodeGroupService) FindAllEnabledNodeGroupsWithClusterId(ctx context.
return nil, err return nil, err
} }
groups, err := models.SharedNodeGroupDAO.FindAllEnabledGroupsWithClusterId(req.ClusterId) groups, err := models.SharedNodeGroupDAO.FindAllEnabledGroupsWithClusterId(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -22,13 +22,13 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe
if err != nil { if err != nil {
return nil, err return nil, err
} }
serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.Type, req.Name, req.Description, string(req.ServerNamesJON), string(req.HttpJSON), string(req.HttpsJSON), string(req.TcpJSON), string(req.TlsJSON), string(req.UnixJSON), string(req.UdpJSON), req.WebId, req.ReverseProxyJSON, req.ClusterId, string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON), req.GroupIds) serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.Type, req.Name, req.Description, string(req.ServerNamesJON), string(req.HttpJSON), string(req.HttpsJSON), string(req.TcpJSON), string(req.TlsJSON), string(req.UnixJSON), string(req.UdpJSON), req.WebId, req.ReverseProxyJSON, req.NodeClusterId, string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON), req.GroupIds)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 更新节点版本 // 更新节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.ClusterId) err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -57,7 +57,7 @@ func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.Update
return nil, errors.New("can not find server") return nil, errors.New("can not find server")
} }
err = models.SharedServerDAO.UpdateServerBasic(req.ServerId, req.Name, req.Description, req.ClusterId, req.IsOn, req.GroupIds) err = models.SharedServerDAO.UpdateServerBasic(req.ServerId, req.Name, req.Description, req.NodeClusterId, req.IsOn, req.GroupIds)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -74,7 +74,7 @@ func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.Update
} }
// 更新老的节点版本 // 更新老的节点版本
if req.ClusterId != int64(server.ClusterId) { if req.NodeClusterId != int64(server.ClusterId) {
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId)) err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId))
if err != nil { if err != nil {
return nil, err return nil, err
@@ -82,7 +82,7 @@ func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.Update
} }
// 更新新的节点版本 // 更新新的节点版本
err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.ClusterId) err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -736,120 +736,6 @@ func (this *ServerService) FindAllEnabledServersWithSSLCertId(ctx context.Contex
return &pb.FindAllEnabledServersWithSSLCertIdResponse{Servers: result}, nil return &pb.FindAllEnabledServersWithSSLCertIdResponse{Servers: result}, nil
} }
// 计算使用某个缓存策略的服务数量
func (this *ServerService) CountAllEnabledServersWithCachePolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithCachePolicyIdRequest) (*pb.RPCCountResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
webIds, err := models.SharedHTTPWebDAO.FindAllWebIdsWithCachePolicyId(req.CachePolicyId)
if err != nil {
return nil, err
}
if len(webIds) == 0 {
return this.SuccessCount(0)
}
countServers, err := models.SharedServerDAO.CountEnabledServersWithWebIds(webIds)
if err != nil {
return nil, err
}
return this.SuccessCount(countServers)
}
// 查找使用某个缓存策略的所有服务
func (this *ServerService) FindAllEnabledServersWithCachePolicyId(ctx context.Context, req *pb.FindAllEnabledServersWithCachePolicyIdRequest) (*pb.FindAllEnabledServersWithCachePolicyIdResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
webIds, err := models.SharedHTTPWebDAO.FindAllWebIdsWithCachePolicyId(req.CachePolicyId)
if err != nil {
return nil, err
}
if len(webIds) == 0 {
return &pb.FindAllEnabledServersWithCachePolicyIdResponse{Servers: nil}, nil
}
servers, err := models.SharedServerDAO.FindAllEnabledServersWithWebIds(webIds)
result := []*pb.Server{}
for _, server := range servers {
result = append(result, &pb.Server{
Id: int64(server.Id),
Name: server.Name,
IsOn: server.IsOn == 1,
Type: server.Type,
Cluster: &pb.NodeCluster{
Id: int64(server.ClusterId),
},
})
}
return &pb.FindAllEnabledServersWithCachePolicyIdResponse{Servers: result}, nil
}
// 计算使用某个WAF策略的服务数量
func (this *ServerService) CountAllEnabledServersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.CountAllEnabledServersWithHTTPFirewallPolicyIdRequest) (*pb.RPCCountResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
webIds, err := models.SharedHTTPWebDAO.FindAllWebIdsWithHTTPFirewallPolicyId(req.FirewallPolicyId)
if err != nil {
return nil, err
}
if len(webIds) == 0 {
return this.SuccessCount(0)
}
countServers, err := models.SharedServerDAO.CountEnabledServersWithWebIds(webIds)
if err != nil {
return nil, err
}
return this.SuccessCount(countServers)
}
// 查找使用某个WAF策略的所有服务
func (this *ServerService) FindAllEnabledServersWithHTTPFirewallPolicyId(ctx context.Context, req *pb.FindAllEnabledServersWithHTTPFirewallPolicyIdRequest) (*pb.FindAllEnabledServersWithHTTPFirewallPolicyIdResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
if err != nil {
return nil, err
}
webIds, err := models.SharedHTTPWebDAO.FindAllWebIdsWithHTTPFirewallPolicyId(req.FirewallPolicyId)
if err != nil {
return nil, err
}
if len(webIds) == 0 {
return &pb.FindAllEnabledServersWithHTTPFirewallPolicyIdResponse{Servers: nil}, nil
}
servers, err := models.SharedServerDAO.FindAllEnabledServersWithWebIds(webIds)
result := []*pb.Server{}
for _, server := range servers {
result = append(result, &pb.Server{
Id: int64(server.Id),
Name: server.Name,
IsOn: server.IsOn == 1,
Type: server.Type,
Cluster: &pb.NodeCluster{
Id: int64(server.ClusterId),
},
})
}
return &pb.FindAllEnabledServersWithHTTPFirewallPolicyIdResponse{Servers: result}, nil
}
// 计算运行在某个集群上的所有服务数量 // 计算运行在某个集群上的所有服务数量
func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.Context, req *pb.CountAllEnabledServersWithNodeClusterIdRequest) (*pb.RPCCountResponse, error) { func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.Context, req *pb.CountAllEnabledServersWithNodeClusterIdRequest) (*pb.RPCCountResponse, error) {
// 校验请求 // 校验请求
@@ -904,7 +790,7 @@ func (this *ServerService) FindAllEnabledServersDNSWithClusterId(ctx context.Con
return nil, err return nil, err
} }
servers, err := models.SharedServerDAO.FindAllServersDNSWithClusterId(req.ClusterId) servers, err := models.SharedServerDAO.FindAllServersDNSWithClusterId(req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -22,7 +22,7 @@ func (this *UserService) CreateUser(ctx context.Context, req *pb.CreateUserReque
return nil, err return nil, err
} }
userId, err := models.SharedUserDAO.CreateUser(req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.Source) userId, err := models.SharedUserDAO.CreateUser(req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.Source, req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -36,7 +36,7 @@ func (this *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserReque
return nil, err return nil, err
} }
err = models.SharedUserDAO.UpdateUser(req.UserId, req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.IsOn) err = models.SharedUserDAO.UpdateUser(req.UserId, req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.IsOn, req.NodeClusterId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -85,6 +85,19 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl
result := []*pb.User{} result := []*pb.User{}
for _, user := range users { for _, user := range users {
// 集群信息
var pbCluster *pb.NodeCluster = nil
if user.ClusterId > 0 {
clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(int64(user.ClusterId))
if err != nil {
return nil, err
}
pbCluster = &pb.NodeCluster{
Id: int64(user.ClusterId),
Name: clusterName,
}
}
result = append(result, &pb.User{ result = append(result, &pb.User{
Id: int64(user.Id), Id: int64(user.Id),
Username: user.Username, Username: user.Username,
@@ -95,6 +108,7 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl
Remark: user.Remark, Remark: user.Remark,
IsOn: user.IsOn == 1, IsOn: user.IsOn == 1,
CreatedAt: int64(user.CreatedAt), CreatedAt: int64(user.CreatedAt),
Cluster: pbCluster,
}) })
} }
@@ -115,6 +129,20 @@ func (this *UserService) FindEnabledUser(ctx context.Context, req *pb.FindEnable
if user == nil { if user == nil {
return &pb.FindEnabledUserResponse{User: nil}, nil return &pb.FindEnabledUserResponse{User: nil}, nil
} }
// 集群信息
var pbCluster *pb.NodeCluster = nil
if user.ClusterId > 0 {
clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(int64(user.ClusterId))
if err != nil {
return nil, err
}
pbCluster = &pb.NodeCluster{
Id: int64(user.ClusterId),
Name: clusterName,
}
}
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,
@@ -125,6 +153,7 @@ func (this *UserService) FindEnabledUser(ctx context.Context, req *pb.FindEnable
Remark: user.Remark, Remark: user.Remark,
IsOn: user.IsOn == 1, IsOn: user.IsOn == 1,
CreatedAt: int64(user.CreatedAt), CreatedAt: int64(user.CreatedAt),
Cluster: pbCluster,
}}, nil }}, nil
} }