dataupdater.java

来自「opennms得相关源码 请大家看看」· Java 代码 · 共 519 行 · 第 1/2 页

JAVA
519
字号
//// 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://// 2004 Oct 07: Added code to support RTC rescan on asset update//// Orginal code baseCopyright (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///// Tab Size = 8//package org.opennms.netmgt.rtc;import java.sql.SQLException;import java.text.ParseException;import java.util.Enumeration;import org.apache.log4j.Category;import org.opennms.core.utils.ThreadCategory;import org.opennms.netmgt.EventConstants;import org.opennms.netmgt.filter.FilterParseException;import org.opennms.netmgt.xml.event.Event;import org.opennms.netmgt.xml.event.Parm;import org.opennms.netmgt.xml.event.Parms;import org.opennms.netmgt.xml.event.Value;/** * <P> * The DataUpdater is created for each event by the event receiver. Depending on * the event UEI, relevant information is read from the event and the * DataManager informed so that data maintained by the RTC is kept up-to-date * </P> *  * @author <A HREF="mailto:sowmya@opennms.org">Sowmya Nataraj </A> * @author <A HREF="http://www.opennms.org">OpenNMS.org </A> */final class DataUpdater implements Runnable {    /**     * The event from which data is to be read     */    private Event m_event;    /**     * If it is a nodeGainedService, create a new entry in the map     */    private void handleNodeGainedService(long nodeid, String ip, String svcName) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || svcName == null) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc: " + nodeid + "/" + ip + "/" + svcName);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.nodeGainedService(nodeid, ip, svcName);        if (log.isDebugEnabled())            log.debug(m_event.getUei() + " added " + nodeid + ": " + ip + ": " + svcName + " to data store");    }    /**     * If it is a nodeLostService, update downtime on the rtcnode     */    private void handleNodeLostService(long nodeid, String ip, String svcName, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || svcName == null || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc/eventtime: " + nodeid + "/" + ip + "/" + svcName + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.nodeLostService(nodeid, ip, svcName, eventTime);        if (log.isDebugEnabled())            log.debug("Added nodeLostService to nodeid: " + nodeid + " ip: " + ip + " svcName: " + svcName);    }    /**     * If it is an interfaceDown, update downtime on the appropriate rtcnodes     */    private void handleInterfaceDown(long nodeid, String ip, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/eventtime: " + nodeid + "/" + ip + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.interfaceDown(nodeid, ip, eventTime);        if (log.isDebugEnabled())            log.debug("Recorded interfaceDown for nodeid: " + nodeid + " ip: " + ip);    }    /**     * If it is an nodeDown, update downtime on the appropriate rtcnodes     */    private void handleNodeDown(long nodeid, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/eventtime: " + nodeid + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.nodeDown(nodeid, eventTime);        if (log.isDebugEnabled())            log.debug("Recorded nodeDown for nodeid: " + nodeid);    }    /**     * If it is a nodeUp, update regained time on the appropriate rtcnodes     */    private void handleNodeUp(long nodeid, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/eventtime: " + nodeid + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.nodeUp(nodeid, eventTime);        if (log.isDebugEnabled())            log.debug("Recorded nodeUp for nodeid: " + nodeid);    }    /**     * If it is an interfaceUp, update regained time on the appropriate rtcnodes     */    private void handleInterfaceUp(long nodeid, String ip, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/eventtime: " + nodeid + "/" + ip + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.interfaceUp(nodeid, ip, eventTime);        if (log.isDebugEnabled())            log.debug("Recorded interfaceUp for nodeid: " + nodeid + " ip: " + ip);    }    /**     * If it is a nodeRegainedService, update downtime on the rtcnode     */    private void handleNodeRegainedService(long nodeid, String ip, String svcName, long eventTime) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || svcName == null || eventTime == -1) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc/eventtime: " + nodeid + "/" + ip + "/" + svcName + "/" + eventTime);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.nodeRegainedService(nodeid, ip, svcName, eventTime);        if (log.isDebugEnabled())            log.debug("Added nodeRegainedService to nodeid: " + nodeid + " ip: " + ip + " svcName: " + svcName);    }    /**     * If it is a serviceDeleted, remove corresponding rtcnodes from the map     */    private void handleServiceDeleted(long nodeid, String ip, String svcName) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (nodeid == -1 || ip == null || svcName == null) {            log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc: " + nodeid + "/" + ip + "/" + svcName);            return;        }        DataManager dataMgr = RTCManager.getDataManager();        dataMgr.serviceDeleted(nodeid, ip, svcName);        if (log.isDebugEnabled())            log.debug(m_event.getUei() + " deleted " + nodeid + ": " + ip + ": " + svcName + " from data store");    }    /**     * Record the interfaceReparented info in the datastore     */    private void handleInterfaceReparented(String ip, Parms eventParms) {        Category log = ThreadCategory.getInstance(DataUpdater.class);        if (ip == null || eventParms == null) {            log.warn(m_event.getUei() + " ignored - info incomplete - ip/parms: " + ip + "/" + eventParms);            return;        }        // old nodeid        long oldNodeId = -1;        // new nodeid        long newNodeId = -1;        String parmName = null;        Value parmValue = null;        String parmContent = null;        Enumeration parmEnum = eventParms.enumerateParm();        while (parmEnum.hasMoreElements()) {            Parm parm = (Parm) parmEnum.nextElement();            parmName = parm.getParmName();            parmValue = parm.getValue();            if (parmValue == null)                continue;            else                parmContent = parmValue.getContent();            // old nodeid            if (parmName.equals(EventConstants.PARM_OLD_NODEID)) {                String temp = parmContent;                try {                    oldNodeId = Long.valueOf(temp).longValue();                } catch (NumberFormatException nfe) {                    log.warn("Parameter " + EventConstants.PARM_OLD_NODEID + " cannot be non-numeric", nfe);                    oldNodeId = -1;                }            }            // new nodeid            else if (parmName.equals(EventConstants.PARM_NEW_NODEID)) {                String temp = parmContent;                try {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?