From cfaf76be07755e73ed5ca910a0eddca537fe49aa Mon Sep 17 00:00:00 2001
From: HongKee Moon <hkmoon@me.com>
Date: Thu, 5 Feb 2015 14:55:10 +0100
Subject: [PATCH] Add "Number of datasets" and "Total size of datasets" in
manager context
---
src/main/java/bdv/server/ManagerHandler.java | 42 +++++++++++++++-----
src/main/resources/templates/manager.st | 8 ++++
2 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/src/main/java/bdv/server/ManagerHandler.java b/src/main/java/bdv/server/ManagerHandler.java
index 2377776..afef94c 100644
--- a/src/main/java/bdv/server/ManagerHandler.java
+++ b/src/main/java/bdv/server/ManagerHandler.java
@@ -15,6 +15,7 @@ import org.eclipse.jetty.util.log.Log;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URISyntaxException;
@@ -34,6 +35,12 @@ public class ManagerHandler extends ContextHandler
private final ConnectorStatistics connectorStats;
+ private String contexts = null;
+
+ private int noDataSets = 0;
+
+ private long sizeDataSets = 0;
+
public ManagerHandler( final String baseURL, final Server server, final ConnectorStatistics connectorStats, final StatisticsHandler statHandler, ContextHandlerCollection handlers ) throws IOException, URISyntaxException
{
this.baseURL = baseURL;
@@ -105,28 +112,41 @@ public class ManagerHandler extends ContextHandler
t.setAttribute( "openConnections", connectorStats.getConnectionsOpen() );
t.setAttribute( "maxOpenConnections", connectorStats.getConnectionsOpenMax() );
- t.setAttribute( "contexts", getContexts() );
+ getContexts();
+
+ t.setAttribute( "contexts", contexts );
+
+ t.setAttribute( "noDataSets", noDataSets );
+ t.setAttribute( "sizeDataSets", getByteSizeString( sizeDataSets ) );
t.setAttribute( "statHtml", statHandler.toStatsHTML() );
return t.toString();
}
- private String getContexts()
+ private void getContexts()
{
- StringBuilder sb = new StringBuilder();
- for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) )
+ if ( contexts == null )
{
- CellHandler contextHandler = null;
- if ( handler instanceof CellHandler )
+ noDataSets = 0;
+ sizeDataSets = 0;
+
+ StringBuilder sb = new StringBuilder();
+ for ( final Handler handler : server.getChildHandlersByClass( CellHandler.class ) )
{
- sb.append( "<tr>\n<th>" );
- contextHandler = ( CellHandler ) handler;
- sb.append( contextHandler.getContextPath() + "</th>\n<td>" );
- sb.append( contextHandler.getXmlFile() + "</td>\n</tr>\n" );
+ CellHandler contextHandler = null;
+ if ( handler instanceof CellHandler )
+ {
+ sb.append( "<tr>\n<th>" );
+ contextHandler = ( CellHandler ) handler;
+ sb.append( contextHandler.getContextPath() + "</th>\n<td>" );
+ sb.append( contextHandler.getXmlFile() + "</td>\n</tr>\n" );
+ noDataSets++;
+ sizeDataSets += new File( contextHandler.getXmlFile().replace( ".xml", ".h5" ) ).length();
+ }
}
+ contexts = sb.toString();
}
- return sb.toString();
}
private void deploy( final String datasetName, final String fileLocation, final Request baseRequest, final HttpServletResponse response ) throws IOException
diff --git a/src/main/resources/templates/manager.st b/src/main/resources/templates/manager.st
index 38ab1b4..aa0abf2 100644
--- a/src/main/resources/templates/manager.st
+++ b/src/main/resources/templates/manager.st
@@ -43,6 +43,14 @@ This page is refreshed in every 5 secs.<br/>
<th>Max open connections:</th>
<td>$maxOpenConnections$</td>
</tr>
+ <tr>
+ <th>Number of datasets:</th>
+ <td>$noDataSets$</td>
+ </tr>
+ <tr>
+ <th>Total size of datasets:</th>
+ <td>$sizeDataSets$</td>
+ </tr>
</table>
<hr>
--
GitLab