mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-28 02:40:25 +08:00
实现集群自定义页面
This commit is contained in:
@@ -2112,6 +2112,8 @@ func (this *NodeService) FindEnabledNodeConfigInfo(ctx context.Context, req *pb.
|
||||
// schedule
|
||||
result.HasScheduleSettings = node.HasScheduleSettings()
|
||||
|
||||
// pages
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -2291,3 +2293,39 @@ func (this *NodeService) FindNodeUAMPolicies(ctx context.Context, req *pb.FindNo
|
||||
UamPolicies: pbPolicies,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindNodeHTTPPagesPolicies 查找节点的自定义页面策略
|
||||
func (this *NodeService) FindNodeHTTPPagesPolicies(ctx context.Context, req *pb.FindNodeHTTPPagesPoliciesRequest) (*pb.FindNodeHTTPPagesPoliciesResponse, error) {
|
||||
nodeId, err := this.ValidateNode(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
clusterIds, err := models.SharedNodeDAO.FindEnabledAndOnNodeClusterIds(tx, nodeId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pbPolicies = []*pb.FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy{}
|
||||
for _, clusterId := range clusterIds {
|
||||
policy, err := models.SharedNodeClusterDAO.FindClusterHTTPPagesPolicy(tx, clusterId, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if policy == nil {
|
||||
continue
|
||||
}
|
||||
policyJSON, err := json.Marshal(policy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbPolicies = append(pbPolicies, &pb.FindNodeHTTPPagesPoliciesResponse_HTTPPagesPolicy{
|
||||
NodeClusterId: clusterId,
|
||||
HttpPagesPolicyJSON: policyJSON,
|
||||
})
|
||||
}
|
||||
return &pb.FindNodeHTTPPagesPoliciesResponse{
|
||||
HttpPagesPolicies: pbPolicies,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -1157,6 +1157,16 @@ func (this *NodeClusterService) FindEnabledNodeClusterConfigInfo(ctx context.Con
|
||||
// ddos
|
||||
result.HasDDoSProtection = cluster.HasDDoSProtection()
|
||||
|
||||
// HTTP Pages
|
||||
if models.IsNotNull(cluster.HttpPages) {
|
||||
var pagesPolicy = nodeconfigs.NewHTTPPagesPolicy()
|
||||
err = json.Unmarshal(cluster.HttpPages, pagesPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result.HasHTTPPagesPolicy = pagesPolicy.IsOn && len(pagesPolicy.Pages) > 0
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -1367,3 +1377,51 @@ func (this *NodeClusterService) UpdateNodeClusterGlobalServerConfig(ctx context.
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// FindNodeClusterHTTPPagesPolicy 获取集群的自定义页面设置
|
||||
func (this *NodeClusterService) FindNodeClusterHTTPPagesPolicy(ctx context.Context, req *pb.FindNodeClusterHTTPPagesPolicyRequest) (*pb.FindNodeClusterHTTPPagesPolicyResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
httpPagesPolicy, err := models.SharedNodeClusterDAO.FindClusterHTTPPagesPolicy(tx, req.NodeClusterId, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpPagesPolicyJSON, err := json.Marshal(httpPagesPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &pb.FindNodeClusterHTTPPagesPolicyResponse{
|
||||
HttpPagesPolicyJSON: httpPagesPolicyJSON,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// UpdateNodeClusterHTTPPagesPolicy 修改集群的自定义页面设置
|
||||
func (this *NodeClusterService) UpdateNodeClusterHTTPPagesPolicy(ctx context.Context, req *pb.UpdateNodeClusterHTTPPagesPolicyRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var policy = nodeconfigs.NewHTTPPagesPolicy()
|
||||
err = json.Unmarshal(req.HttpPagesPolicyJSON, policy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = policy.Init()
|
||||
if err != nil {
|
||||
return nil, errors.New("validate policy failed: " + err.Error())
|
||||
}
|
||||
|
||||
err = models.SharedNodeClusterDAO.UpdateClusterHTTPPagesPolicy(tx, req.NodeClusterId, policy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user