You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ho...@apache.org on 2023/01/07 00:54:20 UTC

[solr] 11/12: resolve obnoxious forbidden API

This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-6312
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 963f1ea3864a4520c8aab39c26e5fd8e11096ffe
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Fri Jan 6 16:44:23 2023 -0700

    resolve obnoxious forbidden API
---
 .../impl/SendUpdatesToLeadersOverrideTest.java     | 156 ++++++++++++---------
 1 file changed, 87 insertions(+), 69 deletions(-)

diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
index 9a485a483b3..8d4abab9042 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/SendUpdatesToLeadersOverrideTest.java
@@ -41,6 +41,7 @@ import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.update.UpdateCommand;
 import org.apache.solr.update.processor.TrackingUpdateProcessorFactory;
+import org.hamcrest.MatcherAssert;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.slf4j.Logger;
@@ -193,7 +194,7 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
 
     // post-distrib should never match any PULL replicas, regardless of request, if this fails
     // something is seriously wrong with our cluster
-    assertThat(
+    MatcherAssert.assertThat(
         "post-distrib should never be PULL replica",
         results.postDistribCores.keySet(),
         everyItem(not(isIn(PULL_REPLICA_CORE_NAMES))));
@@ -285,10 +286,10 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           assertUpdateWithRecording(new UpdateRequest().add(sdoc("id", "hoss")), client);
 
       // single NRT leader is only core that should be involved at all
-      assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
-      assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
-      assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
           "add pre-distrib must be leader",
           add.preDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
@@ -313,31 +314,32 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           "add and del should have been routed the same",
           add.preDistribCores.keySet(),
           del.preDistribCores.keySet());
-      assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
-      assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
     }
 
     { // DBQ should start on some leader, and then distrib to both leaders
       final RecordingResults record =
           assertUpdateWithRecording(new UpdateRequest().deleteByQuery("*:*"), client);
 
-      assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "dbq pre-distrib must be leader",
           record.preDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat("dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
-      assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
 
       assertEquals(
           "dbq post-distrib must be all leaders",
           LEADER_CORE_NAMES,
           record.postDistribCores.keySet());
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size",
           record.postDistribRequests.keySet(),
           hasSize(LEADER_CORE_NAMES.size()));
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size", record.postDistribCommands, hasSize(LEADER_CORE_NAMES.size()));
     }
 
@@ -351,15 +353,16 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
 
       // NOTE: Don't assume our docIds are spread across multi-shards...
       // ...but the original number of requests should all be diff leaders
