mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
Sort snapshots by time and key in tabwriter output
Fixes snapshot list coming out in non-deterministic order Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
This commit is contained in:
parent
7464007037
commit
a15b804e00
@ -7,6 +7,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
"time"
|
"time"
|
||||||
@ -193,9 +194,23 @@ func list(app *cli.Context, cfg *cmds.Server) error {
|
|||||||
w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0)
|
w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0)
|
||||||
defer w.Flush()
|
defer w.Flush()
|
||||||
|
|
||||||
|
// Sort snapshots by creation time and key
|
||||||
|
sfKeys := make([]string, 0, len(sf))
|
||||||
|
for k := range sf {
|
||||||
|
sfKeys = append(sfKeys, k)
|
||||||
|
}
|
||||||
|
sort.Slice(sfKeys, func(i, j int) bool {
|
||||||
|
iKey := sfKeys[i]
|
||||||
|
jKey := sfKeys[j]
|
||||||
|
if sf[iKey].CreatedAt.Equal(sf[jKey].CreatedAt) {
|
||||||
|
return iKey < jKey
|
||||||
|
}
|
||||||
|
return sf[iKey].CreatedAt.Before(sf[jKey].CreatedAt)
|
||||||
|
})
|
||||||
|
|
||||||
fmt.Fprint(w, "Name\tLocation\tSize\tCreated\n")
|
fmt.Fprint(w, "Name\tLocation\tSize\tCreated\n")
|
||||||
for _, s := range sf {
|
for _, k := range sfKeys {
|
||||||
fmt.Fprintf(w, "%s\t%s\t%d\t%s\n", s.Name, s.Location, s.Size, s.CreatedAt.Format(time.RFC3339))
|
fmt.Fprintf(w, "%s\t%s\t%d\t%s\n", sf[k].Name, sf[k].Location, sf[k].Size, sf[k].CreatedAt.Format(time.RFC3339))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user