Search in sources :

Example 1 with Status

use of org.opennms.features.topology.api.topo.Status in project opennms by OpenNMS.

the class GraphMLVertexStatusProviderTest method testStatusProvider.

@Test
public void testStatusProvider() throws InvalidGraphException {
    GraphML graphML = GraphMLReader.read(getClass().getResourceAsStream("/test-graph.xml"));
    GraphMLTopologyProvider topologyProvider = new GraphMLTopologyProvider(graphML.getGraphs().get(0), new GraphMLServiceAccessor());
    GraphMLVertexStatusProvider statusProvider = new GraphMLVertexStatusProvider(topologyProvider.getNamespace(), nodeIds -> Lists.newArrayList(createSummary(1, "North", OnmsSeverity.WARNING, 1), createSummary(2, "West", OnmsSeverity.MINOR, 2), createSummary(3, "South", OnmsSeverity.MAJOR, 3)));
    List<VertexRef> vertices = topologyProvider.getVertices().stream().map(eachVertex -> (VertexRef) eachVertex).collect(Collectors.toList());
    Assert.assertEquals(4, vertices.size());
    Assert.assertEquals(topologyProvider.getNamespace(), statusProvider.getNamespace());
    Assert.assertEquals(Boolean.TRUE, statusProvider.contributesTo(topologyProvider.getNamespace()));
    Map<VertexRef, Status> statusForVertices = statusProvider.getStatusForVertices(topologyProvider, vertices, new Criteria[0]);
    Assert.assertEquals(4, statusForVertices.size());
    Assert.assertEquals(ImmutableMap.of(createVertexRef(topologyProvider.getNamespace(), "north"), createStatus(OnmsSeverity.WARNING, 1), createVertexRef(topologyProvider.getNamespace(), "west"), createStatus(OnmsSeverity.MINOR, 2), createVertexRef(topologyProvider.getNamespace(), "south"), createStatus(OnmsSeverity.MAJOR, 3), createVertexRef(topologyProvider.getNamespace(), "east"), createStatus(OnmsSeverity.NORMAL, 0)), statusForVertices);
}
Also used : DefaultVertexRef(org.opennms.features.topology.api.topo.DefaultVertexRef) ImmutableMap(com.google.common.collect.ImmutableMap) Date(java.util.Date) AlarmSummary(org.opennms.netmgt.model.alarm.AlarmSummary) Test(org.junit.Test) GraphML(org.opennms.features.graphml.model.GraphML) GraphMLReader(org.opennms.features.graphml.model.GraphMLReader) Collectors(java.util.stream.Collectors) List(java.util.List) Lists(com.google.common.collect.Lists) Map(java.util.Map) InvalidGraphException(org.opennms.features.graphml.model.InvalidGraphException) Criteria(org.opennms.features.topology.api.topo.Criteria) Status(org.opennms.features.topology.api.topo.Status) Assert(org.junit.Assert) VertexRef(org.opennms.features.topology.api.topo.VertexRef) GraphMLServiceAccessor(org.opennms.features.topology.plugins.topo.graphml.internal.GraphMLServiceAccessor) OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) Status(org.opennms.features.topology.api.topo.Status) GraphML(org.opennms.features.graphml.model.GraphML) GraphMLServiceAccessor(org.opennms.features.topology.plugins.topo.graphml.internal.GraphMLServiceAccessor) DefaultVertexRef(org.opennms.features.topology.api.topo.DefaultVertexRef) VertexRef(org.opennms.features.topology.api.topo.VertexRef) Test(org.junit.Test)

Example 2 with Status

use of org.opennms.features.topology.api.topo.Status in project opennms by OpenNMS.

the class AlarmStatusProviderTest method testGetAlarmStatus.