-      assertThat(
+      MatcherAssert.assertThat(
           "multi pre-distrib must be leaders",
           record.preDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat(
+      MatcherAssert.assertThat(
           "multi pre-distrib req != pre-distrib num cores",
           record.preDistribRequests.keySet(),
           hasSize(record.preDistribCores.keySet().size()));
-      assertThat("multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
 
       assertEquals(
           "multi post-distrib must be same leaders",
@@ -372,7 +375,8 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           "multi post-distrib cores don't match pre-distrib cores",
           record.preDistribCores.keySet(),
           record.postDistribCores.keySet());
-      assertThat("multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
     }
   }
 
@@ -391,65 +395,68 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           assertUpdateWithRecording(prefPull(new UpdateRequest().add(sdoc("id", "hoss"))), client);
 
       // ...should start on (some) PULL replica, since we asked nicely
-      assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "add pre-distrib must be PULL",
           add.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
-      assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
 
       // ...then be routed to single leader for this id
-      assertThat("add post-distrib size", add.postDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("add post-distrib size", add.postDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "add post-distrib must be leader",
           add.postDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat("add post-distrib size", add.postDistribRequests.keySet(), hasSize(1));
-      assertThat("add post-distrib size", add.postDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "add post-distrib size", add.postDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add post-distrib size", add.postDistribCommands, hasSize(1));
 
       // A DBI should also start on (some) PULL replica,  since we asked nicely.
       //
       // then it should be distributed to whatever leader our add doc (for the same id) was sent to
       final RecordingResults del =
           assertUpdateWithRecording(prefPull(new UpdateRequest().deleteById("hoss")), client);
-      assertThat("del pre-distrib size", del.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "del pre-distrib must be PULL",
           del.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
-      assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
 
       assertEquals(
           "add and del should have same post-distrib leader",
           add.postDistribCores.keySet(),
           del.postDistribCores.keySet());
-      assertThat("del post-distrib size", del.postDistribRequests.keySet(), hasSize(1));
-      assertThat("del post-distrib size", del.postDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "del post-distrib size", del.postDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("del post-distrib size", del.postDistribCommands, hasSize(1));
     }
 
     { // DBQ start on (some) PULL replica, since we asked nicely, then be routed to all leaders
       final RecordingResults record =
           assertUpdateWithRecording(prefPull(new UpdateRequest().deleteByQuery("*:*")), client);
 
-      assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "dbq pre-distrib must be PULL",
           record.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
-      assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
 
       assertEquals(
           "dbq post-distrib must be all leaders",
           LEADER_CORE_NAMES,
           record.postDistribCores.keySet());
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size",
           record.postDistribRequests.keySet(),
           hasSize(LEADER_CORE_NAMES.size()));
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size", record.postDistribCommands, hasSize(LEADER_CORE_NAMES.size()));
     }
 
@@ -460,13 +467,16 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
       final RecordingResults record =
           assertUpdateWithRecording(prefPull(createMultiDirectUpdates(100, 10)), client);
 
-      assertThat("multi pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat(
+          "multi pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "multi pre-distrib must be PULL",
           record.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("multi pre-distrib req size", record.preDistribRequests.keySet(), hasSize(1));
-      assertThat("multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi pre-distrib req size", record.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
+          "multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
 
       assertEquals(
           "multi post-distrib must be all leaders",
@@ -476,11 +486,12 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
       //
       // We make no asertion about number of post-distrb requests
       // (distrib proc may batch differently then what we send)
-      assertThat(
+      MatcherAssert.assertThat(
           "multi post-distrib cores",
           record.postDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat("multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
     }
   }
 
@@ -497,22 +508,23 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
               client);
 
       // ...should start on (some) PULL replica, since we asked nicely
-      assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "add pre-distrib must be PULL",
           add.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
-      assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add pre-distrib size", add.preDistribCommands, hasSize(1));
 
       // ...then be routed to single leader for this id
-      assertThat("add post-distrib size", add.postDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("add post-distrib size", add.postDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "add post-distrib must be leader",
           add.postDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat("add post-distrib size", add.postDistribRequests.keySet(), hasSize(1));
-      assertThat("add post-distrib size", add.postDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "add post-distrib size", add.postDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("add post-distrib size", add.postDistribCommands, hasSize(1));
 
       // A DBI should also start on (some) PULL replica,  since we asked nicely.
       //
@@ -520,20 +532,21 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
       final RecordingResults del =
           assertUpdateWithRecording(
               prefPull(new UpdateRequest().deleteById("hoss")).setSendToLeaders(false), client);
-      assertThat("del pre-distrib size", del.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "del pre-distrib must be PULL",
           del.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
-      assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("del pre-distrib size", del.preDistribCommands, hasSize(1));
 
       assertEquals(
           "add and del should have same post-distrib leader",
           add.postDistribCores.keySet(),
           del.postDistribCores.keySet());
-      assertThat("del post-distrib size", del.postDistribRequests.keySet(), hasSize(1));
-      assertThat("del post-distrib size", del.postDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "del post-distrib size", del.postDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("del post-distrib size", del.postDistribCommands, hasSize(1));
     }
 
     { // DBQ start on (some) PULL replica, since we asked nicely, then be routed to all leaders
@@ -541,23 +554,24 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           assertUpdateWithRecording(
               prefPull(new UpdateRequest().deleteByQuery("*:*")).setSendToLeaders(false), client);
 
-      assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "dbq pre-distrib must be PULL",
           record.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
-      assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
+      MatcherAssert.assertThat(
+          "dbq pre-distrib size", record.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat("dbq pre-distrib size", record.preDistribCommands, hasSize(1));
 
       assertEquals(
           "dbq post-distrib must be all leaders",
           LEADER_CORE_NAMES,
           record.postDistribCores.keySet());
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size",
           record.postDistribRequests.keySet(),
           hasSize(LEADER_CORE_NAMES.size()));
-      assertThat(
+      MatcherAssert.assertThat(
           "dbq post-distrib size", record.postDistribCommands, hasSize(LEADER_CORE_NAMES.size()));
     }
 
@@ -569,13 +583,16 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
           assertUpdateWithRecording(
               prefPull(createMultiDirectUpdates(100, 10)).setSendToLeaders(false), client);
 
-      assertThat("multi pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
-      assertThat(
+      MatcherAssert.assertThat(
+          "multi pre-distrib size", record.preDistribCores.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
           "multi pre-distrib must be PULL",
           record.preDistribCores.keySet(),
           everyItem(isIn(PULL_REPLICA_CORE_NAMES)));
-      assertThat("multi pre-distrib req size", record.preDistribRequests.keySet(), hasSize(1));
-      assertThat("multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi pre-distrib req size", record.preDistribRequests.keySet(), hasSize(1));
+      MatcherAssert.assertThat(
+          "multi pre-distrib command size", record.preDistribCommands, hasSize(100 + 10));
 
       assertEquals(
           "multi post-distrib must be all leaders",
@@ -585,11 +602,12 @@ public class SendUpdatesToLeadersOverrideTest extends SolrCloudTestCase {
       //
       // We make no asertion about number of post-distrb requests
       // (distrib proc may batch differently then what we send)
-      assertThat(
+      MatcherAssert.assertThat(
           "multi post-distrib cores",
           record.postDistribCores.keySet(),
           everyItem(isIn(LEADER_CORE_NAMES)));
-      assertThat("multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
+      MatcherAssert.assertThat(
+          "multi post-distrib command size", record.postDistribCommands, hasSize(100 + 10));
     }
   }