📄 eventutil.java
字号:
retParmVal = event.getInterface(); } else if (parm.equals(TAG_SNMPHOST)) { retParmVal = event.getSnmphost(); } else if (parm.equals(TAG_SERVICE)) { retParmVal = event.getService(); } else if (parm.equals(TAG_SNMP)) { Snmp info = event.getSnmp(); if (info == null) retParmVal = null; else { StringBuffer snmpStr = new StringBuffer(info.getId()); if (info.getIdtext() != null) snmpStr.append(ATTRIB_DELIM + escape(info.getIdtext().trim(), ATTRIB_DELIM)); else snmpStr.append(ATTRIB_DELIM + "undefined"); snmpStr.append(ATTRIB_DELIM + info.getVersion()); if (info.hasSpecific()) snmpStr.append(ATTRIB_DELIM + Integer.toString(info.getSpecific())); else snmpStr.append(ATTRIB_DELIM + "undefined"); if (info.hasGeneric()) snmpStr.append(ATTRIB_DELIM + Integer.toString(info.getGeneric())); else snmpStr.append(ATTRIB_DELIM + "undefined"); if (info.getCommunity() != null) { snmpStr.append(ATTRIB_DELIM + info.getCommunity().trim()); } else snmpStr.append(ATTRIB_DELIM + "undefined"); retParmVal = snmpStr.toString(); } } else if (parm.equals(TAG_SNMP_ID)) { Snmp info = event.getSnmp(); if (info != null) { retParmVal = info.getId(); } } else if (parm.equals(TAG_SNMP_IDTEXT)) { Snmp info = event.getSnmp(); if (info != null && info.getIdtext() != null) { retParmVal = info.getIdtext(); } } else if (parm.equals(TAG_SNMP_VERSION)) { Snmp info = event.getSnmp(); if (info != null) { retParmVal = info.getVersion(); } } else if (parm.equals(TAG_SNMP_SPECIFIC)) { Snmp info = event.getSnmp(); if (info != null && info.hasSpecific()) { retParmVal = Integer.toString(info.getSpecific()); } } else if (parm.equals(TAG_SNMP_GENERIC)) { Snmp info = event.getSnmp(); if (info != null && info.hasGeneric()) { retParmVal = Integer.toString(info.getGeneric()); } } else if (parm.equals(TAG_SNMP_COMMUNITY)) { Snmp info = event.getSnmp(); if (info != null && info.getCommunity() != null) { retParmVal = info.getCommunity(); } } else if (parm.equals(TAG_SEVERITY)) { retParmVal = event.getSeverity(); } else if (parm.equals(TAG_OPERINSTR)) { retParmVal = event.getOperinstruct(); } else if (parm.equals(TAG_MOUSEOVERTEXT)) { retParmVal = event.getMouseovertext(); } else if (parm.equals(TAG_ASSET_DESCR)) { retParmVal = Long.toString(event.getNodeid()); String assetdescr = null; if (event.getNodeid() > 0) { try { assetdescr = getAssetInfo(event.getNodeid(), "description"); } catch (SQLException sqlE) { // do nothing } } if (assetdescr != null) retParmVal = assetdescr; else retParmVal = "Unknown"; } else if (parm.equals(TAG_ASSET_COMMENT)) { retParmVal = Long.toString(event.getNodeid()); String assetcomment = null; if (event.getNodeid() > 0) { try { assetcomment = getAssetInfo(event.getNodeid(), "comment"); } catch (SQLException sqlE) { // do nothing } } if (assetcomment != null) retParmVal = assetcomment; else retParmVal = "Unknown"; } else if (parm.equals(PARMS_VALUES)) { if (event.getParms() != null && event.getParms().getParmCount() <= 0) retParmVal = null; else { StringBuffer ret = new StringBuffer(); Parms parms = event.getParms(); Enumeration en = parms.enumerateParm(); while (en.hasMoreElements()) { Parm evParm = (Parm) en.nextElement(); Value parmValue = evParm.getValue(); if (parmValue == null) continue; String parmValueStr = getValueAsString(parmValue); if (parmValueStr == null) continue; if (ret.length() == 0) { ret.append(parmValueStr); } else { ret.append(SPACE_DELIM + parmValueStr); } } retParmVal = ret.toString(); } } else if (parm.equals(PARMS_NAMES)) { if (event.getParms() != null && event.getParms().getParmCount() <= 0) retParmVal = null; else { StringBuffer ret = new StringBuffer(); Parms parms = event.getParms(); if (parm != null) { Enumeration en = parms.enumerateParm(); while (en.hasMoreElements()) { Parm evParm = (Parm) en.nextElement(); String parmName = evParm.getParmName(); if (parmName == null) continue; if (ret.length() == 0) { ret.append(parmName.trim()); } else { ret.append(SPACE_DELIM + parmName.trim()); } } } retParmVal = ret.toString(); } } else if (parm.equals(PARMS_ALL)) { if (event.getParms() != null && event.getParms().getParmCount() <= 0) retParmVal = null; else { StringBuffer ret = new StringBuffer(); Parms parms = event.getParms(); if (parms != null) { Enumeration en = parms.enumerateParm(); while (en.hasMoreElements()) { Parm evParm = (Parm) en.nextElement(); String parmName = evParm.getParmName(); if (parmName == null) continue; Value parmValue = evParm.getValue(); if (parmValue == null) continue; String parmValueStr = getValueAsString(parmValue); if (ret.length() != 0) { ret.append(SPACE_DELIM); } ret.append(parmName.trim() + NAME_VAL_DELIM + "\"" + parmValueStr + "\""); } } retParmVal = ret.toString(); } } else if (parm.equals(NUM_PARMS_STR)) { if (event.getParms() != null) { int count = event.getParms().getParmCount(); retParmVal = String.valueOf(count); } } else if (parm.startsWith(PARM_NUM_PREFIX)) { Parms eventParms = event.getParms(); int end = parm.lastIndexOf(PARM_END_SUFFIX); if (end != -1 && eventParms != null) { // Get the value between the '#' and ']' String eparmname = parm.substring(PARM_NUM_PREFIX_LENGTH, end); int parmNum = -1; try { parmNum = Integer.parseInt(eparmname); } catch (NumberFormatException nfe) { parmNum = -1; retParmVal = null; } if (parmNum > 0 && parmNum <= eventParms.getParmCount()) { Parm evParm = eventParms.getParm(parmNum - 1); // get parm value Value eparmval = evParm.getValue(); if (eparmval != null) { retParmVal = getValueAsString(eparmval); } } else { retParmVal = null; } } } else if (parm.startsWith(PARM_BEGIN)) { if (parm.length() > PARM_BEGIN_LENGTH) { int end = parm.indexOf(PARM_END_SUFFIX, PARM_BEGIN_LENGTH); if (end != -1) { // Get the value between the '[' and ']' String eparmname = parm.substring(PARM_BEGIN_LENGTH, end); Parms parms = event.getParms(); if (parms != null) { Enumeration en = parms.enumerateParm(); while (en.hasMoreElements()) { Parm evParm = (Parm) en.nextElement(); String parmName = evParm.getParmName(); if (parmName != null && parmName.trim().startsWith(eparmname)) { // get parm value Value eparmval = evParm.getValue(); if (eparmval != null) { retParmVal = getValueAsString(eparmval); break; } } } } } } } return (retParmVal == null ? null : retParmVal.trim()); } private static DateFormat ThreadCategory(Class class1) { // TODO Auto-generated method stub return null; } /** * Expand the value if it has parms in one of the following formats - * %element% values are expanded to have the value of the element where * 'element' is an element in the event DTD - %parm[values-all]% is expanded * to a delimited list of all parmblock values - %parm[names-all]% is * expanded to a list of all parm names - %parm[all]% is expanded to a full * dump of all parmblocks - %parm[name]% is expanded to the value of the * parameter named 'name' - %parm[ <name>]% is replaced by the value of the * parameter named 'name', if present - %parm[# <num>]% is replaced by the * value of the parameter number 'num', if present - %parm[##]% is replaced * by the number of parameters * * @param inp * the input string in which parm values are to be expanded * * @return expanded value if the value had any parameter to expand, null * otherwise */ public static String expandParms(String inp, Event event) { int index1 = -1; int index2 = -1; StringBuffer ret = new StringBuffer(); String tempInp = inp; int inpLen = inp.length(); // check input string to see if it has any %xxx% substring while ((tempInp != null) && ((index1 = tempInp.indexOf(PERCENT)) != -1)) { // copy till first % ret.append(tempInp.substring(0, index1)); index2 = tempInp.indexOf(PERCENT, index1 + 1); if (index2 != -1) { // Get the value between the %s String parm = tempInp.substring(index1 + 1, index2); // m_logger.debug("parm: " + parm + " found in value"); String parmVal = getValueOfParm(parm, event); // m_logger.debug("value of parm: " + parmVal); if (parmVal != null) { ret.append(parmVal); } /** * else { ret.append(tempInp.substring(index1, index2+1)); } */ if (index2 < (inpLen - 1)) { tempInp = tempInp.substring(index2 + 1); } else { tempInp = null; } } else { break; } } if ((index1 == -1 || index2 == -1) && (tempInp != null)) { ret.append(tempInp); } String retStr = ret.toString(); if (ret.length() > 0 && !retStr.equals(inp)) return retStr; return null; } /** * Retrieve nodeLabel from the node table of the database given a particular * nodeId. * * @param nodeId * Node identifier * * @return nodeLabel Retreived nodeLabel * * @throws SQLException * if database error encountered */ private static String getNodeLabel(long nodeId) throws SQLException { String nodeLabel = null; java.sql.Connection dbConn = null; Statement stmt = null; try { // Get datbase connection from the factory dbConn = DatabaseConnectionFactory.getInstance().getConnection(); // Issue query and extract nodeLabel from result set stmt = dbConn.createStatement(); ResultSet rs = stmt .executeQuery("SELECT nodelabel FROM node WHERE nodeid=" + String.valueOf(nodeId)); if (rs.next()) { nodeLabel = (String) rs.getString("nodelabel"); } } finally { // Close the statement if (stmt != null) { try { stmt.close(); } catch (Exception e) { // do nothing } } // Close the database connection if (dbConn != null) { try { dbConn.close(); } catch (Throwable t) { // do nothing } } } return nodeLabel; } /** * Retrieve ifAlias from the snmpinterface table of the database given a particular * nodeId and ipAddr. * * @param nodeId * Node identifier * @param ipAddr * Interface IP address * * @return ifAlias Retreived ifAlias * * @throws SQLException * if database error encountered */ private static String getIfAlias(long nodeId, String ipaddr) throws SQLException { String ifAlias = null; java.sql.Connection dbConn = null; Statement stmt = null; try { // Get database connection from the factory dbConn = DatabaseConnectionFactory.getInstance().getConnection(); // Issue query and extract ifAlias from result set stmt = dbConn.createStatement(); ResultSet rs = stmt .executeQuery("SELECT snmpifalias FROM snmpinterface WHERE nodeid=" + nodeId + " and ipaddr='" + ipaddr + "'"); // Assumes only one response. It will pick the first hit if (rs.next()) { ifAlias = (String) rs.getString("snmpifalias"); } } finally { // Close the statement if (stmt != null) { try { stmt.close(); } catch (Exception e) { // do nothing } } // Close the database connection if (dbConn != null) { try { dbConn.close(); } catch (Throwable t) { // do nothing } } } return ifAlias; } /** * Retrieve asset info from the asset table of the database given a particular * nodeId and field. * * @param nodeId * Node identifier * @param assetField * Field from the asset table * * @return assetInfo Retreived assetinfo * * @throws SQLException * if database error encountered */ private static String getAssetInfo(long nodeId, String assetField) throws SQLException { String assetInfo = null; java.sql.Connection dbConn = null; Statement stmt = null; try { // Get datbase connection from the factory dbConn = DatabaseConnectionFactory.getInstance().getConnection(); // Issue query and extract nodeLabel from result set stmt = dbConn.createStatement(); ResultSet rs = stmt .executeQuery("SELECT " + assetField + " FROM assets WHERE nodeid=" + String.valueOf(nodeId)); if (rs.next()) { assetInfo = (String) rs.getString(assetField); } } finally { // Close the statement if (stmt != null) { try { stmt.close(); } catch (Exception e) { // do nothing } } // Close the database connection if (dbConn != null) { try { dbConn.close(); } catch (Throwable t) { // do nothing } } } return assetInfo; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -