Afreen Misbah [Thu, 25 Jun 2026 18:58:06 +0000 (00:28 +0530)]
mgr/dashboard: fix hardware status parsing for health
Atollon return status as a plain string ("OK") instead of
the dict format ({"health": "OK", "state": "Enabled"}) used by
other BMCs. This caused KeyError/AttributeError.
Added _get_health() helper that handles both formats:
- dict with nested health key
- plain string status
- missing or non-dict components
Reviewed-by: Redouane Kachach <rkachach@redhat.com> Reviewed-by: Laura Flores <lflores@redhat.com> Reviewed-by: Adam C. Emerson <aemerson@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Sun Yuechi [Mon, 13 Jul 2026 18:56:23 +0000 (11:56 -0700)]
pybind: write Tempita-processed pyx to the build directory
distutils_add_cython_module() runs setup.py with WORKING_DIRECTORY set
to the source directory, so every build leaks
{rados,cephfs,rbd,rgw}_processed.pyx into the source tree as untracked
files. Write the file to CYTHON_BUILD_DIR (already exported by that
CMake function) when set, keeping the cwd fallback for standalone
invocations.
The .pyx no longer sits next to the bindings' .pxd files, so add each
binding's source directory to include_path. Drop the build_dir
argument: it has no effect on absolute source paths.
Patrick Donnelly [Mon, 13 Jul 2026 18:24:26 +0000 (14:24 -0400)]
script/ptl-tool: handle cherry-pick conflicts on branch-specific commits
Previously, ConflictSimulationCheck only anticipated merge conflicts
when simulating upstream cherry-picks. If a branch-specific commit (such
as test repo branch adjustments or backport metadata changes) failed to
apply cleanly to the target base branch, the script threw an unhandled
GitCommandError and crashed with an unhandled traceback.
Wrap branch-specific commit cherry-picks in a try...except block. When a
conflict occurs, abort the cherry-pick, record a "Rebase Required"
simulation failure in the audit report, and either prompt the user in
interactive mode or gracefully halt check execution in CI mode.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
cephadm: use release/autobuild .asc instead of .gpg for repo_gpgkey
release.gpg no longer exists at download.ceph.com/keys/ (moved to
/keys/old/, last updated 2020-08-21). Only release.asc is current and
maintained. autobuild.gpg still resolves but is inconsistent with this
and could rot the same way.
repo_gpgkey() now returns the .asc URLs for both release and autobuild
keys. rpm --import and apt accept ASCII-armored keys directly, so no
other code changes are needed.
Fixes 404s seen in qa/workunits/cephadm/test_repos.sh and reported by
users running cephadm add-repo on current distros.
Patrick Donnelly [Sun, 12 Jul 2026 18:54:28 +0000 (14:54 -0400)]
releng: refactor audit workflow routing and decouple state management
Previously, workflow routing and PR state management were split between
the GitHub Actions workflow and the underlying PTL script, leading to
stale branch protection states, API pagination bugs, and blocked merges
during manual overrides.
This refactors the workflow into a centralized state machine and decouples
status reporting from the audit tool:
* Decouple State Management: Remove `--audit-label` from `ptl-tool.py` and
move all commit status and label transitions (`releng-audit-pass`,
`releng-audit-fail`) into a dedicated workflow reporter step.
* Non-Blocking Review Comments: Update `ptl-tool.py` in CI mode to post
audit findings as `COMMENT` events rather than `REQUEST_CHANGES`,
preventing stale review states from blocking PRs after an override.
* Add Step Summaries: Implement `write_ci_summary()` in `ptl-tool.py` to
output rich Markdown diagnostic reports directly to `GITHUB_STEP_SUMMARY`.
* Atomic Override Handling: Add `setOverrideStatus()` and `executeOverride()`
to push an immediate `success` commit status when `/audit override` or the
override label is applied, unblocking required branch protection checks.
* Safe SHA & Label Lookup: Replace the unpaginated Bash `curl` request with
a reusable `getPrSha()` helper and evaluate overrides directly within the
JavaScript router.
* Handle Cancellations Safely: Map `cancelled` workflow outcomes to an
`error` commit status rather than defaulting to `failure`.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Yael Azulay [Tue, 30 Jun 2026 18:33:48 +0000 (21:33 +0300)]
qa/workunits: skip unpublished stable repos in test_repos.sh
Probe download.ceph.com before each stable add-repo and skip releases
that are not published for the current distro. This avoids apt/yum
failures on newer OS versions (e.g. Ubuntu 24.04/noble) where older
stable trees like quincy and reef were never published.
mgr/cephadm: deduplicate HAProxy_Hosts in NFS ganesha.conf
When enable_haproxy_protocol is set, _haproxy_hosts() can collect the
same address more than once. Store collected IPs in a set and return a
list so HAProxy_Hosts contains only unique entries.
Patrick Donnelly [Sat, 11 Jul 2026 19:09:47 +0000 (15:09 -0400)]
script/ptl-tool: map supported PR labels to Redmine QA tags
Introduce a supported whitelist of component tags (e.g., rgw, cephfs,
rbd, cephadm) and automatically extract matching labels from the queued
GitHub pull requests during integration branch builds.
When building or updating a Redmine QA tracking ticket:
* Append matching component tags directly to each PR line in the ticket
description (e.g., `(tags: rgw, cephfs)`).
* Populate the `tag_list` attribute on the Redmine issue to seamlessly
integrate with the RedmineUP Tags plugin.
* When updating an existing QA ticket, preserve any pre-existing tags
already attached to the issue and merge them with the active PR tags.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 19:02:23 +0000 (15:02 -0400)]
script/ptl-tool: add --qe-label option for automated QA workflows
Introduce the `--qe-label <pr-label>` option to streamline daily integration
testing and Redmine QA tracking for backports.
Using `--qe-label` automatically implies `--integration` and `--pr-label`,
and manages Redmine QA tracking tickets via custom field 45 (Ceph PR Label):
* Searches for open QA tickets matching the specified PR label and target
release branch.
* If exactly one open ticket is found, prompts the user to either update
the existing ticket or create a new one.
* If no open ticket is found, automatically defaults to creating a new
QA ticket with the label stored in its metadata.
* Adds pre-flight validation to ensure all labeled PRs target the exact
same base branch, preventing ambiguous or mixed-release merges.
* Halts execution if multiple ambiguous open QA tickets exist for the
same label and release branch.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 18:15:02 +0000 (14:15 -0400)]
script/ptl-tool: detect scrambled commits and clean up visualizer
Refactor the Commit Parity Visualizer generation to use a deterministic
ordered grouping loop instead of a state machine. Missing commits are now
reliably printed within their respective original PR blocks, and any extra
backport commits are isolated at the bottom of the table.
In addition, add automated checks to detect "scrambled" commits during
backports:
* Verify that commits from multiple upstream PRs are not interleaved or
scrambled together.
* Verify that commits within an individual upstream PR are applied in
their exact original chronological sequence.
If scrambled or out-of-order commits are detected, log a failure in CI mode
or prompt the user for interactive resolution to ensure clean backport
history and reduce regression risks.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sun, 12 Jul 2026 16:55:19 +0000 (12:55 -0400)]
releng-audit: clear state labels and set pending status on comment triggers
When /audit retest or /audit test-branch is invoked via an issue_comment event, GitHub Actions does not natively bind the execution to the PR's HEAD commit SHA. As a result, the check widget on the PR conversation tab remains in its previous state (often showing as failed), and any lingering releng-audit-fail or releng-audit-pass labels remain attached.
This introduces a triggerAuditRun helper function to the workflow router that:
- Removes any existing releng-audit-fail or releng-audit-pass labels from the pull request to reset the label state machine and prevent subsequent synchronize events from halting prematurely.
- Explicitly creates a pending commit status on the PR's HEAD SHA via the GitHub REST API, ensuring visual consistency and feedback inside the PR UI while manual or test-branch audits execute in the background.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Patrick Donnelly [Sat, 11 Jul 2026 19:19:16 +0000 (15:19 -0400)]
.github/workflows/releng-audit: support testing via alternate branch
Allow authorized maintainers and release managers to test audit workflow
changes on a pull request using an alternate repository branch.
When a user comments `/audit test-branch [branch-name]` on a PR:
* Verify user authorization and confirm the target branch exists via the
GitHub API (defaulting to `testing/releng-audit` if unspecified).
* If valid, activate audit execution and set the `checkout_ref` output
to dynamically override the repository checkout target.
* If the branch does not exist or the user lacks permissions, fail the
job cleanly and leave an explanatory comment.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
David Galloway [Fri, 10 Jul 2026 20:12:01 +0000 (16:12 -0400)]
script/buildcontainer-setup: fix package install on debian trixie
Debian removed software-properties-common from the archive in trixie,
so the flat apt-get install list fails there. The package was only
needed to provide add-apt-repository for llvm.sh, which installs
clang-19 from apt.llvm.org. Trixie ships clang-19 natively, so install
it from the distro instead; run-make.sh's prepare() then finds clang-19
and skips llvm.sh entirely. Ubuntu and older Debian releases still have
software-properties-common and keep the previous behavior.
Fixes: https://tracker.ceph.com/issues/78111 Signed-off-by: David Galloway <david.galloway@ibm.com>
Fixed date for release.
Incorporated review comments (trimmed MDS/OSD Notable Changes bullets
per batrick, removed pwlc-epoch bullet per anthonyeleven/idryomov).
Nizamudeen A [Thu, 9 Jul 2026 07:52:58 +0000 (13:22 +0530)]
mgr/dashboard: fix html lint errors according to new rules
mostly accessibility issues like
- A label component must be associated with a form element
Fixed by adding `for` to labels and sometimes replacing label with
legend
- Elements with interaction handlers must be focusable
- click must be accompanied by either keyup, keydown or keypress event for accessibility
- <button> should have content
Fixes: https://tracker.ceph.com/issues/77112 Signed-off-by: Nizamudeen A <nia@redhat.com>