public void addRestriction(String property, CriteriaBuilderHelper criteriaBuilderHelper, CriteriaBuilder criteriaBuilder, Object[] values) { Set<Object> set = new HashSet<>(); Class<?> clazz = criteriaBuilderHelper.getTypeOfProperty(property); for (String string : String.valueOf(values[1]).split("\\|")) { set.add(criteriaBuilderHelper.parseCriteriaValue(clazz, string)); } criteriaBuilder.in(values[0].toString(), set); } },
@Override public Map<String, AlarmWrapper> lookup(Set<String> reductionKeys) { if (reductionKeys == null || reductionKeys.isEmpty()) { return new HashMap<>(); } if (reductionKeys.size() <= threshold) { List<OnmsAlarm> alarms = alarmDao.findMatching(new CriteriaBuilder(OnmsAlarm.class).in("reductionKey", reductionKeys).toCriteria()); return alarms.stream().collect(Collectors.toMap(OnmsAlarm::getReductionKey, AlarmWrapperImpl::new)); } else { return alarmDao.findAll().stream() .filter(a -> reductionKeys.contains(a.getReductionKey())) .collect(Collectors.toMap(OnmsAlarm::getReductionKey, AlarmWrapperImpl::new)); } }
private List<OnmsNode> getNodes(List<Integer> ids) { if (ids == null || ids.isEmpty()) { return new ArrayList<>(); } final List<OnmsNode> nodes = nodeDao.findMatching(new CriteriaBuilder(OnmsNode.class).in("id", ids).toCriteria()); return nodes; }
private List<OnmsNode> getNodes(List<Integer> ids) { if (ids == null || ids.isEmpty()) { return new ArrayList<>(); } final List<OnmsNode> nodes = nodeDao.findMatching(new CriteriaBuilder(OnmsNode.class).in("id", ids).toCriteria()); return nodes; }
@Override public Map<Integer, Coordinates> resolve(Collection<Integer> nodeIds) { if (nodeIds == null || nodeIds.isEmpty()) { return new HashMap<>(); // nothing to do } // Lookup all nodes and gather the address string final Criteria criteria = new CriteriaBuilder(OnmsNode.class).in("id", nodeIds).toCriteria(); final Map<Integer, String> nodeIdAddressMap = nodeDao.findMatching(criteria).stream() .filter(n -> getGeoLocation(n) != null) .filter(n -> getGeoLocation(n).getLatitude() == null && getGeoLocation(n).getLongitude() == null) .filter(n -> !Strings.isNullOrEmpty(getGeoLocation(n).asAddressString())) .collect(Collectors.toMap(OnmsNode::getId, n -> n.getAssetRecord().getGeolocation().asAddressString())); return resolve(nodeIdAddressMap); }
@Override public Map<Integer, Coordinates> resolve(Collection<Integer> nodeIds) { if (nodeIds == null || nodeIds.isEmpty()) { return new HashMap<>(); // nothing to do } // Lookup all nodes and gather the address string final Criteria criteria = new CriteriaBuilder(OnmsNode.class).in("id", nodeIds).toCriteria(); final Map<Integer, String> nodeIdAddressMap = nodeDao.findMatching(criteria).stream() .filter(n -> getGeoLocation(n) != null) .filter(n -> getGeoLocation(n).getLatitude() == null && getGeoLocation(n).getLongitude() == null) .filter(n -> !Strings.isNullOrEmpty(getGeoLocation(n).asAddressString())) .collect(Collectors.toMap(OnmsNode::getId, n -> n.getAssetRecord().getGeolocation().asAddressString())); return resolve(nodeIdAddressMap); }
.in("foreignId", minions.keySet()) .distinct() .toCriteria();
builder.in("reductionKey", reductionKeys);
private Map<Integer, List<OnmsOutage>> getOutages(List<Integer> nodeIds, List<String> serviceNames, Date start, Date end) { if (nodeIds == null || nodeIds.size() == 0) { return Maps.newHashMap(); } final CriteriaBuilder builder = new CriteriaBuilder(OnmsOutage.class) // The outage must have started before the end of the window .le("ifLostService", end) .or(new NullRestriction("ifRegainedService"), // The outage is ongoing new AllRestriction( // or the outage was cleared somewhere in the window new GtRestriction("ifRegainedService", start), new LeRestriction("ifRegainedService", end)) ) // Only select outages affecting our nodes .alias("monitoredService", "monitoredService") .alias("monitoredService.ipInterface", "ipInterface") .alias("ipInterface.node", "node") .eq("ipInterface.isManaged", "M") .in("node.id", nodeIds); // Only select outages affecting services with the given names, if set if (serviceNames != null && serviceNames.size() > 0) { builder.alias("monitoredService.serviceType", "serviceType") .in("serviceType.name", serviceNames); } // Retrieve the outages and group them by node id return m_outageDao.findMatching(builder.toCriteria()).stream() .collect(Collectors.groupingBy(OnmsOutage::getNodeId)); }
private int getNumServices(int nodeId, List<String> serviceNames) { final CriteriaBuilder builder = new CriteriaBuilder(OnmsMonitoredService.class) .alias("ipInterface", "ipInterface") .alias("ipInterface.node", "node") .eq("ipInterface.isManaged", "M") .eq("node.id", nodeId); if (serviceNames != null && serviceNames.size() > 0) { builder.alias("serviceType", "serviceType") .in("serviceType.name", serviceNames); } // Retrieve the services and group them by node id return m_monitoredServiceDao.countMatching(builder.toCriteria()); }
.collect(Collectors.toSet()); if (!groupFilter.isEmpty()) { criteriaBuilder.in("group.id", groupFilter);
private Status getStatusForGroup(VertexRef groupRef) { List<Vertex> vertices = getVertexProvider().getChildren(groupRef); Collection<Integer> nodeIds = new ArrayList<Integer>(); for(Vertex vertex : vertices) { if(!vertex.isGroup()) { nodeIds.add(vertex.getNodeID()); } } CriteriaBuilder builder = new CriteriaBuilder(OnmsAlarm.class); builder.alias("node", "node"); builder.in("node.id", nodeIds); builder.ge("severity", OnmsSeverity.WARNING); builder.orderBy("severity").desc(); builder.limit(1); return getStatusForCriteria(builder); }
.collect(Collectors.toSet()); if (!groupFilter.isEmpty()) { criteriaBuilder.in("group.id", groupFilter);
private List<OnmsNode> getNodes(GeolocationQuery query) { CriteriaBuilder criteriaBuilder = new CriteriaBuilder(OnmsNode.class) .alias("assetRecord", "assetRecord") .and( Restrictions.isNotNull("assetRecord"), Restrictions.isNotNull("assetRecord.geolocation") ); if (query.getLocation() != null) { criteriaBuilder.and(Restrictions.eq("location", query.getLocation())); } if (!query.getNodeIds().isEmpty()) { criteriaBuilder.in("id", query.getNodeIds()); } return genericPersistenceAccessor.findMatching(criteriaBuilder.toCriteria()); }
private List<OnmsNode> getNodes(GeolocationQuery query) { CriteriaBuilder criteriaBuilder = new CriteriaBuilder(OnmsNode.class) .alias("assetRecord", "assetRecord") .and( Restrictions.isNotNull("assetRecord"), Restrictions.isNotNull("assetRecord.geolocation") ); if (query.getLocation() != null) { criteriaBuilder.and(Restrictions.eq("location", query.getLocation())); } if (!query.getNodeIds().isEmpty()) { criteriaBuilder.in("id", query.getNodeIds()); } return genericPersistenceAccessor.findMatching(criteriaBuilder.toCriteria()); }