You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by no...@apache.org on 2009/08/27 09:19:11 UTC

svn commit: r808305 - in /lucene/solr/trunk/src/java/org/apache/solr/handler: ReplicationHandler.java SnapPuller.java

Author: noble
Date: Thu Aug 27 07:19:11 2009
New Revision: 808305

URL: http://svn.apache.org/viewvc?rev=808305&view=rev
Log:
SOLR-1355 add an enable value in master/slave configuration

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
    lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=808305&r1=808304&r2=808305&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java Thu Aug 27 07:19:11 2009
@@ -171,7 +171,7 @@
     } else if (command.equals(CMD_SHOW_COMMITS)) {
       rsp.add(CMD_SHOW_COMMITS, getCommits());
     } else if (command.equals(CMD_DETAILS)) {
-      rsp.add(CMD_DETAILS, getReplicationDetails());
+      rsp.add(CMD_DETAILS, getReplicationDetails(solrParams.getBool("slave",true)));
       RequestHandlerUtils.addExperimentalFormatWarning(rsp);
     } else if (CMD_ENABLE_REPL.equalsIgnoreCase(command)) {
       replicationEnabled.set(true);
@@ -523,8 +523,9 @@
 
   /**
    * Used for showing statistics and progress information.
+   * @param showSlaveDetails
    */
-  NamedList<Object> getReplicationDetails() {
+  private NamedList<Object> getReplicationDetails(boolean showSlaveDetails) {
     String timeLastReplicated = "", confFilesReplicated = "", confFilesReplicatedTime = "", timesIndexReplicated = "", timesConfigReplicated = "";
     NamedList<Object> details = new SimpleOrderedMap<Object>();
     NamedList<Object> master = new SimpleOrderedMap<Object>();
@@ -563,7 +564,7 @@
     }
 
     SnapPuller snapPuller = tempSnapPuller;
-    if (snapPuller != null) {
+    if (showSlaveDetails && snapPuller != null) {
       try {
         Properties props = new Properties();
         File f = new File(core.getDataDir(), SnapPuller.REPLICATION_PROPERTIES);
@@ -586,10 +587,14 @@
         IOUtils.closeQuietly(inFile);
       }
       try {
-        NamedList nl = snapPuller.getCommandResponse(CMD_DETAILS);
+        NamedList<String> command = new NamedList<String>();
+        command.add(COMMAND,CMD_DETAILS);
+        command.add("slave","false");
+        NamedList nl = snapPuller.getCommandResponse(command);
         slave.add("masterDetails", nl.get(CMD_DETAILS));
-      } catch (IOException e) {
+      } catch (Exception e) {
         LOG.warn("Exception while invoking a 'details' method on master ", e);
+        slave.add(ERR_STATUS,"invalid_master");
       }
       slave.add(MASTER_URL, snapPuller.getMasterUrl());
       if (snapPuller.getPollInterval() != null) {
@@ -706,7 +711,7 @@
     }
     if(isMaster)
       details.add("master", master);
-    if(isSlave)
+    if(isSlave && showSlaveDetails)
       details.add("slave", slave);
     NamedList snapshotStats = snapShootDetails;
     if (snapshotStats != null)
@@ -730,12 +735,14 @@
     registerFileStreamResponseWriter();
     registerCloseHook();
     NamedList slave = (NamedList) initArgs.get("slave");
-    if (slave != null) {
+    boolean enableSlave = slave != null && (null == slave.get("enable") || "true".equals(slave.get("enable")));
+    if (enableSlave) {
       tempSnapPuller = snapPuller = new SnapPuller(slave, this, core);
       isSlave = true;
     }
     NamedList master = (NamedList) initArgs.get("master");
-    if (master != null) {
+    boolean enableMaster = master != null && (null == master.get("enable") || "true".equals(master.get("enable")));
+    if (enableMaster) {
       includeConfFiles = (String) master.get(CONF_FILES);
       if (includeConfFiles != null && includeConfFiles.trim().length() > 0) {
         List<String> files = Arrays.asList(includeConfFiles.split(","));

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java?rev=808305&r1=808304&r2=808305&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java Thu Aug 27 07:19:11 2009
@@ -180,9 +180,11 @@
     return getNamedListResponse(post);
   }
 
-  NamedList getCommandResponse(String cmd) throws IOException {
+  NamedList getCommandResponse(NamedList<String> commands) throws IOException {
     PostMethod post = new PostMethod(masterUrl);
-    post.addParameter(COMMAND, cmd);
+    for (Map.Entry<String, String> c : commands) {
+      post.addParameter(c.getKey(),c.getValue());
+    } 
     post.addParameter("wt", "javabin");
     return getNamedListResponse(post);
   }