mirror of https://github.com/apache/lucene.git
SOLR-1015 -- Incomplete information in replication admin page and http command response when server is both master and slave i.e. when server is a repeater
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@743729 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
71e622d422
commit
1371f5b70b
|
@ -258,6 +258,9 @@ Bug Fixes
|
|||
|
||||
30. SOLR-1016: HTTP 503 error changes 500 in SolrCore (koji)
|
||||
|
||||
31. SOLR-1015: Incomplete information in replication admin page and http command response when server
|
||||
is both master and slave i.e. when server is a repeater (Akshay Ukey via shalin)
|
||||
|
||||
|
||||
Other Changes
|
||||
----------------------
|
||||
|
|
|
@ -82,6 +82,8 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
|
||||
private boolean replicateOnCommit = false;
|
||||
|
||||
private boolean replicateOnStart = false;
|
||||
|
||||
private int numTimesReplicated = 0;
|
||||
|
||||
private final Map<String, FileInfo> confFileInfoCache = new HashMap<String, FileInfo>();
|
||||
|
@ -139,7 +141,8 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
} else if (command.equals(CMD_SHOW_COMMITS)) {
|
||||
rsp.add(CMD_SHOW_COMMITS, getCommits());
|
||||
} else if (command.equals(CMD_DETAILS)) {
|
||||
getReplicationDetails(rsp);
|
||||
rsp.add(CMD_DETAILS, getReplicationDetails());
|
||||
RequestHandlerUtils.addExperimentalFormatWarning(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -443,11 +446,12 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
if (core != null) {
|
||||
list.add("indexSize", readableSize(getIndexSize()));
|
||||
long[] versionGen = getIndexVersion();
|
||||
list.add(CMD_INDEX_VERSION, versionGen[0]);
|
||||
list.add("indexVersion", versionGen[0]);
|
||||
list.add(GENERATION, versionGen[1]);
|
||||
|
||||
list.add("indexPath", core.getIndexDir());
|
||||
list.add("isMaster", String.valueOf(isMaster));
|
||||
list.add("isSlave", String.valueOf(isSlave));
|
||||
|
||||
SnapPuller snapPuller = tempSnapPuller;
|
||||
if (snapPuller != null) {
|
||||
|
@ -461,10 +465,16 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
if (isMaster) {
|
||||
if (includeConfFiles != null)
|
||||
list.add("confFilesToReplicate", includeConfFiles);
|
||||
String replicateAfterString="";
|
||||
if (replicateOnCommit)
|
||||
list.add(REPLICATE_AFTER, "commit");
|
||||
replicateAfterString += "commit, ";
|
||||
if (replicateOnOptimize)
|
||||
list.add(REPLICATE_AFTER, "optimize");
|
||||
replicateAfterString += "optimize, ";
|
||||
if(replicateOnStart)
|
||||
replicateAfterString += "startup, ";
|
||||
if(replicateAfterString.lastIndexOf(',') > -1)
|
||||
replicateAfterString = replicateAfterString.substring(0, replicateAfterString.lastIndexOf(','));
|
||||
list.add(REPLICATE_AFTER, replicateAfterString);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
@ -473,23 +483,44 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
/**
|
||||
* Used for showing statistics and progress information.
|
||||
*/
|
||||
void getReplicationDetails(SolrQueryResponse resp) {
|
||||
NamedList<Object> getReplicationDetails() {
|
||||
String timeLastReplicated = "", confFilesReplicated = "", confFilesReplicatedTime = "", timesIndexReplicated = "", timesConfigReplicated = "";
|
||||
NamedList<Object> details = new SimpleOrderedMap<Object>();
|
||||
NamedList<Object> master = new SimpleOrderedMap<Object>();
|
||||
NamedList<Object> slave = new SimpleOrderedMap<Object>();
|
||||
FileInputStream inFile = null;
|
||||
|
||||
details.add("indexSize", readableSize(getIndexSize()));
|
||||
details.add("indexPath", core.getIndexDir());
|
||||
details.add(CMD_SHOW_COMMITS, getCommits());
|
||||
details.add("isMaster", String.valueOf(isMaster));
|
||||
details.add("isSlave", String.valueOf(isSlave));
|
||||
long[] versionAndGeneration = getIndexVersion();
|
||||
details.add(CMD_INDEX_VERSION, versionAndGeneration[0]);
|
||||
details.add("indexVersion", versionAndGeneration[0]);
|
||||
details.add(GENERATION, versionAndGeneration[1]);
|
||||
|
||||
IndexCommit commit = indexCommitPoint; // make a copy so it won't change
|
||||
if (isMaster && commit != null) {
|
||||
details.add("replicatable" + CMD_INDEX_VERSION, commit.getVersion());
|
||||
details.add("replicatable" + GENERATION, commit.getGeneration());
|
||||
|
||||
if (isMaster) {
|
||||
if (includeConfFiles != null)
|
||||
master.add(CONF_FILES, includeConfFiles);
|
||||
String replicateAfterString="";
|
||||
if (replicateOnCommit)
|
||||
replicateAfterString += "commit, ";
|
||||
if (replicateOnOptimize)
|
||||
replicateAfterString += "optimize, ";
|
||||
if(replicateOnStart)
|
||||
replicateAfterString += "startup, ";
|
||||
if(replicateAfterString.lastIndexOf(',') > -1)
|
||||
replicateAfterString = replicateAfterString.substring(0, replicateAfterString.lastIndexOf(','));
|
||||
master.add(REPLICATE_AFTER, replicateAfterString);
|
||||
}
|
||||
|
||||
if (isMaster && commit != null) {
|
||||
master.add("replicatableIndexVersion", commit.getVersion());
|
||||
master.add("replicatableGeneration", commit.getGeneration());
|
||||
}
|
||||
|
||||
SnapPuller snapPuller = tempSnapPuller;
|
||||
if (snapPuller != null) {
|
||||
try {
|
||||
|
@ -515,36 +546,36 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
}
|
||||
try {
|
||||
NamedList nl = snapPuller.getCommandResponse(CMD_DETAILS);
|
||||
details.add("masterDetails", nl.get(CMD_DETAILS));
|
||||
slave.add("masterDetails", nl.get(CMD_DETAILS));
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Exception while invoking a 'details' method on master ", e);
|
||||
}
|
||||
details.add(MASTER_URL, snapPuller.getMasterUrl());
|
||||
slave.add(MASTER_URL, snapPuller.getMasterUrl());
|
||||
if (snapPuller.getPollInterval() != null) {
|
||||
details.add(SnapPuller.POLL_INTERVAL, snapPuller.getPollInterval());
|
||||
slave.add(SnapPuller.POLL_INTERVAL, snapPuller.getPollInterval());
|
||||
}
|
||||
if (snapPuller.getNextScheduledExecTime() != null && !isPollingDisabled()) {
|
||||
Date d = new Date(snapPuller.getNextScheduledExecTime());
|
||||
details.add("nextExecutionAt", d.toString());
|
||||
slave.add("nextExecutionAt", d.toString());
|
||||
} else if (isPollingDisabled()) {
|
||||
details.add("nextExecutionAt", "Polling disabled");
|
||||
slave.add("nextExecutionAt", "Polling disabled");
|
||||
} else
|
||||
details.add("nextExecutionAt", "");
|
||||
slave.add("nextExecutionAt", "");
|
||||
|
||||
if (timeLastReplicated != null && timeLastReplicated.length() > 0) {
|
||||
Date d = new Date(Long.valueOf(timeLastReplicated));
|
||||
details.add("indexReplicatedAt", d.toString());
|
||||
slave.add("indexReplicatedAt", d.toString());
|
||||
} else {
|
||||
details.add("indexReplicatedAt", "");
|
||||
slave.add("indexReplicatedAt", "");
|
||||
}
|
||||
details.add("timesIndexReplicated", timesIndexReplicated);
|
||||
details.add("confFilesReplicated", confFilesReplicated);
|
||||
details.add("timesConfigReplicated", timesConfigReplicated);
|
||||
slave.add("timesIndexReplicated", timesIndexReplicated);
|
||||
slave.add("confFilesReplicated", confFilesReplicated);
|
||||
slave.add("timesConfigReplicated", timesConfigReplicated);
|
||||
if (confFilesReplicatedTime != null && confFilesReplicatedTime.length() > 0) {
|
||||
Date d = new Date(Long.valueOf(confFilesReplicatedTime));
|
||||
details.add("confFilesReplicatedAt", d.toString());
|
||||
slave.add("confFilesReplicatedAt", d.toString());
|
||||
} else {
|
||||
details.add("confFilesReplicatedAt", confFilesReplicatedTime);
|
||||
slave.add("confFilesReplicatedAt", confFilesReplicatedTime);
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -563,9 +594,9 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
bytesToDownload += (Long) file.get(SIZE);
|
||||
}
|
||||
|
||||
details.add("filesToDownload", filesToDownload.toString());
|
||||
details.add("numFilesToDownload", String.valueOf(filesToDownload.size()));
|
||||
details.add("bytesToDownload", readableSize(bytesToDownload));
|
||||
slave.add("filesToDownload", filesToDownload.toString());
|
||||
slave.add("numFilesToDownload", String.valueOf(filesToDownload.size()));
|
||||
slave.add("bytesToDownload", readableSize(bytesToDownload));
|
||||
|
||||
long bytesDownloaded = 0;
|
||||
List<String> filesDownloaded = new ArrayList<String>();
|
||||
|
@ -580,8 +611,8 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
bytesDownloaded += (Long) file.get(SIZE);
|
||||
}
|
||||
|
||||
details.add("filesDownloaded", filesDownloaded.toString());
|
||||
details.add("numFilesDownloaded", String.valueOf(filesDownloaded.size()));
|
||||
slave.add("filesDownloaded", filesDownloaded.toString());
|
||||
slave.add("numFilesDownloaded", String.valueOf(filesDownloaded.size()));
|
||||
|
||||
Map<String, Object> currentFile = snapPuller.getCurrentFile();
|
||||
String currFile = null;
|
||||
|
@ -605,9 +636,9 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
timeElapsed = (System.currentTimeMillis() - snapPuller.getReplicationStartTime()) / 1000;
|
||||
}
|
||||
if (replicationStartTime != null) {
|
||||
details.add("replicationStartTime", replicationStartTime.toString());
|
||||
slave.add("replicationStartTime", replicationStartTime.toString());
|
||||
}
|
||||
details.add("timeElapsed", String.valueOf(timeElapsed) + "s");
|
||||
slave.add("timeElapsed", String.valueOf(timeElapsed) + "s");
|
||||
|
||||
if (bytesDownloaded > 0)
|
||||
estimatedTimeRemaining = ((bytesToDownload - bytesDownloaded) * timeElapsed) / bytesDownloaded;
|
||||
|
@ -618,31 +649,25 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
if (timeElapsed > 0)
|
||||
downloadSpeed = (bytesDownloaded / timeElapsed);
|
||||
if (currFile != null)
|
||||
details.add("currentFile", currFile);
|
||||
details.add("currentFileSize", readableSize(currFileSize));
|
||||
details.add("currentFileSizeDownloaded", readableSize(currFileSizeDownloaded));
|
||||
details.add("currentFileSizePercent", String.valueOf(percentDownloaded));
|
||||
details.add("bytesDownloaded", readableSize(bytesDownloaded));
|
||||
details.add("totalPercent", String.valueOf(totalPercent));
|
||||
details.add("timeRemaining", String.valueOf(estimatedTimeRemaining) + "s");
|
||||
details.add("downloadSpeed", readableSize(downloadSpeed));
|
||||
details.add("isPollingDisabled", String.valueOf(isPollingDisabled()));
|
||||
details.add("isReplicating", String.valueOf(isReplicating()));
|
||||
slave.add("currentFile", currFile);
|
||||
slave.add("currentFileSize", readableSize(currFileSize));
|
||||
slave.add("currentFileSizeDownloaded", readableSize(currFileSizeDownloaded));
|
||||
slave.add("currentFileSizePercent", String.valueOf(percentDownloaded));
|
||||
slave.add("bytesDownloaded", readableSize(bytesDownloaded));
|
||||
slave.add("totalPercent", String.valueOf(totalPercent));
|
||||
slave.add("timeRemaining", String.valueOf(estimatedTimeRemaining) + "s");
|
||||
slave.add("downloadSpeed", readableSize(downloadSpeed));
|
||||
slave.add("isPollingDisabled", String.valueOf(isPollingDisabled()));
|
||||
slave.add("isReplicating", String.valueOf(isReplicating()));
|
||||
} catch (Exception e) {
|
||||
LOG.error("Exception while writing details: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
if (isMaster) {
|
||||
if (includeConfFiles != null)
|
||||
details.add(CONF_FILES, includeConfFiles);
|
||||
if (replicateOnCommit)
|
||||
details.add(REPLICATE_AFTER, "commit");
|
||||
if (replicateOnOptimize)
|
||||
details.add(REPLICATE_AFTER, "optimize");
|
||||
}
|
||||
|
||||
resp.add(CMD_DETAILS, details);
|
||||
if(isMaster)
|
||||
details.add("master", master);
|
||||
if(isSlave)
|
||||
details.add("slave", slave);
|
||||
return details;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -683,6 +708,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
core.getUpdateHandler().registerCommitCallback(getEventListener(snapshotOnCommit, replicateOnCommit));
|
||||
}
|
||||
if (replicateAfter.contains("startup")) {
|
||||
replicateOnStart = true;
|
||||
RefCounted<SolrIndexSearcher> s = core.getNewestSearcher(false);
|
||||
try {
|
||||
if (core.getUpdateHandler() instanceof DirectUpdateHandler2) {
|
||||
|
|
|
@ -55,12 +55,11 @@ public NamedList executeCommand(String command, SolrCore core, SolrRequestHandle
|
|||
%>
|
||||
|
||||
<%
|
||||
|
||||
final SolrRequestHandler rh = core.getRequestHandler("/replication");
|
||||
NamedList namedlist = executeCommand("details",core,rh);
|
||||
NamedList detailsMap = (NamedList)namedlist.get("details");
|
||||
|
||||
if("false".equals((String)detailsMap.get("isMaster"))){
|
||||
if(detailsMap != null)
|
||||
if("true".equals((String)detailsMap.get("isSlave"))){
|
||||
%>
|
||||
<meta http-equiv="refresh" content="2"/>
|
||||
<%}%>
|
||||
|
@ -70,11 +69,16 @@ if("false".equals((String)detailsMap.get("isMaster"))){
|
|||
<body>
|
||||
<a href=".."><img border="0" align="right" height="78" width="142" src="../solr_small.png" alt="Solr"></a>
|
||||
<h1>Solr replication (<%= collectionName %>)
|
||||
|
||||
<%
|
||||
if("true".equals((String)detailsMap.get("isMaster")))
|
||||
out.println(" Master");
|
||||
else
|
||||
out.println(" Slave");
|
||||
if(detailsMap != null){
|
||||
if( "true".equals(detailsMap.get("isMaster")) && "true".equals(detailsMap.get("isSlave")))
|
||||
out.println(" Master & Slave");
|
||||
else if("true".equals(detailsMap.get("isMaster")))
|
||||
out.println(" Master");
|
||||
else if("true".equals(detailsMap.get("isSlave")))
|
||||
out.println(" Slave");
|
||||
}
|
||||
%></h1>
|
||||
|
||||
<%= hostname %>:<%= port %><br/>
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
|
||||
|
||||
<%-- do a verbatim include so we can use the local vars --%>
|
||||
<%@include file="header.jsp"
|
||||
%>
|
||||
<%@include file="header.jsp"%>
|
||||
|
||||
<br clear="all">
|
||||
<table>
|
||||
|
@ -31,30 +30,36 @@
|
|||
|
||||
%>
|
||||
<%
|
||||
if ("false".equals(detailsMap.get("isMaster")))
|
||||
if (detailsMap != null) {%>
|
||||
NamedList slave = null, master = null;
|
||||
if (detailsMap != null)
|
||||
if ("true".equals(detailsMap.get("isSlave")))
|
||||
if(detailsMap.get("slave") != null){
|
||||
slave = (NamedList)detailsMap.get("slave");%>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Master</strong>
|
||||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println((String) detailsMap.get("masterUrl"));
|
||||
out.println((String) slave.get("masterUrl"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<%
|
||||
NamedList nl = (NamedList) detailsMap.get("masterDetails");
|
||||
NamedList nl = (NamedList) slave.get("masterDetails");
|
||||
if (nl != null) {
|
||||
long masterVersion = (Long) nl.get("indexversion");
|
||||
long masterVersion = (Long) nl.get("indexVersion");
|
||||
long masterGeneration = (Long) nl.get("generation");
|
||||
long replicatableMasterVer = 0, replicatableMasterGen = 0;
|
||||
if (nl.get("replicatableindexversion") != null)
|
||||
replicatableMasterVer = (Long) nl.get("replicatableindexversion");
|
||||
if (nl.get("replicatablegeneration") != null)
|
||||
replicatableMasterGen = (Long) nl.get("replicatablegeneration");
|
||||
nl = (NamedList) nl.get("master");
|
||||
if(nl != null){
|
||||
if (nl.get("replicatableindexversion") != null)
|
||||
replicatableMasterVer = (Long) nl.get("replicatableindexversion");
|
||||
if (nl.get("replicatablegeneration") != null)
|
||||
replicatableMasterGen = (Long) nl.get("replicatablegeneration");
|
||||
}
|
||||
%>
|
||||
<td>
|
||||
</td>
|
||||
|
@ -75,7 +80,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println((String) detailsMap.get("pollInterval"));
|
||||
out.println((String) slave.get("pollInterval"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -88,7 +93,7 @@
|
|||
<td>
|
||||
<%
|
||||
if (detailsMap != null)
|
||||
out.println("Index Version: " + detailsMap.get("indexversion") + ", Generation: " + detailsMap.get("generation"));
|
||||
out.println("Index Version: " + detailsMap.get("indexVersion") + ", Generation: " + detailsMap.get("generation"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -113,34 +118,36 @@
|
|||
</tr>
|
||||
|
||||
<%
|
||||
if ("true".equals(detailsMap.get("isMaster")))
|
||||
if (detailsMap != null) {
|
||||
if (detailsMap != null)
|
||||
if ("true".equals(detailsMap.get("isMaster")))
|
||||
if(detailsMap.get("master") != null){
|
||||
master = (NamedList) detailsMap.get("master");
|
||||
%>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<%out.println("Config Files To Replicate: " + detailsMap.get("confFiles"));%>
|
||||
<%out.println("Config Files To Replicate: " + master.get("confFiles"));%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<%out.println("Trigger Replication On: " + detailsMap.get("replicateAfter")); %>
|
||||
<%out.println("Trigger Replication On: " + master.get("replicateAfter")); %>
|
||||
</td>
|
||||
</tr>
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
if ("false".equals(detailsMap.get("isMaster")))
|
||||
if (detailsMap != null) {%>
|
||||
if ("true".equals(detailsMap.get("isSlave")))
|
||||
if (slave != null) {%>
|
||||
<tr>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Times Replicated Since Startup: " + detailsMap.get("timesIndexReplicated"));
|
||||
out.println("Times Replicated Since Startup: " + slave.get("timesIndexReplicated"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -150,7 +157,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Previous Replication Done At: " + detailsMap.get("indexReplicatedAt"));
|
||||
out.println("Previous Replication Done At: " + slave.get("indexReplicatedAt"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -160,7 +167,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Config Files Replicated At: " + detailsMap.get("confFilesReplicatedAt"));
|
||||
out.println("Config Files Replicated At: " + slave.get("confFilesReplicatedAt"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -170,7 +177,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Config Files Replicated: " + detailsMap.get("confFilesReplicated"));
|
||||
out.println("Config Files Replicated: " + slave.get("confFilesReplicated"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -180,7 +187,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Times Config Files Replicated Since Startup: " + detailsMap.get("timesConfigReplicated"));
|
||||
out.println("Times Config Files Replicated Since Startup: " + slave.get("timesConfigReplicated"));
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -190,27 +197,31 @@
|
|||
</td>
|
||||
<td>
|
||||
<%
|
||||
if (detailsMap.get("nextExecutionAt") != null)
|
||||
if (detailsMap.get("nextExecutionAt") != "")
|
||||
out.println("Next Replication Cycle At: " + detailsMap.get("nextExecutionAt"));
|
||||
else if ("true".equals(detailsMap.get("isPollingDisabled")))
|
||||
if (slave.get("nextExecutionAt") != null)
|
||||
if (slave.get("nextExecutionAt") != "")
|
||||
out.println("Next Replication Cycle At: " + slave.get("nextExecutionAt"));
|
||||
else if ("true".equals(slave.get("isPollingDisabled")))
|
||||
out.println("Next Replication Cycle At: Polling disabled.");
|
||||
else {
|
||||
NamedList nl1 = (NamedList) detailsMap.get("masterDetails");
|
||||
out.println("Next Replication Cycle At: After " + nl1.get("replicateAfter") + " on master.");
|
||||
NamedList nl1 = (NamedList) slave.get("masterDetails");
|
||||
if(nl1 != null){
|
||||
NamedList nl2 = (NamedList) nl1.get("master");
|
||||
if(nl2 != null)
|
||||
out.println("Next Replication Cycle At: After " + nl2.get("replicateAfter") + " on master.");
|
||||
}
|
||||
}
|
||||
%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%
|
||||
if ("true".equals(detailsMap.get("isReplicating"))) {
|
||||
if ("true".equals(slave.get("isReplicating"))) {
|
||||
%>
|
||||
<tr>
|
||||
<td><strong>Current Replication Status</strong>
|
||||
|
||||
<td>
|
||||
<%out.println("Start Time: " + detailsMap.get("replicationStartTime"));%>
|
||||
<%out.println("Start Time: " + slave.get("replicationStartTime"));%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -218,7 +229,7 @@
|
|||
<td></td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Files Downloaded: " + detailsMap.get("numFilesDownloaded") + " / " + detailsMap.get("numFilesToDownload"));%>
|
||||
out.println("Files Downloaded: " + slave.get("numFilesDownloaded") + " / " + slave.get("numFilesToDownload"));%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -226,7 +237,7 @@
|
|||
<td></td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Downloaded: " + detailsMap.get("bytesDownloaded") + " / " + detailsMap.get("bytesToDownload") + " [" + detailsMap.get("totalPercent") + "%]");%>
|
||||
out.println("Downloaded: " + slave.get("bytesDownloaded") + " / " + slave.get("bytesToDownload") + " [" + slave.get("totalPercent") + "%]");%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -234,7 +245,7 @@
|
|||
<td></td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Downloading File: " + detailsMap.get("currentFile") + ", Downloaded: " + detailsMap.get("currentFileSizeDownloaded") + " / " + detailsMap.get("currentFileSize") + " [" + detailsMap.get("currentFileSizePercent") + "%]");%>
|
||||
out.println("Downloading File: " + slave.get("currentFile") + ", Downloaded: " + slave.get("currentFileSizeDownloaded") + " / " + slave.get("currentFileSize") + " [" + slave.get("currentFileSizePercent") + "%]");%>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -242,7 +253,7 @@
|
|||
<td></td>
|
||||
<td>
|
||||
<%
|
||||
out.println("Time Elapsed: " + detailsMap.get("timeElapsed") + ", Estimated Time Remaining: " + detailsMap.get("timeRemaining") + ", Speed: " + detailsMap.get("downloadSpeed") + "/s");%>
|
||||
out.println("Time Elapsed: " + slave.get("timeElapsed") + ", Estimated Time Remaining: " + slave.get("timeRemaining") + ", Speed: " + slave.get("downloadSpeed") + "/s");%>
|
||||
</td>
|
||||
</tr>
|
||||
<%}%>
|
||||
|
@ -257,7 +268,8 @@
|
|||
executeCommand("disablepoll", core, rh);
|
||||
else if (pollVal.equals("enable"))
|
||||
executeCommand("enablepoll", core, rh);
|
||||
if ("false".equals(detailsMap.get("isPollingDisabled"))) {
|
||||
if(slave != null)
|
||||
if ("false".equals(slave.get("isPollingDisabled"))) {
|
||||
%>
|
||||
|
||||
<form name=polling method="POST" action="./index.jsp" accept-charset="UTF-8">
|
||||
|
@ -267,7 +279,8 @@
|
|||
|
||||
<%}%>
|
||||
<%
|
||||
if ("true".equals(detailsMap.get("isPollingDisabled"))) {
|
||||
if(slave != null)
|
||||
if ("true".equals(slave.get("isPollingDisabled"))) {
|
||||
%>
|
||||
|
||||
<form name=polling method="POST" action="./index.jsp" accept-charset="UTF-8">
|
||||
|
@ -289,7 +302,8 @@
|
|||
<input name="replicateButton" class="stdbutton" type="submit" value="Replicate Now">
|
||||
</form>
|
||||
<%
|
||||
if ("true".equals(detailsMap.get("isReplicating"))) {
|
||||
if(slave != null)
|
||||
if ("true".equals(slave.get("isReplicating"))) {
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
document["replicate"].replicateButton.disabled = true;
|
||||
|
|
Loading…
Reference in New Issue