[
https://issues.apache.org/jira/browse/SOLR-16394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17623245#comment-17623245
]
Jason Gerlowski edited comment on SOLR-16394 at 3/16/23 7:10 PM:
-----------------------------------------------------------------
To be a little more explicit about the APIs we want this ticket to cover, I
found 6 APIs that need work related to collection backups:
*EDIT*: List moved to table in issue description.
Obviously this is a big list. IMO it makes sense to split these up across
different PRs, doing some small number (i.e. 1 or 2) of APIs per-PR. If anyone
wants to help chip away at this, just call out which APIs from this list you
intend to work on and we can parallelize them.
In terms of the steps required, the JIRA comments
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17617806&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17617806]
and
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17617923&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17617923]
give some good background and step-by-step instructions for switching APIs
over to the new JAX-RS framework, which is usually helpful or even required as
the traditional v2 framework doesn't lend itself very readily to RESTful APIs.
(Those comments describe creating a new API "from scratch", but the steps are
still applicable to modifying an existing API.) The PR
[here|https://github.com/apache/solr/pull/1053] also serves as a helpful
example to work from.
Not all API modifications require the new JAX-RS framework, though it is
preferred going forward. Instructions for updating APIs using the older,
traditional v2 framework can be found
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17565076&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17565076],
and an example PR can be found [here|https://github.com/apache/solr/pull/1061].
was (Author: gerlowskija):
To be a little more explicit about the APIs we want this ticket to cover, I
found 6 APIs that need work related to collection backups:
* List Collection Backups
** Current Form: POST /api/collections/backups \{"list-backups": \{...\}\}
** Desired Form: GET
/api/collections/backups/backupName/checkpoints?location=adsf
** Spreadsheet Ref: Tab 1, Line 82
* Create Collection Backup
** Current Form: POST /api/collections \{"backup-collection": \{...\}\}
** Desired Form: POST /api/collections/backups/backupName/versions \{...\}
** Spreadsheet Ref: Tab 1, Line 83
* Delete Collection Backup (by ID)
** Current Form: POST /api/collections/backups \{"delete-backups": \{...\}\}
** Desired Form: DELETE
/api/collections/backups/backupName/versions/123?location=adsf
** Spreadsheet Ref: Tab 1, Line 84
* Delete All Collection Backup Versions (except most-recent 'N')
** Current Form: POST /api/collections/backups \{"delete-backups": \{...\}\}
** Desired Form: DELETE
/api/collections/backups/backupName/versions?maxUnused=123&...
** Spreadsheet Ref: Tab 1, Line 85
* Delete Unused Collection Backup Files
** Current Form: POST /api/collections/backups \{"delete-backups": \{...\}\}
** Desired Form: DELETE
/api/collections/backups/backupName/versions?purgeUnused=true&...
** Spreadsheet Ref: Tab 1, Line 86
* Restore Collection Backup
** Current Form: POST /api/collections \{"restore-collection": \{...\}\}
** Desired Form: POST /api/collections/backups/backupName/commands/restore
** Spreadsheet Ref: Tab 6, Line 38
Obviously this is a big list. IMO it makes sense to split these up across
different PRs, doing some small number (i.e. 1 or 2) of APIs per-PR. If anyone
wants to help chip away at this, just call out which APIs from this list you
intend to work on and we can parallelize them.
In terms of the steps required, the JIRA comments
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17617806&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17617806]
and
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17617923&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17617923]
give some good background and step-by-step instructions for switching APIs
over to the new JAX-RS framework, which is usually helpful or even required as
the traditional v2 framework doesn't lend itself very readily to RESTful APIs.
(Those comments describe creating a new API "from scratch", but the steps are
still applicable to modifying an existing API.) The PR
[here|https://github.com/apache/solr/pull/1053] also serves as a helpful
example to work from.
Not all API modifications require the new JAX-RS framework, though it is
preferred going forward. Instructions for updating APIs using the older,
traditional v2 framework can be found
[here|https://issues.apache.org/jira/browse/SOLR-15737?focusedCommentId=17565076&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17565076],
and an example PR can be found [here|https://github.com/apache/solr/pull/1061].
> Cosmetic improvements and migration to JAX-RS (snapshot, backup APIs)
> ---------------------------------------------------------------------
>
> Key: SOLR-16394
> URL: https://issues.apache.org/jira/browse/SOLR-16394
> Project: Solr
> Issue Type: Sub-task
> Components: v2 API
> Affects Versions: main (10.0)
> Reporter: Jason Gerlowski
> Priority: Major
> Labels: newdev
>
> As mentioned on SOLR-15781, the v2 API currently has an experimental
> designation, and the community has expressed an interest in using this period
> to update our v2 endpoints to be more REST-ful and consistent. The current
> plan is to follow the specific changes laid out in [this
> spreadsheet|https://docs.google.com/spreadsheets/d/1HAoBBFPpSiT8mJmgNZKkZAPwfCfPvlc08m5jz3fQBpA/edit?usp=sharing],
> though of course nothing there is set in stone and there are still warts to
> be worked out.
> While we're touching the code for these endpoints, we should also convert
> them to JAX-RS framework definitions. (This was initially tracked as a
> separate effort - see SOLR-16370 - but the edit that were required ended up
> overlapping so significantly with the "cosmetic" improvements here that in
> practice it almost always makes sense to do the two together.)
> This ticket plans to tackle making the changes required for Solr's snapshot
> and backup APIs, as described in the spreadsheet linked above. For
> convenience and ease of tracking, these APIs are summarized in the table
> below:
> ||API Name||Original Form||Desired Form||Status||Volunteer||
> |List Backups|POST /api/collections/backups \{list-backups: \{...\}\}|GET
> /api/collections/backups/backupName/versions?location=asdf|Open|N/A|
> |Create Backup|POST /api/collections \{backup-collection: \{...\}\}|POST
> /api/collections/backups/backupName/versions \{...\}|Open|N/A|
> |Delete Backup (by ID)|POST /api/collections/backups \{delete-backups:
> \{...\}\}|DELETE
> /api/collections/backups/backupName/versions123?location=asdf|Open|N/A|
> |Delete All Backups (Except Most Recent 'N')|POST /api/collections/backups
> \{delete-backups: \{...\}\}|DELETE
> /api/collections/backups/backupName/versions?maxUnused=7&...|Open|N/A|
> |Garbage Collect Unused Backup Files|POST /api/collections/backups
> \{delete-backups: \{...\}\}|DELETE
> /api/collections/backups/backupName/versions?purgeUnused=true&...|Open|N/A|
> |Restore Collection Backup|POST /api/collections \{restore-collection:
> \{...\}\}|POST /api/collections/backups/backupName/restore|Open|N/A|
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]