SOLR-6868: Try to fix the failing test and also a part of the SolrJ collection API test refactoring

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1647472 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Anshum Gupta 2014-12-23 02:52:07 +00:00
parent 658c73d6c3
commit 9a9c1bde04
2 changed files with 61 additions and 53 deletions

View File

@ -34,7 +34,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
@ -47,7 +46,6 @@ import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
@ -72,7 +70,6 @@ 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.CollectionParams.CollectionAction;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
@ -85,7 +82,6 @@ import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.servlet.SolrDispatchFilter;
import org.apache.solr.update.DirectUpdateHandler2;
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.BeforeClass;
@ -199,7 +195,6 @@ public class CollectionsAPIDistributedZkTest extends AbstractFullDistribZkTestBa
@Override
public void doTest() throws Exception {
testPropertyParamsForCreate();
testNodesUsedByCreate();
testCollectionsAPI();
testCollectionsAPIAddRemoveStress();
@ -217,53 +212,7 @@ public class CollectionsAPIDistributedZkTest extends AbstractFullDistribZkTestBa
}
}
private void testPropertyParamsForCreate() throws Exception {
String collectionName = "solrj_test_core_props";
SolrServer server = createNewSolrServer("", getBaseUrl((HttpSolrServer) clients.get(0)));
File tmpDir = createTempDir("testPropertyParamsForCreate").toFile();
File instanceDir = new File(tmpDir, "instanceDir-" + TestUtil.randomSimpleString(random(), 1, 5));
File dataDir = new File(tmpDir, "dataDir-" + TestUtil.randomSimpleString(random(), 1, 5));
File ulogDir = new File(tmpDir, "ulogDir-" + TestUtil.randomSimpleString(random(), 1, 5));
Properties properties = new Properties();
properties.put(CoreAdminParams.INSTANCE_DIR, instanceDir.getAbsolutePath());
properties.put(CoreAdminParams.DATA_DIR, dataDir.getAbsolutePath());
properties.put(CoreAdminParams.ULOG_DIR, ulogDir.getAbsolutePath());
CollectionAdminRequest.Create createReq = new CollectionAdminRequest.Create();
createReq.setCollectionName(collectionName);
createReq.setNumShards(1);
createReq.setConfigName("conf1");
createReq.setProperties(properties);
CollectionAdminResponse response = createReq.process( server );
assertEquals(0, response.getStatus());
assertTrue(response.isSuccess());
Map<String, NamedList<Integer>> coresStatus = response.getCollectionCoresStatus();
assertEquals(1, coresStatus.size());
DocCollection testcoll = getCommonCloudSolrServer().getZkStateReader()
.getClusterState().getCollection(collectionName);
Replica replica1 = testcoll.getReplica("core_node1");
HttpSolrServer replica1Server = new HttpSolrServer(replica1.getStr("base_url"));
try {
CoreAdminResponse status = CoreAdminRequest.getStatus(replica1.getStr("core"), replica1Server);
NamedList<Object> coreStatus = status.getCoreStatus(replica1.getStr("core"));
String dataDirStr = (String) coreStatus.get("dataDir");
String instanceDirStr = (String) coreStatus.get("instanceDir");
assertEquals("Instance dir does not match param passed in property.instanceDir syntax",
new File(instanceDirStr).getAbsolutePath(), instanceDir.getAbsolutePath());
assertEquals("Data dir does not match param given in property.dataDir syntax",
new File(dataDirStr).getAbsolutePath(), dataDir.getAbsolutePath());
} finally {
replica1Server.shutdown();
}
}
private void deleteCollectionRemovesStaleZkCollectionsNode() throws Exception {

View File

@ -18,17 +18,26 @@ package org.apache.solr.cloud;
*/
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.CoreAdminResponse;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.util.NamedList;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import java.util.Properties;
@LuceneTestCase.Slow
public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
@ -40,6 +49,7 @@ public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
testReloadCollection();
testCreateAndDeleteAlias();
testSplitShard();
testCreateCollectionWithPropertyParam();
}
public void tearDown() throws Exception {
@ -215,4 +225,53 @@ public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
}
private void testCreateCollectionWithPropertyParam() throws Exception {
String collectionName = "solrj_test_core_props";
File tmpDir = createTempDir("testPropertyParamsForCreate").toFile();
File instanceDir = new File(tmpDir, "instanceDir-" + TestUtil.randomSimpleString(random(), 1, 5));
File dataDir = new File(tmpDir, "dataDir-" + TestUtil.randomSimpleString(random(), 1, 5));
File ulogDir = new File(tmpDir, "ulogDir-" + TestUtil.randomSimpleString(random(), 1, 5));
Properties properties = new Properties();
properties.put(CoreAdminParams.INSTANCE_DIR, instanceDir.getAbsolutePath());
properties.put(CoreAdminParams.DATA_DIR, dataDir.getAbsolutePath());
properties.put(CoreAdminParams.ULOG_DIR, ulogDir.getAbsolutePath());
CollectionAdminRequest.Create createReq = new CollectionAdminRequest.Create();
createReq.setCollectionName(collectionName);
createReq.setNumShards(1);
createReq.setConfigName("conf1");
createReq.setProperties(properties);
CollectionAdminResponse response = createReq.process(cloudClient);
assertEquals(0, response.getStatus());
assertTrue(response.isSuccess());
Map<String, NamedList<Integer>> coresStatus = response.getCollectionCoresStatus();
assertEquals(1, coresStatus.size());
DocCollection testCollection = cloudClient.getZkStateReader()
.getClusterState().getCollection(collectionName);
Replica replica1 = testCollection.getReplica("core_node1");
HttpSolrServer solrServer = new HttpSolrServer(replica1.getStr("base_url"));
try {
CoreAdminResponse status = CoreAdminRequest.getStatus(replica1.getStr("core"), solrServer);
NamedList<Object> coreStatus = status.getCoreStatus(replica1.getStr("core"));
String dataDirStr = (String) coreStatus.get("dataDir");
String instanceDirStr = (String) coreStatus.get("instanceDir");
assertEquals("Instance dir does not match param passed in property.instanceDir syntax",
new File(instanceDirStr).getAbsolutePath(), instanceDir.getAbsolutePath());
assertEquals("Data dir does not match param given in property.dataDir syntax",
new File(dataDirStr).getAbsolutePath(), dataDir.getAbsolutePath());
} finally {
solrServer.shutdown();
}
CollectionAdminRequest.Delete deleteCollectionRequest = new CollectionAdminRequest.Delete();
deleteCollectionRequest.setCollectionName(collectionName);
deleteCollectionRequest.process(cloudClient);
}
}