Search in sources :

Example 21 with OnmsSeverity

use of org.opennms.netmgt.model.OnmsSeverity in project opennms by OpenNMS.

the class EventFeed method getFeed.

/**
 * <p>getFeed</p>
 *
 * @return a {@link com.rometools.rome.feed.synd.SyndFeed} object.
 */
@Override
public SyndFeed getFeed() {
    SyndFeed feed = new SyndFeedImpl();
    feed.setTitle("Events");
    feed.setDescription("OpenNMS Events");
    feed.setLink(getUrlBase() + "event/list.htm");
    List<SyndEntry> entries = new ArrayList<>();
    try {
        Event[] events;
        ArrayList<Filter> filters = new ArrayList<>();
        if (this.getRequest().getParameter("node") != null) {
            Integer nodeId = WebSecurityUtils.safeParseInt(this.getRequest().getParameter("node"));
            filters.add(new NodeFilter(nodeId, getServletContext()));
        }
        if (this.getRequest().getParameter("severity") != null) {
            String parameter = this.getRequest().getParameter("severity");
            try {
                Integer severityId = WebSecurityUtils.safeParseInt(parameter);
                filters.add(new SeverityFilter(severityId));
            } catch (NumberFormatException e) {
                for (OnmsSeverity sev : OnmsSeverity.values()) {
                    if (sev.getLabel().equalsIgnoreCase(parameter)) {
                        filters.add(new SeverityFilter(sev));
                        break;
                    }
                }
            }
        }
        events = EventFactory.getEvents(SortStyle.TIME, AcknowledgeType.BOTH, filters.toArray(new Filter[] {}), this.getMaxEntries(), 0);
        SyndEntry entry;
        for (Event event : events) {
            entry = new SyndEntryImpl();
            entry.setPublishedDate(event.getTime());
            if (event.getAcknowledgeTime() != null) {
                entry.setTitle(sanitizeTitle(event.getLogMessage()) + " (Acknowledged by " + event.getAcknowledgeUser() + ")");
                entry.setUpdatedDate(event.getAcknowledgeTime());
            } else {
                entry.setTitle(sanitizeTitle(event.getLogMessage()));
                entry.setUpdatedDate(event.getTime());
            }
            entry.setLink(getUrlBase() + "event/detail.jsp?id=" + event.getId());
            entry.setAuthor("OpenNMS");
            SyndContent content = new SyndContentImpl();
            content.setType("text/html");
            content.setValue(event.getDescription());
            entry.setDescription(content);
            entries.add(entry);
        }
    } catch (SQLException e) {
        LOG.warn("unable to get event(s)", e);
    }
    feed.setEntries(entries);
    return feed;
}
Also used : SQLException(java.sql.SQLException) SyndEntry(com.rometools.rome.feed.synd.SyndEntry) SyndContentImpl(com.rometools.rome.feed.synd.SyndContentImpl) ArrayList(java.util.ArrayList) SyndFeed(com.rometools.rome.feed.synd.SyndFeed) SeverityFilter(org.opennms.web.event.filter.SeverityFilter) OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) SyndContent(com.rometools.rome.feed.synd.SyndContent) SeverityFilter(org.opennms.web.event.filter.SeverityFilter) Filter(org.opennms.web.filter.Filter) NodeFilter(org.opennms.web.event.filter.NodeFilter) SyndEntryImpl(com.rometools.rome.feed.synd.SyndEntryImpl) Event(org.opennms.web.event.Event) SyndFeedImpl(com.rometools.rome.feed.synd.SyndFeedImpl) NodeFilter(org.opennms.web.event.filter.NodeFilter)

Example 22 with OnmsSeverity

use of org.opennms.netmgt.model.OnmsSeverity in project opennms by OpenNMS.

the class GraphMLEdgeStatus method merge.

public static GraphMLEdgeStatus merge(final GraphMLEdgeStatus s1, final GraphMLEdgeStatus s2) {
    final OnmsSeverity severity = s1.getSeverity().isGreaterThan(s2.getSeverity()) ? s1.getSeverity() : s2.getSeverity();
    final Map<String, String> styleProperties = Maps.newHashMap(EMPTY_PROPERTIES);
    for (final Map.Entry<String, String> e : s1.styleProperties.entrySet()) {
        if (e.getValue() != null) {
            styleProperties.put(e.getKey(), e.getValue());
        }
    }
    for (final Map.Entry<String, String> e : s2.styleProperties.entrySet()) {
        if (e.getValue() != null) {
            styleProperties.put(e.getKey(), e.getValue());
        }
    }
    return new GraphMLEdgeStatus(severity, styleProperties);
}
Also used : OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) ImmutableMap(com.google.common.collect.ImmutableMap) Map(java.util.Map)

Example 23 with OnmsSeverity

use of org.opennms.netmgt.model.OnmsSeverity in project opennms by OpenNMS.

the class ApplicationStatusProvider method getStatusForVertices.

