From 1157b91d50c8cce6fd96c8585ec7ab72fab8480a Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Mon, 24 Aug 2020 16:37:03 +0200 Subject: [PATCH 1/2] Check missing server URL in ES OTEL client Signed-off-by: Pavol Loffay --- cmd/opentelemetry/app/internal/esclient/client.go | 6 ++++++ cmd/opentelemetry/app/internal/esclient/client_test.go | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/cmd/opentelemetry/app/internal/esclient/client.go b/cmd/opentelemetry/app/internal/esclient/client.go index 08c2a08298b..66bfbdfb95b 100644 --- a/cmd/opentelemetry/app/internal/esclient/client.go +++ b/cmd/opentelemetry/app/internal/esclient/client.go @@ -27,6 +27,8 @@ import ( "github.com/jaegertracing/jaeger/pkg/es/config" ) +var errMissingUrl = fmt.Errorf("missing Elasticsearch URL") + // ElasticsearchClient exposes Elasticsearch API used by Jaeger. // This is not a general purpose ES client implementation. // The exposed APIs are the bare minimum that is used by Jaeger project to store and query data. @@ -171,6 +173,10 @@ type AggregationResponse struct { // NewElasticsearchClient returns an instance of Elasticsearch client func NewElasticsearchClient(params config.Configuration, logger *zap.Logger) (ElasticsearchClient, error) { + if len(params.Servers) == 0 { + return nil, errMissingUrl + } + roundTripper, err := config.GetHTTPRoundTripper(¶ms, logger) if err != nil { return nil, err diff --git a/cmd/opentelemetry/app/internal/esclient/client_test.go b/cmd/opentelemetry/app/internal/esclient/client_test.go index d68af133d7a..762addb37ae 100644 --- a/cmd/opentelemetry/app/internal/esclient/client_test.go +++ b/cmd/opentelemetry/app/internal/esclient/client_test.go @@ -335,3 +335,10 @@ func testMultiSearch(t *testing.T, clientFactory func(tripper http.RoundTripper) }) } } + +func TestGetClient_err_missingURL(t *testing.T) { + client, err := NewElasticsearchClient(config.Configuration{}, zap.NewNop()) + require.Error(t, err) + assert.EqualError(t, err, errMissingUrl.Error()) + assert.Nil(t, client) +} From 822f0bdde32f59b334be0b4ae58f1cb1ec34a82d Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Mon, 24 Aug 2020 20:44:18 +0200 Subject: [PATCH 2/2] fmt Signed-off-by: Pavol Loffay --- cmd/opentelemetry/app/internal/esclient/client.go | 4 ++-- cmd/opentelemetry/app/internal/esclient/client_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/opentelemetry/app/internal/esclient/client.go b/cmd/opentelemetry/app/internal/esclient/client.go index 66bfbdfb95b..69c432a455b 100644 --- a/cmd/opentelemetry/app/internal/esclient/client.go +++ b/cmd/opentelemetry/app/internal/esclient/client.go @@ -27,7 +27,7 @@ import ( "github.com/jaegertracing/jaeger/pkg/es/config" ) -var errMissingUrl = fmt.Errorf("missing Elasticsearch URL") +var errMissingURL = fmt.Errorf("missing Elasticsearch URL") // ElasticsearchClient exposes Elasticsearch API used by Jaeger. // This is not a general purpose ES client implementation. @@ -174,7 +174,7 @@ type AggregationResponse struct { // NewElasticsearchClient returns an instance of Elasticsearch client func NewElasticsearchClient(params config.Configuration, logger *zap.Logger) (ElasticsearchClient, error) { if len(params.Servers) == 0 { - return nil, errMissingUrl + return nil, errMissingURL } roundTripper, err := config.GetHTTPRoundTripper(¶ms, logger) diff --git a/cmd/opentelemetry/app/internal/esclient/client_test.go b/cmd/opentelemetry/app/internal/esclient/client_test.go index 762addb37ae..ecea117f7c8 100644 --- a/cmd/opentelemetry/app/internal/esclient/client_test.go +++ b/cmd/opentelemetry/app/internal/esclient/client_test.go @@ -339,6 +339,6 @@ func testMultiSearch(t *testing.T, clientFactory func(tripper http.RoundTripper) func TestGetClient_err_missingURL(t *testing.T) { client, err := NewElasticsearchClient(config.Configuration{}, zap.NewNop()) require.Error(t, err) - assert.EqualError(t, err, errMissingUrl.Error()) + assert.EqualError(t, err, errMissingURL.Error()) assert.Nil(t, client) }