Chore: Add context to org (#40685)
* Add context to org * Rebase * Fix rebase
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package datasources
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@@ -17,7 +18,7 @@ type configReader struct {
|
||||
log log.Logger
|
||||
}
|
||||
|
||||
func (cr *configReader) readConfig(path string) ([]*configs, error) {
|
||||
func (cr *configReader) readConfig(ctx context.Context, path string) ([]*configs, error) {
|
||||
var datasources []*configs
|
||||
|
||||
files, err := ioutil.ReadDir(path)
|
||||
@@ -39,7 +40,7 @@ func (cr *configReader) readConfig(path string) ([]*configs, error) {
|
||||
}
|
||||
}
|
||||
|
||||
err = cr.validateDefaultUniqueness(datasources)
|
||||
err = cr.validateDefaultUniqueness(ctx, datasources)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -88,7 +89,7 @@ func (cr *configReader) parseDatasourceConfig(path string, file os.FileInfo) (*c
|
||||
return v0.mapToDatasourceFromConfig(apiVersion.APIVersion), nil
|
||||
}
|
||||
|
||||
func (cr *configReader) validateDefaultUniqueness(datasources []*configs) error {
|
||||
func (cr *configReader) validateDefaultUniqueness(ctx context.Context, datasources []*configs) error {
|
||||
defaultCount := map[int64]int{}
|
||||
for i := range datasources {
|
||||
if datasources[i].Datasources == nil {
|
||||
@@ -100,7 +101,7 @@ func (cr *configReader) validateDefaultUniqueness(datasources []*configs) error
|
||||
ds.OrgID = 1
|
||||
}
|
||||
|
||||
if err := cr.validateAccessAndOrgID(ds); err != nil {
|
||||
if err := cr.validateAccessAndOrgID(ctx, ds); err != nil {
|
||||
return fmt.Errorf("failed to provision %q data source: %w", ds.Name, err)
|
||||
}
|
||||
|
||||
@@ -122,8 +123,8 @@ func (cr *configReader) validateDefaultUniqueness(datasources []*configs) error
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cr *configReader) validateAccessAndOrgID(ds *upsertDataSourceFromConfig) error {
|
||||
if err := utils.CheckOrgExists(ds.OrgID); err != nil {
|
||||
func (cr *configReader) validateAccessAndOrgID(ctx context.Context, ds *upsertDataSourceFromConfig) error {
|
||||
if err := utils.CheckOrgExists(ctx, ds.OrgID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -151,20 +151,20 @@ func TestDatasourceAsConfig(t *testing.T) {
|
||||
|
||||
t.Run("broken yaml should return error", func(t *testing.T) {
|
||||
reader := &configReader{}
|
||||
_, err := reader.readConfig(brokenYaml)
|
||||
_, err := reader.readConfig(context.Background(), brokenYaml)
|
||||
require.NotNil(t, err)
|
||||
})
|
||||
|
||||
t.Run("invalid access should warn about invalid value and return 'proxy'", func(t *testing.T) {
|
||||
reader := &configReader{log: logger}
|
||||
configs, err := reader.readConfig(invalidAccess)
|
||||
configs, err := reader.readConfig(context.Background(), invalidAccess)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, configs[0].Datasources[0].Access, models.DS_ACCESS_PROXY)
|
||||
})
|
||||
|
||||
t.Run("skip invalid directory", func(t *testing.T) {
|
||||
cfgProvider := &configReader{log: log.New("test logger")}
|
||||
cfg, err := cfgProvider.readConfig("./invalid-directory")
|
||||
cfg, err := cfgProvider.readConfig(context.Background(), "./invalid-directory")
|
||||
if err != nil {
|
||||
t.Fatalf("readConfig return an error %v", err)
|
||||
}
|
||||
@@ -175,7 +175,7 @@ func TestDatasourceAsConfig(t *testing.T) {
|
||||
t.Run("can read all properties from version 1", func(t *testing.T) {
|
||||
_ = os.Setenv("TEST_VAR", "name")
|
||||
cfgProvider := &configReader{log: log.New("test logger")}
|
||||
cfg, err := cfgProvider.readConfig(allProperties)
|
||||
cfg, err := cfgProvider.readConfig(context.Background(), allProperties)
|
||||
_ = os.Unsetenv("TEST_VAR")
|
||||
if err != nil {
|
||||
t.Fatalf("readConfig return an error %v", err)
|
||||
@@ -204,7 +204,7 @@ func TestDatasourceAsConfig(t *testing.T) {
|
||||
|
||||
t.Run("can read all properties from version 0", func(t *testing.T) {
|
||||
cfgProvider := &configReader{log: log.New("test logger")}
|
||||
cfg, err := cfgProvider.readConfig(versionZero)
|
||||
cfg, err := cfgProvider.readConfig(context.Background(), versionZero)
|
||||
if err != nil {
|
||||
t.Fatalf("readConfig return an error %v", err)
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ func (dc *DatasourceProvisioner) apply(ctx context.Context, cfg *configs) error
|
||||
}
|
||||
|
||||
func (dc *DatasourceProvisioner) applyChanges(ctx context.Context, configPath string) error {
|
||||
configs, err := dc.cfgProvider.readConfig(configPath)
|
||||
configs, err := dc.cfgProvider.readConfig(ctx, configPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user