public void addRestriction(String property, CriteriaBuilderHelper criteriaBuilderHelper, CriteriaBuilder criteriaBuilder, Object[] values) { criteriaBuilder.ne(values[0].toString(), values[1]); } },
@Override public List<InetAddress> getActiveIPAddressList(final String rule) throws FilterParseException { LOG.debug("rule = {}", rule); final List<InetAddress> addrs = new ArrayList<>(); if (rule.equals("IPADDR != '0.0.0.0'")) { Assert.notNull(m_ipInterfaceDao); final CriteriaBuilder builder = new CriteriaBuilder(OnmsIpInterface.class); builder.ne("ipAddress", "0.0.0.0"); builder.ne("isManaged", "D"); builder.distinct(); final Criteria criteria = builder.toCriteria(); for (final OnmsIpInterface iface : m_ipInterfaceDao.findMatching(criteria)) { addrs.add(iface.getIpAddress()); } return addrs; } throw new UnsupportedOperationException("Not yet implemented!"); }
@Override public List<InetAddress> getActiveIPAddressList(final String rule) throws FilterParseException { LOG.debug("rule = {}", rule); final List<InetAddress> addrs = new ArrayList<>(); if (rule.equals("IPADDR != '0.0.0.0'")) { Assert.notNull(m_ipInterfaceDao); final CriteriaBuilder builder = new CriteriaBuilder(OnmsIpInterface.class); builder.ne("ipAddress", "0.0.0.0"); builder.ne("isManaged", "D"); builder.distinct(); final Criteria criteria = builder.toCriteria(); for (final OnmsIpInterface iface : m_ipInterfaceDao.findMatching(criteria)) { addrs.add(iface.getIpAddress()); } return addrs; } throw new UnsupportedOperationException("Not yet implemented!"); }
@Override public List<OnmsAlarm> doInTransaction(TransactionStatus transactionStatus) { final CriteriaBuilder criteriaBuilder = new CriteriaBuilder(OnmsAlarm.class); criteriaBuilder.alias("node", "node"); criteriaBuilder.ne("node.type", "D"); criteriaBuilder.limit(100); criteriaBuilder.distinct(); List<String> parameters = new ArrayList<>(rowCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); parameters.addAll(colCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); Type[] types = new Type[parameters.size()]; Arrays.fill(types, Type.STRING); // Restrict on OnmsAlarm.nodeId criteriaBuilder.sql( createQuery("{alias}.nodeId", rowCategories, colCategories), parameters.toArray(new String[parameters.size()]), types ); return m_alarmDao.findMatching(criteriaBuilder.toCriteria()); } });
@Override public List<OnmsAlarm> doInTransaction(TransactionStatus transactionStatus) { final CriteriaBuilder criteriaBuilder = new CriteriaBuilder(OnmsAlarm.class); criteriaBuilder.alias("node", "node"); criteriaBuilder.ne("node.type", "D"); criteriaBuilder.limit(100); criteriaBuilder.distinct(); List<String> parameters = new ArrayList<>(rowCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); parameters.addAll(colCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); Type[] types = new Type[parameters.size()]; Arrays.fill(types, Type.STRING); // Restrict on OnmsAlarm.nodeId criteriaBuilder.sql( createQuery("{alias}.nodeId", rowCategories, colCategories), parameters.toArray(new String[parameters.size()]), types ); return m_alarmDao.findMatching(criteriaBuilder.toCriteria()); } });
@Override public List<NodeRtc> doInTransaction(TransactionStatus transactionStatus) { CriteriaBuilder outageCriteriaBuilder = new CriteriaBuilder(OnmsOutage.class); outageCriteriaBuilder.alias("monitoredService", "monitoredService", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.alias("monitoredService.ipInterface", "ipInterface", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.alias("monitoredService.ipInterface.node", "node", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.eq("monitoredService.status", "A"); outageCriteriaBuilder.ne("ipInterface.isManaged", "D"); outageCriteriaBuilder.ne("node.type", "D"); CriteriaBuilder serviceCriteriaBuilder = new CriteriaBuilder(OnmsMonitoredService.class); serviceCriteriaBuilder.alias("ipInterface", "ipInterface", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("ipInterface.node", "node", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("serviceType", "serviceType", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("currentOutages", "currentOutages", Alias.JoinType.LEFT_JOIN); serviceCriteriaBuilder.eq("status", "A"); serviceCriteriaBuilder.ne("ipInterface.isManaged", "D"); serviceCriteriaBuilder.ne("node.type", "D"); List<String> parameters = new ArrayList<>(rowCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); parameters.addAll(colCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); Type[] types = new Type[parameters.size()]; Arrays.fill(types, Type.STRING); serviceCriteriaBuilder.sql( // HACK: Hibernate aliases 'node' as 'node2_' so we need to use this for the statement. createQuery("node2_.nodeId", rowCategories, colCategories), parameters.toArray(new String[parameters.size()]), types ); return getNodeListForCriteria(serviceCriteriaBuilder.toCriteria(), outageCriteriaBuilder.toCriteria()); } });
); criteriaBuilder.ne("node.type", "D"); criteriaBuilder.orderBy("pageTime", false);
@Override public List<NodeRtc> doInTransaction(TransactionStatus transactionStatus) { CriteriaBuilder outageCriteriaBuilder = new CriteriaBuilder(OnmsOutage.class); outageCriteriaBuilder.alias("monitoredService", "monitoredService", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.alias("monitoredService.ipInterface", "ipInterface", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.alias("monitoredService.ipInterface.node", "node", Alias.JoinType.INNER_JOIN); outageCriteriaBuilder.eq("monitoredService.status", "A"); outageCriteriaBuilder.ne("ipInterface.isManaged", "D"); outageCriteriaBuilder.ne("node.type", "D"); CriteriaBuilder serviceCriteriaBuilder = new CriteriaBuilder(OnmsMonitoredService.class); serviceCriteriaBuilder.alias("ipInterface", "ipInterface", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("ipInterface.node", "node", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("serviceType", "serviceType", Alias.JoinType.INNER_JOIN); serviceCriteriaBuilder.alias("currentOutages", "currentOutages", Alias.JoinType.LEFT_JOIN); serviceCriteriaBuilder.eq("status", "A"); serviceCriteriaBuilder.ne("ipInterface.isManaged", "D"); serviceCriteriaBuilder.ne("node.type", "D"); List<String> parameters = new ArrayList<>(rowCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); parameters.addAll(colCategories.stream().map(OnmsCategory::getName).collect(Collectors.toList())); Type[] types = new Type[parameters.size()]; Arrays.fill(types, Type.STRING); serviceCriteriaBuilder.sql( // HACK: Hibernate aliases 'node' as 'node2_' so we need to use this for the statement. createQuery("node2_.nodeId", rowCategories, colCategories), parameters.toArray(new String[parameters.size()]), types ); return getNodeListForCriteria(serviceCriteriaBuilder.toCriteria(), outageCriteriaBuilder.toCriteria()); } });
); criteriaBuilder.ne("node.type", "D"); criteriaBuilder.orderBy("pageTime", false);
public OnmsAlarm getAlarm(int nodeId) { CriteriaBuilder builder = new CriteriaBuilder(OnmsAlarm.class); builder.alias("node", "node"); builder.ne("severity", OnmsSeverity.CLEARED); builder.orderBy("severity").desc(); builder.eq("node.id", nodeId); builder.limit(Integer.valueOf(1)); List<OnmsAlarm> alarms = alarmDao.findMatching(builder.toCriteria()); return alarms == null || alarms.isEmpty() ? null : alarms.get(0); } }
public OnmsAlarm getAlarm(int nodeId) { CriteriaBuilder builder = new CriteriaBuilder(OnmsAlarm.class); builder.alias("node", "node"); builder.ne("severity", OnmsSeverity.CLEARED); builder.orderBy("severity").desc(); builder.eq("node.id", nodeId); builder.limit(Integer.valueOf(1)); List<OnmsAlarm> alarms = alarmDao.findMatching(builder.toCriteria()); return alarms == null || alarms.isEmpty() ? null : alarms.get(0); } }
builder.alias("ipInterfaces", "ipInterfaces", JoinType.LEFT_JOIN); builder.eq("node.id", nodeId); builder.ne("ipInterfaces.isManaged", "D"); builder.eq("ipInterfaces.ipAddress", ipAddr);
private void dataSourceSyncWithinTransaction() { m_lock.writeLock().lock(); try { /* * Make a new list with which we'll replace the existing one, that way * if something goes wrong with the DB we won't lose whatever was already * in there */ final SortedSetMultimap<Key, Value> newAlreadyDiscovered = Multimaps.newSortedSetMultimap(Maps.newHashMap(), TreeSet::new); // Fetch all non-deleted nodes final CriteriaBuilder builder = new CriteriaBuilder(OnmsNode.class); builder.ne("type", String.valueOf(NodeType.DELETED.value())); for (OnmsNode node : m_nodeDao.findMatching(builder.toCriteria())) { for (final OnmsIpInterface iface : node.getIpInterfaces()) { // Skip deleted interfaces // TODO: Refactor the 'D' value with an enumeration if ("D".equals(iface.getIsManaged())) { continue; } LOG.debug("Adding entry: {}:{} -> {}", node.getLocation().getLocationName(), iface.getIpAddress(), node.getId()); newAlreadyDiscovered.put(new Key(node.getLocation().getLocationName(), iface.getIpAddress()), new Value(node.getId(), iface.getIsSnmpPrimary())); } } m_managedAddresses.clear(); m_managedAddresses.putAll(newAlreadyDiscovered); LOG.info("dataSourceSync: initialized list of managed IP addresses with {} members", m_managedAddresses.size()); } finally { m_lock.writeLock().unlock(); } }
builder.eq("ifIndex", ifIndex); builder.eq("node.id", nodeId); builder.ne("ipInterfaces.isManaged", "D"); builder.eq("ipInterfaces.ipAddress", ipAddr);