You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2018/12/18 18:45:44 UTC
[3/6] lucene-solr:master: SOLR-13079: refactor and harden common
'suspend-trigger' patern in autoscaling test setup
SOLR-13079: refactor and harden common 'suspend-trigger' patern in autoscaling test setup
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/73299f0f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/73299f0f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/73299f0f
Branch: refs/heads/master
Commit: 73299f0f220c44f9696e7deeb720440f9a2b0cdd
Parents: dcd4a28
Author: Chris Hostetter <ho...@apache.org>
Authored: Tue Dec 18 11:28:31 2018 -0700
Committer: Chris Hostetter <ho...@apache.org>
Committed: Tue Dec 18 11:28:31 2018 -0700
----------------------------------------------------------------------
.../org/apache/solr/cloud/CloudTestUtils.java | 132 +++++++++++++++
.../solr/cloud/ReplaceNodeNoTargetTest.java | 6 +-
.../org/apache/solr/cloud/TestUtilizeNode.java | 5 +-
.../apache/solr/cloud/TestWithCollection.java | 16 +-
.../AutoAddReplicasPlanActionTest.java | 7 +-
.../autoscaling/AutoScalingHandlerTest.java | 163 +++++++------------
.../autoscaling/ComputePlanActionTest.java | 26 +--
.../autoscaling/ExecutePlanActionTest.java | 3 +-
.../autoscaling/HttpTriggerListenerTest.java | 7 +-
.../cloud/autoscaling/IndexSizeTriggerTest.java | 44 ++---
.../MetricTriggerIntegrationTest.java | 23 ++-
.../NodeAddedTriggerIntegrationTest.java | 24 ++-
.../NodeLostTriggerIntegrationTest.java | 23 +--
.../NodeMarkersRegistrationTest.java | 23 +--
.../autoscaling/RestoreTriggerStateTest.java | 19 +--
.../ScheduledMaintenanceTriggerTest.java | 11 +-
.../ScheduledTriggerIntegrationTest.java | 22 +--
.../SearchRateTriggerIntegrationTest.java | 63 ++++---
.../autoscaling/SystemLogListenerTest.java | 9 +-
.../solr/cloud/autoscaling/TestPolicyCloud.java | 18 +-
.../TriggerCooldownIntegrationTest.java | 24 ++-
.../autoscaling/TriggerIntegrationTest.java | 34 ++--
.../TriggerSetPropertiesIntegrationTest.java | 18 +-
.../cloud/autoscaling/sim/SimCloudManager.java | 12 +-
.../sim/TestSimComputePlanAction.java | 16 +-
.../sim/TestSimExecutePlanAction.java | 4 +-
.../autoscaling/sim/TestSimExtremeIndexing.java | 5 +-
.../autoscaling/sim/TestSimLargeCluster.java | 52 ++----
.../autoscaling/sim/TestSimPolicyCloud.java | 16 +-
.../sim/TestSimTriggerIntegration.java | 66 ++++----
.../org/apache/solr/cloud/rule/RulesTest.java | 4 +-
.../admin/AutoscalingHistoryHandlerTest.java | 25 ++-
.../apache/solr/util/TestSolrCLIRunExample.java | 4 +-
33 files changed, 468 insertions(+), 456 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/CloudTestUtils.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/CloudTestUtils.java b/solr/core/src/test/org/apache/solr/cloud/CloudTestUtils.java
index bb74967..498cdba 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CloudTestUtils.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CloudTestUtils.java
@@ -21,20 +21,37 @@ import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.Collection;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicReference;
+import org.apache.lucene.util.LuceneTestCase;
+
+import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrRequest;
+import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
+import org.apache.solr.client.solrj.request.RequestWriter;
+import org.apache.solr.client.solrj.request.RequestWriter.StringPayloadContentWriter;
+import org.apache.solr.client.solrj.request.V2Request;
+import org.apache.solr.client.solrj.response.SolrResponseBase;
+
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.CollectionStatePredicate;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
+import org.apache.solr.common.params.SolrParams;
import org.apache.solr.util.TimeOut;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.junit.Assert;
+
+import static org.apache.solr.common.params.CommonParams.JSON_MIME;
+
/**
* Some useful methods for SolrCloud tests.
@@ -172,4 +189,119 @@ public class CloudTestUtils {
}
};
}
+
+ /**
+ * Wait for a particular named trigger to be scheduled.
+ * <p>
+ * This is a convenience method that polls the autoscaling API looking for a trigger with the
+ * specified name using the {@link #DEFAULT_TIMEOUT}. It is particularly useful for tests
+ * that want to know when the Overseer has finished scheduling the automatic triggers on startup.
+ * </p>
+ *
+ * @param cloudManager current instance of {@link SolrCloudManager}
+ * @param triggerName the name of the trigger we need to see sheduled in order to return successfully
+ */
+ public static long waitForTriggerToBeScheduled(final SolrCloudManager cloudManager,
+ final String triggerName)
+ throws InterruptedException, TimeoutException, IOException {
+
+ TimeOut timeout = new TimeOut(DEFAULT_TIMEOUT, TimeUnit.SECONDS, cloudManager.getTimeSource());
+ while (!timeout.hasTimedOut()) {
+ final SolrResponse response = cloudManager.request(AutoScalingRequest.create(SolrRequest.METHOD.GET, null));
+ final Map<String,?> triggers = (Map<String,?>) response.getResponse().get("triggers");
+ Assert.assertNotNull("null triggers in response from autoscaling request", triggers);
+
+ if ( triggers.containsKey(triggerName) ) {
+ return timeout.timeElapsed(TimeUnit.MILLISECONDS);
+ }
+ timeout.sleep(100);
+ }
+ throw new TimeoutException("Never saw trigger with name: " + triggerName);
+ }
+
+ /**
+ * Suspends the trigger with the specified name
+ * <p>
+ * This is a convenience method that sends a <code>suspend-trigger</code> command to the autoscaling
+ * API for the specified trigger. It is particularly useful for tests that may need to disable automatic
+ * triggers such as <code>.scheduled_maintenance</code> in order to test their own
+ * triggers.
+ * </p>
+ *
+ * @param cloudManager current instance of {@link SolrCloudManager}
+ * @param triggerName the name of the trigger to suspend. This must already be scheduled.
+ */
+ public static void suspendTrigger(final SolrCloudManager cloudManager,
+ final String triggerName) throws IOException {
+
+ final SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST,
+ "{'suspend-trigger' : {'name' : '"+triggerName+"'} }");
+ final SolrResponse rsp = cloudManager.request(req);
+ final String result = rsp.getResponse().get("result").toString();
+ Assert.assertEquals("Unexpected 'result' in response: " + rsp,
+ "success", result);
+ }
+
+ /**
+ * Helper class for sending (JSON) autoscaling requests that can randomize between V1 and V2 requests
+ */
+ public static class AutoScalingRequest extends SolrRequest {
+
+ /**
+ * Creates a request using a randomized root path (V1 vs V2)
+ *
+ * @param m HTTP Method to use
+ * @aram message JSON payload, may be null
+ */
+ public static SolrRequest create(SolrRequest.METHOD m, String message) {
+ return create(m, null, message);
+ }
+ /**
+ * Creates a request using a randomized root path (V1 vs V2)
+ *
+ * @param m HTTP Method to use
+ * @param subPath optional sub-path under <code>"$ROOT/autoscaling"</code>. may be null,
+ * otherwise must start with "/"
+ * @param message JSON payload, may be null
+ */
+ public static SolrRequest create(SolrRequest.METHOD m, String subPath, String message) {
+ final boolean useV1 = LuceneTestCase.random().nextBoolean();
+ String path = useV1 ? "/admin/autoscaling" : "/cluster/autoscaling";
+ if (null != subPath) {
+ assert subPath.startsWith("/");
+ path += subPath;
+ }
+ return useV1
+ ? new AutoScalingRequest(m, path, message)
+ : new V2Request.Builder(path).withMethod(m).withPayload(message).build();
+ }
+
+ protected final String message;
+
+ /**
+ * Simple request
+ * @param m HTTP Method to use
+ * @param path path to send request to
+ * @param message JSON payload, may be null
+ */
+ private AutoScalingRequest(METHOD m, String path, String message) {
+ super(m, path);
+ this.message = message;
+ }
+
+ @Override
+ public SolrParams getParams() {
+ return null;
+ }
+
+ @Override
+ public RequestWriter.ContentWriter getContentWriter(String expectedType) {
+ return message == null ? null : new StringPayloadContentWriter(message, JSON_MIME);
+ }
+
+ @Override
+ protected SolrResponse createResponse(SolrClient client) {
+ return new SolrResponseBase();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeNoTargetTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeNoTargetTest.java b/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeNoTargetTest.java
index 6fd2b89..6778a15 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeNoTargetTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ReplaceNodeNoTargetTest.java
@@ -31,13 +31,15 @@ import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.response.CoreAdminResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.solr.cloud.ReplaceNodeTest.createReplaceNodeRequest;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
+
@LuceneTestCase.AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-11067")
public class ReplaceNodeNoTargetTest extends SolrCloudTestCase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -69,7 +71,7 @@ public class ReplaceNodeNoTargetTest extends SolrCloudTestCase {
String setClusterPolicyCommand = "{" +
" 'set-cluster-policy': [" +
" {'replica':'<5', 'shard': '#EACH', 'node': '#ANY'}]}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
log.info("Creating collection...");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/TestUtilizeNode.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestUtilizeNode.java b/solr/core/src/test/org/apache/solr/cloud/TestUtilizeNode.java
index 5a28211..e51263a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestUtilizeNode.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestUtilizeNode.java
@@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.util.NamedList;
@@ -36,8 +37,6 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
-
@LogLevel("org.apache.solr.cloud.autoscaling=DEBUG;org.apache.solr.cloud.Overseer=DEBUG;org.apache.solr.cloud.overseer=DEBUG;org.apache.solr.client.solrj.impl.SolrClientDataProvider=DEBUG;org.apache.solr.client.solrj.cloud.autoscaling.PolicyHelper=TRACE")
public class TestUtilizeNode extends SolrCloudTestCase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -114,7 +113,7 @@ public class TestUtilizeNode extends SolrCloudTestCase {
"}";
log.info("Setting new policy to blacklist jettyX ({}) port={}",
jettyX.getNodeName(), jettyX.getLocalPort());
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
NamedList<Object> response = cloudClient.request(req);
assertEquals(req + " => " + response,
"success", response.get("result").toString());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java b/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java
index 15a32da..512207a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java
@@ -17,7 +17,6 @@
package org.apache.solr.cloud;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.common.params.CollectionAdminParams.WITH_COLLECTION;
import java.io.IOException;
@@ -36,6 +35,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.autoscaling.ActionContext;
import org.apache.solr.cloud.autoscaling.ComputePlanAction;
import org.apache.solr.cloud.autoscaling.ExecutePlanAction;
@@ -133,7 +133,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'cores':'<10', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getRandomJetty(random()).getNodeName();
@@ -252,7 +252,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'replica':'<2', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getRandomJetty(random()).getNodeName();
@@ -293,7 +293,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'replica':'<2', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getRandomJetty(random()).getNodeName();
@@ -343,7 +343,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'replica':'<2', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getRandomJetty(random()).getNodeName();
@@ -405,7 +405,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'replica':'<2', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getRandomJetty(random()).getNodeName();
@@ -431,7 +431,7 @@ public class TestWithCollection extends SolrCloudTestCase {
"{'name' : 'compute', 'class' : '" + CapturingAction.class.getName() + "'}" +
"]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
solrClient.request(req);
Optional<JettySolrRunner> other = cluster.getJettySolrRunners()
@@ -522,7 +522,7 @@ public class TestWithCollection extends SolrCloudTestCase {
" {'replica':'<2', 'node':'#ANY'}," +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
String chosenNode = cluster.getJettySolrRunner(0).getNodeName();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoAddReplicasPlanActionTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoAddReplicasPlanActionTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoAddReplicasPlanActionTest.java
index be917e6..c1b8513 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoAddReplicasPlanActionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoAddReplicasPlanActionTest.java
@@ -17,8 +17,6 @@
package org.apache.solr.cloud.autoscaling;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
-
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -34,6 +32,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.V2Request;
import org.apache.solr.cloud.CloudDescriptor;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ClusterStateUtil;
@@ -113,7 +112,7 @@ public class AutoAddReplicasPlanActionTest extends SolrCloudTestCase{
"'removeListeners': true" +
"}" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, removeTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, removeTriggerCommand);
NamedList response = cluster.getSolrClient().request(req);
assertEquals(response.get("result").toString(), "success");
@@ -148,7 +147,7 @@ public class AutoAddReplicasPlanActionTest extends SolrCloudTestCase{
"'set-cluster-preferences': [" +
"{'minimize': 'cores','precision': 0}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPreferencesCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPreferencesCommand);
// you can hit a stale connection from pool when restarting jetty
try (CloudSolrClient cloudClient = new CloudSolrClient.Builder(Collections.singletonList(cluster.getZkServer().getZkAddress()),
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/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 fd3f563..296fde7 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
@@ -25,23 +25,18 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.cloud.autoscaling.Policy;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.client.solrj.request.RequestWriter;
-import org.apache.solr.client.solrj.request.RequestWriter.StringPayloadContentWriter;
-import org.apache.solr.client.solrj.request.V2Request;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.params.AutoScalingParams;
-import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.TimeSource;
import org.apache.solr.common.util.Utils;
@@ -54,7 +49,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.solr.common.cloud.ZkStateReader.SOLR_AUTOSCALING_CONF_PATH;
-import static org.apache.solr.common.params.CommonParams.JSON_MIME;
import static org.apache.solr.common.util.Utils.getObjectByPath;
/**
@@ -96,19 +90,6 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
}
}
- public static SolrRequest createAutoScalingRequest(SolrRequest.METHOD m, String message) {
- return createAutoScalingRequest(m, null, message);
- }
-
- static SolrRequest createAutoScalingRequest(SolrRequest.METHOD m, String subPath, String message) {
- boolean useV1 = random().nextBoolean();
- String path = useV1 ? "/admin/autoscaling" : "/cluster/autoscaling";
- path += subPath != null ? subPath : "";
- return useV1
- ? new AutoScalingRequest(m, path, message)
- : new V2Request.Builder(path).withMethod(m).withPayload(message).build();
- }
-
@Before
public void beforeTest() throws Exception {
// clear any persisted auto scaling configuration
@@ -129,11 +110,11 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t}\n" +
"}";
// these should be no-ops because there are no triggers, and it should succeed
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendEachCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendEachCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
assertEquals(response.get("changed").toString(), "[]");
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeEachCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeEachCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
assertEquals(response.get("changed").toString(), "[]");
@@ -144,7 +125,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'event' : 'nodeLost'," +
"'waitFor' : '10m'," +
"'enabled' : true}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -156,7 +137,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'enabled' : true" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -165,7 +146,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"name\" : \"node_lost_trigger\"\n" +
"\t}\n" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
assertEquals(response.get("changed").toString(), "[node_lost_trigger]");
@@ -190,7 +171,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : '" + Policy.EACH + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
List<String> changed = (List<String>) response.get("changed");
@@ -213,7 +194,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'node_added_trigger'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
changed = (List<String>) response.get("changed");
@@ -236,7 +217,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : '" + Policy.EACH + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
changed = (List<String>) response.get("changed");
@@ -260,7 +241,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'timeout' : '1h'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
changed = (List<String>) response.get("changed");
@@ -291,7 +272,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'compute_plan'," +
"'class' : 'solr.ComputePlanAction'" +
"}]}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -316,7 +297,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'waitFor' : '20m'," +
"'enabled' : false" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -344,7 +325,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'url' : 'http://xyz.com/on_node_lost?node={$LOST_NODE_NAME}'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -362,7 +343,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'node_lost_trigger'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, removeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, removeTriggerCommand);
try {
solrClient.request(req);
fail("expected exception");
@@ -377,7 +358,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"name\" : \"xyz\"\n" +
"\t}\n" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, removeListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, removeListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -391,7 +372,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'node_lost_trigger'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, removeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, removeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -410,7 +391,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'url' : 'http://xyz.com/on_node_lost?node={$LOST_NODE_NAME}'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
try {
solrClient.request(req);
fail("should have thrown Exception");
@@ -433,7 +414,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" ]" +
"}";
try {
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
solrClient.request(req);
fail("expect exception");
} catch (HttpSolrClient.RemoteExecutionException e) {
@@ -460,7 +441,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'compute_plan'," +
"'class' : 'solr.ComputePlanAction'" +
"}]}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
try {
solrClient.request(req);
@@ -484,7 +465,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'compute_plan'," +
"'class' : 'solr.ComputePlanAction'" +
"}]}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
try {
solrClient.request(req);
@@ -508,7 +489,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'foo' : 'bar'," +
"'class' : 'solr.ComputePlanAction'" +
"}]}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
try {
solrClient.request(req);
@@ -531,7 +512,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'name' : 'compute_plan'," +
"'class' : 'solr.ComputePlanAction'" +
"}]}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -548,7 +529,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'url' : 'http://xyz.com/on_node_lost?node={$LOST_NODE_NAME}'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
try {
solrClient.request(req);
fail("should have thrown Exception");
@@ -573,7 +554,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}" +
" ]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPolicyCommand);
NamedList<Object> response = null;
try {
solrClient.request(req);
@@ -594,7 +575,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}" +
" ]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -611,7 +592,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}" +
" ]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -622,7 +603,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
// remove policy
String removePolicyCommand = "{remove-policy : policy1}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, removePolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, removePolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -637,7 +618,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'maximize': 'freedisk','precision': 100}," +
" {'minimize': 'sysLoadAvg','precision': 10}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPreferencesCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPreferencesCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -650,7 +631,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" 'set-cluster-preferences': [" +
" {'minimize': 'sysLoadAvg','precision': 10}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPreferencesCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPreferencesCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -665,7 +646,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'nodeRole':'!overseer', 'replica':0}" +
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
@@ -687,7 +668,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'waitFor' : '0s'," +
"'enabled' : true" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -696,7 +677,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'cores':'<10', 'node':'#ANY'}," +
" {'replica':'<3', 'shard': '#EACH', 'node': '#ANY'}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -707,7 +688,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'minimize': 'sysLoadAvg','precision': 10}," +
" {'minimize': 'heapUsage','precision': 10}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPreferencesCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPreferencesCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -715,11 +696,11 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" 'xyz':[{'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}]," +
" 'policy1':[{'replica':'<2', 'shard': '#EACH', 'node': '#ANY'}]," +
" 'policy2':[{'replica':'<7', 'shard': '#EACH', 'node': '#ANY'}]}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
Map triggers = (Map) response.get("triggers");
@@ -746,7 +727,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
assertNotNull(policies.get("xyz"));
assertNotNull(policies.get("policy1"));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, "/diagnostics", null);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, "/diagnostics", null);
response = solrClient.request(req);
Map<String, Object> diagnostics = (Map<String, Object>) response.get("diagnostics");
@@ -784,7 +765,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
" {'replica':'<4', 'shard': '#EACH', 'node': '#ANY'}"+
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, tempClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, tempClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -796,12 +777,12 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
assertTrue(adminResponse.isSuccess());
// reset the original cluster policy
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
// get the diagnostics output again
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, "/diagnostics", null);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, "/diagnostics", null);
response = solrClient.request(req);
diagnostics = (Map<String, Object>) response.get("diagnostics");
sortedNodes = (List) diagnostics.get("sortedNodes");
@@ -829,12 +810,12 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
if (l != null && l.contains(runner1.getNodeName())) return true;
return false;
},
- createAutoScalingRequest(SolrRequest.METHOD.GET, "/diagnostics", null),
+ AutoScalingRequest.create(SolrRequest.METHOD.GET, "/diagnostics", null),
200,
20,
runner1.getNodeName() + " could not come up ");
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, "/suggestions", null);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, "/suggestions", null);
response = solrClient.request(req);
List l = (List) response.get("suggestions");
assertNotNull(l);
@@ -864,7 +845,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"'waitFor' : '0s'," +
"'enabled' : true" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = null;
try {
response = solrClient.request(req);
@@ -882,7 +863,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
t2.start();
boolean await = updateLatch.await(60, TimeUnit.SECONDS);
assertTrue("not all updates executed in time, remaining=" + updateLatch.getCount(), await);
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
NamedList<Object> response = solrClient.request(req);
Map triggers = (Map) response.get("triggers");
@@ -913,14 +894,14 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
String setPolicyCommand = "{'set-policy': {" +
" 'nodelete':[" +
" {'nodeRole':'overseer', 'replica':0}]}}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPolicyCommand));
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPolicyCommand));
CollectionAdminRequest.createCollection("COLL1", "conf", 1, 1)
.setPolicy("nodelete")
.process(cluster.getSolrClient());
String removePolicyCommand = "{remove-policy : nodelete}";
- createAutoScalingRequest(SolrRequest.METHOD.POST, removePolicyCommand);
+ AutoScalingRequest.create(SolrRequest.METHOD.POST, removePolicyCommand);
try {
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, removePolicyCommand));
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, removePolicyCommand));
fail("should have failed");
} catch (HttpSolrClient.RemoteExecutionException e) {
assertTrue(String.valueOf(getObjectByPath(e.getMetaData(), true, "error/details[0]/errorMessages[0]"))
@@ -939,8 +920,8 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"pqr\" : \"abc\"\n" +
"\t}\n" +
"}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
NamedList<Object> response = solrClient.request(req);
Map properties = (Map) response.get("properties");
assertNotNull(properties);
@@ -952,8 +933,8 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"xyz\" : 123\n" +
"\t}\n" +
"}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
properties = (Map) response.get("properties");
assertNotNull(properties);
@@ -966,8 +947,8 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"xyz\" : 456\n" +
"\t}\n" +
"}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
properties = (Map) response.get("properties");
assertNotNull(properties);
@@ -980,8 +961,8 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"xyz\" : null\n" +
"\t}\n" +
"}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
properties = (Map) response.get("properties");
assertNotNull(properties);
@@ -996,8 +977,8 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
"\t\t\"" + AutoScalingParams.ACTION_THROTTLE_PERIOD_SECONDS + "\" : 5\n" +
"\t}\n" +
"}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
properties = (Map) response.get("properties");
assertNotNull(properties);
@@ -1013,42 +994,18 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
CloudSolrClient solrClient = cluster.getSolrClient();
String setPropertiesCommand = "{'set-cluster-policy': [" +
"{'cores': '<4','node': '#ANY'}]}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
NamedList<Object> response = solrClient.request(req);
assertEquals("<4", Utils.getObjectByPath(response,false,"cluster-policy[0]/cores"));
assertEquals("#ANY", Utils.getObjectByPath(response,false,"cluster-policy[0]/node"));
setPropertiesCommand = "{'set-cluster-policy': [" +
"{'cores': '<3','node': '#ANY'}]}";
- solrClient.request(createAutoScalingRequest(SolrRequest.METHOD.POST, setPropertiesCommand));
- req = createAutoScalingRequest(SolrRequest.METHOD.GET, null);
+ solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, setPropertiesCommand));
+ req = AutoScalingRequest.create(SolrRequest.METHOD.GET, null);
response = solrClient.request(req);
assertEquals("<3", Utils.getObjectByPath(response,false,"cluster-policy[0]/cores"));
assertEquals("#ANY", Utils.getObjectByPath(response,false,"cluster-policy[0]/node"));
}
-
- static class AutoScalingRequest extends SolrRequest {
- protected final String message;
-
- AutoScalingRequest(METHOD m, String path, String message) {
- super(m, path);
- this.message = message;
- }
-
- @Override
- public SolrParams getParams() {
- return null;
- }
-
- @Override
- public RequestWriter.ContentWriter getContentWriter(String expectedType) {
- return message == null ? null : new StringPayloadContentWriter(message, JSON_MIME);
- }
-
- @Override
- protected SolrResponse createResponse(SolrClient client) {
- return null;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/ComputePlanActionTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/ComputePlanActionTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/ComputePlanActionTest.java
index 7227c8c..8b5efd7 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/ComputePlanActionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/ComputePlanActionTest.java
@@ -40,6 +40,7 @@ import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.SolrClientNodeStateProvider;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
@@ -62,7 +63,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.common.params.CollectionParams.CollectionAction.MOVEREPLICA;
/**
@@ -121,7 +121,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
" {'nodeRole':'overseer', 'replica':0}" +
" ]" +
"}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -130,7 +130,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"{'minimize': 'cores'}," +
"{'maximize': 'freedisk','precision': 100}]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPreferencesCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPreferencesCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -186,7 +186,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name':'test','class':'" + ComputePlanActionTest.AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -271,7 +271,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name':'test','class':'" + ComputePlanActionTest.AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -340,7 +340,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name':'test','class':'" + ComputePlanActionTest.AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -352,7 +352,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
" {'nodeRole':'overseer', 'replica':0}" +
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -371,7 +371,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
" {'nodeRole':'overseer', 'replica':0}" +
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -449,7 +449,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction', 'collections' : 'testSelected1,testSelected2'}," +
"{'name':'test','class':'" + ComputePlanActionTest.AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -546,7 +546,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name':'test','class':'" + AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -557,7 +557,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
" {'nodeRole':'overseer', 'replica':0}" +
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -641,7 +641,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
"{'name':'execute_plan','class':'solr.ExecutePlanAction'}" +
"{'name':'test','class':'" + AssertingTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -652,7 +652,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
" {'nodeRole':'overseer', 'replica':0}" +
" ]" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setClusterPolicyCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java
index 9ca38fd..d6e44ca 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java
@@ -32,6 +32,7 @@ import org.apache.solr.client.solrj.cloud.autoscaling.TriggerEventType;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
@@ -185,7 +186,7 @@ public class ExecutePlanActionTest extends SolrCloudTestCase {
"'actions' : [{'name':'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name':'execute_plan','class':'solr.ExecutePlanAction'}]" +
"}}";
- SolrRequest req = AutoScalingHandlerTest.createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/HttpTriggerListenerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/HttpTriggerListenerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/HttpTriggerListenerTest.java
index 26c13b0..cb10457 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/HttpTriggerListenerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/HttpTriggerListenerTest.java
@@ -31,6 +31,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.util.LogLevel;
@@ -42,8 +43,6 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
-
/**
*
*/
@@ -89,7 +88,7 @@ public class HttpTriggerListenerTest extends SolrCloudTestCase {
"{'name':'test','class':'" + TestDummyAction.class.getName() + "'}" +
"]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -107,7 +106,7 @@ public class HttpTriggerListenerTest extends SolrCloudTestCase {
"'header.X-Foo' : '${config.name:invalid}'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
index ce22430..4c5c24e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/IndexSizeTriggerTest.java
@@ -41,6 +41,7 @@ import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.cloud.CloudTestUtils;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.cloud.autoscaling.sim.SimCloudManager;
import org.apache.solr.common.SolrInputDocument;
@@ -62,7 +63,6 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.common.cloud.ZkStateReader.SOLR_AUTOSCALING_CONF_PATH;
/**
@@ -275,7 +275,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'actions' : [{'name' : 'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name' : 'execute_plan', 'class' : '" + ExecutePlanAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -290,7 +290,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + CapturingTriggerListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -303,7 +303,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + FinishedProcessingListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -320,7 +320,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger2'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -404,7 +404,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'actions' : [{'name' : 'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name' : 'execute_plan', 'class' : '" + ExecutePlanAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -419,7 +419,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + CapturingTriggerListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -432,7 +432,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + FinishedProcessingListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -448,7 +448,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger3'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals("success", response.get("result").toString());
@@ -550,7 +550,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'actions' : [{'name' : 'compute_plan', 'class' : 'solr.ComputePlanAction'}," +
"{'name' : 'execute_plan', 'class' : '" + ExecutePlanAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -565,7 +565,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + CapturingTriggerListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -578,7 +578,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + FinishedProcessingListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -588,7 +588,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger4'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -645,7 +645,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger4'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -668,7 +668,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
solrClient.request(ur, collectionName);
// resume trigger
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -733,7 +733,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'enabled' : false," +
"'actions' : [{'name' : 'compute_plan', 'class' : 'solr.ComputePlanAction'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -748,7 +748,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + CapturingTriggerListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -761,7 +761,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'class' : '" + FinishedProcessingListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -778,7 +778,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger5'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, resumeTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, resumeTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -793,7 +793,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger5'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -823,7 +823,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name' : 'compute_plan', 'class' : 'solr.ComputePlanAction'}]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -836,7 +836,7 @@ public class IndexSizeTriggerTest extends SolrCloudTestCase {
"'name' : 'index_size_trigger5'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, suspendTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java
index 418a626..13e04cc 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java
@@ -27,13 +27,14 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.client.solrj.cloud.autoscaling.AutoScalingConfig;
import org.apache.solr.client.solrj.cloud.autoscaling.TriggerEventProcessorStage;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.DocCollection;
@@ -49,7 +50,6 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.WAIT_FOR_DELTA_NANOS;
/**
@@ -72,14 +72,11 @@ public class MetricTriggerIntegrationTest extends SolrCloudTestCase {
configureCluster(2)
.addConfig("conf", configset("cloud-minimal"))
.configure();
- // disable .scheduled_maintenance
- String suspendTriggerCommand = "{" +
- "'suspend-trigger' : {'name' : '.scheduled_maintenance'}" +
- "}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
- SolrClient solrClient = cluster.getSolrClient();
- NamedList<Object> response = solrClient.request(req);
- assertEquals(response.get("result").toString(), "success");
+
+ // disable .scheduled_maintenance (once it exists)
+ CloudTestUtils.waitForTriggerToBeScheduled(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
+ CloudTestUtils.suspendTrigger(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
+
triggerFiredLatch = new CountDownLatch(1);
}
@@ -121,7 +118,7 @@ public class MetricTriggerIntegrationTest extends SolrCloudTestCase {
"{'name':'test','class':'" + MetricAction.class.getName() + "'}" +
"]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -135,7 +132,7 @@ public class MetricTriggerIntegrationTest extends SolrCloudTestCase {
"'class' : '" + TestTriggerListener.class.getName() + "'" +
"}" +
"}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setListenerCommand1);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setListenerCommand1);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -191,7 +188,7 @@ public class MetricTriggerIntegrationTest extends SolrCloudTestCase {
"{'name':'test','class':'" + MetricAction.class.getName() + "'}" +
"]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java
index bce3ea1..9d798e2 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java
@@ -25,12 +25,13 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
-import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.Overseer;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -47,7 +48,6 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.cloud.autoscaling.ScheduledTriggers.DEFAULT_SCHEDULED_TRIGGER_DELAY_SECONDS;
import static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.WAIT_FOR_DELTA_NANOS;
import static org.apache.solr.common.cloud.ZkStateReader.SOLR_AUTOSCALING_CONF_PATH;
@@ -83,14 +83,10 @@ public class NodeAddedTriggerIntegrationTest extends SolrCloudTestCase {
configureCluster(2)
.addConfig("conf", configset("cloud-minimal"))
.configure();
- // disable .scheduled_maintenance
- String suspendTriggerCommand = "{" +
- "'suspend-trigger' : {'name' : '.scheduled_maintenance'}" +
- "}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
- SolrClient solrClient = cluster.getSolrClient();
- NamedList<Object> response = solrClient.request(req);
- assertEquals(response.get("result").toString(), "success");
+
+ // disable .scheduled_maintenance (once it exists)
+ CloudTestUtils.waitForTriggerToBeScheduled(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
+ CloudTestUtils.suspendTrigger(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
NamedList<Object> overSeerStatus = cluster.getSolrClient().request(CollectionAdminRequest.getOverseerStatus());
String overseerLeader = (String) overSeerStatus.get("leader");
@@ -148,7 +144,7 @@ public class NodeAddedTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -175,7 +171,7 @@ public class NodeAddedTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -204,7 +200,7 @@ public class NodeAddedTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -235,7 +231,7 @@ public class NodeAddedTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/73299f0f/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java
index 1e75b89..d0d1958 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java
@@ -25,12 +25,13 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
-import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
+import org.apache.solr.cloud.CloudTestUtils;
+import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest;
import org.apache.solr.cloud.Overseer;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ZkNodeProps;
@@ -47,7 +48,6 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.solr.cloud.autoscaling.AutoScalingHandlerTest.createAutoScalingRequest;
import static org.apache.solr.cloud.autoscaling.ScheduledTriggers.DEFAULT_SCHEDULED_TRIGGER_DELAY_SECONDS;
import static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.WAIT_FOR_DELTA_NANOS;
import static org.apache.solr.common.cloud.ZkStateReader.SOLR_AUTOSCALING_CONF_PATH;
@@ -80,14 +80,9 @@ public class NodeLostTriggerIntegrationTest extends SolrCloudTestCase {
.addConfig("conf", configset("cloud-minimal"))
.configure();
- // disable .scheduled_maintenance
- String suspendTriggerCommand = "{" +
- "'suspend-trigger' : {'name' : '.scheduled_maintenance'}" +
- "}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, suspendTriggerCommand);
- SolrClient solrClient = cluster.getSolrClient();
- NamedList<Object> response = solrClient.request(req);
- assertEquals(response.get("result").toString(), "success");
+ // disable .scheduled_maintenance (once it exists)
+ CloudTestUtils.waitForTriggerToBeScheduled(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
+ CloudTestUtils.suspendTrigger(cluster.getOpenOverseer().getSolrCloudManager(), ".scheduled_maintenance");
NamedList<Object> overSeerStatus = cluster.getSolrClient().request(CollectionAdminRequest.getOverseerStatus());
String overseerLeader = (String) overSeerStatus.get("leader");
@@ -156,7 +151,7 @@ public class NodeLostTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -188,7 +183,7 @@ public class NodeLostTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -226,7 +221,7 @@ public class NodeLostTriggerIntegrationTest extends SolrCloudTestCase {
nonOverseerLeaderIndex = i;
}
}
- SolrRequest req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
NamedList<Object> response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");
@@ -260,7 +255,7 @@ public class NodeLostTriggerIntegrationTest extends SolrCloudTestCase {
"'enabled' : true," +
"'actions' : [{'name':'test','class':'" + TestTriggerAction.class.getName() + "'}]" +
"}}";
- req = createAutoScalingRequest(SolrRequest.METHOD.POST, setTriggerCommand);
+ req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setTriggerCommand);
response = solrClient.request(req);
assertEquals(response.get("result").toString(), "success");