Add bulk dataset storage migration#22606
Draft
davelopez wants to merge 73 commits intogalaxyproject:devfrom
Draft
Add bulk dataset storage migration#22606davelopez wants to merge 73 commits intogalaxyproject:devfrom
davelopez wants to merge 73 commits intogalaxyproject:devfrom
Conversation
482ae7f to
fcf65ec
Compare
Splits the API for storage operation runs to return only run summaries, moving per-item results to a new paginated endpoint. Updates frontend and schema to use the new endpoint, adjusts tests, and refactors backend logic accordingly. Improves scalability and performance by avoiding large payloads and enabling filtered, paginated access to run items.
Improves clarity and detail for quota availability changes by replacing a generic dictionary with a structured list of transfers. This provides explicit source and target object store IDs for each quota impact, making the information more precise for the user interface. It enhances the accuracy and reviewability of storage operation previews.
Clarifies user understanding of the implications when datasets move from private to shareable storage. The updated message is more informative about the potential for sharing after the operation, making the warning less ambiguous.
Creates a dedicated Vue component to display the storage operation preview. This component centralizes the complex rendering logic, improving maintainability and allowing for a clearer separation of concerns within the storage operation wizard.
Simplifies the storage operation wizard by offloading preview rendering to a dedicated component. This reduces the modal's complexity, removes duplicated logic, and improves the overall user experience with clearer instructions and titles.
Prevents dataset transfer attempts when the source data is unavailable by detecting missing files beforehand and recording a specific failure. Improves error reporting and robustness against purged or absent datasets. Co-authored-by: Copilot <copilot@github.com>
Introduces new helper methods to support preview, execute, and monitor bulk storage operations within test populators.
Introduces comprehensive integration tests covering preview, execution, and run status for bulk storage operations across distributed object store backends. Validates eligibility, error handling, warnings, run lifecycle, collection support, and edge cases including quota transfers and privacy warnings.
fcf65ec to
2542aeb
Compare
Ensures that re-executing a storage snapshot with mixed eligible and ineligible states does not duplicate file moves or mutate data. Validates correct handling of already migrated datasets and verifies file counts remain unchanged on repeated execution. Co-authored-by: Copilot <copilot@github.com>
Adds cleanup of partially transferred files in the target store when a checksum verification error or other exception occurs during cross-device dataset transfer. Updates tests to verify that failed transfers do not result in data loss and are safely rerunnable. Co-authored-by: Copilot <copilot@github.com>
Prevents users from seeing and toggling the "notify on completion" option unless the notification system is enabled in config.
4 tasks
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.
Resolves #22404
Summary
This branch introduces end-to-end bulk storage migration for history items.
Users can now:
Notes:
Screenshots
New bulk selection option (requires celery and selectable object stores)
For potentially long operations, you can opt to receive a notification/email.
Select the destination storage location for the selected datasets and collections
You can preview the estimated impact of the operation
When a background operation is running, you will see this indicator
Here, you can inspect the latest operations you have run in the current history
When some datasets are skipped or fail, you can see the reason for each of them in the details
You can also access the results from the notification received after the operation is completed
Most Relevant Backend Changes
Testing
Coverage added/updated in this branch includes:
TODO
How to test the changes?
This is a basic
object_store_conf.yml. You should replace thefiles_dirwith something that works for you and play around with differentdeviceandquota, etc.License