[OpenNMS/opennms] 7d2822: NMS-20125: Node List parity enhancements (#8736)

Scott Theleman via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/release-36.x/[email protected]>
  Branch: refs/heads/release-36.x
  Home:   https://github.com/OpenNMS/opennms
  Commit: 7d28224f13b104e07a76a9521ecf0f32e62866c3
      https://github.com/OpenNMS/opennms/commit/7d28224f13b104e07a76a9521ecf0f32e62866c3
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/NodeRestServiceIT.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/SnmpInterfaceRestServiceIT.java
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    A ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/queryStringParser.ts
    A ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/containers/Nodes.vue
    M ui/src/services/index.ts
    M ui/src/services/ipInterfaceService.ts
    A ui/src/services/snmpInterfaceService.ts
    M ui/src/stores/nodeStore.ts
    M ui/src/stores/nodeStructureStore.ts
    M ui/src/types/index.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
    A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    A ui/tests/containers/Nodes.test.ts
    A ui/tests/services/ipInterfaceService.test.ts
    A ui/tests/services/snmpInterfaceService.test.ts
    A ui/tests/stores/nodeStore.test.ts
    M ui/tests/stores/nodeStructureStore.test.ts

  Log Message:
  -----------
  NMS-20125: Node List parity enhancements (#8736)

* NMS-20125: add nodesWithOutages FIQL search to v2 NodeRestService

* NMS-20125: add pure interface-listing logic for Vue node list

* NMS-20125: add batched SNMP interface fetching for Vue node list

* NMS-20125: add Show interfaces mode to Vue node list

* NMS-20125: fix SNMP-narrowing fetch race and wildcard under-fetch

- Gate the SNMP interface fetch in NodesTable.vue on nodes/showInterfaces
  changing rather than interfaceListMode

- Add NodesTable.test.ts coverage for the narrowing FIQL, default-mode
  no-fetch, wildcard omission, and fetch dedupe.

* NMS-20125: add nodesWithOutages filter to Vue node list

* NMS-20125: redirect legacy nodeId query param to node detail page

* NMS-20125: exclude deleted nodes from node list queries and widen asset-column filtering

* NMS-20125: address final review findings for node list parity

Fixes five Important issues from the whole-branch review:

1. Invert the snmpMatchType-undefined default in getInterfaceListMode
2. Extract one shared, exported normalizeMacSearch() (useInterfaceListing.ts)
   that strips all non-hex characters and lowercases, and use it in
   useInterfaceListing's maclike match, NodesTable.vue's buildSnmpNarrowing,
   and useNodeQuery.ts's buildMaclikeQuery.
3. Widen NodesTable.vue's buildSnmpNarrowing under-fetch guard 
4. Add server-side IT coverage locking in the composed FIQL wire shapes the
   Vue page emits
5. Add a useNodeQuery.test.ts case asserting the exact _s produced for a
   searchTerm that looks like an IP

Also: Nodes.vue's legacy ?nodeId=<n> redirect now uses
window.location.replace instead of .assign, so Back doesn't return to the
bookmark URL and immediately re-redirect.

* NMS-20125: show interface expander only in Show Interfaces mode and only for expandable nodes

* NMS-20125: auto-expand qualifying rows once the async SNMP fetch resolves in maclike/snmpParm mode

* NMS-20125: validate node search input and correct wildcard help text

* NMS-20125: re-validate injected search terms in the queryFilter watch

* NMS-20125: Node list help updates

* NMS-20125: clarify Show Interfaces help for MAC/SNMP filter modes

* NMS-20125: offer all asset columns in the Asset Fields filter dropdown

* NMS-20125: drive AssetFilterPanel toggle tests through OnmsToggleSwitch emit

* NMS-20125: document Featured Fields Only toggle in Advanced Filters help

* NMS-20125: Small fix, force smoke tests !smoke

* NMS-20125: snmpParm takes priority over maclike in interface listing, matching legacy

* NMS-20125: remove unused getNodeIdRedirect(), point nodeId NOTE at the live redirect path

* NMS-20125: fix FIQL precedence in getNodeIpInterfaceQuery via the two-group form

* NMS-20125: sequence getSnmpInterfacesForNodes requests so the latest always wins

* NMS-20125: fix lint errors in nodeStore sequencing tests

* NMS-20125: clarify interface footer with total vs per-page node counts

* NMS-20125: auto-expand default-mode interface rows when the IP batch resolves

* NMS-20125: reset catch-up generation keys on page/toggle/mode change

* NMS-20125: double-encode node search terms instead of blocking special characters

* NMS-20125: strengthen IT coverage for grouped FIQL and outage suppression clauses

* NMS-20125: address review nits in interface listing, asset dropdown, and labels

* NMS-20125: correct comparator comment to cite the actual nullability evidence



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.