2021-10-12 22:08:07 +08:00
|
|
|
package manager
|
2021-10-01 20:39:57 +08:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/grafana/grafana/pkg/services/encryption/ossencryption"
|
2021-11-18 03:43:09 +08:00
|
|
|
"github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders"
|
2021-10-12 22:08:07 +08:00
|
|
|
"github.com/grafana/grafana/pkg/services/secrets"
|
2021-10-01 20:39:57 +08:00
|
|
|
"github.com/grafana/grafana/pkg/setting"
|
2021-11-05 00:47:21 +08:00
|
|
|
"github.com/stretchr/testify/assert"
|
2021-10-01 20:39:57 +08:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"gopkg.in/ini.v1"
|
|
|
|
)
|
|
|
|
|
2021-11-05 00:47:21 +08:00
|
|
|
func SetupTestService(tb testing.TB, store secrets.Store) *SecretsService {
|
2021-10-12 22:08:07 +08:00
|
|
|
tb.Helper()
|
2021-10-01 20:39:57 +08:00
|
|
|
defaultKey := "SdlklWklckeLS"
|
|
|
|
if len(setting.SecretKey) > 0 {
|
|
|
|
defaultKey = setting.SecretKey
|
|
|
|
}
|
|
|
|
raw, err := ini.Load([]byte(`
|
|
|
|
[security]
|
|
|
|
secret_key = ` + defaultKey))
|
2021-10-12 22:08:07 +08:00
|
|
|
require.NoError(tb, err)
|
2021-11-05 00:47:21 +08:00
|
|
|
cfg := &setting.Cfg{Raw: raw}
|
2021-11-17 17:52:45 +08:00
|
|
|
cfg.FeatureToggles = map[string]bool{secrets.EnvelopeEncryptionFeatureToggle: true}
|
2021-11-05 00:47:21 +08:00
|
|
|
|
|
|
|
settings := &setting.OSSImpl{Cfg: cfg}
|
2021-11-17 17:52:45 +08:00
|
|
|
assert.True(tb, settings.IsFeatureToggleEnabled(secrets.EnvelopeEncryptionFeatureToggle))
|
2021-10-01 20:39:57 +08:00
|
|
|
|
2021-11-17 17:52:45 +08:00
|
|
|
encryption := ossencryption.ProvideService()
|
|
|
|
secretsService, err := ProvideSecretsService(
|
2021-10-12 22:08:07 +08:00
|
|
|
store,
|
2021-11-17 17:52:45 +08:00
|
|
|
osskmsproviders.ProvideService(encryption, settings),
|
|
|
|
encryption,
|
2021-10-01 20:39:57 +08:00
|
|
|
settings,
|
|
|
|
)
|
2021-11-17 17:52:45 +08:00
|
|
|
require.NoError(tb, err)
|
|
|
|
|
|
|
|
return secretsService
|
2021-10-01 20:39:57 +08:00
|
|
|
}
|