Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package minio-client for openSUSE:Factory checked in at 2024-06-09 20:20:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/minio-client (Old) and /work/SRC/openSUSE:Factory/.minio-client.new.19518 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "minio-client" Sun Jun 9 20:20:58 2024 rev:81 rq:1179368 version:20240605T181330Z Changes: -------- --- /work/SRC/openSUSE:Factory/minio-client/minio-client.changes 2024-06-05 17:43:17.892067660 +0200 +++ /work/SRC/openSUSE:Factory/.minio-client.new.19518/minio-client.changes 2024-06-09 20:24:05.797886301 +0200 @@ -1,0 +2,8 @@ +Fri Jun 07 19:31:40 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 20240605T181330Z: + * add vulncheck with go upgrade + * add space between upload/download indicators + * Add sizes to mc admin trace (#4949) + +------------------------------------------------------------------- Old: ---- mc-20240601T150335Z.obscpio New: ---- mc-20240605T181330Z.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ minio-client.spec ++++++ --- /var/tmp/diff_new_pack.NS5ikG/_old 2024-06-09 20:24:06.525912572 +0200 +++ /var/tmp/diff_new_pack.NS5ikG/_new 2024-06-09 20:24:06.525912572 +0200 @@ -22,7 +22,7 @@ %define binary_name minio-client Name: minio-client -Version: 20240601T150335Z +Version: 20240605T181330Z Release: 0 Summary: Client for MinIO License: AGPL-3.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.NS5ikG/_old 2024-06-09 20:24:06.561913871 +0200 +++ /var/tmp/diff_new_pack.NS5ikG/_new 2024-06-09 20:24:06.565914015 +0200 @@ -5,7 +5,7 @@ <param name="exclude">.git</param> <param name="changesgenerate">enable</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">RELEASE.2024-06-01T15-03-35Z</param> + <param name="revision">RELEASE.2024-06-05T18-13-30Z</param> <param name="match-tag">RELEASE.*</param> <param name="versionrewrite-pattern">RELEASE\.(.*)-(.*)-(.*)-(.*)-(.*)</param> <param name="versionrewrite-replacement">\1\2\3\4\5</param> @@ -19,7 +19,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="manual"> - <param name="archive">mc-20240601T150335Z.obscpio</param> + <param name="archive">mc-20240605T181330Z.obscpio</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.NS5ikG/_old 2024-06-09 20:24:06.589914881 +0200 +++ /var/tmp/diff_new_pack.NS5ikG/_new 2024-06-09 20:24:06.593915025 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/minio/mc</param> - <param name="changesrevision">3cfa8642fdab18e3c1599360be26167e377063cf</param></service></servicedata> + <param name="changesrevision">17adf0abbbca8a1d3153932a9b467a19c8371cc4</param></service></servicedata> (No newline at EOF) ++++++ mc-20240601T150335Z.obscpio -> mc-20240605T181330Z.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240601T150335Z/.github/workflows/vulncheck.yml new/mc-20240605T181330Z/.github/workflows/vulncheck.yml --- old/mc-20240601T150335Z/.github/workflows/vulncheck.yml 2024-06-01 17:03:35.000000000 +0200 +++ new/mc-20240605T181330Z/.github/workflows/vulncheck.yml 2024-06-05 20:13:30.000000000 +0200 @@ -16,7 +16,7 @@ - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.22.x check-latest: true - name: Get official govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240601T150335Z/cmd/admin-trace.go new/mc-20240605T181330Z/cmd/admin-trace.go --- old/mc-20240601T150335Z/cmd/admin-trace.go 2024-06-01 17:03:35.000000000 +0200 +++ new/mc-20240605T181330Z/cmd/admin-trace.go 2024-06-05 20:13:30.000000000 +0200 @@ -24,6 +24,7 @@ "hash/fnv" "net/http" "net/url" + "os" "path" "sort" "strconv" @@ -41,7 +42,9 @@ "github.com/minio/madmin-go/v3" "github.com/minio/mc/pkg/probe" "github.com/minio/pkg/v3/console" + "github.com/muesli/reflow/truncate" "github.com/olekukonko/tablewriter" + "golang.org/x/term" ) var adminTraceFlags = []cli.Flag{ @@ -582,6 +585,7 @@ StatusCode int `json:"statusCode"` StatusMsg string `json:"statusMsg"` Type string `json:"type"` + Size int64 `json:"size,omitempty"` Error string `json:"error"` Extra map[string]string `json:"extra"` trcType madmin.TraceType @@ -650,6 +654,7 @@ s.Duration = t.Duration s.StatusMsg = t.Message s.Extra = t.Custom + s.Size = t.Bytes switch t.TraceType { case madmin.TraceS3, madmin.TraceInternal: @@ -703,10 +708,15 @@ console.Colorize("ErrStatus", s.Error), console.Colorize("HeaderValue", s.Duration)) } else { - fmt.Fprintf(b, "[%s] %s %s %s %2s", console.Colorize("RespStatus", strings.ToUpper(s.trcType.String())), console.Colorize("FuncName", s.FuncName), + sz := "" + if s.Size != 0 { + sz = fmt.Sprintf(" %s", humanize.IBytes(uint64(s.Size))) + } + fmt.Fprintf(b, "[%s] %s %s %s %2s%s", console.Colorize("RespStatus", strings.ToUpper(s.trcType.String())), console.Colorize("FuncName", s.FuncName), hostStr, s.Path, - console.Colorize("HeaderValue", s.Duration)) + console.Colorize("HeaderValue", s.Duration), + sz) } return b.String() } @@ -839,10 +849,14 @@ fmt.Fprintf(b, "%s %s [%s] %s%s", nodeNameStr, console.Colorize("Request", fmt.Sprintf("[%s %s]", strings.ToUpper(trc.TraceType.String()), trc.FuncName)), trc.Time.Local().Format(traceTimeFormat), trc.Message, extra) return b.String() default: + sz := "" + if trc.Bytes != 0 { + sz = fmt.Sprintf(" %s", humanize.IBytes(uint64(trc.Bytes))) + } if trc.Error != "" { - fmt.Fprintf(b, "%s %s [%s] %s%s err='%s' %s", nodeNameStr, console.Colorize("Request", fmt.Sprintf("[%s %s]", strings.ToUpper(trc.TraceType.String()), trc.FuncName)), trc.Time.Local().Format(traceTimeFormat), trc.Path, extra, console.Colorize("ErrStatus", trc.Error), trc.Duration) + fmt.Fprintf(b, "%s %s [%s] %s%s err='%s' %s%s", nodeNameStr, console.Colorize("Request", fmt.Sprintf("[%s %s]", strings.ToUpper(trc.TraceType.String()), trc.FuncName)), trc.Time.Local().Format(traceTimeFormat), trc.Path, extra, console.Colorize("ErrStatus", trc.Error), trc.Duration, sz) } else { - fmt.Fprintf(b, "%s %s [%s] %s%s %s", nodeNameStr, console.Colorize("Request", fmt.Sprintf("[%s %s]", strings.ToUpper(trc.TraceType.String()), trc.FuncName)), trc.Time.Local().Format(traceTimeFormat), trc.Path, extra, trc.Duration) + fmt.Fprintf(b, "%s %s [%s] %s%s %s%s", nodeNameStr, console.Colorize("Request", fmt.Sprintf("[%s %s]", strings.ToUpper(trc.TraceType.String()), trc.FuncName)), trc.Time.Local().Format(traceTimeFormat), trc.Path, extra, trc.Duration, sz) } return b.String() } @@ -903,6 +917,7 @@ MaxTTFB time.Duration `json:"maxTTFB,omitempty"` MaxDur time.Duration `json:"maxDuration"` MinDur time.Duration `json:"minDuration"` + Size int64 `json:"size"` } type statTrace struct { @@ -951,6 +966,7 @@ if t.Trace.Error != "" { got.Errors++ } + got.Size += t.Trace.Bytes if t.Trace.HTTP != nil { got.CallStatsCount++ got.CallStats.Rx += t.Trace.HTTP.CallStats.InputBytes @@ -966,9 +982,10 @@ func initTraceStatsUI(maxEntries int, traces <-chan madmin.ServiceTraceInfo) *traceStatsUI { s := spinner.New() s.Spinner = spinner.Points - s.Spinner.FPS = time.Second / 4 + s.Spinner.FPS = time.Second / 2 s.Style = lipgloss.NewStyle().Foreground(lipgloss.Color("205")) console.SetColor("metrics-duration", color.New(color.FgWhite)) + console.SetColor("metrics-size", color.New(color.FgGreen)) console.SetColor("metrics-dur", color.New(color.FgGreen)) console.SetColor("metrics-dur-med", color.New(color.FgYellow)) console.SetColor("metrics-dur-high", color.New(color.FgRed)) @@ -1043,17 +1060,8 @@ table.SetRowSeparator("") table.SetHeaderLine(false) table.SetBorder(false) - table.SetTablePadding("\t") // pad with tabs + table.SetTablePadding(" ") // pad with tabs table.SetNoWhiteSpace(true) - addRow := func(s string) { - table.Append([]string{s}) - } - _ = addRow - addRowF := func(format string, vals ...interface{}) { - s := fmt.Sprintf(format, vals...) - table.Append([]string{s}) - } - _ = addRowF var entries []statItem m.current.mu.Lock() totalCnt := 0 @@ -1076,20 +1084,34 @@ if m.maxEntries > 0 && len(entries) > m.maxEntries { entries = entries[:m.maxEntries] } - - table.Append([]string{ + hasTTFB := false + for _, e := range entries { + if e.TTFB > 0 { + hasTTFB = true + break + } + } + t := []string{ console.Colorize("metrics-top-title", "Call"), console.Colorize("metrics-top-title", "Count"), console.Colorize("metrics-top-title", "RPM"), console.Colorize("metrics-top-title", "Avg Time"), console.Colorize("metrics-top-title", "Min Time"), console.Colorize("metrics-top-title", "Max Time"), - console.Colorize("metrics-top-title", "Avg TTFB"), - console.Colorize("metrics-top-title", "Max TTFB"), + } + if hasTTFB { + t = append(t, + console.Colorize("metrics-top-title", "Avg TTFB"), + console.Colorize("metrics-top-title", "Max TTFB"), + ) + } + t = append(t, + console.Colorize("metrics-top-title", "Avg Size"), + console.Colorize("metrics-top-title", "Rate"), console.Colorize("metrics-top-title", "Errors"), - console.Colorize("metrics-top-title", "RX Avg"), - console.Colorize("metrics-top-title", "TX Avg"), - }) + ) + + table.Append(t) for _, v := range entries { if v.Count <= 0 { continue @@ -1121,13 +1143,33 @@ maxColor = "metrics-dur-med" } - rx := "-" - tx := "-" + sz := "-" + rate := "-" + if v.Size > 0 && v.Count > 0 { + sz = humanize.IBytes(uint64(v.Size) / uint64(v.Count)) + rate = fmt.Sprintf("%s/m", humanize.IBytes(uint64(float64(v.Size)/dur.Minutes()))) + } if v.CallStatsCount > 0 { - rx = humanize.IBytes(uint64(v.CallStats.Rx / v.CallStatsCount)) - tx = humanize.IBytes(uint64(v.CallStats.Tx / v.CallStatsCount)) + var s, r []string + if v.CallStats.Rx > 0 { + s = append(s, fmt.Sprintf("â %s", humanize.IBytes(uint64(v.CallStats.Rx/v.CallStatsCount)))) + r = append(r, fmt.Sprintf("â %s", humanize.IBytes(uint64(float64(v.CallStats.Rx)/dur.Minutes())))) + } + if v.CallStats.Tx > 0 { + s = append(s, fmt.Sprintf("â %s", humanize.IBytes(uint64(v.CallStats.Tx/v.CallStatsCount)))) + r = append(r, fmt.Sprintf("â %s", humanize.IBytes(uint64(float64(v.CallStats.Tx)/dur.Minutes())))) + } + if len(s) > 0 { + sz = strings.Join(s, " ") + rate = strings.Join(r, " ") + "/m" + } + } + if sz != "-" { + sz = console.Colorize("metrics-size", sz) + rate = console.Colorize("metrics-size", rate) } - table.Append([]string{ + + t := []string{ console.Colorize("metrics-title", metricsTitle(v.Name)), console.Colorize("metrics-number", fmt.Sprintf("%d ", v.Count)) + console.Colorize("metrics-number-secondary", fmt.Sprintf("(%0.1f%%)", float64(v.Count)/float64(totalCnt)*100)), @@ -1135,13 +1177,28 @@ console.Colorize(avgColor, fmt.Sprintf("%v", avg.Round(time.Microsecond))), console.Colorize(minColor, v.MinDur), console.Colorize(maxColor, v.MaxDur), - console.Colorize(avgColor, fmt.Sprintf("%v", avgTTFB.Round(time.Microsecond))), - console.Colorize(maxColor, v.MaxTTFB), - errs, - rx, - tx, - }) + } + if hasTTFB { + t = append(t, + console.Colorize(avgColor, fmt.Sprintf("%v", avgTTFB.Round(time.Microsecond))), + console.Colorize(maxColor, v.MaxTTFB)) + } + t = append(t, sz, + rate, + errs) + table.Append(t) } table.Render() - return s.String() + if globalTermWidth <= 10 { + return s.String() + } + w := globalTermWidth + if nw, _, e := term.GetSize(int(os.Stdout.Fd())); e == nil { + w = nw + } + split := strings.Split(s.String(), "\n") + for i, line := range split { + split[i] = truncate.StringWithTail(line, uint(w), "»") + } + return strings.Join(split, "\n") } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240601T150335Z/cmd/main.go new/mc-20240605T181330Z/cmd/main.go --- old/mc-20240601T150335Z/cmd/main.go 2024-06-01 17:03:35.000000000 +0200 +++ new/mc-20240605T181330Z/cmd/main.go 2024-06-05 20:13:30.000000000 +0200 @@ -117,7 +117,7 @@ // Fetch terminal size, if not available, automatically // set globalQuiet to true on non-window. - if w, h, e := term.GetSize(int(os.Stdin.Fd())); e != nil { + if w, h, e := term.GetSize(int(os.Stdout.Fd())); e != nil { globalQuiet = runtime.GOOS != "windows" } else { globalTermWidth, globalTermHeight = w, h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240601T150335Z/go.mod new/mc-20240605T181330Z/go.mod --- old/mc-20240601T150335Z/go.mod 2024-06-01 17:03:35.000000000 +0200 +++ new/mc-20240605T181330Z/go.mod 2024-06-05 20:13:30.000000000 +0200 @@ -41,7 +41,7 @@ github.com/charmbracelet/lipgloss v0.10.0 github.com/golang-jwt/jwt/v4 v4.5.0 github.com/juju/ratelimit v1.0.2 - github.com/minio/madmin-go/v3 v3.0.51 + github.com/minio/madmin-go/v3 v3.0.55-0.20240603092915-420a67132c32 github.com/minio/pkg/v3 v3.0.0 github.com/minio/selfupdate v0.6.0 github.com/muesli/reflow v0.3.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mc-20240601T150335Z/go.sum new/mc-20240605T181330Z/go.sum --- old/mc-20240601T150335Z/go.sum 2024-06-01 17:03:35.000000000 +0200 +++ new/mc-20240605T181330Z/go.sum 2024-06-05 20:13:30.000000000 +0200 @@ -130,8 +130,8 @@ github.com/minio/colorjson v1.0.7/go.mod h1:9LGM5yybI+GuhSbuzAerbSgvFb4j8ux9NzyONR+NrAY= github.com/minio/filepath v1.0.0 h1:fvkJu1+6X+ECRA6G3+JJETj4QeAYO9sV43I79H8ubDY= github.com/minio/filepath v1.0.0/go.mod h1:/nRZA2ldl5z6jT9/KQuvZcQlxZIMQoFFQPvEXx9T/Bw= -github.com/minio/madmin-go/v3 v3.0.51 h1:brGOvDP8KvoHb/bdzCHUPFCbTtrN8o507uPHZpyuinM= -github.com/minio/madmin-go/v3 v3.0.51/go.mod h1:IFAwr0XMrdsLovxAdCcuq/eoL4nRuMVQQv0iubJANQw= +github.com/minio/madmin-go/v3 v3.0.55-0.20240603092915-420a67132c32 h1:9se7/S4AlN2k/B1E7A8m1m07DM3p0JnIOzVhDuAV2PI= +github.com/minio/madmin-go/v3 v3.0.55-0.20240603092915-420a67132c32/go.mod h1:IFAwr0XMrdsLovxAdCcuq/eoL4nRuMVQQv0iubJANQw= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.70 h1:1u9NtMgfK1U42kUxcsl5v0yj6TEOPR497OAQxpJnn2g= ++++++ mc.obsinfo ++++++ --- /var/tmp/diff_new_pack.NS5ikG/_old 2024-06-09 20:24:06.885925563 +0200 +++ /var/tmp/diff_new_pack.NS5ikG/_new 2024-06-09 20:24:06.885925563 +0200 @@ -1,5 +1,5 @@ name: mc -version: 20240601T150335Z -mtime: 1717254215 -commit: 3cfa8642fdab18e3c1599360be26167e377063cf +version: 20240605T181330Z +mtime: 1717611210 +commit: 17adf0abbbca8a1d3153932a9b467a19c8371cc4 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/minio-client/vendor.tar.gz /work/SRC/openSUSE:Factory/.minio-client.new.19518/vendor.tar.gz differ: char 5, line 1