allow setting basic auth headers for prometheus datasource

This commit is contained in:
r.khavronenko 2017-02-06 16:22:09 +02:00
parent 3827c0a69c
commit 80b92335bb

View File

@ -22,6 +22,18 @@ type PrometheusExecutor struct {
Transport *http.Transport
}
type basicAuthTransport struct {
*http.Transport
username string
password string
}
func (bat basicAuthTransport) RoundTrip(req *http.Request) (*http.Response, error) {
req.SetBasicAuth(bat.username, bat.password)
return http.DefaultTransport.RoundTrip(req)
}
func NewPrometheusExecutor(dsInfo *models.DataSource) (tsdb.Executor, error) {
transport, err := dsInfo.GetHttpTransport()
if err != nil {
@ -51,6 +63,14 @@ func (e *PrometheusExecutor) getClient() (prometheus.QueryAPI, error) {
Transport: e.Transport,
}
if e.BasicAuth {
cfg.Transport = basicAuthTransport{
Transport: e.Transport,
username: e.BasicAuthUser,
password: e.BasicAuthPassword,
}
}
client, err := prometheus.New(cfg)
if err != nil {
return nil, err