Repository navigation
Conversation
- Replace PackagePayload.AddVersion with AddPackageVersionRequestBody
- Move package name from body to URL: POST /cluster/package/{name}/versions
- Replace delete command pattern with DELETE /cluster/package/{name}/versions/{version}
- Replace refresh command with POST /cluster/package/{name}/refresh
- Update errPath in testAPI from /details[0]/errorMessages[0] to /msg
- Remove all add.pkg assignments (pkg now lives in URL path)
- Replace add.pkg references in verifyComponent() with literal package name strings
- Update import: remove PackagePayload, add AddPackageVersionRequestBody (sorted)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
…sponse.error field Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
|
Is there a JIRA ticket associated with this change @epugh? |
No, because I viewed it as "just a refactoring and no one will notice....", and that I was hoping there were no debates that would require a JIRA to hash out! |
| authors: | ||
| - name: Eric Pugh | ||
| links: | ||
| - name: PR#4178 |
There was a problem hiding this comment.
[0] Probably worth having a JIRA reference for this guy, even if it's just a tie-back to one of the v2 umbrella tickets? It's changing APIs and stuff, so worth tracking in more than just the PR description I'd imagine.
| public int hashCode() { | ||
| return Objects.hash(version); | ||
| } | ||
| final var request = |
There was a problem hiding this comment.
[Q] Is there a reason you're not using the auto-generated SolrJ type here? We should have one now that the API is JAX-RS!
If this was an intentional decision made to prevent scope-creep, I'm fine with that. Just making sure it's not oversight.
There was a problem hiding this comment.
so many places to update... I suspect in the future we need to do a "Check each GSR for fitness" check ;-)
There was a problem hiding this comment.
Like I said, I think not doing these bits in the same PR is a totally valid choice. I don't want to add extra steps that'd apply to all these PRs. But since the lines were changed in this PR already I wanted to check that it was an intentional choice is all 🤷
…kageapi-to-jax-rs
Rename PackageAPI to ClusterPackage to follow naming pattern of other V2 apis.
Add test, revamp description.
|
@gerlowskija I think I am ready for another review. I renamed |
|
This PR has had no activity for 60 days and is now labeled as stale. Any new activity will remove the stale label. To attract more reviewers, please tag people who might be familiar with the code area and/or notify the dev@solr.apache.org mailing list. To exempt this PR from being marked as stale, make it a draft PR or add the label "exempt-stale". If left unattended, this PR will be closed after another 60 days of inactivity. Thank you for your contribution! |
|
This PR is now closed due to 60 days of inactivity after being marked as stale. Re-opening this PR is still possible, in which case it will be marked as active again. |
|
@gerlowskija I reopened this, and will try and give it some love today.. Thanks for the LGTM.... |
…kageapi-to-jax-rs
…i/cluster/packages and errors.
|
@gerlowskija this is ready for review!!!! |
|
Tests, both unit and itest (bats) pass... |
|
@epugh I am planning to review this PR, can you make this one ready for review by rebasing with latest main? |
|
@jaykay12 I added you as a collaborate to my |
Migrates
org.apache.solr.pkg.PackageAPIfrom Solr's homegrown@EndPoint/@Commanddispatch to standard JAX-RS annotations, consistent with other V2 APIs (ClusterFileStore,ZookeeperRead,ClusterProperty).This has a pretty hefty update to the patterns, but I thought it was better to do it now while v2 api's are "experimental".
New REST endpoints
The command-based POST pattern is replaced with RESTful routes:
POST /cluster/package {"add": {"package":"p","version":"v","files":[...]}}POST /cluster/package/{name}/versionsPOST /cluster/package {"delete": {"pkg":"p","version":"v"}}DELETE /cluster/package/{name}/versions/{version}POST /cluster/package {"refresh": "name"}POST /cluster/package/{name}/refreshGET /cluster/packageGET /cluster/package/{name}Key structural changes
PackageAPI— new JAX-RS implementation (extends JerseyResource implements PackageApis); replaces the oldEdit/Readinner classes (~220 lines removed)PackageStore— renamed from the oldPackageAPI; now clearly a ZK data/state holder (Packages,PkgVersion, ZK watcher), not an endpoint class. THIS WAS A BIG REFACTORINGsolr/apimodule — newPackageApis.java(JAX-RS interface),PackagesResponse.java,AddPackageVersionRequestBody.java; OAS generation producesPackageApiSolrJ request classes automaticallyPackageAPITest— integration test usingSolrCloudTestCase(ZK required) with generatedPackageApiSolrJ request classesTestPackages— updated to use new endpoints; error path changed from/details[0]/errorMessages[0]to/msgpackage-manager-internals.adoc— updated endpoint reference and curl examples