Chore: use org service methods (#55768)

* Chore: use org service methods

* fix tests

* fix errors

* adjust func signatures for getbyname

* 💩

* Use the same fake service to get the user in AC and in HS

* Fix middleware test

* Fix more middleware test

* Fix api tests

Co-authored-by: gamab <gabi.mabs@gmail.com>
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
This commit is contained in:
Kat Yang
2022-10-04 14:48:02 -04:00
committed by GitHub
co-authored by gamab Ida Furjesova
parent 169f1ab974
commit 7715672fb3
14 changed files with 108 additions and 67 deletions
@@ -7,22 +7,19 @@ import (
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/services/org"
"github.com/grafana/grafana/pkg/services/pluginsettings"
)
type Store interface {
GetOrgByNameHandler(ctx context.Context, query *models.GetOrgByNameQuery) error
}
// Provision scans a directory for provisioning config files
// and provisions the app in those files.
func Provision(ctx context.Context, configDirectory string, store Store, pluginStore plugins.Store, pluginSettings pluginsettings.Service) error {
func Provision(ctx context.Context, configDirectory string, pluginStore plugins.Store, pluginSettings pluginsettings.Service, orgService org.Service) error {
logger := log.New("provisioning.plugins")
ap := PluginProvisioner{
log: logger,
cfgProvider: newConfigReader(logger, pluginStore),
store: store,
pluginSettings: pluginSettings,
orgService: orgService,
}
return ap.applyChanges(ctx, configDirectory)
}
@@ -32,18 +29,19 @@ func Provision(ctx context.Context, configDirectory string, store Store, pluginS
type PluginProvisioner struct {
log log.Logger
cfgProvider configReader
store Store
pluginSettings pluginsettings.Service
orgService org.Service
}
func (ap *PluginProvisioner) apply(ctx context.Context, cfg *pluginsAsConfig) error {
for _, app := range cfg.Apps {
if app.OrgID == 0 && app.OrgName != "" {
getOrgQuery := &models.GetOrgByNameQuery{Name: app.OrgName}
if err := ap.store.GetOrgByNameHandler(ctx, getOrgQuery); err != nil {
getOrgQuery := &org.GetOrgByNameQuery{Name: app.OrgName}
res, err := ap.orgService.GetByName(ctx, getOrgQuery)
if err != nil {
return err
}
app.OrgID = getOrgQuery.Result.Id
app.OrgID = res.ID
} else if app.OrgID < 0 {
app.OrgID = 1
}
@@ -5,6 +5,8 @@ import (
"errors"
"testing"
"github.com/grafana/grafana/pkg/services/org"
"github.com/grafana/grafana/pkg/services/org/orgtest"
"github.com/grafana/grafana/pkg/services/pluginsettings"
"github.com/grafana/grafana/pkg/infra/log"
@@ -34,7 +36,9 @@ func TestPluginProvisioner(t *testing.T) {
}
reader := &testConfigReader{result: cfg}
store := &mockStore{}
ap := PluginProvisioner{log: log.New("test"), cfgProvider: reader, store: store, pluginSettings: store}
orgMock := orgtest.NewOrgServiceFake()
orgMock.ExpectedOrg = &org.Org{ID: 4}
ap := PluginProvisioner{log: log.New("test"), cfgProvider: reader, pluginSettings: store, orgService: orgMock}
err := ap.applyChanges(context.Background(), "")
require.NoError(t, err)