mirror of
https://github.com/grafana/grafana.git
synced 2025-09-25 21:04:05 +08:00
Plugins: Refactor plugin settings service (#45967)
* tests passing * rename and rejig * move interface to package and rename to Store * new package * add import alias
This commit is contained in:
@ -15,32 +15,32 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/adapters"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsettings"
|
||||
pluginSettings "github.com/grafana/grafana/pkg/services/pluginsettings/service"
|
||||
"github.com/grafana/grafana/pkg/services/secrets"
|
||||
"github.com/grafana/grafana/pkg/util/errutil"
|
||||
)
|
||||
|
||||
func ProvideService(bus bus.Bus, cacheService *localcache.CacheService, pluginStore plugins.Store,
|
||||
dataSourceCache datasources.CacheService, secretsService secrets.Service,
|
||||
pluginSettingsService *pluginsettings.ServiceImpl) *Provider {
|
||||
pluginSettingsService *pluginSettings.Service) *Provider {
|
||||
return &Provider{
|
||||
Bus: bus,
|
||||
CacheService: cacheService,
|
||||
bus: bus,
|
||||
cacheService: cacheService,
|
||||
pluginStore: pluginStore,
|
||||
DataSourceCache: dataSourceCache,
|
||||
SecretsService: secretsService,
|
||||
PluginSettingsService: pluginSettingsService,
|
||||
dataSourceCache: dataSourceCache,
|
||||
secretsService: secretsService,
|
||||
pluginSettingsService: pluginSettingsService,
|
||||
logger: log.New("plugincontext"),
|
||||
}
|
||||
}
|
||||
|
||||
type Provider struct {
|
||||
Bus bus.Bus
|
||||
CacheService *localcache.CacheService
|
||||
bus bus.Bus
|
||||
cacheService *localcache.CacheService
|
||||
pluginStore plugins.Store
|
||||
DataSourceCache datasources.CacheService
|
||||
SecretsService secrets.Service
|
||||
PluginSettingsService *pluginsettings.ServiceImpl
|
||||
dataSourceCache datasources.CacheService
|
||||
secretsService secrets.Service
|
||||
pluginSettingsService *pluginSettings.Service
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@ func (p *Provider) Get(ctx context.Context, pluginID string, datasourceUID strin
|
||||
if err != nil {
|
||||
return pc, false, errutil.Wrap("Failed to unmarshal plugin json data", err)
|
||||
}
|
||||
decryptedSecureJSONData = p.PluginSettingsService.DecryptedValues(ps)
|
||||
decryptedSecureJSONData = p.pluginSettingsService.DecryptedValues(ps)
|
||||
updated = ps.Updated
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ func (p *Provider) Get(ctx context.Context, pluginID string, datasourceUID strin
|
||||
}
|
||||
|
||||
if datasourceUID != "" {
|
||||
ds, err := p.DataSourceCache.GetDatasourceByUID(ctx, datasourceUID, user, skipCache)
|
||||
ds, err := p.dataSourceCache.GetDatasourceByUID(ctx, datasourceUID, user, skipCache)
|
||||
if err != nil {
|
||||
return pc, false, errutil.Wrap("Failed to get datasource", err)
|
||||
}
|
||||
@ -106,7 +106,7 @@ const pluginSettingsCachePrefix = "plugin-setting-"
|
||||
func (p *Provider) getCachedPluginSettings(ctx context.Context, pluginID string, user *models.SignedInUser) (*models.PluginSetting, error) {
|
||||
cacheKey := pluginSettingsCachePrefix + pluginID
|
||||
|
||||
if cached, found := p.CacheService.Get(cacheKey); found {
|
||||
if cached, found := p.cacheService.Get(cacheKey); found {
|
||||
ps := cached.(*models.PluginSetting)
|
||||
if ps.OrgId == user.OrgId {
|
||||
return ps, nil
|
||||
@ -114,17 +114,17 @@ func (p *Provider) getCachedPluginSettings(ctx context.Context, pluginID string,
|
||||
}
|
||||
|
||||
query := models.GetPluginSettingByIdQuery{PluginId: pluginID, OrgId: user.OrgId}
|
||||
if err := p.PluginSettingsService.GetPluginSettingById(ctx, &query); err != nil {
|
||||
if err := p.pluginSettingsService.GetPluginSettingById(ctx, &query); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p.CacheService.Set(cacheKey, query.Result, pluginSettingsCacheTTL)
|
||||
p.cacheService.Set(cacheKey, query.Result, pluginSettingsCacheTTL)
|
||||
return query.Result, nil
|
||||
}
|
||||
|
||||
func (p *Provider) decryptSecureJsonDataFn() func(map[string][]byte) map[string]string {
|
||||
return func(m map[string][]byte) map[string]string {
|
||||
decryptedJsonData, err := p.SecretsService.DecryptJsonData(context.Background(), m)
|
||||
decryptedJsonData, err := p.secretsService.DecryptJsonData(context.Background(), m)
|
||||
if err != nil {
|
||||
p.logger.Error("Failed to decrypt secure json data", "error", err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user