@Transactional @Override public int getAcknowledgedCount(final Criteria criteria) { criteria.addRestriction(org.opennms.core.criteria.restrictions.Restrictions.isNotNull("alarmAckUser")); return m_alarmDao.countMatching(criteria); }
private int scheduleServices() { final Criteria criteria = new Criteria(OnmsMonitoredService.class); criteria.addRestriction(new InRestriction("status", Arrays.asList("A", "N"))); return m_transactionTemplate.execute(new TransactionCallback<Integer>() { @Override public Integer doInTransaction(TransactionStatus arg0) { final List<OnmsMonitoredService> services = m_monitoredServiceDao.findMatching(criteria); for (OnmsMonitoredService service : services) { scheduleService(service); } return services.size(); } }); }
@Transactional @Override public OnmsAlarm getAcknowledged(final Criteria criteria) { criteria.addRestriction(org.opennms.core.criteria.restrictions.Restrictions.isNotNull("alarmAckUser")); criteria.setLimit(1); final List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); if (alarms.size() == 0) return null; return alarms.get(0); }
@Transactional @Override public OnmsAlarm getUnacknowledged(final Criteria criteria) { criteria.addRestriction(org.opennms.core.criteria.restrictions.Restrictions.isNull("alarmAckUser")); criteria.setLimit(1); final List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); if (alarms.size() == 0) return null; return alarms.get(0); }
protected List<OnmsAlarm> getLinkdEdgeDownAlarms() { org.opennms.core.criteria.Criteria criteria = new org.opennms.core.criteria.Criteria(OnmsAlarm.class); criteria.addRestriction(new EqRestriction("uei", EventConstants.TOPOLOGY_LINK_DOWN_EVENT_UEI)); criteria.addRestriction(new NeRestriction("severity", OnmsSeverity.CLEARED)); return getAlarmDao().findMatching(criteria); }
/** * <p>fetchUnclearedHypericAlarms</p> * * @return a {@link java.util.List} object. */ public List<OnmsAlarm> fetchUnclearedHypericAlarms() { // Query for existing, unacknowledged alarms in OpenNMS that were generated based on Hyperic alerts Criteria criteria = new Criteria(OnmsAlarm.class); // criteria.add(Restrictions.isNull("alarmAckUser")); // Restrict to Hyperic alerts criteria.addRestriction(new EqRestriction("uei", "uei.opennms.org/external/hyperic/alert")); // Only consider alarms that are above severity NORMAL // {@see org.opennms.netmgt.model.OnmsSeverity} criteria.addRestriction(new GtRestriction("severity", OnmsSeverity.NORMAL)); // TODO Figure out how to query by parameters (maybe necessary) // Query list of outstanding alerts with remote platform identifiers return m_alarmDao.findMatching(criteria); }
myCriteria.addRestriction(criteria);
/** * <p>checkForDisconnectedMonitors</p> */ @Override public void checkForDisconnectedMonitors() { LOG.debug("Checking for disconnected monitors: disconnectedTimeout = {}", m_disconnectedTimeout); try { final Date now = m_timeKeeper.getCurrentDate(); final Date earliestAcceptable = new Date(now.getTime() - m_disconnectedTimeout); final Criteria criteria = new Criteria(OnmsLocationMonitor.class); criteria.addRestriction(new EqRestriction("status", MonitorStatus.STARTED)); criteria.addRestriction(new NotNullRestriction("lastUpdated")); criteria.addRestriction(new LtRestriction("lastUpdated", earliestAcceptable)); // Lock all of the records for update since we will be marking them as DISCONNECTED criteria.setLockType(LockType.PESSIMISTIC_READ); final Collection<OnmsLocationMonitor> monitors = m_locMonDao.findMatching(criteria); LOG.debug("Found {} monitor(s) that are transitioning to disconnected state", monitors.size()); for (final OnmsLocationMonitor monitor : monitors) { LOG.debug("Monitor {} has stopped responding", monitor.getName()); monitor.setStatus(MonitorStatus.DISCONNECTED); m_locMonDao.update(monitor); sendDisconnectedEvent(monitor); } } catch (final Throwable e) { LOG.warn("An error occurred checking for disconnected monitors.", e); } }
@Override public List<String[]> getNodeServices(int nodeId){ final LinkedList<String[]> servicemap = new LinkedList<>(); Criteria criteria = new Criteria(OnmsMonitoredService.class); criteria.setAliases(Arrays.asList(new Alias[] { new Alias("ipInterface", "ipInterface", JoinType.LEFT_JOIN), new Alias("ipInterface.node", "node", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("node.id", nodeId)); criteria.addRestriction(new NeRestriction("status", "F")); // Ignore forced-unmanaged for (OnmsMonitoredService service : m_monitoredServiceDao.findMatching(criteria)) { servicemap.add(new String[] { service.getIpAddressAsString(), service.getServiceName() }); } return servicemap; }
@Override public List<OnmsNode> findByIpAddressAndService(InetAddress ipAddress, String serviceName) { final org.opennms.core.criteria.Criteria criteria = new org.opennms.core.criteria.Criteria(OnmsNode.class) .setAliases(Arrays.asList(new Alias[] { new Alias("ipInterfaces","ipInterfaces", JoinType.LEFT_JOIN), new Alias("ipInterfaces.monitoredServices","monitoredServices", JoinType.LEFT_JOIN), new Alias("monitoredServices.serviceType","serviceType", JoinType.LEFT_JOIN) })) .addRestriction(new EqRestriction("ipInterfaces.ipAddress", ipAddress)) //TODO: Replace D with a constant .addRestriction(new NeRestriction("ipInterfaces.isManaged", "D")) .addRestriction(new EqRestriction("serviceType.name", serviceName)) .setOrders(Arrays.asList(new Order[] { Order.desc("id") })); return findMatching(criteria); }
protected InetAddress getNodeIpAddress(OnmsNode node) { final Criteria criteria = new Criteria(OnmsIpInterface.class) .setAliases(Arrays.asList(new Alias[] { new Alias("node", "node", JoinType.LEFT_JOIN) })) .addRestriction(new EqRestriction("node.id", node.getId())); List<OnmsIpInterface> matchingIfaces = getIpInterfaceDao().findMatching(criteria); return matchingIfaces.get(0).getIpAddress(); }
new Alias("ipInterface.node", "node", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("node.id", nodeId)); criteria.addRestriction(new EqRestriction("ipInterface.ipAddress", addr(ipAddr))); criteria.addRestriction(new EqRestriction("serviceType.name", serviceName)); criteria.addRestriction(new NullRestriction("ifRegainedService")); List<OnmsOutage> outages = m_outageDao.findMatching(criteria);
/** * <p>closeOutagesForInterface</p> * * @param closeDate a {@link java.util.Date} object. * @param eventId a int. * @param nodeId a int. * @param ipAddr a {@link java.lang.String} object. */ @Override public void closeOutagesForInterface(Date closeDate, int eventId, int nodeId, String ipAddr) { Criteria criteria = new Criteria(OnmsOutage.class); criteria.setAliases(Arrays.asList(new Alias[] { new Alias("monitoredService.ipInterface", "ipInterface", JoinType.LEFT_JOIN), new Alias("ipInterface.node", "node", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("node.id", nodeId)); criteria.addRestriction(new EqRestriction("ipInterface.ipAddress", addr(ipAddr))); criteria.addRestriction(new NullRestriction("ifRegainedService")); List<OnmsOutage> outages = m_outageDao.findMatching(criteria); for (OnmsOutage outage : outages) { outage.setIfRegainedService(closeDate); outage.setServiceRegainedEvent(m_eventDao.get(eventId)); m_outageDao.update(outage); } }
@Override public Node getSnmpNode(final int nodeid) { final Criteria criteria = new Criteria(OnmsNode.class); criteria.setAliases(Arrays.asList(new Alias[] { new Alias( "ipInterfaces", "iface", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("type", NodeType.ACTIVE)); criteria.addRestriction(new EqRestriction("iface.isSnmpPrimary", PrimaryType.PRIMARY)); criteria.addRestriction(new EqRestriction("id", nodeid)); final List<OnmsNode> nodes = m_nodeDao.findMatching(criteria); if (nodes.size() > 0) { final OnmsNode node = nodes.get(0); return new Node(node.getId(), node.getLabel(), node.getPrimaryInterface().getIpAddress(), node.getSysObjectId(), node.getSysName(),node.getLocation() == null ? null : node.getLocation().getLocationName()); } else { return null; } }
@Override public List<Node> findAllSnmpNode() { final List<Node> nodes = new ArrayList<Node>(); final Criteria criteria = new Criteria(OnmsNode.class); criteria.setAliases(Arrays.asList(new Alias[] { new Alias( "ipInterfaces", "iface", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("type", NodeType.ACTIVE)); criteria.addRestriction(new EqRestriction("iface.isSnmpPrimary", PrimaryType.PRIMARY)); for (final OnmsNode node : m_nodeDao.findMatching(criteria)) { nodes.add(new Node(node.getId(), node.getLabel(), node.getPrimaryInterface().getIpAddress(), node.getSysObjectId(), node.getSysName(),node.getLocation() == null ? null : node.getLocation().getLocationName())); } return nodes; }
protected OnmsIpInterfaceList getInterfaceList() { StringBuffer filterRules = new StringBuffer(getPackage().getEffectiveFilter()); List<InetAddress> ipList = FilterDaoFactory.getInstance().getActiveIPAddressList(filterRules.toString()); OnmsIpInterfaceList ifaces = new OnmsIpInterfaceList(); // Only poll the primary interface final Criteria criteria = new Criteria(OnmsIpInterface.class); criteria.addRestriction(new EqRestriction("isSnmpPrimary", PrimaryType.PRIMARY)); List<OnmsIpInterface> allValidIfaces = getIpInterfaceDao().findMatching(criteria); for (OnmsIpInterface iface : allValidIfaces) { if (ipList.contains(iface.getIpAddress())) { ifaces.add(iface); } } return ifaces; }
/** * Creates a {@link Criteria} object to get data from database. * If considerPaging is set Limit and offset values are added as restriction. * @param page * @param doOrder * @return */ protected Criteria getCriteria(Page page, boolean doOrder) { Criteria tmpCriteria = new Criteria(getItemClass()); for (Restriction eachRestriction : m_restrictions) { tmpCriteria.addRestriction(eachRestriction); } if (doOrder) { tmpCriteria.setOrders(m_orders); } if (page != null) { tmpCriteria.setOffset(page.offset); tmpCriteria.setLimit(page.length); } addAdditionalCriteriaOptions(tmpCriteria, page, doOrder); LOG.debug("query criteria: {}", tmpCriteria); return tmpCriteria; }
/** * Creates a {@link Criteria} object to get data from database. * If considerPaging is set Limit and offset values are added as restriction. * @param page * @param doOrder * @return */ protected Criteria getCriteria(Page page, boolean doOrder) { Criteria tmpCriteria = new Criteria(getItemClass()); for (Restriction eachRestriction : m_restrictions) { tmpCriteria.addRestriction(eachRestriction); } if (doOrder) { tmpCriteria.setOrders(m_orders); } if (page != null) { tmpCriteria.setOffset(page.offset); tmpCriteria.setLimit(page.length); } addAdditionalCriteriaOptions(tmpCriteria, page, doOrder); LOG.debug("query criteria: {}", tmpCriteria); return tmpCriteria; }
/** * Creates a {@link Criteria} object to get data from database. * If considerPaging is set Limit and offset values are added as restriction. * @param page * @param doOrder * @return */ protected Criteria getCriteria(Page page, boolean doOrder) { Criteria tmpCriteria = new Criteria(getItemClass()); for (Restriction eachRestriction : m_restrictions) { tmpCriteria.addRestriction(eachRestriction); } if (doOrder) { tmpCriteria.setOrders(m_orders); } if (page != null) { tmpCriteria.setOffset(page.offset); tmpCriteria.setLimit(page.length); } addAdditionalCriteriaOptions(tmpCriteria, page, doOrder); LOG.debug("query criteria: {}", tmpCriteria); return tmpCriteria; }
/** * <p>closeOutagesForNode</p> * * @param closeDate a {@link java.util.Date} object. * @param eventId a int. * @param nodeId a int. */ @Override public void closeOutagesForNode(Date closeDate, int eventId, int nodeId) { Criteria criteria = new Criteria(OnmsOutage.class); criteria.setAliases(Arrays.asList(new Alias[] { new Alias("monitoredService.ipInterface", "ipInterface", JoinType.LEFT_JOIN), new Alias("ipInterface.node", "node", JoinType.LEFT_JOIN) })); criteria.addRestriction(new EqRestriction("node.id", nodeId)); criteria.addRestriction(new NullRestriction("ifRegainedService")); List<OnmsOutage> outages = m_outageDao.findMatching(criteria); for (OnmsOutage outage : outages) { outage.setIfRegainedService(closeDate); outage.setServiceRegainedEvent(m_eventDao.get(eventId)); m_outageDao.update(outage); } }