[OpenNMS/opennms] 609bbc: update RHEL10 instructions (#8812)

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

  Changed paths:
    M docs/modules/deployment/pages/repos/rhel-centos/horizon-rhel10.adoc

  Log Message:
  -----------
  update RHEL10 instructions (#8812)


  Commit: 798127593134f31e4c3ac7973dfa3a1c0952697a
      https://github.com/OpenNMS/opennms/commit/798127593134f31e4c3ac7973dfa3a1c0952697a
  Author: Morteza E <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  force a build


  Commit: 8860e08a486786ee0c926225d8bab38ce51b3e20
      https://github.com/OpenNMS/opennms/commit/8860e08a486786ee0c926225d8bab38ce51b3e20
  Author: Christian Pape <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  NMS-20236: use mchange-commons-java version 0.6.1


  Commit: ffdd98b3ed13cd781d3531c482f0d90cd08e2dff
      https://github.com/OpenNMS/opennms/commit/ffdd98b3ed13cd781d3531c482f0d90cd08e2dff
  Author: CI/CD System <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: e5d10988a35d1b80dbc7fd666e4224c4feb7de5f
      https://github.com/OpenNMS/opennms/commit/e5d10988a35d1b80dbc7fd666e4224c4feb7de5f
  Author: Morteza E <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into foundation-2026


  Commit: 8d0a708fb1f395e95a82668005a22eba58c168ac
      https://github.com/OpenNMS/opennms/commit/8d0a708fb1f395e95a82668005a22eba58c168ac
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-25 (Tue, 25 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: Expose a discovered link's interfaces on its graph API edge (#8811)

* 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.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

---------

Co-authored-by: Copilot Autofix powered by AI <[email protected]>


  Commit: e57195b8e6c0c914bca00145dc48ce19d843c867
      https://github.com/OpenNMS/opennms/commit/e57195b8e6c0c914bca00145dc48ce19d843c867
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M opennms-base-assembly/src/main/filtered/etc/search-actions.xml
    M opennms-webapp/src/main/webapp/WEB-INF/jsp/alarm/list.jsp
    M opennms-webapp/src/main/webapp/account/selfService/passwordGate.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap-footer.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M opennms-webapp/src/main/webapp/login.jsp
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    M ui/packages/onms-ui/src/components/OnmsDialog.vue
    M ui/packages/onms-ui/src/components/OnmsDrawer.vue
    M ui/src/components/Common/FormField.vue
    M ui/src/components/Device/DCBTable.vue
    M ui/src/components/Layout/Footer.vue
    M ui/src/components/Logs/Editor.vue
    M ui/src/components/Logs/Logs.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/SCV/SCVForm.vue
    M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
    M ui/src/containers/Map.vue
    M ui/src/main/App.vue
    M ui/src/styles/onms-base.scss
    M ui/src/styles/opennms-styles.scss
    M ui/tests/components/Common/FormField.test.ts

  Log Message:
  -----------
  NMS-20182: Various UI fixes after the PrimeVue / OnmsUI migration (#8808)

* NMS-20182: Keep legacy <textarea>s readable in dark mode

The alarm detail page's Sticky Memo and Journal Memo textareas carry no
`.form-control` class, so Bootstrap gives them no explicit background or
text color. In dark mode PrimeVue emits `color-scheme: dark` on the
document, which inherits into the legacy JSP page and makes the browser
paint those textareas with dark UA field colors on a light-only page.

Add `textarea` to the existing rule that already pins native selects,
checkboxes and radios to `color-scheme: light`, so legacy textareas stay
dark-on-light in both themes. Only the menu bundle imports this
stylesheet, so the SPA's PrimeVue Textarea (which sets its colors from
theme tokens) is unaffected.

* NMS-20182: Stop a:visited from overriding button label colors

`a:visited` has a pseudo-class in the selector, so it outranks Bootstrap's
single-class `.btn-secondary`. Any list-page menu item that was both an
anchor with an href and an already-visited URL therefore lost its white
label: "View all alarms" and "Short/Long Listing" on the alarm list,
"View all events" and the "Next" pagination button on the event list. The
items rendered as anchors without an href ("Advanced Search", "Severity
Legend", "Help") are never :visited, which is why they stayed white.

The rule was redundant anyway — the `a` rule above it already colors
visited links, since an author declaration beats the UA's visited color —
so drop it from both places it was declared and leave a note about why it
should not come back. Also drop the two `text-white` workarounds it had
prompted on the alarm list, and DCBTable's scoped `a:visited`, so its
node links keep one color in both states.

* Add Vue Resource Graphs, Geographical Map and Topological Map to 'search-actions.xml' so they are searchable.

* NMS-20182: Lock page scroll while a drawer or modal dialog is open

The drawers are modal, but PrimeVue defaults `blockScroll` to false, so the
wheel over an open drawer scrolled the node table behind it — the page's
scrollbar sat at the viewport edge and read as the drawer's. In the Advanced
Filters drawer it was worse: that drawer's own scroller made two adjacent
scrollbars, only one of which belonged to it.

Turn `blockScroll` on in the seam wrappers — unconditionally for Drawer,
tracking `modal` for Dialog, which also covers OnmsConfirmationDialog and
OnmsMessageDialog.

That alone is not enough here. `html { overflow-x: hidden }` makes <html> the
SPA's scroll container, so the body class PrimeVue toggles never reaches the
element that actually scrolls; lock <html> off that class instead. Match open
`.p-overlay-mask` elements as well, because PrimeVue's block/unblock is not
reference-counted: closing a dialog opened inside an open drawer removed the
body class and unlocked the page while the drawer was still up. Add
`scrollbar-gutter: stable` so hiding the page scrollbar does not shift the
fixed Menubar and side rail — PrimeVue's `padding-right` compensation only
moves in-flow content.

Finally, drop the two node drawers' inner `height: 100%; overflow: auto`, so
PrimeVue's `.p-drawer-content` is each drawer's single scroll container.

* NMS-20182: Align the SNMP Add button with the inputs beside it

The button sat outside any FormField, so it never skipped the vertical space
its siblings' labels occupy and its top edge landed a label-height above their
inputs. An eyeballed `margin-top` had been standing in for that space and was
too small.

Give FormField a `reserveLabelSpace` prop instead: with no label of its own it
lays out an aria-hidden, `for`-less <label> so an unlabelled field still lines
its control up with the labelled fields next to it. A real <label> element is
what makes this work — the label line box comes from the global `label`
typography, which a <span> would not pick up — and it keeps the stand-in in
step with the labelled case for free.

The Add button now sits in such a FormField and needs no offset of its own;
matching the input height keeps their centers aligned as before.

* NMS-20182: Sit the JSP footer at the bottom of a short page

JSP pages left #content a plain block, so the footer stopped wherever the
content ended: on a short page it floated hundreds of pixels above the bottom
of the window (157px into a 969px viewport on the node list). The Vue SPA does
not have this problem because its layout grid is `min-height: 100vh` with a 1fr
content row that takes up the slack.

Give #content the same shape with flexbox. Block layout has no way to push a
last child down — auto margins only work in flex and grid — so the container has
to become a flex column.

Page markup must not become flex items in the process: that stretches
inline-level children (the outage list's .btn-group grew to the full content
width), collapses ones sized by auto margins (the reports page's <hr> shrank to
nothing) and stops margin collapsing. So bootstrap.jsp wraps everything but the
footer in a new #content-body div, leaving #content with exactly two flex items
and all page markup inside a plain block, where it lays out exactly as before.
#content-body takes the slack; the footer follows it.

Also drop the SPA's default body margin, which sat outside .app-layout's
`min-height: 100vh`: it made every page overflow the viewport by ~16px, so even
a page that fit scrolled and its footer never reached the bottom of the window.
Both stacks now put the footer exactly at the bottom edge.

* NMS-20182: Drop the SPA footer's 1rem spacer div

The spacer sat inside the layout's footer row, making it 57px tall instead of
41px. A page whose content needs the full height left over from the header —
SNMP Config, OpenAPI and Resource Graphs all want exactly 868px at a 969px
viewport — therefore overflowed by the spacer's 16px and grew a scrollbar with
nothing to scroll to. Those three now fit exactly, and the footer looks the same
without it: it keeps its own 0.5rem padding and top border.

* NMS-20182: Stop Map, Logs and SCV clipping the footer

Each of these pages sizes its tall element with a hand-picked `calc(100vh - x)`,
and each x was too small for the chrome actually above and below it, so the page
overflowed the viewport and pushed the footer off the bottom of the window — most
visibly on the map, where the footer was cut in half.

Derive the subtraction instead of guessing it: the masthead comes off via
--onms-header-height, then the 41px footer band, then whatever that page stacks
around the element — a breadcrumb row, card padding, a heading, a filter box.
Each site spells the terms out so the next person can check the arithmetic
against what they see. Map was 21px over, Logs 62px, SCV 7px; all three now fit
exactly, at a 969px viewport and at 720px.

The Logs page needed both halves of its card: capping only the editor left the
log list, with its heading and filter box, as the taller column.

* NMS-20182: Address PR review on the footer and scroll-lock changes

Four fixes from review:

Wrap the custom-footer includes in a block of their own. They are emitted after
the footer, so an install's markup was landing as a direct flex item of #content
— the exact case #content-body exists to prevent. Confirmed with a test include:
as flex items a <span> stretched from 160px to the full 1562px and an <hr> sized
by auto margins collapsed to zero.

Lock page scroll on the dialog and drawer masks specifically, not on
`.p-overlay-mask` alone. DataTable, Tree, TreeTable, Image, Galleria and SpeedDial
put that class on their masks unconditionally, so the broader selector would have
frozen page scroll for the length of a table's loading state the day anyone wires
up OnmsTable's loading prop.

Replace the 41px footer band literal with an --onms-footer-height token, defined
in Footer.vue next to the element it describes and mirroring how Menubar.vue owns
--onms-header-height. `.footer` takes its min-height from the token so the two
cannot drift, and the four pages that size against it now consume it.

Close #content-body and #content on login.jsp and passwordGate.jsp. They include
bootstrap.jsp but deliberately not bootstrap-footer.jsp, so nothing else closed
the divs it opens. Both stay footer-less.

* fix smoke tests


  Commit: 09512ffba78050f54927c28291e768e22f22b96e
      https://github.com/OpenNMS/opennms/commit/09512ffba78050f54927c28291e768e22f22b96e
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/web-assets/package.json
    M core/web-assets/pnpm-lock.yaml
    M core/web-assets/src/main/assets/js/apps/onms-classifications/views/modals/popover.html

  Log Message:
  -----------
  NMS-20250: Dependabot security triage for 'core/web-assets' (August 2026) (#8813)

* NMS-20250: Render confirm-popover text with ng-bind instead of ng-bind-html

* NMS-20250: Drop unused babel-preset-es2015-nostrict devDependency

Removes 52 packages from the lockfile.


  Commit: 2b0e5f2a27cd17685577d76f9190038227d7c7ac
      https://github.com/OpenNMS/opennms/commit/2b0e5f2a27cd17685577d76f9190038227d7c7ac
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M .circleci/epoch
    M core/db/pom.xml
    M core/web-assets/package.json
    M core/web-assets/pnpm-lock.yaml
    M core/web-assets/src/main/assets/js/apps/onms-classifications/views/modals/popover.html
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M dependencies/quartz/pom.xml
    M docs/modules/deployment/pages/repos/rhel-centos/horizon-rhel10.adoc
    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
    M opennms-base-assembly/src/main/filtered/etc/search-actions.xml
    M opennms-webapp/src/main/webapp/WEB-INF/jsp/alarm/list.jsp
    M opennms-webapp/src/main/webapp/account/selfService/passwordGate.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap-footer.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M opennms-webapp/src/main/webapp/login.jsp
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    M ui/packages/onms-ui/src/components/OnmsDialog.vue
    M ui/packages/onms-ui/src/components/OnmsDrawer.vue
    M ui/src/components/Common/FormField.vue
    M ui/src/components/Device/DCBTable.vue
    M ui/src/components/Layout/Footer.vue
    M ui/src/components/Logs/Editor.vue
    M ui/src/components/Logs/Logs.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/SCV/SCVForm.vue
    M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
    M ui/src/containers/Map.vue
    M ui/src/main/App.vue
    M ui/src/styles/onms-base.scss
    M ui/src/styles/opennms-styles.scss
    M ui/tests/components/Common/FormField.test.ts

  Log Message:
  -----------
  Merge remote-tracking branch 'upstream/foundation-2026' into mm/NMS-19878-smoke


  Commit: b6ffaac1dd8d6e6612dbd8654742cd0a0caf7c08
      https://github.com/OpenNMS/opennms/commit/b6ffaac1dd8d6e6612dbd8654742cd0a0caf7c08
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    M ui/src/components/Topology/TopologyCanvas.vue

  Log Message:
  -----------
  NMS-19878: Draw a box where the cursor drew it on an empty canvas

A box drawn on a view with no nodes was stored at a position and size the
renderer then drew somewhere else, so it jumped and resized the moment the drag
ended. Sigma's viewportToGraph and graphToViewport are not inverses of each
other here: with a custom bounding box and nothing to normalise from, one scales
both axes by the box-to-viewport ratio while the other stretches each axis
independently. Measured on a blank view, a 547x340 drag at 395,101 came back as
422x170 at 859,50.

The conversion now measures where three graph points land in the viewport and
inverts that, so it is the exact inverse of the projection the renderer uses
whatever sigma does internally. A view with nodes was unaffected and stays so,
since the calibration reduces to the same mapping.

Found by instrumenting the round trip on screen. Two attempts before that
reasoned about reflow from the toolbar's button label and the inspector, and
were wrong: the captured numbers showed the projection never changes after the
drag, only that it disagrees with the one used to store the shape.


  Commit: cd2ecd4ec38485b9d430ae817c1d2a717fe4d287
      https://github.com/OpenNMS/opennms/commit/cd2ecd4ec38485b9d430ae817c1d2a717fe4d287
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json

  Log Message:
  -----------
  NMS-19878: Give Topology (Preview) its own sidebar glyph

Both topology entries declared network/Instances, so the two were
indistinguishable in the sidebar. The preview takes network/Nodes, which reads
as points converging on a centre rather than borrowing the chassis metaphor the
other network icons use.

Only menu-template.json carries this entry, so the other menu templates need
nothing. Icons resolve through an explicit import and switch in useMenuIcons,
not a glob, and an unregistered id falls back silently to the home icon;
network/Nodes is already mapped there.


Compare: https://github.com/OpenNMS/opennms/compare/2b0f949c4101...cd2ecd4ec384

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.