|
|
|
@ -17,23 +17,25 @@
|
|
|
|
|
|
|
|
|
|
package com.tencent.cloud.polaris.ratelimit.endpoint;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import com.google.protobuf.InvalidProtocolBufferException;
|
|
|
|
|
import com.google.protobuf.util.JsonFormat;
|
|
|
|
|
import com.tencent.cloud.common.util.JacksonUtils;
|
|
|
|
|
import com.tencent.cloud.polaris.context.ServiceRuleManager;
|
|
|
|
|
import com.tencent.cloud.polaris.ratelimit.config.PolarisRateLimitProperties;
|
|
|
|
|
import com.tencent.polaris.client.pb.RateLimitProto;
|
|
|
|
|
import com.tencent.polaris.client.pb.RoutingProto;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
|
|
|
|
|
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
|
|
|
|
|
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
|
|
|
|
import org.springframework.boot.actuate.endpoint.annotation.Selector;
|
|
|
|
|
import org.springframework.lang.Nullable;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Endpoint of Polaris RateLimit rule.
|
|
|
|
|
*
|
|
|
|
@ -73,27 +75,15 @@ public class PolarisRateLimitRuleEndpoint {
|
|
|
|
|
return rateLimitRule;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (RateLimitProto.Rule rule : rateLimit.getRulesList()) {
|
|
|
|
|
Map<String, Object> ruleMap = new HashMap<>();
|
|
|
|
|
ruleMap.put("id", rule.getId());
|
|
|
|
|
ruleMap.put("priority", rule.getPriority());
|
|
|
|
|
ruleMap.put("resource", rule.getResource());
|
|
|
|
|
ruleMap.put("type", rule.getType());
|
|
|
|
|
ruleMap.put("labels", rule.getLabelsMap());
|
|
|
|
|
ruleMap.put("amounts", rule.getAmountsList());
|
|
|
|
|
ruleMap.put("action", rule.getAction());
|
|
|
|
|
ruleMap.put("disable", rule.getDisable());
|
|
|
|
|
ruleMap.put("report", rule.getReport());
|
|
|
|
|
ruleMap.put("create_time", rule.getCtime());
|
|
|
|
|
ruleMap.put("modify_time", rule.getMtime());
|
|
|
|
|
ruleMap.put("revision", rule.getRevision());
|
|
|
|
|
ruleMap.put("service_token", rule.getServiceToken());
|
|
|
|
|
ruleMap.put("adjuster", rule.getAdjuster());
|
|
|
|
|
ruleMap.put("regex_combine", rule.getRegexCombine());
|
|
|
|
|
ruleMap.put("amount_mode", rule.getAmountMode());
|
|
|
|
|
ruleMap.put("failover", rule.getFailover());
|
|
|
|
|
ruleMap.put("cluster", rule.getCluster());
|
|
|
|
|
rateLimitRule.add(ruleMap);
|
|
|
|
|
String ruleJson = null;
|
|
|
|
|
try {
|
|
|
|
|
ruleJson = JsonFormat.printer().print(rule);
|
|
|
|
|
} catch (InvalidProtocolBufferException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
rateLimitRule.add(JacksonUtils.json2Map(ruleJson));
|
|
|
|
|
}
|
|
|
|
|
return rateLimitRule;
|
|
|
|
|
}
|
|
|
|
|