@Test
public void testGetAlarmStatus() {
    Vertex vertex = createVertex(1);
    Vertex vertex2 = createVertex(2);
    Vertex vertex3 = createVertex(3);
    List<VertexRef> vertexList = Lists.newArrayList(vertex, vertex2, vertex3);
    EasyMock.expect(m_alarmDao.getNodeAlarmSummariesIncludeAcknowledgedOnes(EasyMock.anyObject())).andReturn(createNormalAlarmSummaryList());
    EasyMock.replay(m_alarmDao);
    Map<VertexRef, Status> statusMap = m_statusProvider.getStatusForVertices(m_vertexProvider, vertexList, new Criteria[0]);
    assertEquals(3, statusMap.size());
    assertEquals(vertex, statusMap.keySet().stream().sorted((v1, v2) -> v1.getId().compareTo(v2.getId())).collect(Collectors.toList()).get(0));
    // use defined status
    assertEquals("major", statusMap.get(vertex).computeStatus());
    // fallback to normal
    assertEquals("normal", statusMap.get(vertex2).computeStatus());
    // use defined status
    assertEquals("indeterminate", statusMap.get(vertex3).computeStatus());
    EasyMock.verify(m_alarmDao);
}
Also used : Status(org.opennms.features.topology.api.topo.Status) Date(java.util.Date) AlarmSummary(org.opennms.netmgt.model.alarm.AlarmSummary) Vertex(org.opennms.features.topology.api.topo.Vertex) Test(org.junit.Test) EasyMock(org.easymock.EasyMock) AbstractVertex(org.opennms.features.topology.api.topo.AbstractVertex) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) List(java.util.List) Lists(com.google.common.collect.Lists) VertexProvider(org.opennms.features.topology.api.topo.VertexProvider) AlarmDao(org.opennms.netmgt.dao.api.AlarmDao) Map(java.util.Map) Criteria(org.opennms.features.topology.api.topo.Criteria) Status(org.opennms.features.topology.api.topo.Status) VertexRef(org.opennms.features.topology.api.topo.VertexRef) Assert.assertEquals(org.junit.Assert.assertEquals) OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) Before(org.junit.Before) Vertex(org.opennms.features.topology.api.topo.Vertex) AbstractVertex(org.opennms.features.topology.api.topo.AbstractVertex) VertexRef(org.opennms.features.topology.api.topo.VertexRef) Test(org.junit.Test)

Example 3 with Status

use of org.opennms.features.topology.api.topo.Status in project opennms by OpenNMS.

the class GraphMLVertexStatusProvider method getStatusForVertices.

@Override
public Map<VertexRef, Status> getStatusForVertices(VertexProvider vertexProvider, Collection<VertexRef> vertices, Criteria[] criteria) {
    // All vertices for the current vertexProvider
    final List<GraphMLVertex> graphMLVertices = vertices.stream().filter(eachVertex -> contributesTo(eachVertex.getNamespace()) && eachVertex instanceof GraphMLVertex).map(eachVertex -> (GraphMLVertex) eachVertex).collect(Collectors.toList());
    // All vertices associated with a node id
    final Map<Integer, VertexRef> nodeIdMap = graphMLVertices.stream().filter(eachVertex -> eachVertex.getNodeID() != null).collect(Collectors.toMap(AbstractVertex::getNodeID, Function.identity()));
    // Alarm summary for each node id
    final Map<Integer, AlarmSummary> nodeIdToAlarmSummaryMap = getAlarmSummaries(nodeIdMap.keySet());
    // Set the result
    Map<VertexRef, Status> resultMap = Maps.newHashMap();
    for (GraphMLVertex eachVertex : graphMLVertices) {
        AlarmSummary alarmSummary = nodeIdToAlarmSummaryMap.get(eachVertex.getNodeID());
        DefaultStatus status = alarmSummary == null ? new VertexStatus(OnmsSeverity.NORMAL) : new VertexStatus(alarmSummary.getMaxSeverity(), alarmSummary.getAlarmCount());
        resultMap.put(eachVertex, status);
    }
    return resultMap;
}
Also used : AlarmSummary(org.opennms.netmgt.model.alarm.AlarmSummary) Collection(java.util.Collection) Set(java.util.Set) AbstractVertex(org.opennms.features.topology.api.topo.AbstractVertex) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) Maps(com.google.common.collect.Maps) ArrayList(java.util.ArrayList) Objects(java.util.Objects) DefaultStatus(org.opennms.features.topology.api.topo.DefaultStatus) List(java.util.List) StatusProvider(org.opennms.features.topology.api.topo.StatusProvider) VertexProvider(org.opennms.features.topology.api.topo.VertexProvider) AlarmSummaryWrapper(org.opennms.features.topology.plugins.topo.graphml.internal.AlarmSummaryWrapper) Map(java.util.Map) Criteria(org.opennms.features.topology.api.topo.Criteria) Status(org.opennms.features.topology.api.topo.Status) VertexRef(org.opennms.features.topology.api.topo.VertexRef) OnmsSeverity(org.opennms.netmgt.model.OnmsSeverity) DefaultStatus(org.opennms.features.topology.api.topo.DefaultStatus) Status(org.opennms.features.topology.api.topo.Status) DefaultStatus(org.opennms.features.topology.api.topo.DefaultStatus) AlarmSummary(org.opennms.netmgt.model.alarm.AlarmSummary) VertexRef(org.opennms.features.topology.api.topo.VertexRef)

