Summary
OSIndexAPIImpl.getClosedIndexes() returns an empty list (unimplemented stub). When an OS index is closed via PUT /api/v1/esindex/{name}?action=close, it becomes invisible to all subsequent API calls.
Operations on a closed OS index return HTTP 404 because the existence guard (indexExists()) cannot find the index — it only checks open indices.
Affected operations (after closing an OS index)
PUT /api/v1/esindex/{name}?action=open → 404
PUT /api/v1/esindex/{name}?action=activate → 404
DELETE /api/v1/esindex/{name} → 404
GET /api/v1/esindex/ → index not listed
Fix
Implement OSIndexAPIImpl.getClosedIndexes() using the OpenSearch /_cat/indices API with expand_wildcards=closed:
// OpenSearch Java client equivalent of: GET /_cat/indices?expand_wildcards=closed
client.cat().indices(r -> r.expandWildcards(ExpandWildcard.Closed))
Comparison
ESIndexAPI.getClosedIndexes() (already implemented) can serve as the reference implementation pattern.
Discovered via
QA test run — TC-04c/d against dotcms/dotcms:latest with single-node-os-migration stack, Phase 3.
Related
Summary
OSIndexAPIImpl.getClosedIndexes()returns an empty list (unimplemented stub). When an OS index is closed viaPUT /api/v1/esindex/{name}?action=close, it becomes invisible to all subsequent API calls.Operations on a closed OS index return HTTP 404 because the existence guard (
indexExists()) cannot find the index — it only checks open indices.Affected operations (after closing an OS index)
PUT /api/v1/esindex/{name}?action=open→ 404PUT /api/v1/esindex/{name}?action=activate→ 404DELETE /api/v1/esindex/{name}→ 404GET /api/v1/esindex/→ index not listedFix
Implement
OSIndexAPIImpl.getClosedIndexes()using the OpenSearch/_cat/indicesAPI withexpand_wildcards=closed:Comparison
ESIndexAPI.getClosedIndexes()(already implemented) can serve as the reference implementation pattern.Discovered via
QA test run — TC-04c/d against
dotcms/dotcms:latestwithsingle-node-os-migrationstack, Phase 3.Related