Chore: Add context to datasource service (#42294)
* Add context to datasource service * Adjust wire for ShouldBeReported method * Replace inTransactionCtx
This commit is contained in:
@@ -40,40 +40,45 @@ func (ss *SQLStore) GetDataSource(ctx context.Context, query *models.GetDataSour
|
||||
})
|
||||
}
|
||||
|
||||
func (ss *SQLStore) GetDataSources(query *models.GetDataSourcesQuery) error {
|
||||
func (ss *SQLStore) GetDataSources(ctx context.Context, query *models.GetDataSourcesQuery) error {
|
||||
var sess *xorm.Session
|
||||
if query.DataSourceLimit <= 0 {
|
||||
sess = x.Where("org_id=?", query.OrgId).Asc("name")
|
||||
} else {
|
||||
sess = x.Limit(query.DataSourceLimit, 0).Where("org_id=?", query.OrgId).Asc("name")
|
||||
}
|
||||
return ss.WithDbSession(ctx, func(dbSess *DBSession) error {
|
||||
if query.DataSourceLimit <= 0 {
|
||||
sess = dbSess.Where("org_id=?", query.OrgId).Asc("name")
|
||||
} else {
|
||||
sess = dbSess.Limit(query.DataSourceLimit, 0).Where("org_id=?", query.OrgId).Asc("name")
|
||||
}
|
||||
|
||||
query.Result = make([]*models.DataSource, 0)
|
||||
return sess.Find(&query.Result)
|
||||
query.Result = make([]*models.DataSource, 0)
|
||||
return sess.Find(&query.Result)
|
||||
})
|
||||
}
|
||||
|
||||
// GetDataSourcesByType returns all datasources for a given type or an error if the specified type is an empty string
|
||||
func (ss *SQLStore) GetDataSourcesByType(query *models.GetDataSourcesByTypeQuery) error {
|
||||
func (ss *SQLStore) GetDataSourcesByType(ctx context.Context, query *models.GetDataSourcesByTypeQuery) error {
|
||||
if query.Type == "" {
|
||||
return fmt.Errorf("datasource type cannot be empty")
|
||||
}
|
||||
|
||||
query.Result = make([]*models.DataSource, 0)
|
||||
return x.Where("type=?", query.Type).Asc("id").Find(&query.Result)
|
||||
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
||||
return sess.Where("type=?", query.Type).Asc("id").Find(&query.Result)
|
||||
})
|
||||
}
|
||||
|
||||
// GetDefaultDataSource is used to get the default datasource of organization
|
||||
func (ss *SQLStore) GetDefaultDataSource(query *models.GetDefaultDataSourceQuery) error {
|
||||
func (ss *SQLStore) GetDefaultDataSource(ctx context.Context, query *models.GetDefaultDataSourceQuery) error {
|
||||
datasource := models.DataSource{}
|
||||
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
||||
exists, err := sess.Where("org_id=? AND is_default=?", query.OrgId, true).Get(&datasource)
|
||||
|
||||
exists, err := x.Where("org_id=? AND is_default=?", query.OrgId, true).Get(&datasource)
|
||||
if !exists {
|
||||
return models.ErrDataSourceNotFound
|
||||
}
|
||||
|
||||
if !exists {
|
||||
return models.ErrDataSourceNotFound
|
||||
}
|
||||
|
||||
query.Result = &datasource
|
||||
return err
|
||||
query.Result = &datasource
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
// DeleteDataSource removes a datasource by org_id as well as either uid (preferred), id, or name
|
||||
@@ -194,7 +199,7 @@ func updateIsDefaultFlag(ds *models.DataSource, sess *DBSession) error {
|
||||
}
|
||||
|
||||
func (ss *SQLStore) UpdateDataSource(ctx context.Context, cmd *models.UpdateDataSourceCommand) error {
|
||||
return inTransactionCtx(ctx, func(sess *DBSession) error {
|
||||
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
|
||||
if cmd.JsonData == nil {
|
||||
cmd.JsonData = simplejson.New()
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ func TestDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
|
||||
@@ -63,7 +63,7 @@ func TestDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
@@ -97,7 +97,7 @@ func TestDataAccess(t *testing.T) {
|
||||
sqlStore := InitTestDB(t)
|
||||
|
||||
var created *events.DataSourceCreated
|
||||
bus.AddEventListener(func(e *events.DataSourceCreated) error {
|
||||
bus.AddEventListenerCtx(func(ctx context.Context, e *events.DataSourceCreated) error {
|
||||
created = e
|
||||
return nil
|
||||
})
|
||||
@@ -110,7 +110,7 @@ func TestDataAccess(t *testing.T) {
|
||||
}, time.Second, time.Millisecond)
|
||||
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
|
||||
@@ -216,7 +216,7 @@ func TestDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, 0, len(query.Result))
|
||||
@@ -229,7 +229,7 @@ func TestDataAccess(t *testing.T) {
|
||||
err := sqlStore.DeleteDataSource(context.Background(), &models.DeleteDataSourceCommand{ID: ds.Id, OrgID: 123123})
|
||||
require.NoError(t, err)
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
@@ -241,7 +241,7 @@ func TestDataAccess(t *testing.T) {
|
||||
ds := initDatasource(sqlStore)
|
||||
|
||||
var deleted *events.DataSourceDeleted
|
||||
bus.AddEventListener(func(e *events.DataSourceDeleted) error {
|
||||
bus.AddEventListenerCtx(func(ctx context.Context, e *events.DataSourceDeleted) error {
|
||||
deleted = e
|
||||
return nil
|
||||
})
|
||||
@@ -267,7 +267,7 @@ func TestDataAccess(t *testing.T) {
|
||||
err := sqlStore.DeleteDataSource(context.Background(), &models.DeleteDataSourceCommand{Name: ds.Name, OrgID: ds.OrgId})
|
||||
require.NoError(t, err)
|
||||
|
||||
err = sqlStore.GetDataSources(&query)
|
||||
err = sqlStore.GetDataSources(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, 0, len(query.Result))
|
||||
@@ -291,7 +291,7 @@ func TestDataAccess(t *testing.T) {
|
||||
}
|
||||
query := models.GetDataSourcesQuery{OrgId: 10, DataSourceLimit: datasourceLimit}
|
||||
|
||||
err := sqlStore.GetDataSources(&query)
|
||||
err := sqlStore.GetDataSources(context.Background(), &query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, datasourceLimit, len(query.Result))
|
||||
@@ -314,7 +314,7 @@ func TestDataAccess(t *testing.T) {
|
||||
}
|
||||
query := models.GetDataSourcesQuery{OrgId: 10}
|
||||
|
||||
err := sqlStore.GetDataSources(&query)
|
||||
err := sqlStore.GetDataSources(context.Background(), &query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, numberOfDatasource, len(query.Result))
|
||||
@@ -337,7 +337,7 @@ func TestDataAccess(t *testing.T) {
|
||||
}
|
||||
query := models.GetDataSourcesQuery{OrgId: 10, DataSourceLimit: -1}
|
||||
|
||||
err := sqlStore.GetDataSources(&query)
|
||||
err := sqlStore.GetDataSources(context.Background(), &query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, numberOfDatasource, len(query.Result))
|
||||
@@ -372,7 +372,7 @@ func TestDataAccess(t *testing.T) {
|
||||
|
||||
query := models.GetDataSourcesByTypeQuery{Type: models.DS_ES}
|
||||
|
||||
err = sqlStore.GetDataSourcesByType(&query)
|
||||
err = sqlStore.GetDataSourcesByType(context.Background(), &query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 1, len(query.Result))
|
||||
@@ -383,7 +383,7 @@ func TestDataAccess(t *testing.T) {
|
||||
|
||||
query := models.GetDataSourcesByTypeQuery{}
|
||||
|
||||
err := sqlStore.GetDataSourcesByType(&query)
|
||||
err := sqlStore.GetDataSourcesByType(context.Background(), &query)
|
||||
|
||||
require.Error(t, err)
|
||||
})
|
||||
@@ -408,7 +408,7 @@ func TestGetDefaultDataSource(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
query := models.GetDefaultDataSourceQuery{OrgId: 10}
|
||||
err = sqlStore.GetDefaultDataSource(&query)
|
||||
err = sqlStore.GetDefaultDataSource(context.Background(), &query)
|
||||
require.Error(t, err)
|
||||
assert.True(t, errors.Is(err, models.ErrDataSourceNotFound))
|
||||
})
|
||||
@@ -429,7 +429,7 @@ func TestGetDefaultDataSource(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
query := models.GetDefaultDataSourceQuery{OrgId: 10}
|
||||
err = sqlStore.GetDefaultDataSource(&query)
|
||||
err = sqlStore.GetDefaultDataSource(context.Background(), &query)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "default datasource", query.Result.Name)
|
||||
})
|
||||
@@ -437,7 +437,7 @@ func TestGetDefaultDataSource(t *testing.T) {
|
||||
t.Run("should not return default datasource of other organisation", func(t *testing.T) {
|
||||
sqlStore := InitTestDB(t)
|
||||
query := models.GetDefaultDataSourceQuery{OrgId: 1}
|
||||
err := sqlStore.GetDefaultDataSource(&query)
|
||||
err := sqlStore.GetDefaultDataSource(context.Background(), &query)
|
||||
require.Error(t, err)
|
||||
assert.True(t, errors.Is(err, models.ErrDataSourceNotFound))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user