diff --git a/cmd/batch-handlers.go b/cmd/batch-handlers.go index b8c7f789c..f65708b42 100644 --- a/cmd/batch-handlers.go +++ b/cmd/batch-handlers.go @@ -633,23 +633,24 @@ func (r *BatchJobReplicateV1) Start(ctx context.Context, api ObjectLayer, job Ba if err != nil { return err } + c.SetAppInfo("minio-"+batchJobPrefix, r.APIVersion+" "+job.ID) workerSize, err := strconv.Atoi(env.Get("_MINIO_BATCH_REPLICATION_WORKERS", strconv.Itoa(runtime.GOMAXPROCS(0)/2))) if err != nil { return err } + wk, err := workers.New(workerSize) + if err != nil { + // invalid worker size. + return err + } + retryAttempts := ri.RetryAttempts retry := false for attempts := 1; attempts <= retryAttempts; attempts++ { attempts := attempts - wk, err := workers.New(workerSize) - if err != nil { - // invalid worker size. - return err - } - ctx, cancel := context.WithCancel(ctx) results := make(chan ObjectInfo, 100) @@ -737,7 +738,7 @@ func (e batchReplicationJobError) Error() string { } // Validate validates the job definition input -func (r *BatchJobReplicateV1) Validate(ctx context.Context, o ObjectLayer) error { +func (r *BatchJobReplicateV1) Validate(ctx context.Context, job BatchJobRequest, o ObjectLayer) error { if r == nil { return nil } @@ -813,6 +814,7 @@ func (r *BatchJobReplicateV1) Validate(ctx context.Context, o ObjectLayer) error if err != nil { return err } + c.SetAppInfo("minio-"+batchJobPrefix, r.APIVersion+" "+job.ID) vcfg, err := c.GetBucketVersioning(ctx, r.Target.Bucket) if err != nil { @@ -851,7 +853,7 @@ func (j BatchJobRequest) Type() madmin.BatchJobType { // persisting the job request func (j BatchJobRequest) Validate(ctx context.Context, o ObjectLayer) error { if j.Replicate != nil { - return j.Replicate.Validate(ctx, o) + return j.Replicate.Validate(ctx, j, o) } return errInvalidArgument } diff --git a/cmd/bucket-targets.go b/cmd/bucket-targets.go index fff2f5e1c..82d323b88 100644 --- a/cmd/bucket-targets.go +++ b/cmd/bucket-targets.go @@ -453,6 +453,8 @@ func (sys *BucketTargetSys) getRemoteTargetClient(tcfg *madmin.BucketTarget) (*T if err != nil { return nil, err } + api.SetAppInfo("minio-replication-target", ReleaseTag+" "+tcfg.Arn) + hcDuration := defaultHealthCheckDuration if tcfg.HealthCheckDuration >= 1 { // require minimum health check duration of 1 sec. hcDuration = tcfg.HealthCheckDuration @@ -479,7 +481,10 @@ func (sys *BucketTargetSys) getRemoteARN(bucket string, target *madmin.BucketTar } tgts := sys.targetsMap[bucket] for _, tgt := range tgts { - if tgt.Type == target.Type && tgt.TargetBucket == target.TargetBucket && target.URL().String() == tgt.URL().String() && tgt.Credentials.AccessKey == target.Credentials.AccessKey { + if tgt.Type == target.Type && + tgt.TargetBucket == target.TargetBucket && + target.URL().String() == tgt.URL().String() && + tgt.Credentials.AccessKey == target.Credentials.AccessKey { return tgt.Arn, true } } diff --git a/cmd/object-handlers.go b/cmd/object-handlers.go index 1b8db90f2..8415a3a00 100644 --- a/cmd/object-handlers.go +++ b/cmd/object-handlers.go @@ -937,11 +937,16 @@ var getRemoteInstanceClient = func(r *http.Request, host string) (*miniogo.Core, cred := getReqAccessCred(r, globalSite.Region) // In a federated deployment, all the instances share config files // and hence expected to have same credentials. - return miniogo.NewCore(host, &miniogo.Options{ + core, err := miniogo.NewCore(host, &miniogo.Options{ Creds: credentials.NewStaticV4(cred.AccessKey, cred.SecretKey, ""), Secure: globalIsTLS, Transport: getRemoteInstanceTransport, }) + if err != nil { + return nil, err + } + core.SetAppInfo("minio-federated", ReleaseTag) + return core, nil } // Check if the destination bucket is on a remote site, this code only gets executed diff --git a/cmd/server-main.go b/cmd/server-main.go index ffab3bbd2..cdc050d49 100644 --- a/cmd/server-main.go +++ b/cmd/server-main.go @@ -753,6 +753,9 @@ func serverMain(ctx *cli.Context) { }) logger.FatalIf(err, "Unable to initialize MinIO client") + // Add User-Agent to differentiate the requests. + globalMinioClient.SetAppInfo("minio-perf-test", ReleaseTag) + if serverDebugLog { logger.Info("== DEBUG Mode enabled ==") logger.Info("Currently set environment settings:") diff --git a/cmd/warm-backend-minio.go b/cmd/warm-backend-minio.go index 1f2d22534..68c1089fc 100644 --- a/cmd/warm-backend-minio.go +++ b/cmd/warm-backend-minio.go @@ -53,10 +53,9 @@ func newWarmBackendMinIO(conf madmin.TierMinIO) (*warmBackendMinIO, error) { if err != nil { return nil, err } - core, err := minio.NewCore(u.Host, opts) - if err != nil { - return nil, err - } + client.SetAppInfo("minio-tier-target", ReleaseTag) + + core := &minio.Core{Client: client} return &warmBackendMinIO{ warmBackendS3{ client: client, diff --git a/cmd/warm-backend-s3.go b/cmd/warm-backend-s3.go index c31520c41..0a85a47ec 100644 --- a/cmd/warm-backend-s3.go +++ b/cmd/warm-backend-s3.go @@ -128,10 +128,9 @@ func newWarmBackendS3(conf madmin.TierS3) (*warmBackendS3, error) { if err != nil { return nil, err } - core, err := minio.NewCore(u.Host, opts) - if err != nil { - return nil, err - } + client.SetAppInfo("s3-tier-target", ReleaseTag) + + core := &minio.Core{Client: client} return &warmBackendS3{ client: client, core: core,