实现集群自定义页面

This commit is contained in:
GoEdgeLab
2023-05-22 17:30:33 +08:00
parent 20b3af5634
commit c7001dfb76
6 changed files with 213 additions and 2 deletions

View File

@@ -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()
}