Chore: Refactor secrets service (#40331)

This commit is contained in:
Tania B
2021-10-12 17:08:07 +03:00
committed by GitHub
parent fd1b0de34b
commit f59aabbd3b
13 changed files with 528 additions and 384 deletions
@@ -0,0 +1,41 @@
package fakes
import (
"context"
"github.com/grafana/grafana/pkg/services/secrets"
)
type FakeSecretsService struct{}
func NewFakeSecretsService() FakeSecretsService {
return FakeSecretsService{}
}
func (f FakeSecretsService) Encrypt(_ context.Context, payload []byte, _ secrets.EncryptionOptions) ([]byte, error) {
return payload, nil
}
func (f FakeSecretsService) Decrypt(_ context.Context, payload []byte) ([]byte, error) {
return payload, nil
}
func (f FakeSecretsService) EncryptJsonData(_ context.Context, kv map[string]string, _ secrets.EncryptionOptions) (map[string][]byte, error) {
result := make(map[string][]byte, len(kv))
for key, value := range kv {
result[key] = []byte(value)
}
return result, nil
}
func (f FakeSecretsService) DecryptJsonData(_ context.Context, sjd map[string][]byte) (map[string]string, error) {
result := make(map[string]string, len(sjd))
for key, value := range sjd {
result[key] = string(value)
}
return result, nil
}
func (f FakeSecretsService) GetDecryptedValue(_ context.Context, sjd map[string][]byte, key, fallback string) string {
if value, ok := sjd[key]; ok {
return string(value)
}
return fallback
}
+47
View File
@@ -0,0 +1,47 @@
package fakes
import (
"context"
"github.com/grafana/grafana/pkg/services/secrets"
"xorm.io/xorm"
)
type FakeSecretsStore struct {
store map[string]*secrets.DataKey
}
func NewFakeSecretsStore() FakeSecretsStore {
return FakeSecretsStore{store: make(map[string]*secrets.DataKey)}
}
func (f FakeSecretsStore) GetDataKey(_ context.Context, name string) (*secrets.DataKey, error) {
key, ok := f.store[name]
if !ok {
return nil, secrets.ErrDataKeyNotFound
}
return key, nil
}
func (f FakeSecretsStore) GetAllDataKeys(_ context.Context) ([]*secrets.DataKey, error) {
result := make([]*secrets.DataKey, 0)
for _, key := range f.store {
result = append(result, key)
}
return result, nil
}
func (f FakeSecretsStore) CreateDataKey(_ context.Context, dataKey secrets.DataKey) error {
f.store[dataKey.Name] = &dataKey
return nil
}
func (f FakeSecretsStore) CreateDataKeyWithDBSession(ctx context.Context, dataKey secrets.DataKey, sess *xorm.Session) error {
f.store[dataKey.Name] = &dataKey
return nil
}
func (f FakeSecretsStore) DeleteDataKey(_ context.Context, name string) error {
delete(f.store, name)
return nil
}