[v10.0.x] DataSourceProxy: Fix url validation error handling (#73321)

* DataSourceProxy: Fix url validation error handling (#73087)

* DataSourceProxy: Fix url validation error handling

* DataSourceProxy: Add unit test for proxyDatasourceRequest

* DataSourceProxy: Fix lint error

(cherry picked from commit 8ec4c1bdc8)

* fix test

---------

Co-authored-by: Ricardo Christmann <80476005+ricci2511@users.noreply.github.com>
Co-authored-by: Will Browne <will.browne@grafana.com>
This commit is contained in:
grafana-delivery-bot[bot]
2023-08-16 18:26:51 +03:00
committed by GitHub
parent 305b3aff15
commit 7d4e370cae
2 changed files with 83 additions and 1 deletions
@@ -122,7 +122,8 @@ func (p *DataSourceProxyService) proxyDatasourceRequest(c *contextmodel.ReqConte
proxy, err := pluginproxy.NewDataSourceProxy(ds, plugin.Routes, c, proxyPath, p.Cfg, p.HTTPClientProvider,
p.OAuthTokenService, p.DataSourcesService, p.tracer)
if err != nil {
if errors.Is(err, datasource.URLValidationError{}) {
var urlValidationError datasource.URLValidationError
if errors.As(err, &urlValidationError) {
c.JsonApiErr(http.StatusBadRequest, fmt.Sprintf("Invalid data source URL: %q", ds.URL), err)
} else {
c.JsonApiErr(http.StatusInternalServerError, "Failed creating data source proxy", err)