Search in sources :

Example 1 with IsisTopologyLink

use of org.opennms.netmgt.model.topology.IsisTopologyLink in project opennms by OpenNMS.

the class IsIsLinkDaoHibernate method convertObjectToTopologyLink.

private List<IsisTopologyLink> convertObjectToTopologyLink(List<Object[]> list) {
    List<IsisTopologyLink> topoLinks = new ArrayList<IsisTopologyLink>();
    for (Object[] objs : list) {
        Integer targetId = (Integer) objs[8];
        Integer targetNodeId = (Integer) objs[9];
        if (targetId != null && targetNodeId != null) {
            topoLinks.add(new IsisTopologyLink((Integer) objs[1], (Integer) objs[2], (String) objs[3], (String) objs[4], (String) objs[5], NodeType.getNodeTypeFromChar((char) objs[6]), (Integer) objs[7], (Integer) objs[8], (Integer) objs[9], (String) objs[10], (String) objs[11], (String) objs[12], NodeType.getNodeTypeFromChar((char) objs[13]), (Integer) objs[14], (Date) objs[15]));
        }
    }
    return topoLinks;
}
Also used : ArrayList(java.util.ArrayList) IsisTopologyLink(org.opennms.netmgt.model.topology.IsisTopologyLink) Date(java.util.Date)

Example 2 with IsisTopologyLink

use of org.opennms.netmgt.model.topology.IsisTopologyLink in project opennms by OpenNMS.

the class EnhancedLinkdTopologyProvider method getIsIsLinks.

private void getIsIsLinks(Map<Integer, List<OnmsSnmpInterface>> nodesnmpmap, Map<Integer, OnmsIpInterface> ipprimarymap) {
    List<IsisTopologyLink> isislinks = m_isisLinkDao.getLinksForTopology();
    if (isislinks != null && isislinks.size() > 0) {
        for (IsisTopologyLink link : isislinks) {
            LOG.debug("loadtopology: adding isis link: '{}'", link);
            String id = Math.min(link.getSourceId(), link.getTargetId()) + "|" + Math.max(link.getSourceId(), link.getTargetId());
            Vertex source = getVertex(getNamespace(), link.getSrcNodeId().toString());
            if (source == null) {
                OnmsIpInterface primary = ipprimarymap.get(link.getSrcNodeId());
                source = getDefaultVertex(link.getSrcNodeId(), link.getSrcSysoid(), link.getSrcLabel(), link.getSrcLocation(), link.getSrcNodeType(), primary.isManaged(), InetAddressUtils.str(primary.getIpAddress()));
                addVertices(source);
            }
            Vertex target = getVertex(getNamespace(), link.getTargetNodeId().toString());
            if (target == null) {
                OnmsIpInterface targetprimary = ipprimarymap.get(link.getSrcNodeId());
                target = getDefaultVertex(link.getTargetNodeId(), link.getTargetSysoid(), link.getTargetLabel(), link.getTargetLocation(), link.getTargetNodeType(), targetprimary.isManaged(), InetAddressUtils.str(targetprimary.getIpAddress()));
                addVertices(target);
            }
            IsIsLinkDetail linkDetail = new IsIsLinkDetail(id, source, link.getSourceId(), link.getSrcIfIndex(), target, link.getTargetId(), link.getTargetIfIndex());
            LinkdEdge edge = connectVertices(linkDetail, ISIS_EDGE_NAMESPACE);
            edge.setTooltipText(getEdgeTooltipText(linkDetail, nodesnmpmap));
        }
    }
}
Also used : Vertex(org.opennms.features.topology.api.topo.Vertex) AbstractVertex(org.opennms.features.topology.api.topo.AbstractVertex) OnmsIpInterface(org.opennms.netmgt.model.OnmsIpInterface) IsisTopologyLink(org.opennms.netmgt.model.topology.IsisTopologyLink)

Example 3 with IsisTopologyLink

use of org.opennms.netmgt.model.topology.IsisTopologyLink in project opennms by OpenNMS.

the class Nms0001EnIT method testIsIsLinks.

@Test
@JUnitSnmpAgents(value = { @JUnitSnmpAgent(host = FROH_IP, port = 161, resource = FROH_SNMP_RESOURCE), @JUnitSnmpAgent(host = OEDIPUS_IP, port = 161, resource = OEDIPUS_SNMP_RESOURCE), @JUnitSnmpAgent(host = SIEGFRIE_IP, port = 161, resource = SIEGFRIE_SNMP_RESOURCE) })
public void testIsIsLinks() throws Exception {
    m_nodeDao.save(builder.getFroh());
    m_nodeDao.save(builder.getOedipus());
    m_nodeDao.save(builder.getSiegFrie());
    m_nodeDao.flush();
    m_linkdConfig.getConfiguration().setUseBridgeDiscovery(false);
    m_linkdConfig.getConfiguration().setUseOspfDiscovery(false);
    m_linkdConfig.getConfiguration().setUseLldpDiscovery(false);
    m_linkdConfig.getConfiguration().setUseCdpDiscovery(false);
    assertTrue(m_linkdConfig.useIsisDiscovery());
    assertTrue(!m_linkdConfig.useBridgeDiscovery());
    assertTrue(!m_linkdConfig.useOspfDiscovery());
    assertTrue(!m_linkdConfig.useLldpDiscovery());
    assertTrue(!m_linkdConfig.useCdpDiscovery());
    final OnmsNode froh = m_nodeDao.findByForeignId("linkd", FROH_NAME);
    final OnmsNode oedipus = m_nodeDao.findByForeignId("linkd", OEDIPUS_NAME);
    final OnmsNode siegfrie = m_nodeDao.findByForeignId("linkd", SIEGFRIE_NAME);
    assertTrue(m_linkd.scheduleNodeCollection(froh.getId()));
    assertTrue(m_linkd.scheduleNodeCollection(oedipus.getId()));
    assertTrue(m_linkd.scheduleNodeCollection(siegfrie.getId()));
    assertTrue(m_linkd.runSingleSnmpCollection(froh.getId()));
    assertEquals(2, m_isisLinkDao.countAll());
    assertTrue(m_linkd.runSingleSnmpCollection(oedipus.getId()));
    assertEquals(4, m_isisLinkDao.countAll());
    assertTrue(m_linkd.runSingleSnmpCollection(siegfrie.getId()));
    assertEquals(6, m_isisLinkDao.countAll());
    List<IsisTopologyLink> links = m_isisLinkDao.getLinksForTopology();
    assertEquals(3, links.size());
    for (OnmsNode node : m_nodeDao.findAll()) {
        assertNotNull(node.getIsisElement());
        System.err.println(node.getIsisElement());
    }
    for (IsIsLink link : m_isisLinkDao.findAll()) System.err.println(link);
/*
         * 
         * These are the links among the following nodes discovered using 
         * only the isis protocol
         *     froh:ae1.0(599):10.1.3.6/30         
         *     froh:ae2.0(600):10.1.3.2/30           
         *  oedipus:ae0.0(575):10.1.0.10/30       
         *  oedipus:ae1.0(578):10.1.3.5/30
         * siegfrie:ae2.0(552):10.1.3.1/30
         * siegfrie:ae0.0(533):10.1.0.9/30
         * 
         * siegfrie:0001 10.25.50.54:533    ---->  0001 10.25.50.62:00 1F 12 AC CB F0:0
         * siegfrie:0001 10.25.50.54:552    ---->  0001 10.08.85.00:00 21 59 0E 47 C2:0
         * 
         *     froh:0001 10.08.85.00:599    ---->  0001 10.25.50.62:00 1F 12 AC CB F1:0 
         *     froh:0001 10.08.85.00:600    ---->  0001 10.25.50.54:00 1F 12 AC C3 F2:0
         * 
         *  oedipus:0001 10.25.50.62:575     ----> 0001 10.25.50.54:00 1F 12 AC C3 F0:0   
         *  oedipus:0001 10.25.50.62:578     ----> 0001 10.08.85.00:00 21 59 0E 47 C1:0
         * 
         * The problem is that the association with Address is into another mib
         * 
         * froh-192.168.239.51-walk.txt:.1.3.6.1.2.1.138.1.6.1.1.4."599".1 = Hex-STRING: 00 1F 12 AC CB F1 
         * 
         * routing table for ip address                                      "ip route"  "mask" "level"      "next hop Snpa"
         * froh-192.168.239.51-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13."1.1.4"."10.1.0.4"   ."30"    .1    = Hex-STRING: 00 1F 12 AC CB F1 
         * froh-192.168.239.51-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13."1.1.4"."10.1.0.8"   ."30"    .1    = Hex-STRING: 00 1F 12 AC CB F1 
         * froh-192.168.239.51-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13."1.1.4"."10.255.0.62"."32     .1    = Hex-STRING: 00 1F 12 AC CB F1 
         * 
         * 
         * oedipus-192.168.239.62-walk.txt:.1.2.840.10006.300.43.1.1.1.1.2.576 = Hex-STRING: 00 1F 12 AC CB F1 
         * oedipus-192.168.239.62-walk.txt:.1.2.840.10006.300.43.1.1.1.1.2.578 = Hex-STRING: 00 1F 12 AC CB F1
         * 
         * 
         *  oedipus-192.168.239.62-walk.txt:.1.3.6.1.2.1.138.1.6.1.1.4."575".1 = Hex-STRING: 00 1F 12 AC C3 F0 
         *  
         *  oedipus-192.168.239.62-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13.1.1.4.10.1.0.0.30.1 = Hex-STRING: 00 1F 12 AC C3 F0 
         *  oedipus-192.168.239.62-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13.1.1.4.10.1.3.0.30.1 = Hex-STRING: 00 1F 12 AC C3 F0 
         *  oedipus-192.168.239.62-walk.txt:.1.3.6.1.2.1.138.1.8.1.1.13.1.1.4.10.255.0.54.32.1 = Hex-STRING: 00 1F 12 AC C3 F0 
         *  
         *  siegfrie-192.168.239.54-walk.txt:.1.2.840.10006.300.43.1.1.1.1.2.532 = Hex-STRING: 00 1F 12 AC C3 F0 
         *  siegfrie-192.168.239.54-walk.txt:.1.2.840.10006.300.43.1.1.1.1.2.533 = Hex-STRING: 00 1F 12 AC C3 F0
         */
}
Also used : IsIsLink(org.opennms.netmgt.model.IsIsLink) OnmsNode(org.opennms.netmgt.model.OnmsNode) IsisTopologyLink(org.opennms.netmgt.model.topology.IsisTopologyLink) Test(org.junit.Test) JUnitSnmpAgents(org.opennms.core.test.snmp.annotations.JUnitSnmpAgents)

Aggregations

IsisTopologyLink (org.opennms.netmgt.model.topology.IsisTopologyLink)3 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 Test (org.junit.Test)1 JUnitSnmpAgents (org.opennms.core.test.snmp.annotations.JUnitSnmpAgents)1 AbstractVertex (org.opennms.features.topology.api.topo.AbstractVertex)1 Vertex (org.opennms.features.topology.api.topo.Vertex)1 IsIsLink (org.opennms.netmgt.model.IsIsLink)1 OnmsIpInterface (org.opennms.netmgt.model.OnmsIpInterface)1 OnmsNode (org.opennms.netmgt.model.OnmsNode)1