use of org.opennms.web.alarm.filter.NodeNameLikeFilter 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.alarm.filter.NodeNameLikeFilter 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.alarm.filter.NodeNameLikeFilter in project opennms by OpenNMS.
the class AlarmQueryServlet method doGet.
/**
* {@inheritDoc}
*
* Extracts the key parameters from the parameter set, translates them into
* filter-based parameters, and then passes the modified parameter set to
* the {@link AlarmFilterController AlarmFilterController}.
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Filter> filterArray = new ArrayList<>();
// convenient syntax for LogMessageSubstringFilter
String msgSubstring = WebSecurityUtils.sanitizeString(request.getParameter("msgsub"));
if (msgSubstring != null && msgSubstring.length() > 0) {
filterArray.add(new LogMessageSubstringFilter(msgSubstring));
}
// convenient syntax for LogMessageMatchesAnyFilter
String msgMatchAny = WebSecurityUtils.sanitizeString(request.getParameter("msgmatchany"));
if (msgMatchAny != null && msgMatchAny.length() > 0) {
filterArray.add(new LogMessageMatchesAnyFilter(msgMatchAny));
}
// convenient syntax for NodeNameContainingFilter
String nodeNameLike = WebSecurityUtils.sanitizeString(request.getParameter("nodenamelike"));
if (nodeNameLike != null && nodeNameLike.length() > 0) {
filterArray.add(new NodeNameLikeFilter(nodeNameLike));
}
// convenient syntax for ServiceFilter
String service = request.getParameter("service");
if (service != null && !service.equals(AlarmUtil.ANY_SERVICES_OPTION)) {
filterArray.add(new ServiceFilter(WebSecurityUtils.safeParseInt(service), getServletContext()));
}
// convenient syntax for IPLikeFilter
String ipLikePattern = WebSecurityUtils.sanitizeString(request.getParameter("iplike"));
if (ipLikePattern != null && !ipLikePattern.equals("")) {
filterArray.add(new IPAddrLikeFilter(ipLikePattern));
}
// convenient syntax for SeverityFilter
String severity = request.getParameter("severity");
if (severity != null && !severity.equalsIgnoreCase(AlarmUtil.ANY_SEVERITIES_OPTION)) {
filterArray.add(new SeverityFilter(OnmsSeverity.get(WebSecurityUtils.safeParseInt(severity))));
}
// convenient syntax for AfterDateFilter as relative to current time
String relativeTime = request.getParameter("relativetime");
if (relativeTime != null && !relativeTime.equalsIgnoreCase(AlarmUtil.ANY_RELATIVE_TIMES_OPTION)) {
try {
filterArray.add(AlarmUtil.getRelativeTimeFilter(WebSecurityUtils.safeParseInt(relativeTime)));
} catch (IllegalArgumentException e) {
// ignore the relative time if it is an illegal value
this.log("Illegal relativetime value", e);
}
}
String useBeforeLastEventTime = WebSecurityUtils.sanitizeString(request.getParameter("usebeforelasteventtime"));
if (useBeforeLastEventTime != null && useBeforeLastEventTime.equals("1")) {
try {
filterArray.add(this.getBeforeLastEventTimeFilter(request));
} catch (IllegalArgumentException e) {
// ignore the before time if it is an illegal value
this.log("Illegal before last event time value", e);
} catch (MissingParameterException e) {
throw new ServletException(e);
}
}
String useAfterLastEventTime = WebSecurityUtils.sanitizeString(request.getParameter("useafterlasteventtime"));
if (useAfterLastEventTime != null && useAfterLastEventTime.equals("1")) {
try {
filterArray.add(this.getAfterLastEventTimeFilter(request));
} catch (IllegalArgumentException e) {
// ignore the after time if it is an illegal value
this.log("Illegal after last event time value", e);
} catch (MissingParameterException e) {
throw new ServletException(e);
}
}
String useBeforeFirstEventTime = WebSecurityUtils.sanitizeString(request.getParameter("usebeforefirsteventtime"));
if (useBeforeFirstEventTime != null && useBeforeFirstEventTime.equals("1")) {
try {
filterArray.add(this.getBeforeFirstEventTimeFilter(request));
} catch (IllegalArgumentException e) {
// ignore the before time if it is an illegal value
this.log("Illegal before first event time value", e);
} catch (MissingParameterException e) {
throw new ServletException(e);
}
}
String useAfterFirstEventTime = WebSecurityUtils.sanitizeString(request.getParameter("useafterfirsteventtime"));
if (useAfterFirstEventTime != null && useAfterFirstEventTime.equals("1")) {
try {
filterArray.add(this.getAfterFirstEventTimeFilter(request));
} catch (IllegalArgumentException e) {
// ignore the after time if it is an illegal value
this.log("Illegal after first event time value", e);
} catch (MissingParameterException e) {
throw new ServletException(e);
}
}
String location = WebSecurityUtils.sanitizeString(request.getParameter("location"));
if (location != null && !location.equalsIgnoreCase("any")) {
filterArray.add(new LocationFilter(WebSecurityUtils.sanitizeString(location)));
}
String nodelocation = WebSecurityUtils.sanitizeString(request.getParameter("nodelocation"));
if (nodelocation != null && !nodelocation.equalsIgnoreCase("any")) {
filterArray.add(new NodeLocationFilter(WebSecurityUtils.sanitizeString(nodelocation)));
}
String queryString = "";
if (filterArray.size() > 0) {
String[] filterStrings = new String[filterArray.size()];
for (int i = 0; i < filterStrings.length; i++) {
Filter filter = filterArray.get(i);
filterStrings[i] = AlarmUtil.getFilterString(filter);
}
Map<String, Object> paramAdditions = new HashMap<String, Object>();
paramAdditions.put("filter", filterStrings);
queryString = Util.makeQueryString(request, paramAdditions, IGNORE_LIST);
} else {
queryString = Util.makeQueryString(request, IGNORE_LIST);
}
response.sendRedirect(redirectUrl + "?" + queryString);
}
Aggregations