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 (
|
const (
|
||||||
customQueryParametersMiddlewareName = "prom-custom-query-parameters"
|
customQueryParametersMiddlewareName = "prom-custom-query-parameters"
|
||||||
customQueryParametersKey = "customQueryParameters"
|
customQueryParametersKey = "customQueryParameters"
|
||||||
|
grafanaDataKey = "grafanaData"
|
||||||
)
|
)
|
||||||
|
|
||||||
func customQueryParametersMiddleware(logger log.Logger) sdkhttpclient.Middleware {
|
func customQueryParametersMiddleware(logger log.Logger) sdkhttpclient.Middleware {
|
||||||
return sdkhttpclient.NamedMiddlewareFunc(customQueryParametersMiddlewareName, func(opts sdkhttpclient.Options, next http.RoundTripper) http.RoundTripper {
|
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 {
|
if !exists {
|
||||||
return next
|
return next
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data, ok := grafanaData.(map[string]interface{})
|
||||||
|
if !ok {
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
customQueryParamsVal, exists := data[customQueryParametersKey]
|
||||||
|
if !exists {
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
|
||||||
customQueryParams, ok := customQueryParamsVal.(string)
|
customQueryParams, ok := customQueryParamsVal.(string)
|
||||||
if !ok || customQueryParams == "" {
|
if !ok || customQueryParams == "" {
|
||||||
return next
|
return next
|
||||||
|
|||||||
@@ -114,7 +114,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
|
|||||||
mw := customQueryParametersMiddleware(log.New("test"))
|
mw := customQueryParametersMiddleware(log.New("test"))
|
||||||
rt := mw.CreateMiddleware(httpclient.Options{
|
rt := mw.CreateMiddleware(httpclient.Options{
|
||||||
CustomOptions: map[string]interface{}{
|
CustomOptions: map[string]interface{}{
|
||||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
grafanaDataKey: map[string]interface{}{
|
||||||
|
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}, finalRoundTripper)
|
}, finalRoundTripper)
|
||||||
require.NotNil(t, rt)
|
require.NotNil(t, rt)
|
||||||
@@ -144,7 +146,9 @@ func TestCustomQueryParametersMiddleware(t *testing.T) {
|
|||||||
mw := customQueryParametersMiddleware(log.New("test"))
|
mw := customQueryParametersMiddleware(log.New("test"))
|
||||||
rt := mw.CreateMiddleware(httpclient.Options{
|
rt := mw.CreateMiddleware(httpclient.Options{
|
||||||
CustomOptions: map[string]interface{}{
|
CustomOptions: map[string]interface{}{
|
||||||
customQueryParametersKey: "custom=par/am&second=f oo",
|
grafanaDataKey: map[string]interface{}{
|
||||||
|
customQueryParametersKey: "custom=par/am&second=f oo",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}, finalRoundTripper)
|
}, finalRoundTripper)
|
||||||
require.NotNil(t, rt)
|
require.NotNil(t, rt)
|
||||||
|
|||||||
Reference in New Issue
Block a user