mirror of
https://github.com/octoleo/restic.git
synced 2024-11-22 21:05:10 +00:00
Add snapshot ID to summary output
This commit is contained in:
parent
f645306a18
commit
6cf13483b5
@ -415,7 +415,7 @@ func runBackup(opts BackupOptions, gopts GlobalOptions, term *termstatus.Termina
|
|||||||
SetMinUpdatePause(d time.Duration)
|
SetMinUpdatePause(d time.Duration)
|
||||||
Run(ctx context.Context) error
|
Run(ctx context.Context) error
|
||||||
Error(item string, fi os.FileInfo, err error) error
|
Error(item string, fi os.FileInfo, err error) error
|
||||||
Finish()
|
Finish(snapshotID restic.ID)
|
||||||
|
|
||||||
// ui.StdioWrapper
|
// ui.StdioWrapper
|
||||||
Stdout() io.WriteCloser
|
Stdout() io.WriteCloser
|
||||||
@ -582,7 +582,7 @@ func runBackup(opts BackupOptions, gopts GlobalOptions, term *termstatus.Termina
|
|||||||
return errors.Fatalf("unable to save snapshot: %v", err)
|
return errors.Fatalf("unable to save snapshot: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
p.Finish()
|
p.Finish(id)
|
||||||
if !gopts.JSON {
|
if !gopts.JSON {
|
||||||
p.P("snapshot %s saved\n", id.Str())
|
p.P("snapshot %s saved\n", id.Str())
|
||||||
}
|
}
|
||||||
|
@ -349,7 +349,7 @@ func (b *Backup) ReportTotal(item string, s archiver.ScanStats) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Finish prints the finishing messages.
|
// Finish prints the finishing messages.
|
||||||
func (b *Backup) Finish() {
|
func (b *Backup) Finish(snapshotID restic.ID) {
|
||||||
close(b.finished)
|
close(b.finished)
|
||||||
|
|
||||||
b.P("\n")
|
b.P("\n")
|
||||||
|
@ -167,7 +167,6 @@ func (b *Backup) update(total, processed counter, errors uint, currentFiles map[
|
|||||||
// ScannerError is the error callback function for the scanner, it prints the
|
// ScannerError is the error callback function for the scanner, it prints the
|
||||||
// error in verbose mode and returns nil.
|
// error in verbose mode and returns nil.
|
||||||
func (b *Backup) ScannerError(item string, fi os.FileInfo, err error) error {
|
func (b *Backup) ScannerError(item string, fi os.FileInfo, err error) error {
|
||||||
// b.V("scan: %v\n", err)
|
|
||||||
json.NewEncoder(b.StdioWrapper.Stderr()).Encode(errorUpdate{
|
json.NewEncoder(b.StdioWrapper.Stderr()).Encode(errorUpdate{
|
||||||
MessageType: "error",
|
MessageType: "error",
|
||||||
Error: err,
|
Error: err,
|
||||||
@ -179,7 +178,6 @@ func (b *Backup) ScannerError(item string, fi os.FileInfo, err error) error {
|
|||||||
|
|
||||||
// Error is the error callback function for the archiver, it prints the error and returns nil.
|
// Error is the error callback function for the archiver, it prints the error and returns nil.
|
||||||
func (b *Backup) Error(item string, fi os.FileInfo, err error) error {
|
func (b *Backup) Error(item string, fi os.FileInfo, err error) error {
|
||||||
// b.E("error: %v\n", err)
|
|
||||||
json.NewEncoder(b.StdioWrapper.Stderr()).Encode(errorUpdate{
|
json.NewEncoder(b.StdioWrapper.Stderr()).Encode(errorUpdate{
|
||||||
MessageType: "error",
|
MessageType: "error",
|
||||||
Error: err,
|
Error: err,
|
||||||
@ -231,7 +229,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
|
|
||||||
if current.Type == "dir" {
|
if current.Type == "dir" {
|
||||||
if previous == nil {
|
if previous == nil {
|
||||||
// b.VV("new %v, saved in %.3fs (%v added, %v metadata)", item, d.Seconds(), formatBytes(s.DataSize), formatBytes(s.TreeSize))
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -249,7 +246,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if previous.Equals(*current) {
|
if previous.Equals(*current) {
|
||||||
// b.VV("unchanged %v", item)
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -261,7 +257,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
b.summary.Dirs.Unchanged++
|
b.summary.Dirs.Unchanged++
|
||||||
b.summary.Unlock()
|
b.summary.Unlock()
|
||||||
} else {
|
} else {
|
||||||
// b.VV("modified %v, saved in %.3fs (%v added, %v metadata)", item, d.Seconds(), formatBytes(s.DataSize), formatBytes(s.TreeSize))
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -285,7 +280,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if previous == nil {
|
if previous == nil {
|
||||||
// b.VV("new %v, saved in %.3fs (%v added)", item, d.Seconds(), formatBytes(s.DataSize))
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -302,7 +296,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if previous.Equals(*current) {
|
if previous.Equals(*current) {
|
||||||
// b.VV("unchanged %v", item)
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -314,7 +307,6 @@ func (b *Backup) CompleteItem(item string, previous, current *restic.Node, s arc
|
|||||||
b.summary.Files.Unchanged++
|
b.summary.Files.Unchanged++
|
||||||
b.summary.Unlock()
|
b.summary.Unlock()
|
||||||
} else {
|
} else {
|
||||||
// b.VV("modified %v, saved in %.3fs (%v added)", item, d.Seconds(), formatBytes(s.DataSize))
|
|
||||||
if b.v >= 3 {
|
if b.v >= 3 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "verbose_status",
|
MessageType: "verbose_status",
|
||||||
@ -339,10 +331,6 @@ func (b *Backup) ReportTotal(item string, s archiver.ScanStats) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if item == "" {
|
if item == "" {
|
||||||
// b.V("scan finished in %.3fs: %v files, %s",
|
|
||||||
// time.Since(b.start).Seconds(),
|
|
||||||
// s.Files, formatBytes(s.Bytes),
|
|
||||||
// )
|
|
||||||
if b.v >= 2 {
|
if b.v >= 2 {
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(verboseUpdate{
|
||||||
MessageType: "status",
|
MessageType: "status",
|
||||||
@ -358,21 +346,8 @@ func (b *Backup) ReportTotal(item string, s archiver.ScanStats) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Finish prints the finishing messages.
|
// Finish prints the finishing messages.
|
||||||
func (b *Backup) Finish() {
|
func (b *Backup) Finish(snapshotID restic.ID) {
|
||||||
close(b.finished)
|
close(b.finished)
|
||||||
|
|
||||||
// b.P("\n")
|
|
||||||
// b.P("Files: %5d new, %5d changed, %5d unmodified\n", b.summary.Files.New, b.summary.Files.Changed, b.summary.Files.Unchanged)
|
|
||||||
// b.P("Dirs: %5d new, %5d changed, %5d unmodified\n", b.summary.Dirs.New, b.summary.Dirs.Changed, b.summary.Dirs.Unchanged)
|
|
||||||
// b.V("Data Blobs: %5d new\n", b.summary.ItemStats.DataBlobs)
|
|
||||||
// b.V("Tree Blobs: %5d new\n", b.summary.ItemStats.TreeBlobs)
|
|
||||||
// b.P("Added to the repo: %-5s\n", formatBytes(b.summary.ItemStats.DataSize+b.summary.ItemStats.TreeSize))
|
|
||||||
// b.P("\n")
|
|
||||||
// b.P("processed %v files, %v in %s",
|
|
||||||
// b.summary.Files.New+b.summary.Files.Changed+b.summary.Files.Unchanged,
|
|
||||||
// formatBytes(b.totalBytes),
|
|
||||||
// formatDuration(time.Since(b.start)),
|
|
||||||
// )
|
|
||||||
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(summaryOutput{
|
json.NewEncoder(b.StdioWrapper.Stdout()).Encode(summaryOutput{
|
||||||
MessageType: "summary",
|
MessageType: "summary",
|
||||||
FilesNew: b.summary.Files.New,
|
FilesNew: b.summary.Files.New,
|
||||||
@ -387,6 +362,7 @@ func (b *Backup) Finish() {
|
|||||||
TotalFilesProcessed: b.summary.Files.New + b.summary.Files.Changed + b.summary.Files.Unchanged,
|
TotalFilesProcessed: b.summary.Files.New + b.summary.Files.Changed + b.summary.Files.Unchanged,
|
||||||
TotalBytesProcessed: b.totalBytes,
|
TotalBytesProcessed: b.totalBytes,
|
||||||
TotalDuration: time.Since(b.start).Seconds(),
|
TotalDuration: time.Since(b.start).Seconds(),
|
||||||
|
SnapshotID: snapshotID.Str(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,4 +416,5 @@ type summaryOutput struct {
|
|||||||
TotalFilesProcessed uint `json:"total_files_processed"`
|
TotalFilesProcessed uint `json:"total_files_processed"`
|
||||||
TotalBytesProcessed uint64 `json:"total_bytes_processed"`
|
TotalBytesProcessed uint64 `json:"total_bytes_processed"`
|
||||||
TotalDuration float64 `json:"total_duration"` // in seconds
|
TotalDuration float64 `json:"total_duration"` // in seconds
|
||||||
|
SnapshotID string `json:"snapshot_id"`
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user