diff --git a/go.mod b/go.mod index 5c9e0a40e..70ffc311c 100644 --- a/go.mod +++ b/go.mod @@ -62,7 +62,6 @@ require ( github.com/nats-io/stan.go v0.8.3 github.com/ncw/directio v1.0.5 github.com/nsqio/go-nsq v1.0.8 - github.com/olivere/elastic/v7 v7.0.22 github.com/philhofer/fwd v1.1.1 github.com/pierrec/lz4 v2.6.0+incompatible github.com/pkg/errors v0.9.1 @@ -79,6 +78,7 @@ require ( github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c go.etcd.io/etcd/api/v3 v3.5.0-beta.4 go.etcd.io/etcd/client/v3 v3.5.0-beta.4 + go.opencensus.io v0.22.5 // indirect go.uber.org/atomic v1.7.0 go.uber.org/zap v1.16.1-0.20210329175301-c23abee72d19 golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e diff --git a/go.sum b/go.sum index bfd81cf47..cbcbb4e00 100644 --- a/go.sum +++ b/go.sum @@ -180,7 +180,6 @@ github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= -github.com/aws/aws-sdk-go v1.35.20/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= github.com/bcicen/jstream v1.0.1 h1:BXY7Cu4rdmc0rhyTVyT3UkxAiX3bnLpKLas9btbH5ck= @@ -1143,8 +1142,6 @@ github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtb github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s= -github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zUA3ickqu5Pc8= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -1172,7 +1169,6 @@ github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= @@ -1331,7 +1327,6 @@ github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs= -github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE= diff --git a/internal/event/target/elasticsearch.go b/internal/event/target/elasticsearch.go index 7cd2e049d..e82724f5b 100644 --- a/internal/event/target/elasticsearch.go +++ b/internal/event/target/elasticsearch.go @@ -33,13 +33,11 @@ import ( "strings" "time" + elasticsearch7 "github.com/elastic/go-elasticsearch/v7" + "github.com/minio/highwayhash" "github.com/minio/minio/internal/event" xnet "github.com/minio/pkg/net" "github.com/pkg/errors" - - elasticsearch7 "github.com/elastic/go-elasticsearch/v7" - "github.com/minio/highwayhash" - "github.com/olivere/elastic/v7" ) // Elastic constants @@ -91,10 +89,8 @@ func getESVersionSupportStatus(version string) (res ESSupportStatus, err error) } switch { - case majorVersion <= 4: - res = ESSUnsupported case majorVersion <= 6: - res = ESSDeprecated + res = ESSUnsupported default: res = ESSSupported } @@ -192,7 +188,7 @@ func (target *ElasticsearchTarget) Save(eventData event.Event) error { return target.store.Put(eventData) } err := target.send(eventData) - if elastic.IsConnErr(err) || elastic.IsContextErr(err) || xnet.IsNetworkOrHostDown(err, false) { + if xnet.IsNetworkOrHostDown(err, false) { return errNotConnected } return err @@ -260,7 +256,7 @@ func (target *ElasticsearchTarget) Send(eventKey string) error { } if err := target.send(eventData); err != nil { - if elastic.IsConnErr(err) || elastic.IsContextErr(err) || xnet.IsNetworkOrHostDown(err, false) { + if xnet.IsNetworkOrHostDown(err, false) { return errNotConnected } return err @@ -300,11 +296,7 @@ func (target *ElasticsearchTarget) checkAndInitClient(ctx context.Context) error return errors.New("unable to determine support status of ES (should not happen)") case ESSDeprecated: - fmt.Printf("DEPRECATION WARNING: Support for Elasticsearch version '%s' will be dropped in a future release. Please upgrade to a version >= 7.x.", version) - target.client, err = newClientV56(target.args) - if err != nil { - return err - } + return errors.New("there is no currently deprecated version of ES in MinIO") case ESSSupported: target.client = clientV7 @@ -557,93 +549,3 @@ func (c *esClientV7) addEntry(ctx context.Context, index string, eventData event func (c *esClientV7) stop() { } - -// For versions under 7 -type esClientV56 struct { - *elastic.Client -} - -func newClientV56(args ElasticsearchArgs) (*esClientV56, error) { - // Client options - options := []elastic.ClientOptionFunc{elastic.SetURL(args.URL.String()), - elastic.SetMaxRetries(10), - elastic.SetSniff(false), - elastic.SetHttpClient(&http.Client{Transport: args.Transport})} - // Set basic auth - if args.Username != "" && args.Password != "" { - options = append(options, elastic.SetBasicAuth(args.Username, args.Password)) - } - // Create a client - client, err := elastic.NewClient(options...) - if err != nil { - // https://github.com/olivere/elastic/wiki/Connection-Errors - if elastic.IsConnErr(err) || elastic.IsContextErr(err) || xnet.IsNetworkOrHostDown(err, false) { - return nil, errNotConnected - } - return nil, err - } - return &esClientV56{client}, nil -} - -func (c *esClientV56) isAtleastV7() bool { - return false -} - -// createIndex - creates the index if it does not exist. -func (c *esClientV56) createIndex(args ElasticsearchArgs) error { - exists, err := c.IndexExists(args.Index).Do(context.Background()) - if err != nil { - return err - } - if !exists { - var createIndex *elastic.IndicesCreateResult - if createIndex, err = c.CreateIndex(args.Index).Do(context.Background()); err != nil { - return err - } - - if !createIndex.Acknowledged { - return fmt.Errorf("index %v not created", args.Index) - } - } - return nil -} - -func (c *esClientV56) ping(ctx context.Context, args ElasticsearchArgs) (bool, error) { - _, code, err := c.Ping(args.URL.String()).HttpHeadOnly(true).Do(ctx) - if err != nil { - if elastic.IsConnErr(err) || elastic.IsContextErr(err) || xnet.IsNetworkOrHostDown(err, false) { - return false, errNotConnected - } - return false, err - } - return !(code >= http.StatusBadRequest), nil - -} - -func (c *esClientV56) entryExists(ctx context.Context, index string, key string) (bool, error) { - return c.Exists().Index(index).Type("event").Id(key).Do(ctx) -} - -func (c *esClientV56) removeEntry(ctx context.Context, index string, key string) error { - exists, err := c.entryExists(ctx, index, key) - if err == nil && exists { - _, err = c.Delete().Index(index).Type("event").Id(key).Do(ctx) - } - return err - -} - -func (c *esClientV56) updateEntry(ctx context.Context, index string, key string, eventData event.Event) error { - _, err := c.Index().Index(index).Type("event").BodyJson(map[string]interface{}{"Records": []event.Event{eventData}}).Id(key).Do(ctx) - return err -} - -func (c *esClientV56) addEntry(ctx context.Context, index string, eventData event.Event) error { - _, err := c.Index().Index(index).Type("event").BodyJson(map[string]interface{}{"Records": []event.Event{eventData}}).Do(ctx) - return err - -} - -func (c *esClientV56) stop() { - c.Stop() -}