@@ -22,12 +22,10 @@ import (
2222 "context"
2323 "encoding/base64"
2424 "encoding/binary"
25- "encoding/gob"
2625 "encoding/json"
2726 "encoding/xml"
2827 "errors"
2928 "fmt"
30- "net/http"
3129 "net/url"
3230 "reflect"
3331 "runtime"
@@ -43,7 +41,6 @@ import (
4341 "github.com/minio/minio-go/v7/pkg/set"
4442 "github.com/minio/minio/internal/auth"
4543 sreplication "github.com/minio/minio/internal/bucket/replication"
46- xhttp "github.com/minio/minio/internal/http"
4744 "github.com/minio/minio/internal/logger"
4845 bktpolicy "github.com/minio/pkg/bucket/policy"
4946 iampolicy "github.com/minio/pkg/iam/policy"
@@ -663,64 +660,38 @@ func (c *SiteReplicationSys) Netperf(ctx context.Context, duration time.Duration
663660 // will call siteNetperf, means call others's adminAPISiteReplicationDevNull
664661 if globalDeploymentID == info .DeploymentID {
665662 wg .Add (1 )
666- go func () ( err error ) {
663+ go func () {
667664 defer wg .Done ()
668- result := & madmin.SiteNetPerfNodeResult {}
669- defer func () {
670- if err != nil {
671- result .Error = err .Error ()
672- }
673- resultsMu .Lock ()
674- results .NodeResults = append (results .NodeResults , * result )
675- resultsMu .Unlock ()
676- }()
665+ result := madmin.SiteNetPerfNodeResult {}
677666 cli , err := globalSiteReplicationSys .getAdminClient (ctx , info .DeploymentID )
678- if err != nil {
679- return err
680- }
681- * result = siteNetperf (ctx , duration )
682- result .Endpoint = cli .GetEndpointURL ().String ()
683- return nil
684- }()
685- continue
686- }
687- wg .Add (1 )
688- go func () (err error ) {
689- defer wg .Done ()
690- result := madmin.SiteNetPerfNodeResult {}
691- defer func () {
692667 if err != nil {
693668 result .Error = err .Error ()
669+ } else {
670+ result = siteNetperf (ctx , duration )
671+ result .Endpoint = cli .GetEndpointURL ().String ()
694672 }
695673 resultsMu .Lock ()
696674 results .NodeResults = append (results .NodeResults , result )
697675 resultsMu .Unlock ()
676+ return
698677 }()
699- cli , err := globalSiteReplicationSys .getAdminClient (ctx , info .DeploymentID )
700- if err != nil {
701- return err
702- }
703- rp := cli .GetEndpointURL ()
704- reqURL := & url.URL {
705- Scheme : rp .Scheme ,
706- Host : rp .Host ,
707- Path : adminPathPrefix + adminAPIVersionPrefix + adminAPISiteReplicationNetPerf ,
708- }
709- result .Endpoint = rp .String ()
710- req , err := http .NewRequestWithContext (ctx , http .MethodPost , reqURL .String (), nil )
711- if err != nil {
712- return err
713- }
714- client := & http.Client {
715- Timeout : duration + 10 * time .Second ,
716- Transport : globalRemoteTargetTransport ,
717- }
718- resp , err := client .Do (req )
719- if err != nil {
720- return err
721- }
722- defer xhttp .DrainBody (resp .Body )
723- return gob .NewDecoder (resp .Body ).Decode (& result )
678+ continue
679+ }
680+ wg .Add (1 )
681+ go func () {
682+ defer wg .Done ()
683+ ctx , cancel := context .WithTimeout (ctx , duration + 10 * time .Second )
684+ defer cancel ()
685+ result := perfNetRequest (
686+ ctx ,
687+ info .DeploymentID ,
688+ adminPathPrefix + adminAPIVersionPrefix + adminAPISiteReplicationNetPerf ,
689+ nil ,
690+ )
691+ resultsMu .Lock ()
692+ results .NodeResults = append (results .NodeResults , result )
693+ resultsMu .Unlock ()
694+ return
724695 }()
725696 }
726697 wg .Wait ()
0 commit comments