From 66eddb27b5df64d455fd02c125b905237169dd46 Mon Sep 17 00:00:00 2001 From: Tania B Date: Mon, 25 Oct 2021 16:31:27 +0300 Subject: [PATCH] Update setting up secrets service in tests --- pkg/api/login_test.go | 3 +- pkg/api/pluginproxy/ds_proxy_test.go | 37 +++++++++--------- pkg/api/pluginproxy/pluginproxy_test.go | 3 +- .../dashboardsnapshots_test.go | 4 +- pkg/services/datasources/service_test.go | 38 ++++++++++--------- .../login/authinfoservice/user_auth_test.go | 4 +- .../ngalert/notifier/alertmanager_test.go | 4 +- .../notifier/channels/alertmanager_test.go | 5 ++- .../ngalert/notifier/channels/line_test.go | 6 +-- .../notifier/channels/opsgenie_test.go | 11 +++--- .../notifier/channels/pagerduty_test.go | 11 +++--- .../notifier/channels/pushover_test.go | 4 +- .../ngalert/notifier/channels/sensugo_test.go | 4 +- .../ngalert/notifier/channels/slack_test.go | 4 +- .../notifier/channels/telegram_test.go | 7 ++-- .../ngalert/notifier/channels/threema_test.go | 10 ++--- .../ngalert/notifier/channels/webhook_test.go | 10 ++--- .../notifier/multiorg_alertmanager_test.go | 8 ++-- .../ngalert/schedule/schedule_unit_test.go | 4 +- pkg/services/ngalert/tests/util.go | 4 +- pkg/services/pluginsettings/service_test.go | 6 ++- pkg/tsdb/service_test.go | 4 +- 22 files changed, 111 insertions(+), 80 deletions(-) diff --git a/pkg/api/login_test.go b/pkg/api/login_test.go index 852a19c981a..ade901eaecc 100644 --- a/pkg/api/login_test.go +++ b/pkg/api/login_test.go @@ -26,6 +26,7 @@ import ( "github.com/grafana/grafana/pkg/services/hooks" "github.com/grafana/grafana/pkg/services/licensing" "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" "github.com/stretchr/testify/assert" @@ -108,7 +109,7 @@ func TestLoginErrorCookieAPIEndpoint(t *testing.T) { sc := setupScenarioContext(t, "/login") cfg := setting.NewCfg() - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) hs := &HTTPServer{ Cfg: cfg, SettingsProvider: &setting.OSSImpl{Cfg: cfg}, diff --git a/pkg/api/pluginproxy/ds_proxy_test.go b/pkg/api/pluginproxy/ds_proxy_test.go index 4189c8931ef..f4984cf1689 100644 --- a/pkg/api/pluginproxy/ds_proxy_test.go +++ b/pkg/api/pluginproxy/ds_proxy_test.go @@ -21,6 +21,7 @@ import ( "github.com/grafana/grafana/pkg/services/datasources" "github.com/grafana/grafana/pkg/services/oauthtoken" "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/web" @@ -86,7 +87,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { }) setting.SecretKey = "password" //nolint:goconst - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) key, err := secretsService.Encrypt(context.Background(), []byte("123"), secrets.WithoutScope()) require.NoError(t, err) @@ -241,7 +242,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { }) setting.SecretKey = "password" - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) key, err := secretsService.Encrypt(context.Background(), []byte("123"), secrets.WithoutScope()) require.NoError(t, err) @@ -341,7 +342,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { ds := &models.DataSource{Url: "htttp://graphite:8080", Type: models.DS_GRAPHITE} ctx := &models.ReqContext{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/render", &setting.Cfg{BuildVersion: "5.3.0"}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -368,7 +369,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { } ctx := &models.ReqContext{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -393,7 +394,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { } ctx := &models.ReqContext{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -422,7 +423,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { } ctx := &models.ReqContext{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -445,7 +446,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { Url: "http://host/root/", } ctx := &models.ReqContext{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/path/to/folder/", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -502,7 +503,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { }, oAuthEnabled: true, } - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/path/to/folder/", &setting.Cfg{}, httpClientProvider, &mockAuthToken, dsService) require.NoError(t, err) @@ -554,7 +555,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) { }) t.Run("When proxying data source proxy should handle authentication", func(t *testing.T) { - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) tests := []*testCase{ createAuthTest(t, secretsService, models.DS_INFLUXDB_08, authTypePassword, authCheckQuery, false), @@ -632,7 +633,7 @@ func TestDataSourceProxy_requestHandling(t *testing.T) { t.Run("When response header Set-Cookie is not set should remove proxied Set-Cookie header", func(t *testing.T) { ctx, ds := setUp(t) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/render", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -649,7 +650,7 @@ func TestDataSourceProxy_requestHandling(t *testing.T) { "Set-Cookie": "important_cookie=important_value", }, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/render", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -670,7 +671,7 @@ func TestDataSourceProxy_requestHandling(t *testing.T) { t.Log("Wrote 401 response") }, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/render", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -694,7 +695,7 @@ func TestDataSourceProxy_requestHandling(t *testing.T) { }) ctx.Req = httptest.NewRequest("GET", "/api/datasources/proxy/1/path/%2Ftest%2Ftest%2F?query=%2Ftest%2Ftest%2F", nil) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "/path/%2Ftest%2Ftest%2F", &setting.Cfg{}, httpClientProvider, &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -718,7 +719,7 @@ func TestNewDataSourceProxy_InvalidURL(t *testing.T) { } cfg := setting.Cfg{} plugin := plugins.DataSourcePlugin{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) _, err := NewDataSourceProxy(&ds, &plugin, &ctx, "api/method", &cfg, httpclient.NewProvider(), &oauthtoken.Service{}, dsService) require.Error(t, err) @@ -737,7 +738,7 @@ func TestNewDataSourceProxy_ProtocolLessURL(t *testing.T) { cfg := setting.Cfg{} plugin := plugins.DataSourcePlugin{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) _, err := NewDataSourceProxy(&ds, &plugin, &ctx, "api/method", &cfg, httpclient.NewProvider(), &oauthtoken.Service{}, dsService) @@ -777,7 +778,7 @@ func TestNewDataSourceProxy_MSSQL(t *testing.T) { Url: tc.url, } - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) p, err := NewDataSourceProxy(&ds, &plugin, &ctx, "api/method", &cfg, httpclient.NewProvider(), &oauthtoken.Service{}, dsService) if tc.err == nil { @@ -803,7 +804,7 @@ func getDatasourceProxiedRequest(t *testing.T, ctx *models.ReqContext, cfg *sett Url: "http://host/root/", } - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(ds, plugin, ctx, "", cfg, httpclient.NewProvider(), &oauthtoken.Service{}, dsService) require.NoError(t, err) @@ -964,7 +965,7 @@ func Test_PathCheck(t *testing.T) { return ctx, req } ctx, _ := setUp() - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) proxy, err := NewDataSourceProxy(&models.DataSource{}, plugin, ctx, "b", &setting.Cfg{}, httpclient.NewProvider(), &oauthtoken.Service{}, dsService) require.NoError(t, err) diff --git a/pkg/api/pluginproxy/pluginproxy_test.go b/pkg/api/pluginproxy/pluginproxy_test.go index 356b5550176..a4b9a018a7a 100644 --- a/pkg/api/pluginproxy/pluginproxy_test.go +++ b/pkg/api/pluginproxy/pluginproxy_test.go @@ -10,6 +10,7 @@ import ( "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" "github.com/stretchr/testify/assert" @@ -19,7 +20,7 @@ import ( func TestPluginProxy(t *testing.T) { setting.SecretKey = "password" - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) t.Run("When getting proxy headers", func(t *testing.T) { route := &plugins.AppPluginRoute{ diff --git a/pkg/services/dashboardsnapshots/dashboardsnapshots_test.go b/pkg/services/dashboardsnapshots/dashboardsnapshots_test.go index 971593388ba..56969b471bd 100644 --- a/pkg/services/dashboardsnapshots/dashboardsnapshots_test.go +++ b/pkg/services/dashboardsnapshots/dashboardsnapshots_test.go @@ -4,6 +4,8 @@ import ( "context" "testing" + "github.com/grafana/grafana/pkg/services/secrets/database" + "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" @@ -14,7 +16,7 @@ import ( func TestDashboardSnapshotsService(t *testing.T) { sqlStore := sqlstore.InitTestDB(t) - secretsService := secretsManager.SetupTestService(t, sqlStore) + secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) s := &Service{ SQLStore: sqlStore, diff --git a/pkg/services/datasources/service_test.go b/pkg/services/datasources/service_test.go index 2942c08e7fe..d307d30b330 100644 --- a/pkg/services/datasources/service_test.go +++ b/pkg/services/datasources/service_test.go @@ -14,6 +14,8 @@ import ( "github.com/grafana/grafana/pkg/infra/httpclient" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/secrets/database" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" @@ -31,7 +33,7 @@ func TestService(t *testing.T) { setting.SecretKey = origSecret }) - secretsService := secretsManager.SetupTestService(t, sqlStore) + secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) s := ProvideService(bus.New(), sqlStore, secretsService) var ds *models.DataSource @@ -80,7 +82,7 @@ func TestService_GetHttpTransport(t *testing.T) { Type: "Kubernetes", } - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) rt1, err := dsService.GetHTTPTransport(&ds, provider) @@ -113,7 +115,7 @@ func TestService_GetHttpTransport(t *testing.T) { json := simplejson.New() json.Set("tlsAuthWithCACert", true) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) tlsCaCert, err := secretsService.Encrypt(context.Background(), []byte(caCert), secrets.WithoutScope()) @@ -163,7 +165,7 @@ func TestService_GetHttpTransport(t *testing.T) { json := simplejson.New() json.Set("tlsAuth", true) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) tlsClientCert, err := secretsService.Encrypt(context.Background(), []byte(clientCert), secrets.WithoutScope()) @@ -206,7 +208,7 @@ func TestService_GetHttpTransport(t *testing.T) { json.Set("tlsAuthWithCACert", true) json.Set("serverName", "server-name") - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) tlsCaCert, err := secretsService.Encrypt(context.Background(), []byte(caCert), secrets.WithoutScope()) @@ -243,7 +245,7 @@ func TestService_GetHttpTransport(t *testing.T) { json := simplejson.New() json.Set("tlsSkipVerify", true) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) ds := models.DataSource{ @@ -274,7 +276,7 @@ func TestService_GetHttpTransport(t *testing.T) { "httpHeaderName1": "Authorization", }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) encryptedData, err := secretsService.Encrypt(context.Background(), []byte(`Bearer xf5yhfkpsnmgo`), secrets.WithoutScope()) @@ -333,7 +335,7 @@ func TestService_GetHttpTransport(t *testing.T) { "timeout": 19, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) ds := models.DataSource{ @@ -366,7 +368,7 @@ func TestService_GetHttpTransport(t *testing.T) { json, err := simplejson.NewJson([]byte(`{ "sigV4Auth": true }`)) require.NoError(t, err) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) ds := models.DataSource{ @@ -400,7 +402,7 @@ func TestService_getTimeout(t *testing.T) { {jsonData: simplejson.NewFromAny(map[string]interface{}{"timeout": "2"}), expectedTimeout: 2 * time.Second}, } - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) for _, tc := range testCases { @@ -413,7 +415,7 @@ func TestService_getTimeout(t *testing.T) { func TestService_DecryptedValue(t *testing.T) { t.Run("When datasource hasn't been updated, encrypted JSON should be fetched from cache", func(t *testing.T) { - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) encryptedJsonData, err := secretsService.EncryptJsonData( @@ -451,7 +453,7 @@ func TestService_DecryptedValue(t *testing.T) { }) t.Run("When datasource is updated, encrypted JSON should not be fetched from cache", func(t *testing.T) { - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) encryptedJsonData, err := secretsService.EncryptJsonData( context.Background(), @@ -503,7 +505,7 @@ func TestService_HTTPClientOptions(t *testing.T) { t.Run("should be disabled if not enabled in JsonData", func(t *testing.T) { t.Cleanup(func() { ds.JsonData = emptyJsonData; ds.SecureJsonData = emptySecureJsonData }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) opts, err := dsService.httpClientOptions(&ds) @@ -520,7 +522,7 @@ func TestService_HTTPClientOptions(t *testing.T) { "azureAuth": true, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) opts, err := dsService.httpClientOptions(&ds) @@ -540,7 +542,7 @@ func TestService_HTTPClientOptions(t *testing.T) { }, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) opts, err := dsService.httpClientOptions(&ds) @@ -564,7 +566,7 @@ func TestService_HTTPClientOptions(t *testing.T) { }, }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) opts, err := dsService.httpClientOptions(&ds) @@ -582,7 +584,7 @@ func TestService_HTTPClientOptions(t *testing.T) { "azureCredentials": "invalid", }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) _, err := dsService.httpClientOptions(&ds) @@ -596,7 +598,7 @@ func TestService_HTTPClientOptions(t *testing.T) { "azureEndpointResourceId": "https://api.example.com/abd5c4ce-ca73-41e9-9cb2-bed39aa2adb5", }) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := ProvideService(bus.New(), nil, secretsService) opts, err := dsService.httpClientOptions(&ds) diff --git a/pkg/services/login/authinfoservice/user_auth_test.go b/pkg/services/login/authinfoservice/user_auth_test.go index 70b281f3914..bba765b3fb9 100644 --- a/pkg/services/login/authinfoservice/user_auth_test.go +++ b/pkg/services/login/authinfoservice/user_auth_test.go @@ -11,6 +11,7 @@ import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/models" + "github.com/grafana/grafana/pkg/services/secrets/database" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/stretchr/testify/require" @@ -20,7 +21,8 @@ import ( //nolint:goconst func TestUserAuth(t *testing.T) { sqlStore := sqlstore.InitTestDB(t) - srv := ProvideAuthInfoService(bus.New(), sqlStore, &OSSUserProtectionImpl{}, secretsManager.SetupTestService(t, sqlStore)) + secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) + srv := ProvideAuthInfoService(bus.New(), sqlStore, &OSSUserProtectionImpl{}, secretsService) t.Run("Given 5 users", func(t *testing.T) { for i := 0; i < 5; i++ { diff --git a/pkg/services/ngalert/notifier/alertmanager_test.go b/pkg/services/ngalert/notifier/alertmanager_test.go index 2fae2bc3fae..81e45c02ed0 100644 --- a/pkg/services/ngalert/notifier/alertmanager_test.go +++ b/pkg/services/ngalert/notifier/alertmanager_test.go @@ -9,6 +9,8 @@ import ( "testing" "time" + "github.com/grafana/grafana/pkg/services/secrets/database" + gokit_log "github.com/go-kit/kit/log" "github.com/go-openapi/strfmt" "github.com/grafana/grafana/pkg/infra/log" @@ -47,7 +49,7 @@ func setupAMTest(t *testing.T) *Alertmanager { } kvStore := newFakeKVStore(t) - secretsService := secretsManager.SetupTestService(t, sqlStore) + secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) decryptFn := secretsService.GetDecryptedValue am, err := newAlertmanager(1, cfg, s, kvStore, &NilPeer{}, decryptFn, m) require.NoError(t, err) diff --git a/pkg/services/ngalert/notifier/channels/alertmanager_test.go b/pkg/services/ngalert/notifier/channels/alertmanager_test.go index 35bd4ae1c7a..35790d4f224 100644 --- a/pkg/services/ngalert/notifier/channels/alertmanager_test.go +++ b/pkg/services/ngalert/notifier/channels/alertmanager_test.go @@ -10,6 +10,7 @@ import ( "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" @@ -55,7 +56,7 @@ func TestNewAlertmanagerNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue sn, err := NewAlertmanagerNotifier(m, tmpl, decryptFn) if c.expectedInitError != "" { @@ -136,7 +137,7 @@ func TestAlertmanagerNotifier_Notify(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue sn, err := NewAlertmanagerNotifier(m, tmpl, decryptFn) require.NoError(t, err) diff --git a/pkg/services/ngalert/notifier/channels/line_test.go b/pkg/services/ngalert/notifier/channels/line_test.go index a6a4a98f85d..a32b215005e 100644 --- a/pkg/services/ngalert/notifier/channels/line_test.go +++ b/pkg/services/ngalert/notifier/channels/line_test.go @@ -5,8 +5,6 @@ import ( "net/url" "testing" - "github.com/grafana/grafana/pkg/services/secrets/fakes" - "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" @@ -15,6 +13,8 @@ import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" + "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" ) func TestLineNotifier(t *testing.T) { @@ -90,7 +90,7 @@ func TestLineNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewLineNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/opsgenie_test.go b/pkg/services/ngalert/notifier/channels/opsgenie_test.go index 51ad5265076..8f07deb00e0 100644 --- a/pkg/services/ngalert/notifier/channels/opsgenie_test.go +++ b/pkg/services/ngalert/notifier/channels/opsgenie_test.go @@ -6,15 +6,16 @@ import ( "testing" "time" + "github.com/grafana/grafana/pkg/bus" + "github.com/grafana/grafana/pkg/components/simplejson" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" "github.com/stretchr/testify/require" - - "github.com/grafana/grafana/pkg/bus" - "github.com/grafana/grafana/pkg/components/simplejson" - "github.com/grafana/grafana/pkg/models" ) func TestOpsgenieNotifier(t *testing.T) { @@ -169,7 +170,7 @@ func TestOpsgenieNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewOpsgenieNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/pagerduty_test.go b/pkg/services/ngalert/notifier/channels/pagerduty_test.go index 013631521e2..a3d1c329b77 100644 --- a/pkg/services/ngalert/notifier/channels/pagerduty_test.go +++ b/pkg/services/ngalert/notifier/channels/pagerduty_test.go @@ -7,15 +7,16 @@ import ( "os" "testing" + "github.com/grafana/grafana/pkg/bus" + "github.com/grafana/grafana/pkg/components/simplejson" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" "github.com/stretchr/testify/require" - - "github.com/grafana/grafana/pkg/bus" - "github.com/grafana/grafana/pkg/components/simplejson" - "github.com/grafana/grafana/pkg/models" ) func TestPagerdutyNotifier(t *testing.T) { @@ -135,7 +136,7 @@ func TestPagerdutyNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewPagerdutyNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/pushover_test.go b/pkg/services/ngalert/notifier/channels/pushover_test.go index 9ba06dfb88b..e5d953ebf0e 100644 --- a/pkg/services/ngalert/notifier/channels/pushover_test.go +++ b/pkg/services/ngalert/notifier/channels/pushover_test.go @@ -15,6 +15,8 @@ import ( "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" @@ -142,7 +144,7 @@ func TestPushoverNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewPushoverNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/sensugo_test.go b/pkg/services/ngalert/notifier/channels/sensugo_test.go index 52edb4a1307..a84053928d9 100644 --- a/pkg/services/ngalert/notifier/channels/sensugo_test.go +++ b/pkg/services/ngalert/notifier/channels/sensugo_test.go @@ -11,6 +11,8 @@ import ( "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" @@ -139,7 +141,7 @@ func TestSensuGoNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue sn, err := NewSensuGoNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/slack_test.go b/pkg/services/ngalert/notifier/channels/slack_test.go index 00b94f5146d..5e86ee8a46d 100644 --- a/pkg/services/ngalert/notifier/channels/slack_test.go +++ b/pkg/services/ngalert/notifier/channels/slack_test.go @@ -12,6 +12,8 @@ import ( "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" @@ -170,7 +172,7 @@ func TestSlackNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewSlackNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/telegram_test.go b/pkg/services/ngalert/notifier/channels/telegram_test.go index ab31eb69ba6..b7e124a887e 100644 --- a/pkg/services/ngalert/notifier/channels/telegram_test.go +++ b/pkg/services/ngalert/notifier/channels/telegram_test.go @@ -5,9 +5,10 @@ import ( "net/url" "testing" - "github.com/grafana/grafana/pkg/services/secrets/fakes" - "github.com/grafana/grafana/pkg/components/simplejson" + "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" @@ -95,7 +96,7 @@ func TestTelegramNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewTelegramNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/threema_test.go b/pkg/services/ngalert/notifier/channels/threema_test.go index 77cf0972e7c..dac8d345719 100644 --- a/pkg/services/ngalert/notifier/channels/threema_test.go +++ b/pkg/services/ngalert/notifier/channels/threema_test.go @@ -5,16 +5,16 @@ import ( "net/url" "testing" + "github.com/grafana/grafana/pkg/bus" + "github.com/grafana/grafana/pkg/components/simplejson" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" "github.com/stretchr/testify/require" - - "github.com/grafana/grafana/pkg/bus" - "github.com/grafana/grafana/pkg/components/simplejson" - "github.com/grafana/grafana/pkg/models" ) func TestThreemaNotifier(t *testing.T) { @@ -108,7 +108,7 @@ func TestThreemaNotifier(t *testing.T) { Settings: settingsJSON, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewThreemaNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/channels/webhook_test.go b/pkg/services/ngalert/notifier/channels/webhook_test.go index 45d4e2bcfd5..4e6272a51ca 100644 --- a/pkg/services/ngalert/notifier/channels/webhook_test.go +++ b/pkg/services/ngalert/notifier/channels/webhook_test.go @@ -6,17 +6,17 @@ import ( "net/url" "testing" + "github.com/grafana/grafana/pkg/bus" + "github.com/grafana/grafana/pkg/components/simplejson" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets/fakes" + secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/prometheus/alertmanager/notify" "github.com/prometheus/alertmanager/template" "github.com/prometheus/alertmanager/types" "github.com/prometheus/common/model" "github.com/stretchr/testify/require" - - "github.com/grafana/grafana/pkg/bus" - "github.com/grafana/grafana/pkg/components/simplejson" - "github.com/grafana/grafana/pkg/models" ) func TestWebhookNotifier(t *testing.T) { @@ -190,7 +190,7 @@ func TestWebhookNotifier(t *testing.T) { OrgID: orgID, } - secretsService := fakes.NewFakeSecretsService() + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue pn, err := NewWebHookNotifier(m, tmpl, decryptFn) if c.expInitError != "" { diff --git a/pkg/services/ngalert/notifier/multiorg_alertmanager_test.go b/pkg/services/ngalert/notifier/multiorg_alertmanager_test.go index b41ba8db8f0..16cbb19e59e 100644 --- a/pkg/services/ngalert/notifier/multiorg_alertmanager_test.go +++ b/pkg/services/ngalert/notifier/multiorg_alertmanager_test.go @@ -14,8 +14,10 @@ import ( "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/ngalert/metrics" "github.com/grafana/grafana/pkg/services/ngalert/models" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" + "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/testutil" "github.com/stretchr/testify/require" @@ -32,7 +34,7 @@ func TestMultiOrgAlertmanager_SyncAlertmanagersForOrgs(t *testing.T) { tmpDir, err := ioutil.TempDir("", "test") require.NoError(t, err) kvStore := newFakeKVStore(t) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue reg := prometheus.NewPedanticRegistry() m := metrics.NewNGAlert(reg) @@ -160,7 +162,7 @@ func TestMultiOrgAlertmanager_SyncAlertmanagersForOrgsWithFailures(t *testing.T) tmpDir, err := ioutil.TempDir("", "test") require.NoError(t, err) kvStore := newFakeKVStore(t) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue reg := prometheus.NewPedanticRegistry() m := metrics.NewNGAlert(reg) @@ -218,7 +220,7 @@ func TestMultiOrgAlertmanager_AlertmanagerFor(t *testing.T) { UnifiedAlerting: setting.UnifiedAlertingSettings{AlertmanagerConfigPollInterval: 3 * time.Minute, DefaultConfiguration: setting.GetAlertmanagerDefaultConfiguration()}, // do not poll in tests. } kvStore := newFakeKVStore(t) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue reg := prometheus.NewPedanticRegistry() m := metrics.NewNGAlert(reg) diff --git a/pkg/services/ngalert/schedule/schedule_unit_test.go b/pkg/services/ngalert/schedule/schedule_unit_test.go index 4d0bd3479af..363a9b853e1 100644 --- a/pkg/services/ngalert/schedule/schedule_unit_test.go +++ b/pkg/services/ngalert/schedule/schedule_unit_test.go @@ -18,8 +18,10 @@ import ( "github.com/grafana/grafana/pkg/services/ngalert/notifier" "github.com/grafana/grafana/pkg/services/ngalert/state" "github.com/grafana/grafana/pkg/services/ngalert/store" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" + "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/model" "github.com/stretchr/testify/require" @@ -237,7 +239,7 @@ func setupScheduler(t *testing.T, rs store.RuleStore, is store.InstanceStore, ac mockedClock := clock.NewMock() logger := log.New("ngalert schedule test") m := metrics.NewNGAlert(prometheus.NewPedanticRegistry()) - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) decryptFn := secretsService.GetDecryptedValue moa, err := notifier.NewMultiOrgAlertmanager(&setting.Cfg{}, ¬ifier.FakeConfigStore{}, ¬ifier.FakeOrgStore{}, ¬ifier.FakeKVStore{}, decryptFn, nil, log.New("testlogger")) require.NoError(t, err) diff --git a/pkg/services/ngalert/tests/util.go b/pkg/services/ngalert/tests/util.go index 935df0dcfbb..b8dc3ba1cd1 100644 --- a/pkg/services/ngalert/tests/util.go +++ b/pkg/services/ngalert/tests/util.go @@ -7,6 +7,8 @@ import ( "testing" "time" + "github.com/grafana/grafana/pkg/services/secrets/database" + "github.com/grafana/grafana/pkg/api/routing" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/ngalert" @@ -33,7 +35,7 @@ func SetupTestEnv(t *testing.T, baseInterval time.Duration) (*ngalert.AlertNG, * m := metrics.NewNGAlert(prometheus.NewRegistry()) sqlStore := sqlstore.InitTestDB(t) - secretsService := secretsManager.SetupTestService(t, sqlStore) + secretsService := secretsManager.SetupTestService(t, database.ProvideSecretsStore(sqlStore)) ng, err := ngalert.ProvideService( cfg, nil, routing.NewRouteRegister(), sqlStore, nil, nil, nil, nil, secretsService, m, diff --git a/pkg/services/pluginsettings/service_test.go b/pkg/services/pluginsettings/service_test.go index f52bdd90db6..bdd7bb2269c 100644 --- a/pkg/services/pluginsettings/service_test.go +++ b/pkg/services/pluginsettings/service_test.go @@ -8,7 +8,9 @@ import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" + "github.com/stretchr/testify/require" ) @@ -16,7 +18,7 @@ func TestService_DecryptedValuesCache(t *testing.T) { t.Run("When plugin settings hasn't been updated, encrypted JSON should be fetched from cache", func(t *testing.T) { ctx := context.Background() - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) psService := ProvideService(bus.New(), nil, secretsService) encryptedJsonData, err := secretsService.EncryptJsonData( @@ -54,7 +56,7 @@ func TestService_DecryptedValuesCache(t *testing.T) { t.Run("When plugin settings is updated, encrypted JSON should not be fetched from cache", func(t *testing.T) { ctx := context.Background() - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) psService := ProvideService(bus.New(), nil, secretsService) encryptedJsonData, err := secretsService.EncryptJsonData( diff --git a/pkg/tsdb/service_test.go b/pkg/tsdb/service_test.go index e75bc023c1e..724afc35904 100644 --- a/pkg/tsdb/service_test.go +++ b/pkg/tsdb/service_test.go @@ -11,8 +11,10 @@ import ( "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/backendplugin" "github.com/grafana/grafana/pkg/services/datasources" + "github.com/grafana/grafana/pkg/services/secrets/fakes" secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager" "github.com/grafana/grafana/pkg/setting" + "github.com/stretchr/testify/require" "golang.org/x/oauth2" ) @@ -103,7 +105,7 @@ func (s *fakeOAuthTokenService) IsOAuthPassThruEnabled(*models.DataSource) bool func createService(t *testing.T) (*Service, *fakeExecutor, *fakeBackendPM) { t.Helper() fakeBackendPM := &fakeBackendPM{} - secretsService := secretsManager.SetupTestService(t, nil) + secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore()) dsService := datasources.ProvideService(bus.New(), nil, secretsService) s := newService( setting.NewCfg(),