[OpenNMS/opennms] daf60f: NMS-20254: Carry a discovered link's interfaces on...

Marshall Massengill via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/mm/NMS-20254-smoke/[email protected]>
  Branch: refs/heads/mm/NMS-20254-smoke
  Home:   https://github.com/OpenNMS/opennms
  Commit: daf60f09dbbf3a93b086abf1c4a3cb63edaecc87
      https://github.com/OpenNMS/opennms/commit/daf60f09dbbf3a93b086abf1c4a3cb63edaecc87
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M features/graph/provider/legacy/pom.xml
    M features/graph/provider/legacy/src/main/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdge.java
    A features/graph/provider/legacy/src/test/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdgeTest.java
    A features/topology-map/org.opennms.features.topology.api/src/main/java/org/opennms/features/topology/api/topo/LinkDetailsAware.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/main/java/org/opennms/features/topology/plugins/topo/linkd/internal/LinkdEdge.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/test/java/org/opennms/features/topology/plugins/topo/linkd/internal/EnhancedLinkdTopologyProviderTest.java

  Log Message:
  -----------
  NMS-20254: Carry a discovered link's interfaces onto its graph edge

Enlinkd resolves the interface at each end of a link: the rows are one-sided,
but the service layer pairs them and the updaters look each ifIndex up in the
SNMP interface table. The Vaadin plugin keeps that on LinkdEdge's two ports, and
it stopped there, because converting a legacy edge to a graph-API edge kept only
the id, label, namespace and endpoint node refs.

Edges that know their link now say so through LinkDetailsAware, and the
conversion copies both ifIndexes and the discovery protocol into the edge
properties. The graph REST layer already serializes that bag, so nothing there
changed. The interface, rather than an instanceof on the plugin's edge class,
keeps the generic graph module off a Vaadin plugin.

The keys live on LegacyEdge, not GenericProperties, which is offered for any
element. Values are strings because the REST converters have no case for a boxed
Integer and fall back to toString() regardless, as nodeID already does. All
three are optional, and the builder drops nulls, so an end discovery could not
resolve is absent.

Tested against real provider-built edges and their clones, which is all
getEdges() ever returns.

Unblocks the weathermap link metrics, which need (node, ifIndex) per direction.
It does not retire the UI's parseIfIndex regex on its own: that reads
/api/v2/enlinkd/{nodeId}, not /api/v2/graphs.



To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications


_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.