Example 4 with Status

use of org.opennms.features.topology.api.topo.Status in project opennms by OpenNMS.

the class GraphPainter method getStatusCount.

private String getStatusCount(Vertex vertex) {
    Status status = m_statusMap.get(vertex);
    Map<String, String> statusProperties = status != null ? status.getStatusProperties() : new HashMap<>();
    return statusProperties.get("statusCount") == null ? "" : statusProperties.get("statusCount");
}
Also used : Status(org.opennms.features.topology.api.topo.Status)

Example 5 with Status

use of org.opennms.features.topology.api.topo.Status in project opennms by OpenNMS.

the class LinkdEdgeStatusProviderTest method testGetCdpLinkStatusDown.

@Test
public void testGetCdpLinkStatusDown() {
    EasyMock.expect(m_alarmDao.findMatching(EasyMock.anyObject(org.opennms.core.criteria.Criteria.class))).andReturn(createCdpDownAlarm()).anyTimes();
    List<EdgeRef> edges = getEdgeRefs();
    for (EdgeRef ref : edges) EasyMock.expect(m_edgeProvider.getEdge(ref)).andReturn(getEdgeFromRef(ref)).anyTimes();
    EasyMock.replay(m_alarmDao, m_edgeProvider);
    Map<EdgeRef, Status> statusMap = m_statusProvider.getStatusForEdges(m_edgeProvider, edges, new Criteria[0]);
    assertEquals(8, statusMap.size());
    assertEquals(edges.get(0), new ArrayList<EdgeRef>(statusMap.keySet()).get(0));
    assertEquals(statusMap.get(edges.get(0)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(1)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(2)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(3)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(4)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(5)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(7)).computeStatus(), "up");
    assertEquals(statusMap.get(edges.get(6)).computeStatus(), "down");
}
Also used : Status(org.opennms.features.topology.api.topo.Status) ArrayList(java.util.ArrayList) EdgeRef(org.opennms.features.topology.api.topo.EdgeRef) Test(org.junit.Test)

Aggregations

Status (org.opennms.features.topology.api.topo.Status)26 ArrayList (java.util.ArrayList)17 VertexRef (org.opennms.features.topology.api.topo.VertexRef)15 Test (org.junit.Test)14 Criteria (org.opennms.features.topology.api.topo.Criteria)14 List (java.util.List)13 Map (java.util.Map)13 Collectors (java.util.stream.Collectors)12 Lists (com.google.common.collect.Lists)10 StatusProvider (org.opennms.features.topology.api.topo.StatusProvider)9 OnmsSeverity (org.opennms.netmgt.model.OnmsSeverity)9 AlarmSummary (org.opennms.netmgt.model.alarm.AlarmSummary)9 Collection (java.util.Collection)8 Objects (java.util.Objects)7 AbstractVertex (org.opennms.features.topology.api.topo.AbstractVertex)7 EdgeRef (org.opennms.features.topology.api.topo.EdgeRef)7 VertexProvider (org.opennms.features.topology.api.topo.VertexProvider)7 GraphMLServiceAccessor (org.opennms.features.topology.plugins.topo.graphml.internal.GraphMLServiceAccessor)6 Paths (java.nio.file.Paths)5 Date (java.util.Date)5