http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-gui/src/main/webapp/footer.jsp
----------------------------------------------------------------------
diff --git a/blur-gui/src/main/webapp/footer.jsp 
b/blur-gui/src/main/webapp/footer.jsp
new file mode 100644
index 0000000..dd36b6c
--- /dev/null
+++ b/blur-gui/src/main/webapp/footer.jsp
@@ -0,0 +1,21 @@
+<%
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file 
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+%>
+       <br/>
+       <a href="index.html">home</a> | <a href="logs">logs</a> | <a 
href="metrics.jsp">metrics</a> <a href="metrics" title="Great with plugins like 
jsonView">(raw)</a>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-gui/src/main/webapp/functions.jsp
----------------------------------------------------------------------
diff --git a/blur-gui/src/main/webapp/functions.jsp 
b/blur-gui/src/main/webapp/functions.jsp
new file mode 100644
index 0000000..72e19c8
--- /dev/null
+++ b/blur-gui/src/main/webapp/functions.jsp
@@ -0,0 +1,43 @@
+<%
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file 
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+%>
+<%!public String row(String... col) {
+               String ret = "<tr>";
+               for (String c : col)
+                       ret += "<td>" + c + "</td>";
+               return ret + "</tr>\n";
+       }
+
+       public String row(int colspan, String col) {
+               return "<tr><td colspan=" + colspan + ">" + col + "</td></tr>";
+       }
+
+       public String shardListLink(String cluster, String display) {
+               return "<a href='shardList.jsp?clusterName=" + cluster
+                               + "' title='view shard servers'>" + display + 
"</a>";
+       }
+       
+       public String table(String content, String... headers) {
+               String ret = "<table class='statTable'><tr>\n";
+               for(String h : headers)
+                       ret += "<td class='statTableTitle'>" + h + "</td>\n";
+               return ret + "</tr>" + content + "</table>\n";
+       }
+       
+%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-gui/src/main/webapp/home.jsp
----------------------------------------------------------------------
diff --git a/blur-gui/src/main/webapp/home.jsp 
b/blur-gui/src/main/webapp/home.jsp
new file mode 100644
index 0000000..c61d2d6
--- /dev/null
+++ b/blur-gui/src/main/webapp/home.jsp
@@ -0,0 +1,139 @@
+<%
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file 
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+%>
+<%@ page contentType="text/html; charset=UTF-8" isThreadSafe="false"
+       import="javax.servlet.*" import="javax.servlet.http.*"
+       import="java.io.*" import="java.util.*" import="java.text.DateFormat"
+       import="java.lang.Math" import="java.net.URLEncoder"
+       import="org.apache.blur.thrift.*"
+       import="org.apache.blur.thrift.generated.*"
+       import="org.apache.blur.thrift.generated.Blur.*"%>
+<%@ include file="functions.jsp" %>
+<%!
+
+       public String tableLink(String tableName, String clusterName) {
+               return "<a 
href='table.jsp?tableName="+tableName+"&clusterName="+clusterName+"' 
title='view details for " + tableName + "'>" + tableName + "</a>";
+       }
+       
+       public String getTables(Iface client) throws Exception {
+               String ret = "";
+               List<String> clusters = client.shardClusterList();
+               for (String cluster : clusters) {
+                       //tables: _ tableName : enabled
+                       List<String> tables = 
client.tableListByCluster(cluster);
+                       for (String table : tables) {
+                               try {
+                                       TableDescriptor td = 
client.describe(table);
+                                       ret += row(cluster, 
tableLink(table,cluster), td.shardCount+"", td.isEnabled?"yes":"no");
+                               } catch (BlurException e) {
+                                       ret += row(3, "<font color=FF0000>Error 
describing table: "
+                                                       + table + "</font>");
+                               }
+                       }
+               }
+               return ret;
+       }
+
+       public String getClusters(Iface client) throws Exception {
+               String ret = "";
+               List<String> clusters = client.shardClusterList();
+               for (String cluster : clusters) {
+                       ret += row(cluster, 
shardListLink(cluster,client.shardServerList(cluster).size()+""), 
getClusterEnabled(client, cluster));
+               }
+               return ret;
+       }
+
+       
+       public String getConf(Iface client) throws Exception {
+               return row(2,"disabled as its broken");
+/*             try {
+                       Map<String, String> config = client.configuration();
+                       String ret = "";
+                       for (String key : config.keySet()) {
+                               ret += row(key, config.get(key));
+                       }
+                       return ret;
+               } catch (Exception e) {
+                       return row(2, "Cannot retrieve anything from 
client.configuration.");
+               }*/
+       }
+
+       public String getClusterEnabled(Iface client, String cluster)
+                       throws Exception {
+               return client.isInSafeMode(cluster) ? "Safe Mode On"
+                               : "Yes";
+       }
+
+       public String getControllers(Iface client) throws Exception {
+               String ret = "";
+               List<String> con = client.controllerServerList();
+
+               for (String c : con) {
+                       String[] split = c.split(":");
+                       int base = 
Integer.parseInt(System.getProperty("blur.base.controller.port"));
+                       int offset = Integer.parseInt(split[1])-base;
+                       int baseShardPort = 
Integer.parseInt(System.getProperty("baseGuiControllerPort"));
+                       ret += row("<a href='http://"; + split[0] + ":" + 
(baseShardPort + offset) + "'>" + c + "</a>","Yes");
+               }
+               
+               return ret;
+       }%>
+<%
+       String hostName = request.getServerName() + ":" + 
System.getProperty("blur.gui.servicing.port");
+
+       Iface client = BlurClient.getClient(hostName);
+%>
+
+
+<html>
+<head>
+<title>Blur <%=System.getProperty("blur.gui.mode") %> '<%=hostName%>'
+</title>
+<link href="style.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+       <h1>
+               Blur <%=System.getProperty("blur.gui.mode") %> '<%=hostName%>'
+       </h1>
+       <br />
+       <h2>Controllers</h2>
+       <%=table(getControllers(client),"Name","Online") %>
+       <hr />
+       <br />
+       <h2>Clusters</h2>
+       <%=table(getClusters(client),"Cluster Name","Shard Servers","Enabled") 
%>
+       <hr />
+       <br />
+       <h2>Tables</h2>
+       <%=table(getTables(client),"Cluster Name","Table 
Name","Shards","Enabled")%>
+       <hr />
+       <br />
+       <h2>Configs</h2>
+       <table class="statTable" class="statTableTitle">
+               <tr>
+                       <td class="statTableTitle">Param</td>
+                       <td class="statTableTitle">Value</td>
+               </tr>
+               <%=getConf(client)%>
+       </table>
+       <hr />
+<%@ include file="footer.jsp" %>
+</body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/b0e26648/blur-gui/src/main/webapp/index.html
----------------------------------------------------------------------
diff --git a/blur-gui/src/main/webapp/index.html 
b/blur-gui/src/main/webapp/index.html
new file mode 100644
index 0000000..3a08bc6
--- /dev/null
+++ b/blur-gui/src/main/webapp/index.html
@@ -0,0 +1,13 @@
+<meta HTTP-EQUIV="REFRESH" content="0;url=home.jsp"/>
+<html>
+<head>
+<title>Blur</title>
+</head>
+<body>
+<h1>Blur</h1>
+
+<ul>
+<li><a href="home.jsp">Blur Health/Status</a></li>
+</ul>
+</body>
+</html>

Reply via email to