allow a change of storage tier with the --change-tier option and fixes #171
Merged
dirkpetersen merged 7 commits intomainfrom Oct 17, 2025
Merged
allow a change of storage tier with the --change-tier option and fixes #171dirkpetersen merged 7 commits intomainfrom
dirkpetersen merged 7 commits intomainfrom
Conversation
Added comprehensive documentation for Claude Code to understand: - Project architecture and single-file monolithic design - Core classes with line numbers for navigation - Development workflow and testing procedures - Key data flows and important file artifacts - Release process and HPC-specific considerations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implemented `froster restore --change-tier` to allow users to change AWS S3 storage tiers for archived data without restoring it. New Components: - TableStorageTierSelector: Interactive Textual TUI for tier selection with cost estimates and folder information display - AWSBoto.change_storage_class(): S3 tier change implementation using copy_object API, preserves STANDARD tier for metadata files - Commands._change_storage_tier(): Workflow orchestration with database sync and user confirmation Features: - Available tiers: INTELLIGENT_TIERING, STANDARD_IA, ONEZONE_IA, GLACIER_IR - Blocks moves FROM Glacier/Deep Archive (not allowed) - Preserves STANDARD tier for: Froster.allfiles.csv, .froster.md5sum - Updates local database (froster-archives.json) after tier change - Interactive TUI with cost information and confirmation prompts Usage: froster restore --change-tier [folder] 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
New feature: storage tier change with --change-tier option 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fixed pipx installation to handle both system Python and virtual environments properly. Changes: - Skip pipx installation entirely when LOCAL_INSTALL=true (uses pip directly for editable installs) - Add fallback chain for pipx installation: 1. Try --user flag (system install) 2. Try --user --break-system-packages (newer pip) 3. Try without --user (works in venv) - Better error handling with warnings instead of hard failures - Clearer status messages showing installation method and version Now supports all scenarios: - System Python installation - Virtual environment with LOCAL_INSTALL=true - Virtual environment for regular PyPI install - CI/CD environments Fixes issue where install.sh would fail in fresh virtual environments with "No module named pipx" error. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
… output Replaced plain input() prompt with proper Textual TUI modal dialog for storage tier change confirmation. Fixed console output by removing rich markup tags that were displaying as literal text. Changes: - Added ScreenConfirmTierChange: Modal dialog with "Proceed"/"Cancel" buttons - Added TableStorageTierConfirmApp: Wrapper app to launch confirmation modal - Removed all rich markup tags ([bold], [green], [red], [yellow]) from console output in AWSBoto.change_storage_class() and Commands._change_storage_tier() - Replaced input() prompt with interactive Textual modal for better UX Now provides: - Clean console output without markup artifacts - Professional confirmation dialog matching Froster's UI style - Consistent user experience across all Textual TUI components 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…tier Improved tier change UX with proper modal behavior and prevented selecting the same tier as migration target. Changes: - Confirmation modal now appears as overlay on tier selection screen (not as separate app with dark background) - Removed TableStorageTierConfirmApp wrapper class (no longer needed) - Modified TableStorageTierSelector to use push_screen() for modal - Added handle_confirmation() to allow users to cancel and reselect - Excluded current tier from available migration targets User experience improvements: - Modal appears over existing screen (proper modal behavior) - Can cancel and select different tier without restarting - Cannot accidentally select same tier as migration target - Cleaner, more intuitive workflow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added GLACIER (Flexible Retrieval) and DEEP_ARCHIVE to the list of available storage tiers for migration, while maintaining the restriction that data cannot be moved FROM these tiers. New tiers added: - GLACIER: Glacier Flexible Retrieval - Storage: $3.6/TiB/mo - Retrieval: 3-5 hours, $10/TiB - Use case: Low-cost archive with hours-based retrieval - DEEP_ARCHIVE: Glacier Deep Archive - Storage: $1/TiB/mo (lowest cost) - Retrieval: 12-48 hours, $2.50/TiB - Use case: Long-term archive, lowest storage cost Users can now migrate TO Glacier/Deep Archive for maximum cost savings, but the existing restriction prevents migration FROM these tiers (restore required first). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
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.
feature:
fix: