[OpenNMS/opennms] d14e31: NMS-20125: add nodesWithOutages FIQL search to v2 ...
Scott Theleman via opennms-cvs <[email protected]> Mon, 03 Aug 2026 10:17:23 -0700
| Newsgroups | gmane.network.opennms.cvs |
|---|---|
| Message-ID | <OpenNMS/opennms/push/refs/heads/jira/NMS-20125-node-list-parity-enhancements/[email protected]> |
Branch: refs/heads/jira/NMS-20125-node-list-parity-enhancements
Home: https://github.com/OpenNMS/opennms
Commit: d14e31485d7a62f79e5b1fcfd972971c4fc08dd5
https://github.com/OpenNMS/opennms/commit/d14e31485d7a62f79e5b1fcfd972971c4fc08dd5
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 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
Log Message:
-----------
NMS-20125: add nodesWithOutages FIQL search to v2 NodeRestService
Adds the nodesWithOutages virtual FIQL search key to NodeRestService,
replacing legacy DefaultNodeListService.addCriteriaForCurrentOutages
with corrected operator precedence (suppresstime disjunction is now
parenthesized so it no longer defeats "ifregainedservice is null").
Also adds testNodesWithOutagesSearch and testNodeTypeSearch ITs to
NodeRestServiceIT, both passing locally (2/2, mvn failsafe against
local PostgreSQL).
Commit: 65eedbcc8a8140b016f798a7407f4e8538873bc0
https://github.com/OpenNMS/opennms/commit/65eedbcc8a8140b016f798a7407f4e8538873bc0
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
A ui/src/components/Nodes/hooks/useInterfaceListing.ts
A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
Log Message:
-----------
NMS-20125: add pure interface-listing logic for Vue node list
Commit: 7514837a8d7640fdfa1f4e779fe6739daf1b3628
https://github.com/OpenNMS/opennms/commit/7514837a8d7640fdfa1f4e779fe6739daf1b3628
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M ui/src/services/index.ts
A ui/src/services/snmpInterfaceService.ts
M ui/src/stores/nodeStore.ts
M ui/src/types/index.ts
A ui/tests/services/snmpInterfaceService.test.ts
A ui/tests/stores/nodeStore.test.ts
Log Message:
-----------
NMS-20125: add batched SNMP interface fetching for Vue node list
Commit: 25e03132bd3bf128f9dbfc05798a6eb3035112eb
https://github.com/OpenNMS/opennms/commit/25e03132bd3bf128f9dbfc05798a6eb3035112eb
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
A ui/src/components/Nodes/NodeInterfacesPanel.vue
M ui/src/components/Nodes/NodesTable.vue
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/src/containers/Nodes.vue
M ui/src/stores/nodeStructureStore.ts
A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
M ui/tests/components/Nodes/NodesTable.test.ts
A ui/tests/containers/Nodes.test.ts
M ui/tests/stores/nodeStructureStore.test.ts
Log Message:
-----------
NMS-20125: add Show interfaces mode to Vue node list
Commit: e0d69500a9fad792c66c265438e6ea0d0cd10e97
https://github.com/OpenNMS/opennms/commit/e0d69500a9fad792c66c265438e6ea0d0cd10e97
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M ui/src/components/Nodes/NodesTable.vue
M ui/tests/components/Nodes/NodesTable.test.ts
Log Message:
-----------
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, so it can no longer fire with the
new filter mode paired against stale (pre-refetch) page node ids racing
the correct, later fetch. Add a dedupe key as a secondary safeguard.
- Omit the snmpParm attribute narrowing entirely when the value contains
SQL-LIKE wildcards (%/_), since the server matches them literally while
the client-side matcher treats them as wildcards; keeps the fetch a
proper superset of the client-side match.
- Add NodesTable.test.ts coverage for the narrowing FIQL, default-mode
no-fetch, wildcard omission, and fetch dedupe.
Commit: 6dc1b56034a9ffe597dc595d631ada2ce8a8d540
https://github.com/OpenNMS/opennms/commit/6dc1b56034a9ffe597dc595d631ada2ce8a8d540
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
M ui/src/components/Nodes/NodesTable.vue
M ui/src/components/Nodes/hooks/queryStringParser.ts
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/src/stores/nodeStructureStore.ts
M ui/src/types/index.ts
M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
M ui/tests/components/Nodes/NodesTable.test.ts
M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
M ui/tests/stores/nodeStructureStore.test.ts
Log Message:
-----------
NMS-20125: add nodesWithOutages filter to Vue node list
Commit: f6522218ac011aed9631bd80f5bef1589cb8f29a
https://github.com/OpenNMS/opennms/commit/f6522218ac011aed9631bd80f5bef1589cb8f29a
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/src/containers/Nodes.vue
M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
M ui/tests/containers/Nodes.test.ts
Log Message:
-----------
NMS-20125: redirect legacy nodeId query param to node detail page
Commit: eae2f03122191baee6176c5519dc3ab8811c8c1e
https://github.com/OpenNMS/opennms/commit/eae2f03122191baee6176c5519dc3ab8811c8c1e
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M ui/src/components/Nodes/hooks/queryStringParser.ts
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
Log Message:
-----------
NMS-20125: exclude deleted nodes from node list queries and widen asset-column filtering
Commit: c66b42b2428ba5d040ad11d0f832cd7aff3c7a03
https://github.com/OpenNMS/opennms/commit/c66b42b2428ba5d040ad11d0f832cd7aff3c7a03
Author: Scott Theleman <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
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/NodesTable.vue
M ui/src/components/Nodes/hooks/useInterfaceListing.ts
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/src/containers/Nodes.vue
M ui/tests/components/Nodes/NodesTable.test.ts
M ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
M ui/tests/containers/Nodes.test.ts
Log Message:
-----------
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
(useInterfaceListing.ts) so undefined resolves to 'equals', matching
buildSnmpQuery and parseSnmpParmParams. Previously undefined defaulted to
'contains' display while the filter narrowed by exact match, so expanded
interface panels could show interfaces that didn't qualify the node.
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. Previously two of the three only
stripped ':' and '-', so a Cisco-style dotted MAC (aabb.ccdd) filtered
nodes correctly but the expanded panel/narrowing fetch found nothing.
3. Widen NodesTable.vue's buildSnmpNarrowing under-fetch guard from just
'%'/'_' to also cover ','/';'/'('/')'. Those characters previously either
got silently replaced with spaces (making the server narrowing no longer
a superset of the client match) or passed through raw and could unbalance
the FIQL expression, causing a server-side parse error that surfaced as
"No interfaces" client-side.
4. Add server-side IT coverage locking in the composed FIQL wire shapes the
Vue page emits: NodeRestServiceIT#testComposedFiqlWireShapes (grouped
label OR, grouped nodesWithOutages, and the searchTerm-as-IP union, all
intersected with the node.type!=D guard) and
SnmpInterfaceRestServiceIT#testGroupedNodeIdAndPhysAddrFiqlParses (the
"(ids);(narrowing)" shape used by the interfaces-narrowing fetch).
5. Add a useNodeQuery.test.ts case asserting the exact _s produced for a
searchTerm that looks like an IP (with no explicit ipAddress filter),
locking in the label/ipInterface.ipAddress union shape inside the
node.type!=D guard.
Also (freebie): 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.
Compare: https://github.com/OpenNMS/opennms/compare/d14e31485d7a%5E...c66b42b2428b
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