use of org.opennms.web.outage.filter.LocationFilter in project opennms by OpenNMS.
the class DaoWebOutageRepositoryIT method testGetOutagesByLocation.
@Test
// Relies on specific IDs so we need a fresh database
@JUnitTemporaryDatabase
public void testGetOutagesByLocation() {
createNodeEventAndOutage("Pittsboro", "nodeA", "172.16.10.10", "ICMP");
createNodeEventAndOutage("Pittsboro", "nodeB", "172.16.10.20", "ICMP");
createNodeEventAndOutage("Minneapolis", "nodeC", "172.16.20.10", "ICMP");
createNodeEventAndOutage("Minneapolis", "nodeD", "172.16.20.20", "ICMP");
createNodeEventAndOutage("Minneapolis", "nodeE", "172.16.20.30", "ICMP");
Outage[] outage1 = m_daoOutageRepo.getMatchingOutages(new OutageCriteria());
assertEquals(8, outage1.length);
Outage[] outage2 = m_daoOutageRepo.getMatchingOutages(new OutageCriteria(new LocationFilter("Minneapolis")));
assertEquals(3, outage2.length);
assertTrue(Arrays.stream(outage2).allMatch(o -> o.getLocation().equals("Minneapolis")));
Outage[] outage3 = m_daoOutageRepo.getMatchingOutages(new OutageCriteria(new NegativeLocationFilter("Minneapolis")));
assertEquals(5, outage3.length);
assertTrue(Arrays.stream(outage3).allMatch(o -> !o.getLocation().equals("Minneapolis")));
}
use of org.opennms.web.outage.filter.LocationFilter in project opennms by OpenNMS.
the class OutageUtil method getFilter.
/**
* <p>getFilter</p>
*
* @param filterString a {@link java.lang.String} object.
* @return a org$opennms$web$filter$Filter object.
*/
public static Filter getFilter(String filterString, ServletContext servletContext) {
if (filterString == null) {
throw new IllegalArgumentException("Cannot take null parameters.");
}
Filter filter = null;
StringTokenizer tokens = new StringTokenizer(filterString, "=");
String type;
String value;
try {
type = tokens.nextToken();
value = tokens.nextToken();
} catch (NoSuchElementException e) {
throw new IllegalArgumentException("Could not tokenize filter string: " + filterString);
}
if (type.equals(NodeFilter.TYPE)) {
filter = new NodeFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(ForeignSourceFilter.TYPE)) {
filter = new ForeignSourceFilter(value);
} else if (type.equals(InterfaceFilter.TYPE)) {
filter = new InterfaceFilter(value);
} else if (type.equals(ServiceFilter.TYPE)) {
filter = new ServiceFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(OutageIdFilter.TYPE)) {
filter = new OutageIdFilter(WebSecurityUtils.safeParseInt(value));
} else if (type.equals(NegativeForeignSourceFilter.TYPE)) {
filter = new NegativeForeignSourceFilter(value);
} else if (type.equals(NegativeNodeFilter.TYPE)) {
filter = new NegativeNodeFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(NegativeInterfaceFilter.TYPE)) {
filter = new NegativeInterfaceFilter(value);
} else if (type.equals(NegativeServiceFilter.TYPE)) {
filter = new NegativeServiceFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(LostServiceDateBeforeFilter.TYPE)) {
filter = new LostServiceDateBeforeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(LostServiceDateAfterFilter.TYPE)) {
filter = new LostServiceDateAfterFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(RegainedServiceDateBeforeFilter.TYPE)) {
filter = new RegainedServiceDateBeforeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(RegainedServiceDateAfterFilter.TYPE)) {
filter = new RegainedServiceDateAfterFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.startsWith(AssetFilter.TYPE)) {
filter = new AssetFilter(type, value);
} else if (type.startsWith(LocationFilter.TYPE)) {
filter = new LocationFilter(value);
} else if (type.startsWith(NegativeLocationFilter.TYPE)) {
filter = new NegativeLocationFilter(value);
}
return filter;
}
Aggregations