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/16 23:02:40 UTC
svn commit: r1245202 - in /lucene/dev/trunk/solr: cloud-dev/
core/src/java/org/apache/solr/cloud/ core/src/test/org/apache/solr/cloud/
solrj/src/java/org/apache/solr/client/solrj/request/
solrj/src/java/org/apache/solr/common/params/ solrj/src/test-fil...
Author: markrmiller
Date: Thu Feb 16 22:02:39 2012
New Revision: 1245202
URL: http://svn.apache.org/viewvc?rev=1245202&view=rev
Log:
SOLR-3138: Add node roles to core admin handler 'create core' and solrj.
Modified:
lucene/dev/trunk/solr/cloud-dev/solrcloud-start.sh
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/CloudDescriptor.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/params/CoreAdminParams.java
lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/solr.xml
Modified: lucene/dev/trunk/solr/cloud-dev/solrcloud-start.sh
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/cloud-dev/solrcloud-start.sh?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/cloud-dev/solrcloud-start.sh (original)
+++ lucene/dev/trunk/solr/cloud-dev/solrcloud-start.sh Thu Feb 16 22:02:39 2012
@@ -22,7 +22,7 @@ cp -r -f example example4
cp -r -f example example5
cp -r -f example example6
-java -classpath lib/*:dist/*:build/lucene-libs/* org.apache.solr.cloud.ZkController 127.0.0.1:9983 example/solr 8983 example/solr/conf conf1
+java -classpath lib/*:dist/*:build/lucene-libs/* org.apache.solr.cloud.ZkController 127.0.0.1:9983 8983 example/solr/conf conf1 example/solr
cd example
java -DzkRun -DnumShards=2 -DSTOP.PORT=7983 -DSTOP.KEY=key -jar start.jar 1>example.log 2>&1 &
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/CloudDescriptor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/CloudDescriptor.java?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/CloudDescriptor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/CloudDescriptor.java Thu Feb 16 22:02:39 2012
@@ -23,7 +23,7 @@ public class CloudDescriptor {
private String shardId;
private String collectionName;
private SolrParams params;
- private String roles = "";
+ private String roles = null;
private Integer numShards;
public void setShardId(String shardId) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Thu Feb 16 22:02:39 2012
@@ -110,15 +110,21 @@ public final class ZkController {
// start up a tmp zk server first
String zkServerAddress = args[0];
- String solrHome = args[1];
- String solrPort = args[2];
+ String solrPort = args[1];
- String confDir = args[3];
- String confName = args[4];
+ String confDir = args[2];
+ String confName = args[3];
- SolrZkServer zkServer = new SolrZkServer("true", null, solrHome, solrPort);
- zkServer.parseConfig();
- zkServer.start();
+ String solrHome = null;
+ if (args.length == 5) {
+ solrHome = args[4];
+ }
+ SolrZkServer zkServer = null;
+ if (solrHome != null) {
+ zkServer = new SolrZkServer("true", null, solrHome, solrPort);
+ zkServer.parseConfig();
+ zkServer.start();
+ }
SolrZkClient zkClient = new SolrZkClient(zkServerAddress, 15000, 5000,
new OnReconnect() {
@@ -127,8 +133,9 @@ public final class ZkController {
}});
uploadConfigDir(zkClient, new File(confDir), confName);
-
- zkServer.stop();
+ if (solrHome != null) {
+ zkServer.stop();
+ }
}
/**
@@ -861,6 +868,9 @@ public final class ZkController {
private void publishState(CoreDescriptor cd, String shardZkNodeName, String coreName,
Map<String,String> props) {
CloudDescriptor cloudDesc = cd.getCloudDescriptor();
+ if (cloudDesc.getRoles() != null) {
+ props.put(ZkStateReader.ROLES_PROP, cloudDesc.getRoles());
+ }
if (cloudDesc.getShardId() == null && needsToBeAssignedShardId(cd, zkStateReader.getCloudState(), shardZkNodeName)) {
// publish with no shard id so we are assigned one, and then look for it
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Thu Feb 16 22:02:39 2012
@@ -33,6 +33,8 @@ import org.apache.solr.client.solrj.impl
import org.apache.solr.client.solrj.request.CoreAdminRequest.Create;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.cloud.Slice;
+import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
@@ -302,7 +304,13 @@ public class BasicDistributedZkTest exte
assertNotSame(oneDocs, twoDocs);
assertEquals(3, allDocs);
-
+ // we added a role of none on these creates - check for it
+ ZkStateReader zkStateReader = solrj.getZkStateReader();
+ zkStateReader.updateCloudState(true);
+ Map<String,Slice> slices = zkStateReader.getCloudState().getSlices(oneInstanceCollection2);
+ assertNotNull(slices);
+ String roles = slices.get("shard1").getShards().values().iterator().next().get(ZkStateReader.ROLES_PROP);
+ assertEquals("none", roles);
}
private void testSearchByCollectionName() throws SolrServerException {
@@ -375,6 +383,7 @@ public class BasicDistributedZkTest exte
CommonsHttpSolrServer server = new CommonsHttpSolrServer(
baseUrl);
Create createCmd = new Create();
+ createCmd.setRoles("none");
createCmd.setCoreName(collection + num);
createCmd.setCollection(collection);
createCmd.setNumShards(2);
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java Thu Feb 16 22:02:39 2012
@@ -53,6 +53,7 @@ public class CoreAdminRequest extends So
protected String collection;
private Integer numShards;
private String shardId;
+ private String roles;
public Create() {
action = CoreAdminAction.CREATE;
@@ -65,6 +66,7 @@ public class CoreAdminRequest extends So
public void setCollection(String collection) { this.collection = collection; }
public void setNumShards(int numShards) {this.numShards = numShards;}
public void setShardId(String shardId) {this.shardId = shardId;}
+ public void setRoles(String roles) {this.roles = roles;}
public String getInstanceDir() { return instanceDir; }
public String getSchemaName() { return schemaName; }
@@ -72,6 +74,7 @@ public class CoreAdminRequest extends So
public String getDataDir() { return dataDir; }
public String getCollection() { return collection; }
public String getShardId() { return shardId; }
+ public String getRoles() { return roles; }
@Override
public SolrParams getParams() {
@@ -104,6 +107,9 @@ public class CoreAdminRequest extends So
if (shardId != null) {
params.set( ZkStateReader.SHARD_ID_PROP, shardId);
}
+ if (roles != null) {
+ params.set( CoreAdminParams.ROLES, roles);
+ }
return params;
}
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/params/CoreAdminParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/params/CoreAdminParams.java?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/params/CoreAdminParams.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/params/CoreAdminParams.java Thu Feb 16 22:02:39 2012
@@ -69,12 +69,15 @@ public interface CoreAdminParams
/** The shard id in solr cloud */
public final static String SHARD = "shard";
+ public static final String ROLES = "roles";
+
/** Prefix for core property name=value pair **/
public final static String PROPERTY_PREFIX = "property.";
/** If you unload a core, delete the index too */
public final static String DELETE_INDEX = "deleteIndex";
+
public enum CoreAdminAction {
STATUS,
LOAD,
Modified: lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/solr.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/solr.xml?rev=1245202&r1=1245201&r2=1245202&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/solr.xml (original)
+++ lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/solr.xml Thu Feb 16 22:02:39 2012
@@ -31,11 +31,11 @@
If 'null' (or absent), cores will not be manageable via REST
-->
<cores adminPath="/admin/cores" defaultCoreName="core0" host="127.0.0.1" hostPort="${hostPort:8983}" hostContext="solr" zkClientTimeout="8000">
- <core name="core0" instanceDir="./">
+ <core name="core0" instanceDir="${theInstanceDir:./}" collection="${collection:acollection}">
<property name="version" value="3.5"/>
<property name="l10n" value="EN"/>
<property name="ctlField" value="core0"/>
- <property name="comment" value="This is a sample"/>
+ <property name="comment" value="This is a sample with a sys prop ${sysprop:default}"/>
</core>
<core name="core1" instanceDir="./">
<property name="version" value="2.4"/>