You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2012/02/28 06:26:19 UTC
svn commit: r1294465 -
/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
Author: markrmiller
Date: Tue Feb 28 05:26:19 2012
New Revision: 1294465
URL: http://svn.apache.org/viewvc?rev=1294465&view=rev
Log:
improve unused distrib core cmd action a little bit
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1294465&r1=1294464&r2=1294465&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Tue Feb 28 05:26:19 2012
@@ -21,8 +21,9 @@ import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
-import java.util.List;
+import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.apache.lucene.index.DirectoryReader;
@@ -30,14 +31,13 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.IOUtils;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
-import org.apache.solr.client.solrj.request.QueryRequest;
+import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.cloud.ZkController;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.cloud.CloudState;
import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.ZkCoreNodeProps;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CoreAdminParams;
@@ -746,26 +746,48 @@ public class CoreAdminHandler extends Re
SolrQueryResponse rsp) throws IOException, InterruptedException, SolrServerException {
// TODO: finish this and tests
SolrParams params = req.getParams();
+ final ModifiableSolrParams newParams = new ModifiableSolrParams(params);
+ newParams.remove("action");
SolrParams required = params.required();
- String path = required.get("path");
- String shard = params.get("shard");
+ final String subAction = required.get("subAction");
+
String collection = required.get("collection");
SolrCore core = req.getCore();
ZkController zkController = core.getCoreDescriptor().getCoreContainer()
.getZkController();
- if (shard != null) {
- List<ZkCoreNodeProps> replicas = zkController.getZkStateReader().getReplicaProps(
- collection, shard, zkController.getNodeName(), core.getName());
-
- for (ZkCoreNodeProps node : replicas) {
- CommonsHttpSolrServer server = new CommonsHttpSolrServer(node.getCoreUrl() + path);
- QueryRequest qr = new QueryRequest();
- server.request(qr);
+
+ CloudState cloudState = zkController.getCloudState();
+ Map<String,Slice> slices = cloudState.getCollectionStates().get(collection);
+ for (Map.Entry<String,Slice> entry : slices.entrySet()) {
+ Slice slice = entry.getValue();
+ Map<String,ZkNodeProps> shards = slice.getShards();
+ Set<Map.Entry<String,ZkNodeProps>> shardEntries = shards.entrySet();
+ for (Map.Entry<String,ZkNodeProps> shardEntry : shardEntries) {
+ final ZkNodeProps node = shardEntry.getValue();
+ if (cloudState.liveNodesContain(node.get(ZkStateReader.NODE_NAME_PROP))) {
+ CommonsHttpSolrServer server = new CommonsHttpSolrServer(node.get(ZkStateReader.BASE_URL_PROP));
+
+ server.request(new CoreAdminRequest() {
+ {
+ action = CoreAdminAction.valueOf(subAction);
+ setCoreName(node.get(ZkStateReader.CORE_NAME_PROP));
+ }
+
+ @Override
+ public SolrParams getParams() {
+ SolrParams superParams = super.getParams();
+ newParams.add(superParams);
+ return newParams;
+ }
+ });
+ }
}
-
}
+
+
+
}
protected NamedList<Object> getCoreStatus(CoreContainer cores, String cname) throws IOException {