@Override
public Map<VertexRef, Status> getStatusForVertices(VertexProvider vertexProvider, Collection<VertexRef> vertices, Criteria[] criteria) {
    Map<VertexRef, Status> returnMap = new HashMap<>();
    Map<ApplicationStatusEntity.Key, Status> statusMap = new HashMap<>();
    List<ApplicationStatusEntity> result = applicationDao.getAlarmStatus();
    for (ApplicationStatusEntity eachRow : result) {
        DefaultStatus status = createStatus(eachRow.getSeverity(), eachRow.getCount());
        statusMap.put(eachRow.getKey(), status);
    }
    // status for all known node ids
    Collection<VertexRef> vertexRefsForNamespace = getVertexRefsForNamespace(vertices);
    Collection<VertexRef> vertexRefsRoot = getRootElements(vertexRefsForNamespace);
    Collection<VertexRef> vertexRefs = new ArrayList<>(vertexRefsForNamespace);
    vertexRefs.removeAll(vertexRefsRoot);
    // calculate status for children
    for (VertexRef eachVertex : vertexRefs) {
        ApplicationVertex applicationVertex = (ApplicationVertex) eachVertex;
        Status alarmStatus = statusMap.get(createKey(applicationVertex));
        if (alarmStatus == null) {
            alarmStatus = createStatus(OnmsSeverity.NORMAL, 0);
        }
        returnMap.put(eachVertex, alarmStatus);
    }
    // calculate status for root
    for (VertexRef eachRoot : vertexRefsRoot) {
        ApplicationVertex eachRootApplication = (ApplicationVertex) eachRoot;
        OnmsSeverity maxSeverity = OnmsSeverity.NORMAL;
        int count = 0;
        for (VertexRef eachChild : eachRootApplication.getChildren()) {
            ApplicationVertex eachChildApplication = (ApplicationVertex) eachChild;
            ApplicationStatusEntity.Key childKey = createKey(eachChildApplication);
            Status childStatus = statusMap.get(childKey);
            if (childStatus != null && maxSeverity.isLessThan(createSeverity(childStatus.computeStatus()))) {
                maxSeverity = createSeverity(childStatus.computeStatus());
                count = Integer.parseInt(childStatus.getStatusProperties().get("statusCount"));
            }
        }
        returnMap.put(eachRoot, createStatus(maxSeverity, count));
    }
    return returnMap;
}
Also used : DefaultStatus(org.opennms.features.topology.api.topo.DefaultStatus) Status(org.opennms.features.topology.api.topo.Status) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ApplicationStatusEntity(org.opennms.netmgt.dao.api.ApplicationStatusEntity) DefaultStatus(org.opennms.features.topology.api.topo.DefaultStatus) OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) VertexRef(org.opennms.features.topology.api.topo.VertexRef)

Example 24 with OnmsSeverity

use of org.opennms.netmgt.model.OnmsSeverity in project opennms by OpenNMS.

the class AlarmStatsRestService method getStatsForEachSeverity.

@GET
@Path("/by-severity")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_ATOM_XML })
public AlarmStatisticsBySeverity getStatsForEachSeverity(@Context final UriInfo uriInfo, @QueryParam("severities") final String severitiesString) {
    final AlarmStatisticsBySeverity stats = new AlarmStatisticsBySeverity();
    String[] severities = StringUtils.split(severitiesString, ",");
    if (severities == null || severities.length == 0) {
        severities = OnmsSeverity.names().toArray(EMPTY_STRING_ARRAY);
    }
    for (final String severityName : severities) {
        final OnmsSeverity severity = OnmsSeverity.get(severityName);
        final AlarmStatistics stat = getStats(uriInfo, severity);
        stat.setSeverity(severity);
        stats.add(stat);
    }
    return stats;
}
Also used : OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Aggregations

OnmsSeverity (org.opennms.netmgt.model.OnmsSeverity)24 ArrayList (java.util.ArrayList)8 OnmsAlarm (org.opennms.netmgt.model.OnmsAlarm)8 CriteriaBuilder (org.opennms.core.criteria.CriteriaBuilder)7 OnmsNode (org.opennms.netmgt.model.OnmsNode)7 List (java.util.List)6 Collectors (java.util.stream.Collectors)6 NodeStatusCalculatorConfig (org.opennms.features.status.api.node.strategy.NodeStatusCalculatorConfig)5 HashMap (java.util.HashMap)4 Map (java.util.Map)4 Objects (java.util.Objects)4 NodeStatusCalculationStrategy (org.opennms.features.status.api.node.strategy.NodeStatusCalculationStrategy)4 Status (org.opennms.features.status.api.node.strategy.Status)4 Arrays (java.util.Arrays)3 Set (java.util.Set)3 Restrictions (org.opennms.core.criteria.restrictions.Restrictions)3 InetAddressUtils (org.opennms.core.utils.InetAddressUtils)3 AddressInfo (org.opennms.features.geolocation.api.AddressInfo)3 Coordinates (org.opennms.features.geolocation.api.Coordinates)3 GeolocationInfo (org.opennms.features.geolocation.api.GeolocationInfo)3