use of org.opennms.web.filter.Filter in project opennms by OpenNMS.
the class AlarmRepositoryIT method testSortAndSearchBySameProperty.
@Test
@Transactional
@JUnitTemporaryDatabase
public void testSortAndSearchBySameProperty() {
Filter[] filters = new Filter[] { new NodeNameLikeFilter("node") };
AlarmCriteria sorted = new AlarmCriteria(filters, SortStyle.NODE, AcknowledgeType.UNACKNOWLEDGED, 100, 0);
OnmsAlarm[] alarms = m_alarmRepo.getMatchingAlarms(AlarmUtil.getOnmsCriteria(sorted));
assertTrue("Failed to sort with style " + SortStyle.NODE, alarms.length > 0);
}
use of org.opennms.web.filter.Filter in project opennms by OpenNMS.
the class DaoWebOutageRepository method getOnmsCriteria.
/*
* NOTE: Criteria building for Outages must included the following aliases"
*
* monitoredService as monitoredService
* monitoredService.ipInterface as ipInterface
* monitoredService.ipInterface.node as node
* monitoredService.serviceType as serviceType
*
*/
private OnmsCriteria getOnmsCriteria(final OutageCriteria outageCriteria) {
final OnmsCriteria criteria = new OnmsCriteria(OnmsOutage.class);
criteria.createAlias("serviceLostEvent.distPoller", "distPoller");
criteria.createAlias("monitoredService", "monitoredService");
criteria.createAlias("monitoredService.ipInterface", "ipInterface");
criteria.createAlias("monitoredService.ipInterface.node", "node");
criteria.createAlias("monitoredService.serviceType", "serviceType");
outageCriteria.visit(new OutageCriteriaVisitor<RuntimeException>() {
@Override
public void visitOutageType(OutageType ackType) throws RuntimeException {
if (ackType == OutageType.CURRENT) {
criteria.add(Restrictions.isNull("ifRegainedService"));
} else if (ackType == OutageType.RESOLVED) {
criteria.add(Restrictions.isNotNull("ifRegainedService"));
}
}
@Override
public void visitFilter(Filter filter) throws RuntimeException {
criteria.add(filter.getCriterion());
}
@Override
public void visitGroupBy() throws RuntimeException {
}
@Override
public void visitLimit(int limit, int offset) throws RuntimeException {
criteria.setMaxResults(limit);
criteria.setFirstResult(offset);
}
@Override
public void visitSortStyle(SortStyle sortStyle) throws RuntimeException {
switch(sortStyle) {
case FOREIGNSOURCE:
criteria.addOrder(Order.desc("node.foreignSource"));
break;
case NODE:
criteria.addOrder(Order.desc("node.label"));
break;
case INTERFACE:
criteria.addOrder(Order.desc("ipInterface.ipAddress"));
break;
case SERVICE:
criteria.addOrder(Order.desc("serviceType.name"));
break;
case IFLOSTSERVICE:
criteria.addOrder(Order.desc("ifLostService"));
break;
case IFREGAINEDSERVICE:
criteria.addOrder(Order.desc("ifRegainedService"));
break;
case ID:
criteria.addOrder(Order.desc("id"));
break;
case LOCATION:
criteria.addOrder(Order.desc("node.location"));
break;
case REVERSE_FOREIGNSOURCE:
criteria.addOrder(Order.asc("node.foreignSource"));
break;
case REVERSE_NODE:
criteria.addOrder(Order.asc("node.label"));
break;
case REVERSE_INTERFACE:
criteria.addOrder(Order.asc("ipInterface.ipAddress"));
break;
case REVERSE_SERVICE:
criteria.addOrder(Order.asc("serviceType.name"));
break;
case REVERSE_IFLOSTSERVICE:
criteria.addOrder(Order.asc("ifLostService"));
break;
case REVERSE_IFREGAINEDSERVICE:
criteria.addOrder(Order.asc("ifRegainedService"));
break;
case REVERSE_ID:
criteria.addOrder(Order.asc("id"));
break;
case REVERSE_LOCATION:
criteria.addOrder(Order.asc("node.location"));
break;
default:
throw new IllegalArgumentException("Unknown SortStyle: " + sortStyle);
}
}
});
return criteria;
}
use of org.opennms.web.filter.Filter in project opennms by OpenNMS.
the class AlarmUtil method getOnmsCriteria.
public static OnmsCriteria getOnmsCriteria(final AlarmCriteria alarmCriteria) {
final OnmsCriteria criteria = new OnmsCriteria(OnmsAlarm.class);
criteria.createAlias("node", "node", OnmsCriteria.LEFT_JOIN);
criteria.createAlias("distPoller", "distPoller", OnmsCriteria.LEFT_JOIN);
criteria.createAlias("lastEvent", "lastEvent", OnmsCriteria.LEFT_JOIN);
criteria.createAlias("serviceType", "serviceType", OnmsCriteria.LEFT_JOIN);
alarmCriteria.visit(new AlarmCriteriaVisitor<RuntimeException>() {
@Override
public void visitAckType(AcknowledgeType ackType) throws RuntimeException {
if (ackType == AcknowledgeType.ACKNOWLEDGED) {
criteria.add(Restrictions.isNotNull("alarmAckUser"));
} else if (ackType == AcknowledgeType.UNACKNOWLEDGED) {
criteria.add(Restrictions.isNull("alarmAckUser"));
}
}
@Override
public void visitFilter(Filter filter) throws RuntimeException {
criteria.add(filter.getCriterion());
}
@Override
public void visitLimit(int limit, int offset) throws RuntimeException {
criteria.setMaxResults(limit);
criteria.setFirstResult(offset);
}
@Override
public void visitSortStyle(SortStyle sortStyle) throws RuntimeException {
switch(sortStyle) {
case COUNT:
criteria.addOrder(Order.desc("counter"));
break;
case FIRSTEVENTTIME:
criteria.addOrder(Order.desc("firstEventTime"));
break;
case ID:
criteria.addOrder(Order.desc("id"));
break;
case INTERFACE:
criteria.addOrder(Order.desc("ipAddr"));
break;
case LASTEVENTTIME:
criteria.addOrder(Order.desc("lastEventTime"));
break;
case NODE:
criteria.addOrder(Order.desc("node.label"));
break;
case POLLER:
criteria.addOrder(Order.desc("distPoller"));
break;
case SERVICE:
criteria.addOrder(Order.desc("serviceType.name"));
break;
case SEVERITY:
criteria.addOrder(Order.desc("severity"));
break;
case ACKUSER:
criteria.addOrder(Order.asc("alarmAckUser"));
break;
case REVERSE_COUNT:
criteria.addOrder(Order.asc("counter"));
break;
case REVERSE_FIRSTEVENTTIME:
criteria.addOrder(Order.asc("firstEventTime"));
break;
case REVERSE_ID:
criteria.addOrder(Order.asc("id"));
break;
case REVERSE_INTERFACE:
criteria.addOrder(Order.asc("ipAddr"));
break;
case REVERSE_LASTEVENTTIME:
criteria.addOrder(Order.asc("lastEventTime"));
break;
case REVERSE_NODE:
criteria.addOrder(Order.asc("node.label"));
break;
case REVERSE_POLLER:
criteria.addOrder(Order.asc("distPoller"));
break;
case REVERSE_SERVICE:
criteria.addOrder(Order.asc("serviceType.name"));
break;
case REVERSE_SEVERITY:
criteria.addOrder(Order.asc("severity"));
break;
case REVERSE_ACKUSER:
criteria.addOrder(Order.desc("alarmAckUser"));
break;
default:
break;
}
}
});
return criteria;
}
use of org.opennms.web.filter.Filter in project opennms by OpenNMS.
the class AlarmUtil method getFilter.
/**
* <p>getFilter</p>
*
* @param filterString a {@link java.lang.String} object.
* @return a {@link 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;
String[] tempTokens = filterString.split("=");
String type;
String value;
try {
type = tempTokens[0];
String[] values = (String[]) ArrayUtils.remove(tempTokens, 0);
value = org.apache.commons.lang.StringUtils.join(values, "=");
} catch (NoSuchElementException e) {
throw new IllegalArgumentException("Could not tokenize filter string: " + filterString);
}
if (type.equals(SeverityFilter.TYPE)) {
filter = new SeverityFilter(OnmsSeverity.get(WebSecurityUtils.safeParseInt(value)));
} else if (type.equals(NodeFilter.TYPE)) {
filter = new NodeFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(NodeNameLikeFilter.TYPE)) {
filter = new NodeNameLikeFilter(value);
} else if (type.equals(InterfaceFilter.TYPE)) {
filter = new InterfaceFilter(InetAddressUtils.addr(value));
} else if (type.equals(ServiceFilter.TYPE)) {
filter = new ServiceFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(PartialUEIFilter.TYPE)) {
filter = new PartialUEIFilter(value);
} else if (type.equals(ExactUEIFilter.TYPE)) {
filter = new ExactUEIFilter(value);
} else if (type.equals(AcknowledgedByFilter.TYPE)) {
filter = new AcknowledgedByFilter(value);
} else if (type.equals(NegativeSeverityFilter.TYPE)) {
filter = new NegativeSeverityFilter(OnmsSeverity.get(WebSecurityUtils.safeParseInt(value)));
} else if (type.equals(NegativeNodeFilter.TYPE)) {
filter = new NegativeNodeFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(NegativeInterfaceFilter.TYPE)) {
filter = new NegativeInterfaceFilter(InetAddressUtils.addr(value));
} else if (type.equals(NegativeServiceFilter.TYPE)) {
filter = new NegativeServiceFilter(WebSecurityUtils.safeParseInt(value), servletContext);
} else if (type.equals(NegativePartialUEIFilter.TYPE)) {
filter = new NegativePartialUEIFilter(value);
} else if (type.equals(NegativeExactUEIFilter.TYPE)) {
filter = new NegativeExactUEIFilter(value);
} else if (type.equals(NegativeAcknowledgedByFilter.TYPE)) {
filter = new NegativeAcknowledgedByFilter(value);
} else if (type.equals(IPAddrLikeFilter.TYPE)) {
filter = new IPAddrLikeFilter(value);
} else if (type.equals(LogMessageSubstringFilter.TYPE)) {
filter = new LogMessageSubstringFilter(value);
} else if (type.equals(LogMessageMatchesAnyFilter.TYPE)) {
filter = new LogMessageMatchesAnyFilter(value);
} else if (type.equals(BeforeLastEventTimeFilter.TYPE)) {
filter = new BeforeLastEventTimeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(BeforeFirstEventTimeFilter.TYPE)) {
filter = new BeforeFirstEventTimeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(AfterLastEventTimeFilter.TYPE)) {
filter = new AfterLastEventTimeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(AfterFirstEventTimeFilter.TYPE)) {
filter = new AfterFirstEventTimeFilter(WebSecurityUtils.safeParseLong(value));
} else if (type.equals(EventParmLikeFilter.TYPE)) {
filter = new EventParmLikeFilter(value);
} else if (type.equals(NegativeEventParmLikeFilter.TYPE)) {
filter = new NegativeEventParmLikeFilter(value);
} else if (type.equals(LocationFilter.TYPE)) {
filter = new LocationFilter(value);
} else if (type.equals(NegativeLocationFilter.TYPE)) {
filter = new NegativeLocationFilter(value);
} else if (type.equals(NodeLocationFilter.TYPE)) {
filter = new NodeLocationFilter(value);
} else if (type.equals(NegativeNodeLocationFilter.TYPE)) {
filter = new NegativeNodeLocationFilter(value);
}
return filter;
}
use of org.opennms.web.filter.Filter in project opennms by OpenNMS.
the class DaoWebNotificationRepositoryIT method testNotificationCount.
@Test
@Transactional
public void testNotificationCount() {
List<Filter> filterList = new ArrayList<>();
Filter[] filters = filterList.toArray(new Filter[0]);
AcknowledgeType ackType = AcknowledgeType.UNACKNOWLEDGED;
int notificationCount = m_daoNotificationRepo.countMatchingNotifications(new NotificationCriteria(ackType, filters));
assertEquals(1, notificationCount);
}
Aggregations