void wakeUpNodeCollection(int nodeid) { LinkableNode node = getNode(nodeid); if (node == null) { LogUtils.warnf( this, "wakeUpNodeCollection: node not found during scheduling with ID %d", nodeid); scheduleNodeCollection(nodeid); } else { // get collections // get readyRunnuble // wakeup RR Collection<SnmpCollection> collections = getSnmpCollections(nodeid, node.getSnmpPrimaryIpAddr(), node.getSysoid()); LogUtils.debugf( this, "wakeUpNodeCollection: fetched SnmpCollections from scratch, iterating over %d objects to wake them up", collections.size()); for (SnmpCollection collection : collections) { ReadyRunnable rr = getReadyRunnable(collection); if (rr == null) { LogUtils.warnf(this, "wakeUpNodeCollection: found null ReadyRunnable"); return; } else { rr.wakeUp(); } } } }
/** * This method schedules a {@link SnmpCollection} for node for each package. Also schedule * discovery link on package when not still activated. * * @param node */ private void scheduleCollectionForNode(final LinkableNode node) { for (final SnmpCollection snmpcoll : getSnmpCollections(node.getNodeId(), node.getSnmpPrimaryIpAddr(), node.getSysoid())) { if (m_activepackages.contains(snmpcoll.getPackageName())) { LogUtils.debugf( this, "ScheduleCollectionForNode: package active: %s", snmpcoll.getPackageName()); } else { // schedule discovery link LogUtils.debugf( this, "ScheduleCollectionForNode: Scheduling Discovery Link for Active Package: %s", snmpcoll.getPackageName()); final DiscoveryLink discovery = this.getDiscoveryLink(snmpcoll.getPackageName()); if (discovery.getScheduler() == null) { discovery.setScheduler(m_scheduler); } discovery.schedule(); m_activepackages.add(snmpcoll.getPackageName()); } if (snmpcoll.getScheduler() == null) { snmpcoll.setScheduler(m_scheduler); } LogUtils.debugf( this, "ScheduleCollectionForNode: Scheduling SNMP Collection for Package/NodeId: %s/%d/%s", snmpcoll.getPackageName(), node.getNodeId(), snmpcoll.getInfo()); snmpcoll.schedule(); } }
LinkableNode getNode(int nodeid) { synchronized (m_nodes) { for (LinkableNode node : m_nodes) { if (node.getNodeId() == nodeid) return node; } return null; } }
/** * getLinkableNodesOnPackage * * @param pkg a {@link java.lang.String} object. * @return a {@link java.util.Collection} object. */ public Collection<LinkableNode> getLinkableNodesOnPackage(String pkg) { Collection<LinkableNode> nodesOnPkg = new ArrayList<LinkableNode>(); synchronized (m_nodes) { for (final LinkableNode node : m_nodes) { if (isInterfaceInPackage(node.getSnmpPrimaryIpAddr(), pkg)) nodesOnPkg.add(node); } return nodesOnPkg; } }
private LinkableNode removeNode(InetAddress ipaddr) { synchronized (m_nodes) { Iterator<LinkableNode> ite = m_nodes.iterator(); while (ite.hasNext()) { LinkableNode curNode = ite.next(); if (curNode.getSnmpPrimaryIpAddr().equals(ipaddr)) { ite.remove(); return curNode; } } } return null; }
private LinkableNode removeNode(int nodeid) { synchronized (m_nodes) { Iterator<LinkableNode> ite = m_nodes.iterator(); while (ite.hasNext()) { LinkableNode curNode = ite.next(); if (curNode.getNodeId() == nodeid) { ite.remove(); return curNode; } } return null; } }
void suspendNodeCollection(int nodeid) { LogUtils.debugf( this, "suspendNodeCollection: suspend collection LinkableNode for node %d", nodeid); try { m_queryMgr.update(nodeid, QueryManager.ACTION_UPTODATE); } catch (SQLException sqlE) { LogUtils.errorf( this, sqlE, "suspendNodeCollection: SQL Exception while syncing node object with database information."); } LinkableNode node = getNode(nodeid); if (node == null) { LogUtils.warnf(this, "suspendNodeCollection: found null ReadyRunnable"); } else { // get collections // get readyRunnuble // suspend RR Collection<SnmpCollection> collections = getSnmpCollections(nodeid, node.getSnmpPrimaryIpAddr(), node.getSysoid()); LogUtils.debugf( this, "suspendNodeCollection: fetched SnmpCollections from scratch, iterating over %d objects to wake them up", collections.size()); for (SnmpCollection collection : collections) { ReadyRunnable rr = getReadyRunnable(collection); if (rr == null) { LogUtils.warnf(this, "suspendNodeCollection: suspend: node not found: %d", nodeid); return; } else { rr.suspend(); } } } }
void deleteNode(int nodeid) { LogUtils.debugf(this, "deleteNode: deleting LinkableNode for node %s", nodeid); try { m_queryMgr.update(nodeid, QueryManager.ACTION_DELETE); } catch (SQLException sqlE) { LogUtils.errorf( this, sqlE, "deleteNode: SQL Exception while syncing node object with database information."); } LinkableNode node = removeNode(nodeid); if (node == null) { LogUtils.warnf(this, "deleteNode: node not found: %d", nodeid); } else { Collection<SnmpCollection> collections = getSnmpCollections(nodeid, node.getSnmpPrimaryIpAddr(), node.getSysoid()); LogUtils.debugf( this, "deleteNode: fetched SnmpCollections from scratch, iterating over %d objects to wake them up", collections.size()); for (SnmpCollection collection : collections) { ReadyRunnable rr = getReadyRunnable(collection); if (rr == null) { LogUtils.warnf(this, "deleteNode: found null ReadyRunnable"); return; } else { rr.unschedule(); } } } // database changed need reload packageiplist m_linkdConfig.updatePackageIpListMap(); }
public boolean runSingleCollection(final int nodeId) { try { final LinkableNode node = m_queryMgr.getSnmpNode(nodeId); for (final SnmpCollection snmpColl : getSnmpCollections(nodeId, node.getSnmpPrimaryIpAddr(), node.getSysoid())) { snmpColl.setScheduler(m_scheduler); snmpColl.run(); final DiscoveryLink link = getDiscoveryLink(snmpColl.getPackageName()); link.setScheduler(m_scheduler); link.run(); } return true; } catch (final SQLException e) { LogUtils.debugf( this, "runSingleCollection: unable to get linkable node from database with ID %d", nodeId); } return false; }