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);
}
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);
}
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;
}
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");
}
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");
}
Aggregations