You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2017/05/29 16:16:11 UTC
lucene-solr:feature/autoscaling: SOLR-10677: Move diagnostics API to
its own subpath accessible at /autoscaling/diagnostics
Repository: lucene-solr
Updated Branches:
refs/heads/feature/autoscaling d6b239158 -> cae6b6ef1
SOLR-10677: Move diagnostics API to its own subpath accessible at /autoscaling/diagnostics
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/cae6b6ef
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/cae6b6ef
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/cae6b6ef
Branch: refs/heads/feature/autoscaling
Commit: cae6b6ef13c5f89e0158ff00375e738b6dd63a0e
Parents: d6b2391
Author: Shalin Shekhar Mangar <sh...@apache.org>
Authored: Mon May 29 21:46:03 2017 +0530
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Mon May 29 21:46:03 2017 +0530
----------------------------------------------------------------------
.../cloud/autoscaling/AutoScalingHandler.java | 23 ++++++++++++++++++--
.../resources/apispec/autoscaling.Commands.json | 3 ++-
.../autoscaling/AutoScalingHandlerTest.java | 6 ++++-
.../apache/solr/common/params/CommonParams.java | 2 ++
4 files changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cae6b6ef/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
index 4d3c566..b065b4a 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
@@ -39,11 +39,13 @@ import org.apache.solr.client.solrj.impl.SolrClientDataProvider;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
+import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.handler.RequestHandlerUtils;
import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.request.SolrRequestHandler;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.security.AuthorizationContext;
import org.apache.solr.security.PermissionNameProvider;
@@ -92,9 +94,20 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
RequestHandlerUtils.setWt(req, JSON);
if ("GET".equals(httpMethod)) {
+ String path = (String) req.getContext().get("path");
+ if (path == null) path = "/cluster/autoscaling";
+ List<String> parts = StrUtils.splitSmart(path, '/');
+ if (parts.get(0).isEmpty()) parts.remove(0);
+
+ if (parts.size() < 2 || parts.size() > 3) {
+ // invalid
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown path: " + path);
+ }
+
Map<String, Object> map = zkReadAutoScalingConf(container.getZkController().getZkStateReader());
- rsp.getValues().addAll(map);
- if (req.getParams().getBool("diagnostics", false)) {
+ if (parts.size() == 2) {
+ rsp.getValues().addAll(map);
+ } else if (parts.size() == 3 && "diagnostics".equals(parts.get(2))) {
handleDiagnostics(rsp, map);
}
} else {
@@ -623,4 +636,10 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
public Boolean registerV2() {
return Boolean.TRUE;
}
+
+ @Override
+ public SolrRequestHandler getSubHandler(String path) {
+ if (path.equals("/diagnostics")) return this;
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cae6b6ef/solr/core/src/resources/apispec/autoscaling.Commands.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/autoscaling.Commands.json b/solr/core/src/resources/apispec/autoscaling.Commands.json
index 77b42cd..0174862 100644
--- a/solr/core/src/resources/apispec/autoscaling.Commands.json
+++ b/solr/core/src/resources/apispec/autoscaling.Commands.json
@@ -7,7 +7,8 @@
],
"url": {
"paths": [
- "/cluster/autoscaling"
+ "/cluster/autoscaling",
+ "/cluster/autoscaling/diagnostics"
]
},
"commands": {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cae6b6ef/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
index 6f65d93..1a2a5e5 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java
@@ -511,7 +511,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
- SolrQuery query = new SolrQuery().setParam(CommonParams.QT, path).setParam("diagnostics", true);
+ SolrQuery query = new SolrQuery().setParam(CommonParams.QT, path);
QueryResponse queryResponse = solrClient.query(query);
response = queryResponse.getResponse();
@@ -539,6 +539,10 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
assertNotNull(policies.get("xyz"));
assertNotNull(policies.get("policy1"));
+ query = new SolrQuery().setParam(CommonParams.QT, path + "/diagnostics");
+ queryResponse = solrClient.query(query);
+ response = queryResponse.getResponse();
+
Map<String, Object> diagnostics = (Map<String, Object>) response.get("diagnostics");
List sortedNodes = (List) diagnostics.get("sortedNodes");
assertNotNull(sortedNodes);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/cae6b6ef/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
index efb0ac1..612b55a 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/CommonParams.java
@@ -182,6 +182,7 @@ public interface CommonParams {
String ZK_PATH = "/admin/zookeeper";
String METRICS_PATH = "/admin/metrics";
String AUTOSCALING_PATH = "/admin/autoscaling";
+ String AUTOSCALING_DIAGNOSTICS_PATH = "/admin/autoscaling/diagnostics";
Set<String> ADMIN_PATHS = new HashSet<>(Arrays.asList(
CORES_HANDLER_PATH,
@@ -191,6 +192,7 @@ public interface CommonParams {
AUTHZ_PATH,
METRICS_PATH,
AUTOSCALING_PATH,
+ AUTOSCALING_DIAGNOSTICS_PATH,
"/____v2/cluster/security/authentication",
"/____v2/cluster/security/authorization"));