murblanc commented on a change in pull request #1684:
URL: https://github.com/apache/lucene-solr/pull/1684#discussion_r471388275



##########
File path: 
solr/core/src/java/org/apache/solr/cluster/placement/PlacementPlanFactory.java
##########
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.cluster.placement;
+
+import java.util.Set;
+
+/**
+ * Allows plugins to create {@link PlacementPlan}s telling the Solr layer 
where to create replicas following the processing of
+ * a {@link PlacementRequest}. The Solr layer can (and will) check that the 
{@link PlacementPlan} conforms to the {@link PlacementRequest} (and
+ * if it does not, the requested operation will fail).
+ */
+public interface PlacementPlanFactory {
+  /**
+   * <p>Creates a {@link PlacementPlan} for adding a new collection and its 
replicas.
+   *
+   * <p>This is in support of {@link 
org.apache.solr.cloud.api.collections.CreateCollectionCmd}.
+   */
+  PlacementPlan 
createPlacementPlanNewCollection(CreateNewCollectionPlacementRequest request, 
String CollectionName, Set<ReplicaPlacement> replicaPlacements);
+
+  /**
+   * <p>Creates a {@link PlacementPlan} for adding replicas to a given shard 
of an existing collection.
+   *
+   * <p>This is in support (directly or indirectly) of {@link 
org.apache.solr.cloud.api.collections.AddReplicaCmd},
+   * {@link org.apache.solr.cloud.api.collections.CreateShardCmd}, {@link 
org.apache.solr.cloud.api.collections.ReplaceNodeCmd},
+   * {@link org.apache.solr.cloud.api.collections.MoveReplicaCmd}, {@link 
org.apache.solr.cloud.api.collections.SplitShardCmd},
+   * {@link org.apache.solr.cloud.api.collections.RestoreCmd} and {@link 
org.apache.solr.cloud.api.collections.MigrateCmd}.
+   * (as well as of {@link 
org.apache.solr.cloud.api.collections.CreateCollectionCmd} in the specific case 
of
+   * {@link 
org.apache.solr.common.params.CollectionAdminParams#WITH_COLLECTION} but this 
should be removed shortly and
+   * the section in parentheses of this comment should be removed when the 
{@code withCollection} javadoc link appears broken).
+   */
+  PlacementPlan createPlacementPlanAddReplicas(AddReplicasPlacementRequest 
request, String CollectionName, Set<ReplicaPlacement> replicaPlacements);

Review comment:
       I meant above I'm unifying the creation requests as well as the 
placement plans.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to