Support Fess 15.8.0 - #33
Merged
Merged
Conversation
Fess 15.8.0 pairs with OpenSearch 3.8.0. The admin API - the only surface
fessctl calls apart from the health check - is unchanged from 15.7.0: no
endpoint was added or removed, and every EditBody/SearchBody diff between
the fess-15.7.0 and fess-15.8.0 tags is a `super()` removal. So the
release itself needs no request-shape change.
Verifying against a live 15.8.0 server did surface an existing bug.
`/api/v2/health` reports the cluster status as the OpenSearch enum name
("GREEN"), while the legacy `/api/v1` body spelled it in lower case.
`ping` compared against the lower-case literals, so a healthy 15.7+ server
was reported as an error with exit code 1. HealthHandler and PingResponse
are byte-identical between the two tags, and ClusterHealthStatus overrides
toString() in neither OpenSearch 3.7.0 nor 3.8.0, so this has been broken
since 15.7 support landed - confirmed live against both versions.
- Compare the cluster status case-insensitively in `ping`, and report the
status the server actually sent instead of a hardcoded "green".
- Add tests/commands/test_ping.py so the health path is exercised against
a live server and not only against mocks.
- Change the default FESS_VERSION from 15.7.0 to 15.8.0, and bump the
compose defaults to fess 15.8.0 / fess-opensearch 3.8.0.
- Add Fess 15.8.0 (OpenSearch 3.8.0) to the CI matrix.
- Refresh the README and skill docs, and re-sync uv.lock with the
0.3.0.dev0 project version.
Verified locally: the full suite (169 tests) is green against 15.8.0/3.8.0,
15.7.0/3.7.0 and 15.6.1/3.6.0. The 14.19.2 entry is left to CI.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Fess 15.8.0 is out, so this makes fessctl target it.
The admin API needs no change.
/api/admin/*is the only surface fessctlcalls apart from the health check, and it is unchanged between the
fess-15.7.0andfess-15.8.0tags: no action was added or removed, andevery
EditBody/SearchBodydiff in that range is asuper()removal. The15.8.0 changes that do touch the admin API (
documents,general,searchlist,backup, and theFessApiAdminActionaccess-token fixcodelibs/fess#3320) land on endpoints fessctl does not use, and #3320 only
narrows admin access to permissions carried by the token itself — which is
how fessctl authenticates.
A real bug did turn up while verifying against a live server.
/api/v2/healthreports the cluster status as the OpenSearch enum name —"GREEN"— while the legacy/api/v1body spelled the same value in lowercase.
pingcompared against the lower-case literals, so a perfectly healthy15.7+ server came back as:
This is not a 15.8 regression:
HealthHandler.javaandPingResponse.javaare byte-identical between the two tags, and
ClusterHealthStatusoverridestoString()in neither OpenSearch 3.7.0 nor 3.8.0. Confirmed live againstboth 15.7.0 and 15.8.0.
Changes
pingcompares the cluster status case-insensitively, and reports thestatus the server actually sent instead of a hardcoded
green.tests/commands/test_ping.pyexercises the health path against thelive container, so this cannot regress behind mocks again.
FESS_VERSIONmoves from15.7.0to15.8.0; compose defaultsmove to
fess:15.8.0/fess-opensearch:3.8.0.skills/fessctldocs refreshed;uv.lockre-synced with the0.3.0.dev0project version it had drifted from.Verification
Full suite (169 tests, unit + integration against a live container) run
locally on three versions:
fessctl pingchecked by hand on all three (GREENon 15.7/15.8 via/api/v2/health,greenon 15.6.1 via/api/v1/health), plus the adminAPI 401 path on 15.8.0. The 14.19.2 matrix entry is left to CI.