SQL Datasources: Use health check for config test (#59867)

* SQL Datasources: Use health check for config test

* Remove unnecessary test

* Fix test errors

* Revert mysql go driver update

* Use transform query error

* Use TransformQueryError from sql_engine
This commit is contained in:
Zoltán Bedi
2022-12-19 17:17:52 +01:00
committed by GitHub
parent 77786f236a
commit c25fe34ac0
7 changed files with 65 additions and 86 deletions

View File

@ -107,7 +107,7 @@ type QueryJson struct {
Format string `json:"format"`
}
func (e *DataSourceHandler) transformQueryError(logger log.Logger, err error) error {
func (e *DataSourceHandler) TransformQueryError(logger log.Logger, err error) error {
// OpError is the error type usually returned by functions in the net
// package. It describes the operation, network type, and address of
// an error. We log this error rather than return it to the client
@ -173,6 +173,10 @@ func (e *DataSourceHandler) Dispose() {
e.log.Debug("Engine disposed")
}
func (e *DataSourceHandler) Ping() error {
return e.engine.Ping()
}
func (e *DataSourceHandler) QueryData(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) {
result := backend.NewQueryDataResponse()
ch := make(chan DBDataResponse, len(req.Queries))
@ -250,14 +254,14 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
// global substitutions
interpolatedQuery, err := Interpolate(query, timeRange, e.dsInfo.JsonData.TimeInterval, queryJson.RawSql)
if err != nil {
errAppendDebug("interpolation failed", e.transformQueryError(logger, err), interpolatedQuery)
errAppendDebug("interpolation failed", e.TransformQueryError(logger, err), interpolatedQuery)
return
}
// data source specific substitutions
interpolatedQuery, err = e.macroEngine.Interpolate(&query, timeRange, interpolatedQuery)
if err != nil {
errAppendDebug("interpolation failed", e.transformQueryError(logger, err), interpolatedQuery)
errAppendDebug("interpolation failed", e.TransformQueryError(logger, err), interpolatedQuery)
return
}
@ -267,7 +271,7 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
rows, err := db.QueryContext(queryContext, interpolatedQuery)
if err != nil {
errAppendDebug("db query error", e.transformQueryError(logger, err), interpolatedQuery)
errAppendDebug("db query error", e.TransformQueryError(logger, err), interpolatedQuery)
return
}
defer func() {