Compare commits
5 Commits
2bf085bed6
...
fix/issue-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f249e3ddd | ||
|
|
3f834f1c9c | ||
|
|
9879668c31 | ||
|
|
0a0d9f33b0 | ||
| df0e8c275b |
@@ -90,24 +90,6 @@ func (v *Vaultik) CreateSnapshot(opts *SnapshotCreateOptions) error {
|
|||||||
v.printfStdout("\nAll %d snapshots completed in %s\n", len(snapshotNames), time.Since(overallStartTime).Round(time.Second))
|
v.printfStdout("\nAll %d snapshots completed in %s\n", len(snapshotNames), time.Since(overallStartTime).Round(time.Second))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prune old snapshots and unreferenced blobs if --prune was specified
|
|
||||||
if opts.Prune {
|
|
||||||
log.Info("Pruning enabled - deleting old snapshots and unreferenced blobs")
|
|
||||||
v.printlnStdout("\nPruning old snapshots (keeping latest)...")
|
|
||||||
|
|
||||||
if err := v.PurgeSnapshots(true, "", true); err != nil {
|
|
||||||
return fmt.Errorf("prune: purging old snapshots: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
v.printlnStdout("Pruning unreferenced blobs...")
|
|
||||||
|
|
||||||
if err := v.PruneBlobs(&PruneOptions{Force: true}); err != nil {
|
|
||||||
return fmt.Errorf("prune: removing unreferenced blobs: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("Pruning complete")
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,6 +306,11 @@ func (v *Vaultik) createNamedSnapshot(opts *SnapshotCreateOptions, hostname, sna
|
|||||||
}
|
}
|
||||||
v.printfStdout("Duration: %s\n", formatDuration(snapshotDuration))
|
v.printfStdout("Duration: %s\n", formatDuration(snapshotDuration))
|
||||||
|
|
||||||
|
if opts.Prune {
|
||||||
|
log.Info("Pruning enabled - will delete old snapshots after snapshot")
|
||||||
|
// TODO: Implement pruning
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -558,7 +545,7 @@ func (v *Vaultik) PurgeSnapshots(keepLatest bool, olderThan string, force bool)
|
|||||||
if !force {
|
if !force {
|
||||||
v.printfStdout("\nDelete %d snapshot(s)? [y/N] ", len(toDelete))
|
v.printfStdout("\nDelete %d snapshot(s)? [y/N] ", len(toDelete))
|
||||||
var confirm string
|
var confirm string
|
||||||
if _, err := fmt.Scanln(&confirm); err != nil {
|
if _, err := v.scanStdin(&confirm); err != nil {
|
||||||
// Treat EOF or error as "no"
|
// Treat EOF or error as "no"
|
||||||
v.printlnStdout("Cancelled")
|
v.printlnStdout("Cancelled")
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
package vaultik
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TestSnapshotCreateOptions_PruneFlag verifies the Prune field exists on
|
|
||||||
// SnapshotCreateOptions and can be set.
|
|
||||||
func TestSnapshotCreateOptions_PruneFlag(t *testing.T) {
|
|
||||||
opts := &SnapshotCreateOptions{
|
|
||||||
Prune: true,
|
|
||||||
}
|
|
||||||
if !opts.Prune {
|
|
||||||
t.Error("Expected Prune to be true")
|
|
||||||
}
|
|
||||||
|
|
||||||
opts2 := &SnapshotCreateOptions{
|
|
||||||
Prune: false,
|
|
||||||
}
|
|
||||||
if opts2.Prune {
|
|
||||||
t.Error("Expected Prune to be false")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -129,7 +129,7 @@ func (v *Vaultik) GetFilesystem() afero.Fs {
|
|||||||
return v.Fs
|
return v.Fs
|
||||||
}
|
}
|
||||||
|
|
||||||
// printfStdout writes formatted output to stdout for user-facing messages.
|
// printfStdout writes formatted output to stdout.
|
||||||
func (v *Vaultik) printfStdout(format string, args ...any) {
|
func (v *Vaultik) printfStdout(format string, args ...any) {
|
||||||
_, _ = fmt.Fprintf(v.Stdout, format, args...)
|
_, _ = fmt.Fprintf(v.Stdout, format, args...)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user