mirror of
https://github.com/apache/lucene.git
synced 2025-02-10 03:55:46 +00:00
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:
parent
658c73d6c3
commit
9a9c1bde04
@ -34,7 +34,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.CompletionService;
|
import java.util.concurrent.CompletionService;
|
||||||
import java.util.concurrent.ExecutorCompletionService;
|
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.lucene.util.TestUtil;
|
||||||
import org.apache.solr.client.solrj.SolrQuery;
|
import org.apache.solr.client.solrj.SolrQuery;
|
||||||
import org.apache.solr.client.solrj.SolrRequest;
|
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.SolrServerException;
|
||||||
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
|
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
|
||||||
import org.apache.solr.client.solrj.impl.CloudSolrServer;
|
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.ZkNodeProps;
|
||||||
import org.apache.solr.common.cloud.ZkStateReader;
|
import org.apache.solr.common.cloud.ZkStateReader;
|
||||||
import org.apache.solr.common.params.CollectionParams.CollectionAction;
|
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.MapSolrParams;
|
||||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||||
import org.apache.solr.common.util.NamedList;
|
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.servlet.SolrDispatchFilter;
|
||||||
import org.apache.solr.update.DirectUpdateHandler2;
|
import org.apache.solr.update.DirectUpdateHandler2;
|
||||||
import org.apache.solr.util.DefaultSolrThreadFactory;
|
import org.apache.solr.util.DefaultSolrThreadFactory;
|
||||||
import org.apache.zookeeper.data.Stat;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
@ -199,7 +195,6 @@ public class CollectionsAPIDistributedZkTest extends AbstractFullDistribZkTestBa
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doTest() throws Exception {
|
public void doTest() throws Exception {
|
||||||
testPropertyParamsForCreate();
|
|
||||||
testNodesUsedByCreate();
|
testNodesUsedByCreate();
|
||||||
testCollectionsAPI();
|
testCollectionsAPI();
|
||||||
testCollectionsAPIAddRemoveStress();
|
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 {
|
private void deleteCollectionRemovesStaleZkCollectionsNode() throws Exception {
|
||||||
|
|
||||||
|
@ -18,17 +18,26 @@ package org.apache.solr.cloud;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import org.apache.lucene.util.LuceneTestCase;
|
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.SolrServerException;
|
||||||
|
import org.apache.solr.client.solrj.impl.HttpSolrServer;
|
||||||
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
|
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.CollectionAdminResponse;
|
||||||
|
import org.apache.solr.client.solrj.response.CoreAdminResponse;
|
||||||
import org.apache.solr.common.cloud.ClusterState;
|
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.Slice;
|
||||||
import org.apache.solr.common.cloud.ZkStateReader;
|
import org.apache.solr.common.cloud.ZkStateReader;
|
||||||
|
import org.apache.solr.common.params.CoreAdminParams;
|
||||||
import org.apache.solr.common.util.NamedList;
|
import org.apache.solr.common.util.NamedList;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
@LuceneTestCase.Slow
|
@LuceneTestCase.Slow
|
||||||
public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
|
public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
|
||||||
@ -40,6 +49,7 @@ public class CollectionsAPISolrJTests extends AbstractFullDistribZkTestBase {
|
|||||||
testReloadCollection();
|
testReloadCollection();
|
||||||
testCreateAndDeleteAlias();
|
testCreateAndDeleteAlias();
|
||||||
testSplitShard();
|
testSplitShard();
|
||||||
|
testCreateCollectionWithPropertyParam();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tearDown() throws Exception {
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user