70be3889746884692aa49939833d624ddd432bf0Mark Andrews<%@ page contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews<%--
70be3889746884692aa49939833d624ddd432bf0Mark Andrews Licensed to the Apache Software Foundation (ASF) under one or more
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews contributor license agreements. See the NOTICE file distributed with
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews this work for additional information regarding copyright ownership.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews The ASF licenses this file to You under the Apache License, Version 2.0
70be3889746884692aa49939833d624ddd432bf0Mark Andrews (the "License"); you may not use this file except in compliance with
70be3889746884692aa49939833d624ddd432bf0Mark Andrews the License. You may obtain a copy of the License at
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews http://www.apache.org/licenses/LICENSE-2.0
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews Unless required by applicable law or agreed to in writing, software
70be3889746884692aa49939833d624ddd432bf0Mark Andrews distributed under the License is distributed on an "AS IS" BASIS,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
70be3889746884692aa49939833d624ddd432bf0Mark Andrews See the License for the specific language governing permissions and
70be3889746884692aa49939833d624ddd432bf0Mark Andrews limitations under the License.
70be3889746884692aa49939833d624ddd432bf0Mark Andrews--%>
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews<%@ page import="org.apache.solr.core.SolrCore,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews org.apache.solr.schema.IndexSchema,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.io.BufferedReader,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.io.File,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.io.FilenameFilter,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.io.FileReader,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.net.InetAddress,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.net.UnknownHostException,
70be3889746884692aa49939833d624ddd432bf0Mark Andrews java.util.Date"%>
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews<%@include file="header.jsp" %>
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews<%
70be3889746884692aa49939833d624ddd432bf0Mark Andrews File slaveinfo = new File(solrHome + "logs/snappuller.status");
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews StringBuffer buffer = new StringBuffer();
70be3889746884692aa49939833d624ddd432bf0Mark Andrews StringBuffer buffer2 = new StringBuffer();
70be3889746884692aa49939833d624ddd432bf0Mark Andrews String mode = "";
70be3889746884692aa49939833d624ddd432bf0Mark Andrews
70be3889746884692aa49939833d624ddd432bf0Mark Andrews if (slaveinfo.canRead()) {
70be3889746884692aa49939833d624ddd432bf0Mark Andrews // Slave instance
70be3889746884692aa49939833d624ddd432bf0Mark Andrews mode = "Slave";
70be3889746884692aa49939833d624ddd432bf0Mark Andrews File slavevers = new File(solrHome + "logs/snapshot.current");
70be3889746884692aa49939833d624ddd432bf0Mark Andrews BufferedReader inforeader = new BufferedReader(new FileReader(slaveinfo));
70be3889746884692aa49939833d624ddd432bf0Mark Andrews BufferedReader versreader = new BufferedReader(new FileReader(slavevers));
70be3889746884692aa49939833d624ddd432bf0Mark Andrews buffer.append("<tr>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "<td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "Version:" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "</td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "<td>\n")
70be3889746884692aa49939833d624ddd432bf0Mark Andrews .append( versreader.readLine())
70be3889746884692aa49939833d624ddd432bf0Mark Andrews .append( "<td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "</td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "</tr>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "<tr>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "<td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "Status:" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "</td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "<td>\n")
70be3889746884692aa49939833d624ddd432bf0Mark Andrews .append( inforeader.readLine())
70be3889746884692aa49939833d624ddd432bf0Mark Andrews .append( "</td>\n" +
70be3889746884692aa49939833d624ddd432bf0Mark Andrews "</tr>\n");
70be3889746884692aa49939833d624ddd432bf0Mark Andrews } else {
70be3889746884692aa49939833d624ddd432bf0Mark Andrews // Master instance
70be3889746884692aa49939833d624ddd432bf0Mark Andrews mode = "Master";
70be3889746884692aa49939833d624ddd432bf0Mark Andrews File masterdir = new File(solrHome + "logs/clients");
70be3889746884692aa49939833d624ddd432bf0Mark Andrews FilenameFilter sfilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("snapshot.status");
}
};
FilenameFilter cfilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("snapshot.current");
}
};
File[] clients = masterdir.listFiles(cfilter);
if (clients == null) {
buffer.append("<tr>\n" +
"<td>\n" +
"</td>\n" +
"<td>\n" +
"No distribution info present" +
"</td>\n" +
"</tr>\n");
} else {
buffer.append("<h4>Client Snapshot In Use:</h4>\n" +
"<tr>\n" +
"<th>\n" +
"Client" +
"</th>\n" +
"<th>\n" +
"Version" +
"</th>\n" +
"</tr>\n");
int i = 0;
while (i < clients.length) {
String fileName=clients[i].toString();
int p=fileName.indexOf("snapshot.current");
String clientName=fileName.substring(p+17);
BufferedReader reader = new BufferedReader(new FileReader(clients[i]));
buffer.append("<tr>\n" +
"<td>\n" +
clientName +
"</td>\n" +
"<td>\n")
.append( reader.readLine())
.append( "</td>\n" +
"</tr>\n" +
"<tr>\n" +
"</tr>\n");
i++;
}
clients = masterdir.listFiles(sfilter);
if (clients!=null) {
buffer.append("</table>\n" +
"<h4>Client Snapshot Distribution Status:</h4>\n" +
"<table>\n" +
"<tr>\n" +
"<th>\n" +
"Client" +
"</th>\n" +
"<th>\n" +
"Status" +
"</th>\n" +
"</tr>\n");
i = 0;
while (i < clients.length) {
String fileName=clients[i].toString();
int p=fileName.indexOf("snapshot.status");
String clientName=fileName.substring(p+16);
BufferedReader reader = new BufferedReader(new FileReader(clients[i]));
buffer.append("<tr>\n" +
"<td>\n" +
clientName +
"</td>\n" +
"<td>\n")
.append( reader.readLine())
.append( "</td>\n" +
"</tr>\n" +
"<tr>\n" +
"</tr>\n");
i++;
}
}
}
}
%>
<br clear="all">
<h2>Distribution Info: <%= mode %> Server</h2>
<br clear="all" />
(<a href="http://wiki.apache.org/solr/CollectionDistribution">What Is This Page?</a>)
<br clear="all" />
<table>
<%= buffer %>
</table>
<br><br>
<a href=".">Return to Admin Page</a>
</body>
</html>