Skip to content

SOLR-18161: improve node system response#4240

Open
igiguere wants to merge 31 commits intoapache:mainfrom
igiguere:SOLR-18161-improve-node-system-response
Open

SOLR-18161: improve node system response#4240
igiguere wants to merge 31 commits intoapache:mainfrom
igiguere:SOLR-18161-improve-node-system-response

Conversation

@igiguere
Copy link
Contributor

@igiguere igiguere commented Mar 25, 2026

https://issues.apache.org/jira/browse/SOLR-18161

Description

Follow-up on PR #4078. These changes were originally part of that PR, but made it difficult to review and merge.

Solution

Wrap the V2 system info in "nodeInfo", to separate the system info from the response header:

<response>
<lst name="responseHeader"><!-- ... --></lst>
<lst name="nodeInfo">
<str name="node">localhost:8983_solr</str>
 <!-- ... -->
</lst>
</response>

Add a method to NodeSystemInfoApi that takes a path parameter to return the select info: lucene, jvm, gpu, or security

Tests

Unit tests added or adapted for the wrapped response and the path parameter.

Functional test on "devSlim", running with the "cloud" example.

Checklist

Please review the following and check all that apply:

  • I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • I have created a Jira issue and added the issue ID to my pull request title.
  • I have given Solr maintainers access to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation)
  • I have developed this patch against the main branch.
  • I have run ./gradlew check.
  • I have added tests for my changes.
  • I have added documentation for the Reference Guide
  • I have added a changelog entry for my change

Isabelle Giguere and others added 30 commits January 15, 2026 10:17
Add NodeSystemIfoApi (notice the lower-case last chars), to (eventually)
replace Endpoint NodeSystemIfoAPI.  Lo warning about deprecation.

Add GetNodeSystemInfo, move the info-gathering logic to a separate class
NodeSystemInfoProvider, adjust SystemInfoHandler.

Known Issue: NodeSystemInfoResponse does not support responses from
multiple nodes.

More testing and clean-up to do.
Fix NodeSystemResponse to contain a map of node name to node info.

Fix responses for Json and XML.

TODO : nodes=all is ignored
forgot those in the previous commit
Fix log calls.  Add unit tests for HTTP call.
Remove the Map from NodeSystemInfoResponse: the AdminHandlersProxy wraps
all nodes responses into a map, it should not belong to the response
class.
Replace the Map wrapper by just a single object wrapper: NodeSystemInfo.
It provides some separation between the response header and the actual
node info.
Ensure back-compatible response from V1 path (and from old V2 path)
Add method getSpecificNodeSystemInfo, with path parameter, to get only
selected info.

Add query param "nodes": not used, because AdminHandlersProxy does not
support V2 yet.
Merge remote-tracking branch 'origin-solr/main' into
NodeSystemInfoApi-JerseyResource
Merge remote-tracking branch 'origin-solr/main' into
NodeSystemInfoApi-JerseyResource
Commented-out for now.

Revert to class name NodeSystemResponse
Split core info response into a different model class.

Place the getCoreInfo method in the utility class, to re-use in
back-compatible /admin/info/system response.

Rename a few classes

Adjust documentation
…guere/solr.git into NodeSystemInfoApi-JerseyResource
using the PR rather that the mixed-up Jira ticket
Wrap node info into "nodeInfo" field, to separate from the response
headers.

Add a method to get specific node info (gpu, lucence, jvm,...)

Other modifications as previously discussed on PR apache#4078

Relevant unit tests pass, functional test and gradlew check to do...
gradlew tidy

gradlew clean check

one unrelated unit test (JWT) failing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant