zoom.jsp
来自「opennms得相关源码 请大家看看」· JSP 代码 · 共 986 行 · 第 1/3 页
JSP
986 行
<!--//// This file is part of the OpenNMS(R) Application.//// OpenNMS(R) is Copyright (C) 2002-2003 The OpenNMS Group, Inc. All rights reserved.// OpenNMS(R) is a derivative work, containing both original code, included code and modified// code that was published under the GNU General Public License. Copyrights for modified // and included code are below.//// OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.//// Modifications://// 2003 Feb 28: Corrected day/week/month/year reports on some browsers.// 2003 Feb 07: Fixed URLEncoder issues.// 2003 Feb 28: Added day/week/month/year reports.// 2002 Nov 26: Fixed breadcrumbs issue.// // Original code base Copyright (C) 1999-2001 Oculan Corp. All rights reserved.//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//// For more information contact:// OpenNMS Licensing <license@opennms.org>// http://www.opennms.org/// http://www.opennms.com///--><%@page language="java" contentType="text/html" session="true" import="org.opennms.web.*,org.opennms.web.performance.*,org.opennms.web.graph.*,java.util.*,java.io.*,org.opennms.web.element.NetworkElementFactory" %><%! protected PerformanceModel model = null; public void init() throws ServletException { try { this.model = new PerformanceModel( org.opennms.core.resource.Vault.getHomeDir() ); } catch( Exception e ) { throw new ServletException( "Could not initialize the PerformanceModel", e ); } }%><% //required parameter reports String reports[] = request.getParameterValues( "reports" ); if(reports == null) { throw new MissingParameterException( "report", new String[] {"report", "node"} ); } //required parameter node String nodeIdString = request.getParameter( "node" ); if(nodeIdString == null) { throw new MissingParameterException( "node", new String[] {"report", "node"} ); } int nodeId = Integer.parseInt(nodeIdString); //optional parameter intf String intf = request.getParameter( "intf" ); //see if the start and end time were explicitly set as params String start = request.getParameter( "start" ); String end = request.getParameter( "end" ); //gather information for displaying around the image Date startDate = new Date( Long.parseLong( start )); Date endDate = new Date( Long.parseLong( end )); if(reports.length != 1) { throw new IllegalArgumentException("The wrong number of reports were requested, " + reports.length + " were requested, zoom.jsp only allows 1"); } //convert the report names to graph objects PrefabGraph[] graphs = new PrefabGraph[reports.length]; for( int i=0; i < reports.length; i++ ) { graphs[i] = (PrefabGraph)this.model.getQuery(reports[i]); if(graphs[i] == null) { throw new IllegalArgumentException("Unknown report name: " + reports[i]); } } //sort the graphs by their order in the properties file //(PrefabGraph implements the Comparable interface) Arrays.sort(graphs);%><html><head> <title>Results | Performance | Reports | OpenNMS Web Console</title> <base HREF="<%=org.opennms.web.Util.calculateUrlBase( request )%>" /> <link rel="stylesheet" type="text/css" href="includes/styles.css" /></head><body marginwidth="0" marginheight="0" LEFTMARGIN="0" RIGHTMARGIN="0" TOPMARGIN="0"><% String breadcrumb1 = "<a href='report/index.jsp'>Reports</a>"; %><% String breadcrumb2 = "<a href='performance/index.jsp'>Performance</a>"; %><% String breadcrumb3 = "Results"; %><jsp:include page="/includes/header.jsp" flush="false" ><jsp:param name="title" value="Performance Results" /><jsp:param name="breadcrumb" value="<%=breadcrumb1%>" /><jsp:param name="breadcrumb" value="<%=breadcrumb2%>" /><jsp:param name="breadcrumb" value="<%=breadcrumb3%>" /></jsp:include><br/><table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="center"> <table> <tr> <td> </td> <td align="center"> <h3> Node: <a href="element/node.jsp?node=<%=nodeId%>"><%=NetworkElementFactory.getNodeLabel(nodeId)%></a><br/> <% if(intf != null ) { %> Interface: <%=this.model.getHumanReadableNameForIfLabel(nodeId, intf)%> <% } %> </h3> </td> <td> </td> </tr> </table> </td> </tr> <tr> <td height="20"> </td> </tr> <tr> <td align="center"><h3>Interface Performance Data</h3></td> </tr> <tr> <td> <table width="100%"> <tr> <td align="center"> <b>From</b> <%=startDate%> <br> <b>To</b> <%=endDate%> </td> </tr> <% if(graphs.length > 0) { %> <% for(int i=0; i < graphs.length; i++ ) { %> <%-- encode the RRD filenames based on the graph's required data sources --%> <% String[] rrds = this.getRRDNames(nodeId, intf, graphs[i]); %> <% String rrdParm = this.encodeRRDNamesAsParmString(rrds); %> <%-- handle external values, if any --%> <% String externalValuesParm = this.encodeExternalValuesAsParmString(nodeId, intf, graphs[i]); %> <div id='zoomSensitiveZone' style='position:absolute; overflow:none; left:0px; top:0px; width:0px; height:0px; visibility:visible; cursor:crosshair; background:blue; filter:alpha(opacity=0); -moz-opacity:0; -khtml-opacity:0; opacity:0;' oncontextmenu='return false'></div> <div id='zoomBox' style='position:absolute; overflow:none; left:0px; top:0px; width:0px; height:0px; visibility:visible; background:red; filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity:.5; opacity:0.5;'></div> <tr> <td align="center"> <img id='zoomGraphImage' src="snmp/performance/graph.png?props=<%=nodeId%>/strings.properties&report=<%=graphs[i].getName()%>&start=<%=start%>&end=<%=end%>&<%=rrdParm%>&<%=externalValuesParm%>&intf=<%=intf%>&node=<%=nodeId%>"/> </td> </tr> <% } %> <% } else { %> <tr> <td align="center">No SNMP performance data has been gathered at this level</td> </tr> <% } %> </table> </td> </tr> <tr> <td height="20"> </td> </tr> <tr> <td height="20"> </td> </tr> <tr> <td align="center"> <jsp:include page="/includes/bookmark.jsp" flush="false" /> </td> </tr> <tr> <td height="20"> </td> </tr></table><br/><jsp:include page="/includes/footer.jsp" flush="false" /></body></html><%! /** intf can be null */ public String[] getRRDNames(int nodeId, String intf, PrefabGraph graph) { if(graph == null) { throw new IllegalArgumentException("Cannot take null parameters."); } String[] columns = graph.getColumns(); String[] rrds = new String[columns.length]; for(int i=0; i < columns.length; i++ ) { StringBuffer buffer = new StringBuffer(); buffer.append(nodeId); buffer.append(File.separator); if(intf != null && PerformanceModel.INTERFACE_GRAPH_TYPE.equals(graph.getType())) { buffer.append(intf); buffer.append(File.separator); } buffer.append(columns[i]); buffer.append(org.opennms.netmgt.utils.RrdFileConstants.RRD_SUFFIX); rrds[i] = buffer.toString(); } return rrds; } public String encodeRRDNamesAsParmString(String[] rrds) { if(rrds == null) { throw new IllegalArgumentException("Cannot take null parameters."); } String parmString = ""; if(rrds.length > 0) { StringBuffer buffer = new StringBuffer("rrd="); buffer.append(java.net.URLEncoder.encode(rrds[0])); for(int i=1; i < rrds.length; i++ ) { buffer.append("&rrd="); buffer.append(java.net.URLEncoder.encode(rrds[i])); } parmString = buffer.toString(); } return parmString; } /** currently only know how to handle ifSpeed external value; intf can be null */ public String encodeExternalValuesAsParmString(int nodeId, String intf, PrefabGraph graph) throws java.sql.SQLException { if(graph == null) { throw new IllegalArgumentException("Cannot take null parameters."); } String parmString = ""; String[] externalValues = graph.getExternalValues(); if(externalValues != null && externalValues.length > 0) { StringBuffer buffer = new StringBuffer(); for(int i=0; i < externalValues.length; i++) { if("ifSpeed".equals(externalValues[i])) { String speed = this.getIfSpeed(nodeId, intf); if(speed != null) { buffer.append(externalValues[i]); buffer.append("="); buffer.append(speed); buffer.append("&"); } } else { throw new IllegalStateException("Unsupported external value name: " + externalValues[i]); } } parmString = buffer.toString(); } return parmString; } public String getIfSpeed(int nodeId, String intf) throws java.sql.SQLException { if(intf == null) { throw new IllegalArgumentException("Cannot take null parameters."); } String speed = null; try { Map intfInfo = org.opennms.netmgt.utils.IfLabel.getInterfaceInfoFromIfLabel(nodeId, intf); //if the extended information was found correctly if(intfInfo != null) { speed = (String)intfInfo.get("snmpifspeed"); } } catch (java.sql.SQLException e) { this.log("SQLException while trying to fetch extended interface info", e); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?