public static EqRestriction eq(final String attribute, final Object comparator) { return new EqRestriction(attribute, comparator); }
public static EqRestriction eq(final String attribute, final Object comparator) { return new EqRestriction(attribute, comparator); }
@Override protected void addAdditionalCriteriaOptions(Criteria criteria, Page page, boolean doOrder) { if (!doOrder) return; // We join the ipInterfaces table, to be able to sort on ipInterfaces.ipAddress. criteria.setAliases(Arrays.asList(new Alias[] { new Alias("ipInterfaces", "ipInterfaces", Alias.JoinType.LEFT_JOIN, new EqRestriction("ipInterfaces.isSnmpPrimary", PrimaryType.PRIMARY)) })); }
@Override protected void addAdditionalCriteriaOptions(Criteria criteria, Page page, boolean doOrder) { if (!doOrder) return; // We join the ipInterfaces table, to be able to sort on ipInterfaces.ipAddress. criteria.setAliases(Arrays.asList(new Alias[] { new Alias("ipInterfaces", "ipInterfaces", Alias.JoinType.LEFT_JOIN, new EqRestriction("ipInterfaces.isSnmpPrimary", PrimaryType.PRIMARY)) })); }
})); criteria.addRestriction(new AnyRestriction( new EqRestriction("monitoredService.status", "D"), new EqRestriction("monitoredService.status", "F"), new EqRestriction("monitoredService.status", "U") )); criteria.addRestriction(new NullRestriction("ifRegainedService")); })); criteria.addRestriction(new AnyRestriction( new EqRestriction("ipInterface.isManaged", "F"), new EqRestriction("ipInterface.isManaged", "U") )); criteria.addRestriction(new NullRestriction("ifRegainedService"));
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("node","node", JoinType.LEFT_JOIN), })) .addRestriction(new EqRestriction("node.id", (int)nodeId)) .addRestriction(new LikeRestriction("entPhysicalName", likeQuery)) .setOrders(Arrays.asList(new Order[] {
@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); }
@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; } }
/** * <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); } }
/** * <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); } }
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; }
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); }
@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; }
/** * <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); }
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);
new Alias("ipInterface","ipInterface", JoinType.INNER_JOIN) })) .addRestriction(new EqRestriction("status", "A")) .addRestriction(new EqRestriction("ipInterface.node", node));
/** * <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); } }
/** * <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); } }