Chore: Propagate context for plugin settings (#41166)

Ref #36734
This commit is contained in:
Marcus Efraimsson
2021-11-02 13:42:55 +01:00
committed by GitHub
parent 1a89d97fed
commit f6be78b5ae
10 changed files with 58 additions and 49 deletions

View File

@@ -1,12 +1,13 @@
package sqlstore
import (
"context"
"time"
"github.com/grafana/grafana/pkg/models"
)
func (ss *SQLStore) GetPluginSettings(orgID int64) ([]*models.PluginSettingInfoDTO, error) {
func (ss *SQLStore) GetPluginSettings(ctx context.Context, orgID int64) ([]*models.PluginSettingInfoDTO, error) {
sql := `SELECT org_id, plugin_id, enabled, pinned, plugin_version
FROM plugin_setting `
params := make([]interface{}, 0)
@@ -16,28 +17,33 @@ func (ss *SQLStore) GetPluginSettings(orgID int64) ([]*models.PluginSettingInfoD
params = append(params, orgID)
}
sess := x.SQL(sql, params...)
var rslt []*models.PluginSettingInfoDTO
if err := sess.Find(&rslt); err != nil {
err := ss.WithDbSession(ctx, func(sess *DBSession) error {
return sess.SQL(sql, params...).Find(&rslt)
})
if err != nil {
return nil, err
}
return rslt, nil
}
func (ss *SQLStore) GetPluginSettingById(query *models.GetPluginSettingByIdQuery) error {
pluginSetting := models.PluginSetting{OrgId: query.OrgId, PluginId: query.PluginId}
has, err := x.Get(&pluginSetting)
if err != nil {
return err
} else if !has {
return models.ErrPluginSettingNotFound
}
query.Result = &pluginSetting
return nil
func (ss *SQLStore) GetPluginSettingById(ctx context.Context, query *models.GetPluginSettingByIdQuery) error {
return ss.WithDbSession(ctx, func(sess *DBSession) error {
pluginSetting := models.PluginSetting{OrgId: query.OrgId, PluginId: query.PluginId}
has, err := sess.Get(&pluginSetting)
if err != nil {
return err
} else if !has {
return models.ErrPluginSettingNotFound
}
query.Result = &pluginSetting
return nil
})
}
func (ss *SQLStore) UpdatePluginSetting(cmd *models.UpdatePluginSettingCmd) error {
return inTransaction(func(sess *DBSession) error {
func (ss *SQLStore) UpdatePluginSetting(ctx context.Context, cmd *models.UpdatePluginSettingCmd) error {
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
var pluginSetting models.PluginSetting
exists, err := sess.Where("org_id=? and plugin_id=?", cmd.OrgId, cmd.PluginId).Get(&pluginSetting)
@@ -94,8 +100,8 @@ func (ss *SQLStore) UpdatePluginSetting(cmd *models.UpdatePluginSettingCmd) erro
})
}
func (ss *SQLStore) UpdatePluginSettingVersion(cmd *models.UpdatePluginSettingVersionCmd) error {
return inTransaction(func(sess *DBSession) error {
func (ss *SQLStore) UpdatePluginSettingVersion(ctx context.Context, cmd *models.UpdatePluginSettingVersionCmd) error {
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
_, err := sess.Exec("UPDATE plugin_setting SET plugin_version=? WHERE org_id=? AND plugin_id=?", cmd.PluginVersion, cmd.OrgId, cmd.PluginId)
return err
})