mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Fix passing of custom params when running queries (#42728)
* Prometheus: Fix passing of custom params * Remove prints
This commit is contained in:
@@ -11,14 +11,25 @@ import (
|
||||
const (
|
||||
customQueryParametersMiddlewareName = "prom-custom-query-parameters"
|
||||
customQueryParametersKey = "customQueryParameters"
|
||||
grafanaDataKey = "grafanaData"
|
||||
)
|
||||
|
||||
func customQueryParametersMiddleware(logger log.Logger) sdkhttpclient.Middleware {
|
||||
return sdkhttpclient.NamedMiddlewareFunc(customQueryParametersMiddlewareName, func(opts sdkhttpclient.Options, next http.RoundTripper) http.RoundTripper {
|
||||
customQueryParamsVal, exists := opts.CustomOptions[customQueryParametersKey]
|
||||
grafanaData, exists := opts.CustomOptions[grafanaDataKey]
|
||||
if !exists {
|
||||
return next
|
||||
}
|
||||
|
||||
data, ok := grafanaData.(map[string]interface{})
|
||||
if !ok {
|
||||
return next
|
||||
}
|
||||
customQueryParamsVal, exists := data[customQueryParametersKey]
|
||||
if !exists {
|
||||
return next
|
||||
}
|
||||
|
||||
customQueryParams, ok := customQueryParamsVal.(string)
|
||||
if !ok || customQueryParams == "" {
|
||||
return next
|
||||
|
||||
@@ -114,7 +114,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
|
||||
mw := customQueryParametersMiddleware(log.New("test"))
|
||||
rt := mw.CreateMiddleware(httpclient.Options{
|
||||
CustomOptions: map[string]interface{}{
|
||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||
grafanaDataKey: map[string]interface{}{
|
||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||
},
|
||||
},
|
||||
}, finalRoundTripper)
|
||||
require.NotNil(t, rt)
|
||||
@@ -144,7 +146,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
|
||||
mw := customQueryParametersMiddleware(log.New("test"))
|
||||
rt := mw.CreateMiddleware(httpclient.Options{
|
||||
CustomOptions: map[string]interface{}{
|
||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||
grafanaDataKey: map[string]interface{}{
|
||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||
},
|
||||
},
|
||||
}, finalRoundTripper)
|
||||
require.NotNil(t, rt)
|
||||
|
||||
Reference in New Issue
Block a user