Repository navigation
Merged
Conversation
Define version = 2.1.0 in PBS_Chunk_Checker.py Expose version via argparse --version Update README: show current version and document new flag in parameters Clarify CLI syntax and examples with new flags
Split usage into “Local execution” and “Portable execution” Add wget-based streaming example (no file left on disk) Note that portable mode always fetches the latest version Include syntax and concrete examples for common paths
Add interactive mode triggered when no args are provided Datastore selection (list + manual) Directory browser for selecting search path Standardize CLI to use only --searchpath (remove typo alias) Bump version to 2.2.0 Update README: Reorganize usage: script mode, interactive mode, portable Add portable examples for both modes Clarify parameters are required only in script mode
SECURITY.md: add supported versions (best‑effort), reporting channels, response targets (no SLA), scope, Safe Harbor, handling sensitive info, and disclaimer with non‑professional notice CONTRIBUTING.md: add contribution guidelines, PR rules (stdlib‑only, small scope), dev setup, style notes, commit guidance, and licensing Clarify single‑maintainer nature; no bug bounty/commercial support
Improve get_datastore_path to robustly resolve PBS datastore path Handle JSON and text modes with check=False and exit code checks Capture and display stderr/stdout on failure for clearer diagnostics Emit clear error and exit (status 1) if datastore does not exist Interactive mode cleanly handles SystemExit during datastore resolution Result: Supplying a non-existent datastore prints a helpful error and stops processing.
Add ensure_required_tools() to verify proxmox-backup-manager and proxmox-backup-debug availability; exit with clear guidance if missing Validate datastore path exists and is a directory in both interactive and non-interactive flows Clamp invalid --workers (<= 0) to default with a clear error message Normalize uppercase digests; improve parsing robustness and localize proxmox-backup-debug errors Catch OSError in stat_size_if_exists and log concise warnings Add --no-emoji flag with ASCII icon fallback; route all output through icon map Improve user-facing messages and consistency; keep outputs and docs in English Update README: document --no-emoji, tool prerequisites, and behavior changes
Update __version__ in PBS_Chunk_Checker.py Update “Current version” badge in README.md
Print absolute sizes alongside counts/percentages for unique and duplicate chunks Reformat summary: Unique → Duplicate → Total Add live runtime to index and chunk progress lines; compact final duration Clear console at startup for clean output Reorder header lines: Path to datastore → Chunk path → Search path Remove trailing “Searched object” line Update README: new output example, “Output Details” section, version text Bump version to 2.4.0 and align README version Minor helpers: add clear_console() and format_elapsed()
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
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.
Improves UX and clarity of results.
Adds absolute size metrics for unique and duplicate chunk references.
Shows a live runtime timer and clears the console on start.
Updates README and bumps version.
Changes
PBS_Chunk_Checker.py
Add clear_console() and call on startup.
Add format_elapsed() and show a live ⏱️ timer in progress lines.
Compute and display absolute sizes for unique and duplicate refs.
Rework summary: Unique → Duplicate → Total with counts, percentages, sizes.
Reorder header lines: Path to datastore → Chunk path → Search path.
Remove trailing “Searched object” line.
Keep “Total size” as real unique on-disk usage; add total references logical size in summary.
Bump version to 2.4.0.
README.md
Update version text to 2.4.0.
Refresh output example for new order, live timer, and summary metrics.
Add “Output Details” section describing new behavior.
Output Example
📁 Path to datastore: /mnt/datastore/MyDatastore
📦 Chunk path: /mnt/datastore/MyDatastore/.chunks
📁 Search path: /mnt/datastore/MyDatastore/ns/MyNamespace
💾 Saving all used chunks
📄 Index 75/75 | ⏱️ 02m 15s
➕ Summing up chunks
📦 Chunk 12450/12450 | 🧮 Size so far: 1.23TiB | ⏱️ 12m 09s
🧮 Total size: 1356782934123 Bytes (1.23TiB)
⏱️ Evaluation duration: 12m 10s
🧩 Chunk usage summary:
Unique chunks : 8505 (9.59%) | 12.2GiB
Duplicate refs : 80186 (90.41%) | 186.2GiB
Total references : 88692 (198.4GiB)
How To Test
Run script mode:
./PBS_Chunk_Checker.py --datastore MyDatastore --searchpath /ns/MyNamespace
Run interactive mode:
./PBS_Chunk_Checker.py and pick datastore + path.
Verify:
Console clears at start.
Header order: datastore → chunk path → search path.
Progress lines show a live ⏱️ timer; chunk progress shows size so far.
Final duration uses compact format (e.g., 12m 10s).
Summary shows unique/duplicate/total with counts, percentages, and sizes.
./PBS_Chunk_Checker.py --version prints 2.4.0.
Optional: --no-emoji shows ASCII labels.
Compatibility Notes
CLI and behavior unchanged; output formatting is improved.
If downstream tools parse the old summary format, they may need minor updates.
Files Touched
PBS_Chunk_Checker.py
README.md