Make snapshot rm clean up the remote by default
snapshot rm <id> now does the full cleanup: removes the local index entry, strips the snapshot's metadata from the destination store, and prunes any blobs that were only referenced by the just-removed manifest. The --remote flag is retired; --local-only opts out for the rare case where the user wants to forget a snapshot locally without touching the remote. If the destination store is unreachable, the local-DB removal still completes and a warning is emitted; the user can rerun 'vaultik prune' to retry the remote half later. RemoveAllSnapshots gets the same treatment: after deleting every snapshot's metadata (local + remote + orphan keys), an automatic blob prune sweep removes the now-unreferenced blob set.
This commit is contained in:
@@ -324,14 +324,19 @@ func newSnapshotRemoveCommand() *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "remove [snapshot-id]",
|
||||
Aliases: []string{"rm"},
|
||||
Short: "Remove a snapshot from the local database",
|
||||
Long: `Removes a snapshot from the local database.
|
||||
Short: "Remove a snapshot from local index and remote storage",
|
||||
Long: `Removes a snapshot.
|
||||
|
||||
By default, only removes from the local database. Use --remote to also remove
|
||||
the snapshot metadata from remote storage.
|
||||
By default, this removes the snapshot from the local index database, strips
|
||||
the snapshot's metadata from the backup destination store, and prunes any
|
||||
blobs that are no longer referenced by any remaining remote snapshot.
|
||||
|
||||
Note: This does NOT remove blobs. Use 'vaultik prune' to remove orphaned blobs
|
||||
after removing snapshots.
|
||||
Use --local-only to skip the remote half (e.g. when you want to forget a
|
||||
snapshot locally without touching the destination store).
|
||||
|
||||
If the remote is unreachable, the local-database removal still completes
|
||||
and a warning is emitted; rerun 'vaultik prune' once the destination store
|
||||
is reachable to finish remote cleanup.
|
||||
|
||||
Use --all --force to remove all snapshots.`,
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
@@ -408,7 +413,7 @@ Use --all --force to remove all snapshots.`,
|
||||
cmd.Flags().BoolVarP(&opts.Force, "force", "f", false, "Skip confirmation prompt")
|
||||
cmd.Flags().BoolVar(&opts.DryRun, "dry-run", false, "Show what would be removed without removing")
|
||||
cmd.Flags().BoolVar(&opts.JSON, "json", false, "Output result as JSON")
|
||||
cmd.Flags().BoolVar(&opts.Remote, "remote", false, "Also remove snapshot metadata from remote storage")
|
||||
cmd.Flags().BoolVar(&opts.LocalOnly, "local-only", false, "Skip remote cleanup; only touch the local index")
|
||||
cmd.Flags().BoolVar(&opts.All, "all", false, "Remove all snapshots (requires --force)")
|
||||
|
||||
return cmd
|
||||
|
||||
Reference in New Issue
Block a user