Add redesigned Jolokia input plugin (#2278)
This commit is contained in:
committed by
Daniel Nelson
parent
cadafa6405
commit
ee26191eb5
129
plugins/inputs/jolokia2/client_test.go
Normal file
129
plugins/inputs/jolokia2/client_test.go
Normal file
@@ -0,0 +1,129 @@
|
||||
package jolokia2
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
func TestJolokia2_ClientAuthRequest(t *testing.T) {
|
||||
var username string
|
||||
var password string
|
||||
var requests []map[string]interface{}
|
||||
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
username, password, _ = r.BasicAuth()
|
||||
|
||||
body, _ := ioutil.ReadAll(r.Body)
|
||||
err := json.Unmarshal(body, &requests)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
plugin := setupPlugin(t, fmt.Sprintf(`
|
||||
[jolokia2_agent]
|
||||
urls = ["%s/jolokia"]
|
||||
username = "sally"
|
||||
password = "seashore"
|
||||
[[jolokia2_agent.metric]]
|
||||
name = "hello"
|
||||
mbean = "hello:foo=bar"
|
||||
`, server.URL))
|
||||
|
||||
var acc testutil.Accumulator
|
||||
plugin.Gather(&acc)
|
||||
|
||||
if username != "sally" {
|
||||
t.Errorf("Expected to post with username %s, but was %s", "sally", username)
|
||||
}
|
||||
if password != "seashore" {
|
||||
t.Errorf("Expected to post with password %s, but was %s", "seashore", password)
|
||||
}
|
||||
if len(requests) == 0 {
|
||||
t.Fatal("Expected to post a request body, but was empty.")
|
||||
}
|
||||
|
||||
request := requests[0]
|
||||
if expect := "hello:foo=bar"; request["mbean"] != expect {
|
||||
t.Errorf("Expected to query mbean %s, but was %s", expect, request["mbean"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestJolokia2_ClientProxyAuthRequest(t *testing.T) {
|
||||
var requests []map[string]interface{}
|
||||
|
||||
var username string
|
||||
var password string
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
username, password, _ = r.BasicAuth()
|
||||
|
||||
body, _ := ioutil.ReadAll(r.Body)
|
||||
err := json.Unmarshal(body, &requests)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
plugin := setupPlugin(t, fmt.Sprintf(`
|
||||
[jolokia2_proxy]
|
||||
url = "%s/jolokia"
|
||||
username = "sally"
|
||||
password = "seashore"
|
||||
|
||||
[[jolokia2_proxy.target]]
|
||||
url = "service:jmx:rmi:///jndi/rmi://target:9010/jmxrmi"
|
||||
username = "jack"
|
||||
password = "benimble"
|
||||
|
||||
[[jolokia2_proxy.metric]]
|
||||
name = "hello"
|
||||
mbean = "hello:foo=bar"
|
||||
`, server.URL))
|
||||
|
||||
var acc testutil.Accumulator
|
||||
plugin.Gather(&acc)
|
||||
|
||||
if username != "sally" {
|
||||
t.Errorf("Expected to post with username %s, but was %s", "sally", username)
|
||||
}
|
||||
if password != "seashore" {
|
||||
t.Errorf("Expected to post with password %s, but was %s", "seashore", password)
|
||||
}
|
||||
if len(requests) == 0 {
|
||||
t.Fatal("Expected to post a request body, but was empty.")
|
||||
}
|
||||
|
||||
request := requests[0]
|
||||
if expect := "hello:foo=bar"; request["mbean"] != expect {
|
||||
t.Errorf("Expected to query mbean %s, but was %s", expect, request["mbean"])
|
||||
}
|
||||
|
||||
target, ok := request["target"].(map[string]interface{})
|
||||
if !ok {
|
||||
t.Fatal("Expected a proxy target, but was empty.")
|
||||
}
|
||||
|
||||
if expect := "service:jmx:rmi:///jndi/rmi://target:9010/jmxrmi"; target["url"] != expect {
|
||||
t.Errorf("Expected proxy target url %s, but was %s", expect, target["url"])
|
||||
}
|
||||
|
||||
if expect := "jack"; target["user"] != expect {
|
||||
t.Errorf("Expected proxy target username %s, but was %s", expect, target["user"])
|
||||
}
|
||||
|
||||
if expect := "benimble"; target["password"] != expect {
|
||||
t.Errorf("Expected proxy target password %s, but was %s", expect, target["password"])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user