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 2022-05-16 18:08:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/minio-client (Old)
 and      /work/SRC/openSUSE:Factory/.minio-client.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "minio-client"

Mon May 16 18:08:54 2022 rev:7 rq:977517 version:20220509T040826Z

Changes:
--------
--- /work/SRC/openSUSE:Factory/minio-client/minio-client.changes        
2022-05-06 18:59:56.965396573 +0200
+++ /work/SRC/openSUSE:Factory/.minio-client.new.1538/minio-client.changes      
2022-05-16 18:11:24.349415989 +0200
@@ -1,0 +2,12 @@
+Sat May 14 18:38:17 UTC 2022 - ka...@b1-systems.de
+
+- Update to version 20220509T040826Z:
+  * Prefix version suspension (#4064)
+  * doc: Fix broken link (#4072)
+  * avoid cascading deletes for active-active setups (#4079)
+  * Fix example for `mc admin replicate edit` (#4080)
+  * Add admin prometheus metrics (#4049)
+  * Use latest version of madmin-go (1.3.13) (#4075)
+  * Add support for minio warm tier (#4009)
+
+-------------------------------------------------------------------

Old:
----
  mc-20220504T060755Z.tar.gz

New:
----
  mc-20220509T040826Z.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ minio-client.spec ++++++
--- /var/tmp/diff_new_pack.8XWhU6/_old  2022-05-16 18:11:25.121416602 +0200
+++ /var/tmp/diff_new_pack.8XWhU6/_new  2022-05-16 18:11:25.125416606 +0200
@@ -22,7 +22,7 @@
 %define binary_name minio-client
 
 Name:           minio-client
-Version:        20220504T060755Z
+Version:        20220509T040826Z
 Release:        0
 Summary:        Client for MinIO
 License:        AGPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.8XWhU6/_old  2022-05-16 18:11:25.161416634 +0200
+++ /var/tmp/diff_new_pack.8XWhU6/_new  2022-05-16 18:11:25.165416637 +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.2022-05-04T06-07-55Z</param>
+    <param name="revision">RELEASE.2022-05-09T04-08-26Z</param>
     <param name="match-tag">RELEASE.*</param>
     <param 
name="versionrewrite-pattern">RELEASE\.(.*)-(.*)-(.*)-(.*)-(.*)</param>
     <param name="versionrewrite-replacement">\1\2\3\4\5</param>
@@ -21,7 +21,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">mc-20220504T060755Z.tar.gz</param>
+    <param name="archive">mc-20220509T040826Z.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.8XWhU6/_old  2022-05-16 18:11:25.189416656 +0200
+++ /var/tmp/diff_new_pack.8XWhU6/_new  2022-05-16 18:11:25.193416659 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/minio/mc</param>
-              <param 
name="changesrevision">5619a78ead66ba651bcbc36df61ef892e470b8ea</param></service></servicedata>
+              <param 
name="changesrevision">b5a0640899f8f8653bcacd19791c92ca22066ba3</param></service></servicedata>
 (No newline at EOF)
 

++++++ mc-20220504T060755Z.tar.gz -> mc-20220509T040826Z.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/README.md 
new/mc-20220509T040826Z/README.md
--- old/mc-20220504T060755Z/README.md   2022-04-29 16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/README.md   2022-05-09 03:15:17.000000000 +0200
@@ -59,7 +59,7 @@
 then use the [`mc alias` command](#add-a-cloud-storage-service).
 
 ### GitLab CI
-When using the Docker container in GitLab CI, you must [set the entrypoint to 
an empty 
string](https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#overriding-the-entrypoint-of-an-image).
+When using the Docker container in GitLab CI, you must [set the entrypoint to 
an empty 
string](https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image).
 
 ```
 deploy:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/admin-prometheus-generate.go 
new/mc-20220509T040826Z/cmd/admin-prometheus-generate.go
--- old/mc-20220504T060755Z/cmd/admin-prometheus-generate.go    2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/admin-prometheus-generate.go    2022-05-09 
03:15:17.000000000 +0200
@@ -27,7 +27,6 @@
        "github.com/minio/mc/pkg/probe"
        "github.com/minio/pkg/console"
 
-       jwtgo "github.com/golang-jwt/jwt/v4"
        json "github.com/minio/colorjson"
        yaml "gopkg.in/yaml.v2"
 )
@@ -165,17 +164,10 @@
        }
 
        if !ctx.Bool("public") {
-               jwt := jwtgo.NewWithClaims(jwtgo.SigningMethodHS512, 
jwtgo.StandardClaims{
-                       ExpiresAt: 
UTCNow().Add(defaultPrometheusJWTExpiry).Unix(),
-                       Subject:   hostConfig.AccessKey,
-                       Issuer:    "prometheus",
-               })
-
-               token, e := jwt.SignedString([]byte(hostConfig.SecretKey))
+               token, e := getPrometheusToken(hostConfig)
                if e != nil {
                        return e
                }
-
                // Setting the values
                defaultConfig.ScrapeConfigs[0].BearerToken = token
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/admin-prometheus-metrics.go 
new/mc-20220509T040826Z/cmd/admin-prometheus-metrics.go
--- old/mc-20220504T060755Z/cmd/admin-prometheus-metrics.go     1970-01-01 
01:00:00.000000000 +0100
+++ new/mc-20220509T040826Z/cmd/admin-prometheus-metrics.go     2022-05-09 
03:15:17.000000000 +0200
@@ -0,0 +1,140 @@
+// Copyright (c) 2015-2022 MinIO, Inc.
+//
+// This file is part of MinIO Object Storage stack
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package cmd
+
+import (
+       "io"
+       "io/ioutil"
+       "net/http"
+       "time"
+
+       "github.com/minio/cli"
+       json "github.com/minio/colorjson"
+       "github.com/minio/mc/pkg/probe"
+       dto "github.com/prometheus/client_model/go"
+       prom2json "github.com/prometheus/prom2json"
+)
+
+var adminPrometheusMetricsCmd = cli.Command{
+       Name:         "metrics",
+       Usage:        "print cluster wide prometheus metrics",
+       OnUsageError: onUsageError,
+       Action:       mainSupportMetrics,
+       Before:       setGlobalsFromContext,
+       Flags:        globalFlags,
+       CustomHelpTemplate: `NAME:
+  {{.HelpName}} - {{.Usage}}
+USAGE:
+  {{.HelpName}} TARGET
+FLAGS:
+  {{range .VisibleFlags}}{{.}}
+  {{end}}
+EXAMPLES:
+  1. List of metrics reported cluster wide.
+     {{.Prompt}} {{.HelpName}} play
+`,
+}
+
+const (
+       metricsRespBodyLimit = 10 << 20 // 10 MiB
+       metricsEndPoint      = "/minio/v2/metrics/cluster"
+)
+
+// checkSupportMetricsSyntax - validate arguments passed by a user
+func checkSupportMetricsSyntax(ctx *cli.Context) {
+       if len(ctx.Args()) == 0 || len(ctx.Args()) > 1 {
+               cli.ShowCommandHelpAndExit(ctx, "metrics", 1) // last argument 
is exit code
+       }
+}
+
+func printPrometheusMetrics(ctx *cli.Context) error {
+       // Get the alias parameter from cli
+       args := ctx.Args()
+       alias := cleanAlias(args.Get(0))
+
+       if !isValidAlias(alias) {
+               fatalIf(errInvalidAlias(alias), "Invalid alias.")
+       }
+       hostConfig := mustGetHostConfig(alias)
+       if hostConfig == nil {
+               fatalIf(errInvalidAliasedURL(alias), "No such alias `"+alias+"` 
found.")
+               return nil
+       }
+
+       token, e := getPrometheusToken(hostConfig)
+       if e != nil {
+               return e
+       }
+
+       req, e := http.NewRequest(http.MethodGet, 
hostConfig.URL+metricsEndPoint, nil)
+       if e != nil {
+               return e
+       }
+       req.Header.Add("Authorization", "Bearer "+token)
+       client := httpClient(10 * time.Second)
+       resp, e := client.Do(req)
+       if e != nil {
+               return e
+       }
+
+       defer resp.Body.Close()
+
+       if resp.StatusCode == http.StatusOK {
+               printMsg(prometheusMetricsReader{Reader: 
io.LimitReader(resp.Body, metricsRespBodyLimit)})
+       }
+       return nil
+}
+
+// JSON returns jsonified message
+func (pm prometheusMetricsReader) JSON() string {
+       mfChan := make(chan *dto.MetricFamily)
+       go func() {
+               if err := prom2json.ParseReader(pm.Reader, mfChan); err != nil {
+                       fatalIf(probe.NewError(err), "error reading metrics:")
+               }
+       }()
+       result := []*prom2json.Family{}
+       for mf := range mfChan {
+               result = append(result, prom2json.NewFamily(mf))
+       }
+       jsonMessageBytes, e := json.MarshalIndent(result, "", " ")
+       fatalIf(probe.NewError(e), "Unable to marshal into JSON.")
+       return string(jsonMessageBytes)
+}
+
+// String - returns the string representation of the prometheus metrics
+func (pm prometheusMetricsReader) String() string {
+       respBytes, e := ioutil.ReadAll(pm.Reader)
+       if e != nil {
+               fatalIf(probe.NewError(e), "error reading metrics:")
+       }
+       return string(respBytes)
+}
+
+// prometheusMetricsReader mirrors the MetricFamily proto message.
+type prometheusMetricsReader struct {
+       Reader io.Reader
+}
+
+func mainSupportMetrics(ctx *cli.Context) error {
+       checkSupportMetricsSyntax(ctx)
+       if err := printPrometheusMetrics(ctx); err != nil {
+               fatalIf(probe.NewError(err), "Error in listing prometheus 
metrics")
+       }
+       return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/admin-prometheus.go 
new/mc-20220509T040826Z/cmd/admin-prometheus.go
--- old/mc-20220504T060755Z/cmd/admin-prometheus.go     2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/admin-prometheus.go     2022-05-09 
03:15:17.000000000 +0200
@@ -21,6 +21,7 @@
 
 var adminPrometheusSubcommands = []cli.Command{
        adminPrometheusGenerateCmd,
+       adminPrometheusMetricsCmd,
 }
 
 var adminPrometheusCmd = cli.Command{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/admin-replicate-edit.go 
new/mc-20220509T040826Z/cmd/admin-replicate-edit.go
--- old/mc-20220504T060755Z/cmd/admin-replicate-edit.go 2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/admin-replicate-edit.go 2022-05-09 
03:15:17.000000000 +0200
@@ -59,7 +59,7 @@
 
 EXAMPLES:
   1. Edit a site endpoint participating in cluster-level replication:
-     {{.Prompt}} {{.HelpName}} --deployment-id 
c1758167-4426-454f-9aae-5c3dfdf6df64 --endpoint https://minio2:9000
+     {{.Prompt}} {{.HelpName}} myminio --deployment-id 
c1758167-4426-454f-9aae-5c3dfdf6df64 --endpoint https://minio2:9000
 `,
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/admin-tier-add.go 
new/mc-20220509T040826Z/cmd/admin-tier-add.go
--- old/mc-20220504T060755Z/cmd/admin-tier-add.go       2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/admin-tier-add.go       2022-05-09 
03:15:17.000000000 +0200
@@ -101,7 +101,7 @@
   {{.HelpName}} TYPE ALIAS NAME [FLAGS]
 
 TYPE:
-  Transition objects to supported cloud storage backend tier. Supported values 
are s3, azure and gcs.
+  Transition objects to supported cloud storage backend tier. Supported values 
are minio, s3, azure and gcs.
 
 NAME:
   Name of the remote tier target. e.g WARM-TIER
@@ -110,23 +110,22 @@
   {{range .VisibleFlags}}{{.}}
   {{end}}
 EXAMPLES:
-  1. Configure a new remote tier which transitions objects to a bucket in 
Azure Blob Storage:
+  1. Configure a new remote tier which transitions objects to a bucket in AWS 
S3 with STANDARD storage class:
+     {{.Prompt}} {{.HelpName}} minio myminio WARM-MINIO-TIER --endpoint 
https://warm-minio.com \
+        --access-key ACCESSKEY --secret-key SECRETKEY --bucket mybucket 
--prefix myprefix/
+
+  2. Configure a new remote tier which transitions objects to a bucket in 
Azure Blob Storage:
      {{.Prompt}} {{.HelpName}} azure myminio AZTIER --account-name 
ACCOUNT-NAME --account-key ACCOUNT-KEY \
         --bucket myazurebucket --prefix myazureprefix/
 
-  2. Configure a new remote tier which transitions objects to a bucket in AWS 
S3 with STANDARD storage class:
+  3. Configure a new remote tier which transitions objects to a bucket in AWS 
S3 with STANDARD storage class:
      {{.Prompt}} {{.HelpName}} s3 myminio S3TIER --endpoint 
https://s3.amazonaws.com \
         --access-key ACCESSKEY --secret-key SECRETKEY --bucket mys3bucket 
--prefix mys3prefix/ \
         --storage-class "STANDARD" --region us-west-2
 
-  3. Configure a new remote tier which transitions objects to a bucket in 
Google Cloud Storage:
+  4. Configure a new remote tier which transitions objects to a bucket in 
Google Cloud Storage:
      {{.Prompt}} {{.HelpName}} gcs myminio GCSTIER --credentials-file 
/path/to/credentials.json \
         --bucket mygcsbucket  --prefix mygcsprefix/
-
-  4. Configure a new remote tier which transitions objects to a bucket in AWS 
S3 with STANDARD storage class using aws role:
-     {{.Prompt}} {{.HelpName}} s3 myminio S3TIER --endpoint 
https://s3.amazonaws.com \
-        --use-aws-role --bucket mys3bucket --prefix mys3prefix/ 
--storage-class "STANDARD" \
-        --region us-east-2
 `,
 }
 
@@ -152,6 +151,40 @@
 // the flags contain invalid values.
 func fetchTierConfig(ctx *cli.Context, tierName string, tierType 
madmin.TierType) *madmin.TierConfig {
        switch tierType {
+       case madmin.MinIO:
+               accessKey := ctx.String("access-key")
+               secretKey := ctx.String("secret-key")
+               if accessKey == "" || secretKey == "" {
+                       fatalIf(errInvalidArgument().Trace(), fmt.Sprintf("%s 
remote tier requires access credentials", tierType))
+               }
+               bucket := ctx.String("bucket")
+               if bucket == "" {
+                       fatalIf(errInvalidArgument().Trace(), fmt.Sprintf("%s 
remote tier requires target bucket", tierType))
+               }
+
+               endpoint := ctx.String("endpoint")
+               if endpoint == "" {
+                       fatalIf(errInvalidArgument().Trace(), fmt.Sprintf("%s 
remote tier requires target endpoint", tierType))
+               }
+
+               minioOpts := []madmin.MinIOOptions{}
+               prefix := ctx.String("prefix")
+               if prefix != "" {
+                       minioOpts = append(minioOpts, 
madmin.MinIOPrefix(prefix))
+               }
+
+               region := ctx.String("region")
+               if region != "" {
+                       minioOpts = append(minioOpts, 
madmin.MinIORegion(region))
+               }
+
+               minioCfg, err := madmin.NewTierMinIO(tierName, endpoint, 
accessKey, secretKey, bucket, minioOpts...)
+               if err != nil {
+                       fatalIf(probe.NewError(err), "Invalid configuration for 
MinIO tier")
+               }
+
+               return minioCfg
+
        case madmin.S3:
                accessKey := ctx.String("access-key")
                secretKey := ctx.String("secret-key")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/auto-complete.go 
new/mc-20220509T040826Z/cmd/auto-complete.go
--- old/mc-20220504T060755Z/cmd/auto-complete.go        2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/auto-complete.go        2022-05-09 
03:15:17.000000000 +0200
@@ -334,6 +334,7 @@
        "/admin/service/restart": aliasCompleter,
 
        "/admin/prometheus/generate": aliasCompleter,
+       "/admin/prometheus/metrics":  aliasCompleter,
 
        "/admin/profile/start": aliasCompleter,
        "/admin/profile/stop":  aliasCompleter,
@@ -410,6 +411,7 @@
        "/support/profile/stop":  aliasCompleter,
        "/support/inspect":       aliasCompleter,
        "/support/perf":          aliasCompleter,
+       "/support/metrics":       aliasCompleter,
 
        "/update": nil,
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/client-fs.go 
new/mc-20220509T040826Z/cmd/client-fs.go
--- old/mc-20220504T060755Z/cmd/client-fs.go    2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/client-fs.go    2022-05-09 03:15:17.000000000 
+0200
@@ -1195,7 +1195,7 @@
 }
 
 // SetVersion - Set version configuration on a bucket, not implemented
-func (f *fsClient) SetVersion(ctx context.Context, status string) *probe.Error 
{
+func (f *fsClient) SetVersion(ctx context.Context, status string, _ []string, 
_ bool) *probe.Error {
        return probe.NewError(APINotImplemented{
                API:     "SetVersion",
                APIType: "filesystem",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/client-s3.go 
new/mc-20220509T040826Z/cmd/client-s3.go
--- old/mc-20220504T060755Z/cmd/client-s3.go    2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/client-s3.go    2022-05-09 03:15:17.000000000 
+0200
@@ -2526,7 +2526,7 @@
 }
 
 // SetVersion - Set version configuration on a bucket
-func (c *S3Client) SetVersion(ctx context.Context, status string) *probe.Error 
{
+func (c *S3Client) SetVersion(ctx context.Context, status string, prefixes 
[]string, excludeFolders bool) *probe.Error {
        bucket, _ := c.url2BucketAndObject()
        if bucket == "" {
                return probe.NewError(BucketNameEmpty{})
@@ -2534,7 +2534,23 @@
        var err error
        switch status {
        case "enable":
-               err = c.api.EnableVersioning(ctx, bucket)
+
+               if len(prefixes) > 0 || excludeFolders {
+                       vc := minio.BucketVersioningConfiguration{
+                               Status:         minio.Enabled,
+                               ExcludeFolders: excludeFolders,
+                       }
+                       if len(prefixes) > 0 {
+                               eprefixes := make([]minio.ExcludedPrefix, 0, 
len(prefixes))
+                               for _, prefix := range prefixes {
+                                       eprefixes = append(eprefixes, 
minio.ExcludedPrefix{Prefix: prefix})
+                               }
+                               vc.ExcludedPrefixes = eprefixes
+                       }
+                       err = c.api.SetBucketVersioning(ctx, bucket, vc)
+               } else {
+                       err = c.api.EnableVersioning(ctx, bucket)
+               }
        case "suspend":
                err = c.api.SuspendVersioning(ctx, bucket)
        default:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/client.go 
new/mc-20220509T040826Z/cmd/client.go
--- old/mc-20220504T060755Z/cmd/client.go       2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/client.go       2022-05-09 03:15:17.000000000 
+0200
@@ -154,7 +154,7 @@
 
        // Versioning operations
        GetVersion(ctx context.Context) (minio.BucketVersioningConfiguration, 
*probe.Error)
-       SetVersion(ctx context.Context, status string) *probe.Error
+       SetVersion(ctx context.Context, status string, prefixes []string, 
excludeFolders bool) *probe.Error
        // Replication operations
        GetReplication(ctx context.Context) (replication.Config, *probe.Error)
        SetReplication(ctx context.Context, cfg *replication.Config, opts 
replication.Options) *probe.Error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/common-methods.go 
new/mc-20220509T040826Z/cmd/common-methods.go
--- old/mc-20220504T060755Z/cmd/common-methods.go       2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/common-methods.go       2022-05-09 
03:15:17.000000000 +0200
@@ -146,7 +146,8 @@
 
 // getSourceStreamMetadataFromURL gets a reader from URL.
 func getSourceStreamMetadataFromURL(ctx context.Context, aliasedURL, versionID 
string, timeRef time.Time, encKeyDB map[string][]prefixSSEPair) (reader 
io.ReadCloser,
-       metadata map[string]string, err *probe.Error) {
+       metadata map[string]string, err *probe.Error,
+) {
        alias, urlStrFull, _, err := expandAlias(aliasedURL)
        if err != nil {
                return nil, nil, err.Trace(aliasedURL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/ilm/tabular_info.go 
new/mc-20220509T040826Z/cmd/ilm/tabular_info.go
--- old/mc-20220504T060755Z/cmd/ilm/tabular_info.go     2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/ilm/tabular_info.go     2022-05-09 
03:15:17.000000000 +0200
@@ -155,7 +155,8 @@
 // Multiple rows are required for display of data with tags.
 // Each 'key:value' pair is shown in 1 row and the rest of it is cells 
populated with blanks.
 func checkAddTableCellRows(rowArr *[]string, rowCheck map[string]int, showOpts 
showDetails,
-       cellInfo tableCellInfo, ruleID string, newRows map[string][]string) {
+       cellInfo tableCellInfo, ruleID string, newRows map[string][]string,
+) {
        var cellLabel string
        multLth := len(cellInfo.multLabels)
        if cellInfo.label != "" || multLth == 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/mirror-main.go 
new/mc-20220509T040826Z/cmd/mirror-main.go
--- old/mc-20220504T060755Z/cmd/mirror-main.go  2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/mirror-main.go  2022-05-09 03:15:17.000000000 
+0200
@@ -339,7 +339,11 @@
        if pErr != nil {
                return sURLs.WithError(pErr)
        }
-       clnt.AddUserAgent(uaMirrorAppName, ReleaseTag)
+       if sURLs.SourceAlias != "" {
+               clnt.AddUserAgent(uaMirrorAppName+":"+sURLs.SourceAlias, 
ReleaseTag)
+       } else {
+               clnt.AddUserAgent(uaMirrorAppName, ReleaseTag)
+       }
        contentCh := make(chan *ClientContent, 1)
        contentCh <- &ClientContent{URL: 
*newClientURL(sURLs.TargetContent.URL.Path)}
        close(contentCh)
@@ -607,7 +611,8 @@
                                return mj.doMirrorWatch(ctx, targetPath, 
tgtSSE, mirrorURL)
                        }, mirrorURL.SourceContent.Size)
                } else if event.Type == notification.ObjectRemovedDelete {
-                       if strings.Contains(event.UserAgent, uaMirrorAppName) {
+                       if targetAlias != "" && 
strings.Contains(event.UserAgent, uaMirrorAppName+":"+targetAlias) {
+                               // Ignore delete cascading delete events if 
cyclical.
                                continue
                        }
                        mirrorURL := URLs{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/retention-common.go 
new/mc-20220509T040826Z/cmd/retention-common.go
--- old/mc-20220504T060755Z/cmd/retention-common.go     2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/retention-common.go     2022-05-09 
03:15:17.000000000 +0200
@@ -180,7 +180,8 @@
 
 // Apply Retention for one object/version or many objects within a given 
prefix.
 func applyRetention(ctx context.Context, op lockOpType, target, versionID 
string, timeRef time.Time, withOlderVersions, isRecursive bool,
-       mode minio.RetentionMode, validity uint64, unit minio.ValidityUnit, 
bypassGovernance bool) error {
+       mode minio.RetentionMode, validity uint64, unit minio.ValidityUnit, 
bypassGovernance bool,
+) error {
        clnt, err := newClient(target)
        if err != nil {
                fatalIf(err.Trace(), "Unable to parse the provided url.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/retention-set.go 
new/mc-20220509T040826Z/cmd/retention-set.go
--- old/mc-20220504T060755Z/cmd/retention-set.go        2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/retention-set.go        2022-05-09 
03:15:17.000000000 +0200
@@ -129,7 +129,8 @@
 
 // Set Retention for one object/version or many objects within a given prefix.
 func setRetention(ctx context.Context, target, versionID string, timeRef 
time.Time, withOlderVersions, isRecursive bool,
-       mode minio.RetentionMode, validity uint64, unit minio.ValidityUnit, 
bypassGovernance bool) error {
+       mode minio.RetentionMode, validity uint64, unit minio.ValidityUnit, 
bypassGovernance bool,
+) error {
        return applyRetention(ctx, lockOpSet, target, versionID, timeRef, 
withOlderVersions, isRecursive, mode, validity, unit, bypassGovernance)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/subnet-utils.go 
new/mc-20220509T040826Z/cmd/subnet-utils.go
--- old/mc-20220504T060755Z/cmd/subnet-utils.go 2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/subnet-utils.go 2022-05-09 03:15:17.000000000 
+0200
@@ -147,7 +147,7 @@
        return map[string]string{"Authorization": "Bearer " + authToken}
 }
 
-func httpDo(req *http.Request) (*http.Response, error) {
+func subnetHTTPDo(req *http.Request) (*http.Response, error) {
        client := httpClient(10 * time.Second)
        if globalSubnetProxyURL != nil {
                client.Transport.(*http.Transport).Proxy = 
http.ProxyURL(globalSubnetProxyURL)
@@ -165,7 +165,7 @@
                r.Header.Add("Content-Type", "application/json")
        }
 
-       resp, e := httpDo(r)
+       resp, e := subnetHTTPDo(r)
        if e != nil {
                return "", e
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/utils.go 
new/mc-20220509T040826Z/cmd/utils.go
--- old/mc-20220504T060755Z/cmd/utils.go        2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/utils.go        2022-05-09 03:15:17.000000000 
+0200
@@ -40,6 +40,7 @@
        "github.com/minio/minio-go/v7/pkg/encrypt"
        "maze.io/x/duration"
 
+       jwtgo "github.com/golang-jwt/jwt/v4"
        "github.com/minio/mc/pkg/probe"
        "github.com/minio/pkg/console"
 )
@@ -449,3 +450,17 @@
                },
        }
 }
+
+func getPrometheusToken(hostConfig *aliasConfigV10) (string, error) {
+       jwt := jwtgo.NewWithClaims(jwtgo.SigningMethodHS512, 
jwtgo.StandardClaims{
+               ExpiresAt: UTCNow().Add(defaultPrometheusJWTExpiry).Unix(),
+               Subject:   hostConfig.AccessKey,
+               Issuer:    "prometheus",
+       })
+
+       token, e := jwt.SignedString([]byte(hostConfig.SecretKey))
+       if e != nil {
+               return "", e
+       }
+       return token, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/version-enable.go 
new/mc-20220509T040826Z/cmd/version-enable.go
--- old/mc-20220504T060755Z/cmd/version-enable.go       2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/version-enable.go       2022-05-09 
03:15:17.000000000 +0200
@@ -20,6 +20,7 @@
 import (
        "context"
        "fmt"
+       "strings"
 
        "github.com/fatih/color"
        "github.com/minio/cli"
@@ -28,13 +29,24 @@
        "github.com/minio/pkg/console"
 )
 
+var versionEnableFlags = []cli.Flag{
+       cli.StringFlag{
+               Name:  "excluded-prefixes",
+               Usage: "exclude versioning on these prefix patterns",
+       },
+       cli.BoolFlag{
+               Name:  "exclude-folders",
+               Usage: "exclude versioning on folder objects",
+       },
+}
+
 var versionEnableCmd = cli.Command{
        Name:         "enable",
        Usage:        "enable bucket versioning",
        Action:       mainVersionEnable,
        OnUsageError: onUsageError,
        Before:       setGlobalsFromContext,
-       Flags:        globalFlags,
+       Flags:        append(globalFlags, versionEnableFlags...),
        CustomHelpTemplate: `NAME:
   {{.HelpName}} - {{.Usage}}
 
@@ -47,6 +59,13 @@
 EXAMPLES:
   1. Enable versioning on bucket "mybucket" for alias "myminio".
      {{.Prompt}} {{.HelpName}} myminio/mybucket
+
+  2. Enable versioning on bucket "mybucket" while excluding versioning on a 
few select prefixes.
+     {{.Prompt}} {{.HelpName}} myminio/mybucket --excluded-prefixes 
"app1/*/_temporary/,app2/*/_staging/"
+
+  3. Enable versioning on bucket "mybucket" while excluding versioning on a 
few select prefixes and all folders.
+     Note: this is useful on buckets used with Spark/Hadoop workloads.
+     {{.Prompt}} {{.HelpName}} myminio/mybucket --excluded-prefixes 
"app1/*/_temporary/,app2/*/_staging/" --exclude-folders
 `,
 }
 
@@ -62,8 +81,10 @@
        Status     string `json:"status"`
        URL        string `json:"url"`
        Versioning struct {
-               Status    string `json:"status"`
-               MFADelete string `json:"MFADelete"`
+               Status           string   `json:"status"`
+               MFADelete        string   `json:"MFADelete"`
+               ExcludedPrefixes []string `json:"ExcludedPrefixes,omitempty"`
+               ExcludeFolders   bool     `json:"ExcludeFolders,,omitempty"`
        } `json:"versioning"`
 }
 
@@ -89,10 +110,18 @@
        // Get the alias parameter from cli
        args := cliCtx.Args()
        aliasedURL := args.Get(0)
+
+       var excludedPrefixes []string
+       prefixesStr := cliCtx.String("excluded-prefixes")
+       if prefixesStr != "" {
+               excludedPrefixes = strings.Split(prefixesStr, ",")
+       }
+       excludeFolders := cliCtx.Bool("exclude-folders")
+
        // Create a new Client
        client, err := newClient(aliasedURL)
        fatalIf(err, "Unable to initialize connection.")
-       fatalIf(client.SetVersion(ctx, "enable"), "Unable to enable versioning")
+       fatalIf(client.SetVersion(ctx, "enable", excludedPrefixes, 
excludeFolders), "Unable to enable versioning")
        printMsg(versionEnableMessage{
                Op:     "enable",
                Status: "success",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/version-info.go 
new/mc-20220509T040826Z/cmd/version-info.go
--- old/mc-20220504T060755Z/cmd/version-info.go 2022-04-29 16:42:08.000000000 
+0200
+++ new/mc-20220509T040826Z/cmd/version-info.go 2022-05-09 03:15:17.000000000 
+0200
@@ -63,8 +63,10 @@
        Status     string `json:"status"`
        URL        string `json:"url"`
        Versioning struct {
-               Status    string `json:"status"`
-               MFADelete string `json:"MFADelete"`
+               Status           string   `json:"status"`
+               MFADelete        string   `json:"MFADelete"`
+               ExcludedPrefixes []string `json:"ExcludedPrefixes,omitempty"`
+               ExcludeFolders   bool     `json:"ExcludeFolders,omitempty"`
        } `json:"versioning"`
 }
 
@@ -109,6 +111,15 @@
        }
        vMsg.Versioning.Status = vConfig.Status
        vMsg.Versioning.MFADelete = vConfig.MFADelete
+       vMsg.Versioning.ExcludeFolders = vConfig.ExcludeFolders
+       if len(vConfig.ExcludedPrefixes) > 0 {
+               prefixes := make([]string, 0, len(vConfig.ExcludedPrefixes))
+               for _, eprefix := range vConfig.ExcludedPrefixes {
+                       prefixes = append(prefixes, eprefix.Prefix)
+               }
+               vMsg.Versioning.ExcludedPrefixes = prefixes
+       }
+
        printMsg(vMsg)
        return nil
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/cmd/version-suspend.go 
new/mc-20220509T040826Z/cmd/version-suspend.go
--- old/mc-20220504T060755Z/cmd/version-suspend.go      2022-04-29 
16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/cmd/version-suspend.go      2022-05-09 
03:15:17.000000000 +0200
@@ -89,10 +89,11 @@
        // Get the alias parameter from cli
        args := cliCtx.Args()
        aliasedURL := args.Get(0)
+
        // Create a new Client
        client, err := newClient(aliasedURL)
        fatalIf(err, "Unable to initialize connection.")
-       fatalIf(client.SetVersion(ctx, "suspend"), "Unable to suspend 
versioning")
+       fatalIf(client.SetVersion(ctx, "suspend", nil, false), "Unable to 
suspend versioning")
        printMsg(versionSuspendMessage{
                Op:     "suspend",
                Status: "success",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/go.mod 
new/mc-20220509T040826Z/go.mod
--- old/mc-20220504T060755Z/go.mod      2022-04-29 16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/go.mod      2022-05-09 03:15:17.000000000 +0200
@@ -19,23 +19,24 @@
        github.com/minio/cli v1.22.0
        github.com/minio/colorjson v1.0.2
        github.com/minio/filepath v1.0.0
-       github.com/minio/madmin-go v1.3.12
+       github.com/minio/madmin-go v1.3.13
        github.com/minio/md5-simd v1.1.2 // indirect
-       github.com/minio/minio-go/v7 v7.0.24
+       github.com/minio/minio-go/v7 v7.0.26
        github.com/minio/pkg v1.1.22
        github.com/minio/selfupdate v0.4.0
        github.com/minio/sha256-simd v1.0.0
        github.com/mitchellh/go-homedir v1.1.0
        github.com/pkg/xattr v0.4.4
        github.com/posener/complete v1.2.3
-       github.com/prometheus/client_golang v1.11.0
+       github.com/prometheus/client_golang v1.12.1
+       github.com/prometheus/prom2json v1.3.1
        github.com/rjeczalik/notify v0.9.2
        github.com/rs/xid v1.3.0
        github.com/secure-io/sio-go v0.3.1
        github.com/shirou/gopsutil/v3 v3.21.12
        github.com/tidwall/gjson v1.12.1
-       golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f
-       golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
+       golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed
+       golang.org/x/net v0.0.0-20220225172249-27dd8689420f
        golang.org/x/text v0.3.7
        gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b
        gopkg.in/h2non/filetype.v1 v1.0.5
@@ -51,6 +52,7 @@
        github.com/golang-jwt/jwt/v4 v4.4.1
        github.com/navidys/tvxwidgets v0.1.0
        github.com/olekukonko/tablewriter v0.0.5
+       github.com/prometheus/client_model v0.2.0
        github.com/rivo/tview v0.0.0-20211202162923-2a6de950f73b
        github.com/tinylib/msgp v1.1.6
        golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
@@ -91,8 +93,7 @@
        github.com/philhofer/fwd v1.1.1 // indirect
        github.com/pkg/errors v0.9.1 // indirect
        github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // 
indirect
-       github.com/prometheus/client_model v0.2.0 // indirect
-       github.com/prometheus/common v0.32.1 // indirect
+       github.com/prometheus/common v0.33.0 // indirect
        github.com/prometheus/procfs v0.7.3 // indirect
        github.com/rivo/uniseg v0.2.0 // indirect
        github.com/sirupsen/logrus v1.8.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mc-20220504T060755Z/go.sum 
new/mc-20220509T040826Z/go.sum
--- old/mc-20220504T060755Z/go.sum      2022-04-29 16:42:08.000000000 +0200
+++ new/mc-20220509T040826Z/go.sum      2022-05-09 03:15:17.000000000 +0200
@@ -135,9 +135,11 @@
 github.com/go-kit/kit v0.8.0/go.mod 
h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-kit/kit v0.9.0/go.mod 
h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-kit/log v0.1.0/go.mod 
h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
+github.com/go-kit/log v0.2.0/go.mod 
h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
 github.com/go-logfmt/logfmt v0.3.0/go.mod 
h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 github.com/go-logfmt/logfmt v0.4.0/go.mod 
h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-logfmt/logfmt v0.5.0/go.mod 
h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
+github.com/go-logfmt/logfmt v0.5.1/go.mod 
h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
 github.com/go-ole/go-ole v1.2.4/go.mod 
h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
 github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
 github.com/go-ole/go-ole v1.2.6/go.mod 
h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
@@ -341,14 +343,14 @@
 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 v1.3.5/go.mod 
h1:vGKGboQgGIWx4DuDUaXixjlIEZOCIp6ivJkQoiVaACc=
-github.com/minio/madmin-go v1.3.12 
h1:7SmK/KtT7+d3hn3VcYBqI/c4yETfXV9gRT1j+g/U1jE=
-github.com/minio/madmin-go v1.3.12/go.mod 
h1:ez87VmMtsxP7DRxjKJKD4RDNW+nhO2QF9KSzwxBDQ98=
+github.com/minio/madmin-go v1.3.13 
h1:157u3bFK9qh2EkkqjpJ/bwOw/5KonXUWqhKP3ZczAdY=
+github.com/minio/madmin-go v1.3.13/go.mod 
h1:ez87VmMtsxP7DRxjKJKD4RDNW+nhO2QF9KSzwxBDQ98=
 github.com/minio/md5-simd v1.1.0/go.mod 
h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
 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.23/go.mod 
h1:ei5JjmxwHaMrgsMrn4U/+Nmg+d8MKS1U2DAn1ou4+Do=
-github.com/minio/minio-go/v7 v7.0.24 
h1:HPlHiET6L5gIgrHRaw1xFo1OaN4bEP/082asWh3WJtI=
-github.com/minio/minio-go/v7 v7.0.24/go.mod 
h1:x81+AX5gHSfCSqw7jxRKHvxUXMlE5uKX0Vb75Xk5yYg=
+github.com/minio/minio-go/v7 v7.0.26 
h1:D0HK+8793etZfRY/vHhDmFaP+vmT41K3K4JV9vmZCBQ=
+github.com/minio/minio-go/v7 v7.0.26/go.mod 
h1:x81+AX5gHSfCSqw7jxRKHvxUXMlE5uKX0Vb75Xk5yYg=
 github.com/minio/pkg v1.1.20/go.mod 
h1:Xo7LQshlxGa9shKwJ7NzQbgW4s8T/Wc1cOStR/eUiMY=
 github.com/minio/pkg v1.1.22 h1:Fm3oPu9LJag0FhD5BjFxj0Ut+M8S8IkiPHaq5OAoZaM=
 github.com/minio/pkg v1.1.22/go.mod 
h1:z9PfmEI804KFkF6eY4LoGe8IDVvTCsYGVuaf58Dr0WI=
@@ -415,8 +417,9 @@
 github.com/prometheus/client_golang v0.9.1/go.mod 
h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 github.com/prometheus/client_golang v1.0.0/go.mod 
h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
 github.com/prometheus/client_golang v1.7.1/go.mod 
h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0 
h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ=
 github.com/prometheus/client_golang v1.11.0/go.mod 
h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
+github.com/prometheus/client_golang v1.12.1 
h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
+github.com/prometheus/client_golang v1.12.1/go.mod 
h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod 
h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -425,14 +428,17 @@
 github.com/prometheus/common v0.4.1/go.mod 
h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.10.0/go.mod 
h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 github.com/prometheus/common v0.26.0/go.mod 
h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 
h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
 github.com/prometheus/common v0.32.1/go.mod 
h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.33.0 
h1:rHgav/0a6+uYgGdNt3jwz8FNSesO/Hsang3O0T9A5SE=
+github.com/prometheus/common v0.33.0/go.mod 
h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod 
h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.2/go.mod 
h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.1.3/go.mod 
h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 github.com/prometheus/procfs v0.6.0/go.mod 
h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
 github.com/prometheus/procfs v0.7.3 
h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
 github.com/prometheus/procfs v0.7.3/go.mod 
h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/prom2json v1.3.1 
h1:OogL5hsrJpLPz3jZ4LPz4sJRTtADzViCNRQoqrzUQvk=
+github.com/prometheus/prom2json v1.3.1/go.mod 
h1:A8Oy9aiQx4wrJY9ya1i4nHOySGmkVp5EO0aU1iSJR+g=
 github.com/rivo/tview v0.0.0-20211202162923-2a6de950f73b 
h1:EMgbQ+bOHWkl0Ptano8M0yrzVZkxans+Vfv7ox/EtO8=
 github.com/rivo/tview v0.0.0-20211202162923-2a6de950f73b/go.mod 
h1:WIfMkQNY+oq/mWwtsjOYHIZBuwthioY2srOmljJkTnk=
 github.com/rivo/uniseg v0.1.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
@@ -546,8 +552,8 @@
 golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod 
h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f 
h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc=
-golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed 
h1:YoWVYYAfvQ4ddHv3OKmIvX7NCAhFGTj62VP2l2kfBbA=
+golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -625,8 +631,9 @@
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd 
h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=
 golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod 
h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f 
h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod 
h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -640,6 +647,7 @@
 golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod 
h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod 
h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -718,6 +726,8 @@
 golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220412211240-33da011f77ad 
h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
 golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod 
h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/minio-client/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.minio-client.new.1538/vendor.tar.gz differ: char 5, 
line 1

Reply via email to