mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	WebP策略变化时只更新相关配置
This commit is contained in:
		@@ -1043,7 +1043,7 @@ func (this *NodeClusterDAO) UpdateClusterWebPPolicy(tx *dbs.Tx, clusterId int64,
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.NotifyUpdate(tx, clusterId)
 | 
			
		||||
		return this.NotifyWebPPolicyUpdate(tx, clusterId)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	webpPolicyJSON, err := json.Marshal(webpPolicy)
 | 
			
		||||
@@ -1058,7 +1058,7 @@ func (this *NodeClusterDAO) UpdateClusterWebPPolicy(tx *dbs.Tx, clusterId int64,
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return this.NotifyUpdate(tx, clusterId)
 | 
			
		||||
	return this.NotifyWebPPolicyUpdate(tx, clusterId)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FindClusterWebPPolicy 查询WebP设置
 | 
			
		||||
@@ -1083,7 +1083,7 @@ func (this *NodeClusterDAO) FindClusterWebPPolicy(tx *dbs.Tx, clusterId int64, c
 | 
			
		||||
		return nodeconfigs.DefaultWebPImagePolicy, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var policy = &nodeconfigs.WebPImagePolicy{}
 | 
			
		||||
	var policy = nodeconfigs.NewWebPImagePolicy()
 | 
			
		||||
	err = json.Unmarshal(webpJSON, policy)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -1518,6 +1518,11 @@ func (this *NodeClusterDAO) NotifyTOAUpdate(tx *dbs.Tx, clusterId int64) error {
 | 
			
		||||
	return SharedNodeTaskDAO.CreateClusterTask(tx, nodeconfigs.NodeRoleNode, clusterId, 0, 0, NodeTaskTypeTOAChanged)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NotifyWebPPolicyUpdate 通知WebP策略更新
 | 
			
		||||
func (this *NodeClusterDAO) NotifyWebPPolicyUpdate(tx *dbs.Tx, clusterId int64) error {
 | 
			
		||||
	return SharedNodeTaskDAO.CreateClusterTask(tx, nodeconfigs.NodeRoleNode, clusterId, 0, 0, NodeTaskTypeWebPPolicyChanged)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NotifyDNSUpdate 通知DNS更新
 | 
			
		||||
// TODO 更新新的DNS解析记录的同时,需要删除老的DNS解析记录
 | 
			
		||||
func (this *NodeClusterDAO) NotifyDNSUpdate(tx *dbs.Tx, clusterId int64) error {
 | 
			
		||||
 
 | 
			
		||||
@@ -1151,7 +1151,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, dataMap *shared
 | 
			
		||||
 | 
			
		||||
		// webp
 | 
			
		||||
		if IsNotNull(nodeCluster.Webp) {
 | 
			
		||||
			var webpPolicy = &nodeconfigs.WebPImagePolicy{}
 | 
			
		||||
			var webpPolicy = nodeconfigs.NewWebPImagePolicy()
 | 
			
		||||
			err = json.Unmarshal(nodeCluster.Webp, webpPolicy)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ const (
 | 
			
		||||
	NodeTaskTypeHTTPCCPolicyChanged          NodeTaskType = "httpCCPolicyChanged"          // CC策略变化
 | 
			
		||||
	NodeTaskTypeHTTP3PolicyChanged           NodeTaskType = "http3PolicyChanged"           // HTTP3策略变化
 | 
			
		||||
	NodeTaskTypeNetworkSecurityPolicyChanged NodeTaskType = "networkSecurityPolicyChanged" // 网络安全策略变化
 | 
			
		||||
	NodeTaskTypeWebPPolicyChanged            NodeTaskType = "webPPolicyChanged"            // WebP策略变化
 | 
			
		||||
	NodeTaskTypeUpdatingServers              NodeTaskType = "updatingServers"              // 更新一组服务
 | 
			
		||||
	NodeTaskTypeTOAChanged                   NodeTaskType = "toaChanged"                   // TOA配置变化
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2257,3 +2257,39 @@ func (this *NodeService) UpdateNodeAPIConfig(ctx context.Context, req *pb.Update
 | 
			
		||||
 | 
			
		||||
	return this.Success()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FindNodeWebPPolicies 查找节点的WebP策略
 | 
			
		||||
func (this *NodeService) FindNodeWebPPolicies(ctx context.Context, req *pb.FindNodeWebPPoliciesRequest) (*pb.FindNodeWebPPoliciesResponse, 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.FindNodeWebPPoliciesResponse_WebPPolicy{}
 | 
			
		||||
	for _, clusterId := range clusterIds {
 | 
			
		||||
		policy, err := models.SharedNodeClusterDAO.FindClusterWebPPolicy(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.FindNodeWebPPoliciesResponse_WebPPolicy{
 | 
			
		||||
			NodeClusterId:  clusterId,
 | 
			
		||||
			WebPPolicyJSON: policyJSON,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
	return &pb.FindNodeWebPPoliciesResponse{
 | 
			
		||||
		WebPPolicies: pbPolicies,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1126,14 +1126,14 @@ func (this *NodeClusterService) FindEnabledNodeClusterConfigInfo(ctx context.Con
 | 
			
		||||
 | 
			
		||||
	// webp
 | 
			
		||||
	if models.IsNotNull(cluster.Webp) {
 | 
			
		||||
		var webpPolicy = &nodeconfigs.WebPImagePolicy{}
 | 
			
		||||
		var webpPolicy = nodeconfigs.NewWebPImagePolicy()
 | 
			
		||||
		err = json.Unmarshal(cluster.Webp, webpPolicy)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		result.WebpIsOn = webpPolicy.IsOn
 | 
			
		||||
		result.WebPIsOn = webpPolicy.IsOn
 | 
			
		||||
	} else {
 | 
			
		||||
		result.WebpIsOn = nodeconfigs.DefaultWebPImagePolicy.IsOn
 | 
			
		||||
		result.WebPIsOn = nodeconfigs.DefaultWebPImagePolicy.IsOn
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// UAM
 | 
			
		||||
@@ -1247,8 +1247,8 @@ func (this *NodeClusterService) UpdateNodeClusterWebPPolicy(ctx context.Context,
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var webpPolicy = &nodeconfigs.WebPImagePolicy{}
 | 
			
		||||
	err = json.Unmarshal(req.WebpPolicyJSON, webpPolicy)
 | 
			
		||||
	var webpPolicy = nodeconfigs.NewWebPImagePolicy()
 | 
			
		||||
	err = json.Unmarshal(req.WebPPolicyJSON, webpPolicy)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user