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));
}
}