From 2017e6b113d62ddc4ad0bc7da1c3fbe1e310f27d Mon Sep 17 00:00:00 2001 From: Louis PERDEREAU Date: Sat, 24 Jun 2023 21:50:10 +0200 Subject: [PATCH] fix: Add https to dsn --- pkg/acquisition/modules/loki/loki.go | 14 +++++++++----- pkg/acquisition/modules/loki/loki_test.go | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/pkg/acquisition/modules/loki/loki.go b/pkg/acquisition/modules/loki/loki.go index 5124af5c9..ba832c66d 100644 --- a/pkg/acquisition/modules/loki/loki.go +++ b/pkg/acquisition/modules/loki/loki.go @@ -152,12 +152,10 @@ func (l *LokiSource) ConfigureByDSN(dsn string, labels map[string]string, logger } scheme := "http" - l.Config.URL = fmt.Sprintf("%s://%s", scheme, u.Host) - if u.User != nil { - l.Config.Auth.Username = u.User.Username() - l.Config.Auth.Password, _ = u.User.Password() - } params := u.Query() + if q := params.Get("ssl"); q != "" { + scheme = "https" + } if q := params.Get("query"); q != "" { l.Config.Query = q } @@ -202,6 +200,12 @@ func (l *LokiSource) ConfigureByDSN(dsn string, labels map[string]string, logger l.logger.Logger.SetLevel(level) } + l.Config.URL = fmt.Sprintf("%s://%s", scheme, u.Host) + if u.User != nil { + l.Config.Auth.Username = u.User.Username() + l.Config.Auth.Password, _ = u.User.Password() + } + clientConfig := lokiclient.Config{ LokiURL: l.Config.URL, Headers: l.Config.Headers, diff --git a/pkg/acquisition/modules/loki/loki_test.go b/pkg/acquisition/modules/loki/loki_test.go index d879a70c6..6b3e0ce82 100644 --- a/pkg/acquisition/modules/loki/loki_test.go +++ b/pkg/acquisition/modules/loki/loki_test.go @@ -6,6 +6,7 @@ import ( "fmt" "io/ioutil" "net/http" + "net/url" "os" "strings" "testing" @@ -82,7 +83,7 @@ query: > config: ` mode: tail source: loki -url: http://@localhost:3100/ +url: http://localhost:3100/ auth: username: foo password: bar @@ -125,6 +126,7 @@ func TestConfigureDSN(t *testing.T) { expectedErr string since time.Time password string + scheme string waitForReady time.Duration }{ { @@ -163,6 +165,11 @@ func TestConfigureDSN(t *testing.T) { expectedErr: "", waitForReady: 5 * time.Second, }, + { + name: "SSL DSN", + dsn: `loki://localhost:3100/?ssl=true`, + scheme: "https", + }, } for _, test := range tests { @@ -186,6 +193,12 @@ func TestConfigureDSN(t *testing.T) { t.Fatalf("Password mismatch : %s != %s", test.password, p) } } + if test.scheme != "" { + url, _ := url.Parse(lokiSource.Config.URL) + if test.scheme != url.Scheme { + t.Fatalf("Schema mismatch : %s != %s", test.scheme, url.Scheme) + } + } if test.waitForReady != 0 { if lokiSource.Config.WaitForReady != test.waitForReady { t.Fatalf("Wrong WaitForReady %v != %v", lokiSource.Config.WaitForReady, test.waitForReady)