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/06/16 13:21:28 UTC

lucene-solr:feature/autoscaling: SOLR-10397: Remove AutoAddReplicasPlanAction from default actions list. Add test to ensure that we are adding AutoAddReplicasPlanAction explicitly in auto-created triggers

Repository: lucene-solr
Updated Branches:
  refs/heads/feature/autoscaling d609137a6 -> b7ea70349


SOLR-10397: Remove AutoAddReplicasPlanAction from default actions list. Add test to ensure that we are adding AutoAddReplicasPlanAction explicitly in auto-created triggers


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b7ea7034
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b7ea7034
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b7ea7034

Branch: refs/heads/feature/autoscaling
Commit: b7ea70349a19f7fa46b62140fb57dab386508cea
Parents: d609137
Author: Shalin Shekhar Mangar <sh...@apache.org>
Authored: Fri Jun 16 18:51:17 2017 +0530
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Fri Jun 16 18:51:17 2017 +0530

----------------------------------------------------------------------
 .../cloud/autoscaling/AutoScalingHandler.java   |  4 ---
 .../autoscaling/AutoScalingHandlerTest.java     | 37 +++++++++++++++-----
 2 files changed, 28 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b7ea7034/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 c349a3c..f1effd3 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
@@ -86,10 +86,6 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     map.put(NAME, "log_plan");
     map.put(CLASS, "solr.LogPlanAction");
     DEFAULT_ACTIONS.add(map);
-    map = new HashMap<>(2);
-    map.put(NAME, "auto_add_replicas_plan");
-    map.put(CLASS, "solr.AutoAddReplicasPlanAction");
-    DEFAULT_ACTIONS.add(map);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b7ea7034/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 ff493fc..b62b496 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
@@ -32,7 +32,6 @@ import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
 import org.apache.solr.client.solrj.request.V2Request;
 import org.apache.solr.client.solrj.response.CollectionAdminResponse;
-import org.apache.solr.cloud.CreateCollectionCmd;
 import org.apache.solr.cloud.SolrCloudTestCase;
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.params.CollectionParams;
@@ -74,10 +73,19 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
         .process(cluster.getSolrClient());
     byte[] data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
     ZkNodeProps loaded = ZkNodeProps.load(data);
-    assertNotNull(loaded.get("triggers"));
-    assertEquals("auto add replicas trigger did not created", ((Map)loaded.get("triggers")).size(), 1);
+    Map triggers = (Map) loaded.get("triggers");
+    assertNotNull(triggers);
+    assertEquals("auto add replicas trigger were not created", triggers.size(), 1);
+    Map<String, Object> autoAddReplicasTrigger = (Map<String, Object>) triggers.get(".auto_add_replicas");
+    assertNotNull(autoAddReplicasTrigger);
+    List<Map<String, Object>> actions = (List<Map<String, Object>>) autoAddReplicasTrigger.get("actions");
+    assertNotNull(actions);
+    assertEquals(3, actions.size());
+    assertEquals("auto_add_replicas_plan", actions.get(0).get("name").toString());
+    assertEquals("solr.AutoAddReplicasPlanAction", actions.get(0).get("class").toString());
 
-    zkClient().setData(SOLR_AUTOSCALING_CONF_PATH, Utils.toJSON(new ZkNodeProps()), true);
+    // lets turn of autoAddReplicas, currently it doesn't change anything in autoscaling config
+    // because AutoAddReplicasPlanAction will just ignore any collections with autoAddReplicas turned off
     new CollectionAdminRequest.AsyncCollectionAdminRequest(CollectionParams.CollectionAction.MODIFYCOLLECTION) {
       @Override
       public SolrParams getParams() {
@@ -87,10 +95,11 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
         return params;
       }
     }.process(cluster.getSolrClient());
-    data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
-    loaded = ZkNodeProps.load(data);
-    assertNull(loaded.get("triggers"));
 
+    // lets delete all autoscaling config
+    zkClient().setData(SOLR_AUTOSCALING_CONF_PATH, Utils.toJSON(new ZkNodeProps()), true);
+
+    // now enable autoAddReplicas and assert that the trigger was re-created correctly
     new CollectionAdminRequest.AsyncCollectionAdminRequest(CollectionParams.CollectionAction.MODIFYCOLLECTION) {
       @Override
       public SolrParams getParams() {
@@ -102,8 +111,18 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
     }.process(cluster.getSolrClient());
     data = zkClient().getData(SOLR_AUTOSCALING_CONF_PATH, null, null, true);
     loaded = ZkNodeProps.load(data);
-    assertNotNull(loaded.get("triggers"));
-    assertEquals("auto add replicas trigger did not created", ((Map)loaded.get("triggers")).size(), 1);
+    triggers = (Map) loaded.get("triggers");
+    assertNotNull(triggers);
+    assertEquals("auto add replicas trigger did not created", triggers.size(), 1);
+    autoAddReplicasTrigger = (Map<String, Object>) triggers.get(".auto_add_replicas");
+    assertNotNull(autoAddReplicasTrigger);
+    actions = (List<Map<String, Object>>) autoAddReplicasTrigger.get("actions");
+    assertNotNull(actions);
+    assertEquals(3, actions.size());
+    assertEquals("auto_add_replicas_plan", actions.get(0).get("name").toString());
+    assertEquals("solr.AutoAddReplicasPlanAction", actions.get(0).get("class").toString());
+
+    CollectionAdminRequest.deleteCollection(collection).process(cluster.getSolrClient());
   }
 
   @Test