This is an automated email from the ASF dual-hosted git repository.
epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 1d7a1e90627 SOLR-17398: Link V1 collection operations to their V2
equivalents (#5053)
1d7a1e90627 is described below
commit 1d7a1e9062734acd37489e85173044d8d974c88a
Author: Serhiy Bzhezytskyy <[email protected]>
AuthorDate: Wed Oct 7 23:14:04 2026 +0300
SOLR-17398: Link V1 collection operations to their V2 equivalents (#5053)
---
.../solr/handler/admin/CollectionsHandler.java | 42 ++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git
a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
index 170d3b69b52..28d2e3af535 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
@@ -111,6 +111,11 @@ import java.util.concurrent.TimeoutException;
import org.apache.solr.api.AnnotatedApi;
import org.apache.solr.api.Api;
import org.apache.solr.api.JerseyResource;
+import org.apache.solr.client.api.endpoint.ClusterPropertyApis;
+import org.apache.solr.client.api.endpoint.ListAliasesApi;
+import org.apache.solr.client.api.endpoint.ListClusterNodesApi;
+import org.apache.solr.client.api.endpoint.ListCollectionsApi;
+import org.apache.solr.client.api.endpoint.RenameCollectionApi;
import org.apache.solr.client.api.model.AddReplicaPropertyRequestBody;
import org.apache.solr.client.api.model.CreateAliasRequestBody;
import org.apache.solr.client.api.model.CreateCollectionSnapshotRequestBody;
@@ -157,6 +162,7 @@ import org.apache.solr.core.CloudConfig;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.snapshots.CollectionSnapshotMetaData;
import org.apache.solr.core.snapshots.SolrSnapshotManager;
+import org.apache.solr.handler.ClusterAPI;
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.handler.admin.api.AddReplicaProperty;
import org.apache.solr.handler.admin.api.AdminAPIBase;
@@ -533,6 +539,10 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
return null;
}),
+ /**
+ * V2 equivalent: {@link RenameCollectionApi} ({@code POST
+ * /collections/{collectionName}/rename}).
+ */
RENAME_OP(
RENAME,
(req, rsp, h) -> {
@@ -541,6 +551,7 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
return copy(req.getParams(), map, FOLLOW_ALIASES);
}),
+ /** No V2 equivalent yet. */
REINDEXCOLLECTION_OP(
REINDEXCOLLECTION,
(req, rsp, h) -> {
@@ -626,6 +637,10 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp,
getAliasesResponse);
return null;
}),
+ /**
+ * V2 equivalent: {@link SplitShardAPI} ({@code POST
/collections/{collection}/shards} with the
+ * {@code split} command).
+ */
SPLITSHARD_OP(
SPLITSHARD,
DEFAULT_COLLECTION_OP_TIMEOUT * 5,
@@ -703,6 +718,10 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
DeleteReplica.invokeWithV1Params(h.coreContainer, req, rsp);
return null;
}),
+ /**
+ * V2 equivalent: {@link MigrateDocsAPI} ({@code POST
/collections/{collection}} with the {@code
+ * migrate-docs} command).
+ */
MIGRATE_OP(
MIGRATE,
(req, rsp, h) -> {
@@ -769,7 +788,12 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp, response);
return null;
}),
+ /**
+ * V2 equivalent: {@link ClusterAPI#getOverseerStatus} ({@code GET
/cluster/overseer}), which
+ * calls this operation.
+ */
OVERSEERSTATUS_OP(OVERSEERSTATUS, (req, rsp, h) -> new LinkedHashMap<>()),
+ /** No V2 equivalent yet. */
DISTRIBUTEDAPIPROCESSING_OP(
DISTRIBUTEDAPIPROCESSING,
(req, rsp, h) -> {
@@ -794,6 +818,12 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
* Handle cluster status request. Can return status per specific
collection/shard or per all
* collections.
*/
+ /**
+ * Superseded by V2, which splits it up: {@link ListCollectionsApi}
({@code GET
+ * /collections?detailed=true}) for the collections tree, {@link
ListClusterNodesApi} ({@code
+ * GET /cluster/nodes}), {@link ListAliasesApi} ({@code GET /aliases}) and
{@link
+ * ClusterPropertyApis} ({@code GET /cluster/properties}).
+ */
CLUSTERSTATUS_OP(
CLUSTERSTATUS,
(req, rsp, h) -> {
@@ -842,6 +872,10 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
BalanceShardUnique.invokeFromV1Params(h.coreContainer, req, rsp);
return null;
}),
+ /**
+ * V2 equivalent: {@link RebalanceLeadersAPI} ({@code POST
/collections/{collection}} with the
+ * {@code rebalance-leaders} command).
+ */
REBALANCELEADERS_OP(
REBALANCELEADERS,
(req, rsp, h) -> {
@@ -849,6 +883,10 @@ public class CollectionsHandler extends RequestHandlerBase
implements Permission
return null;
}),
// XXX should this command support followAliases?
+ /**
+ * V2 equivalent: {@link ModifyCollectionAPI} ({@code POST
/collections/{collection}} with the
+ * {@code modify} command).
+ */
MODIFYCOLLECTION_OP(
MODIFYCOLLECTION,
(req, rsp, h) -> {
@@ -1003,6 +1041,10 @@ public class CollectionsHandler extends
RequestHandlerBase implements Permission
V2ApiUtils.squashIntoSolrResponseWithoutHeader(rsp,
replaceNodeResponse);
return null;
}),
+ /**
+ * V2 equivalent: {@link MoveReplicaAPI} ({@code POST
/collections/{collection}} with the {@code
+ * move-replica} command).
+ */
MOVEREPLICA_OP(
MOVEREPLICA,
(req, rsp, h) -> {