undo split hello and auth commands, to reduce roundtrips
This commit is contained in:
parent
bb35a5aecc
commit
3d0f5d204c
|
@ -28,9 +28,10 @@ type Instrumental struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultHost = "collector.instrumentalapp.com"
|
DefaultHost = "collector.instrumentalapp.com"
|
||||||
HelloMessage = "hello version go/telegraf/1.1\n"
|
HelloMessage = "hello version go/telegraf/1.1\n"
|
||||||
AuthFormat = "authenticate %s\n"
|
AuthFormat = "authenticate %s\n"
|
||||||
|
HandshakeFormat = HelloMessage + AuthFormat
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -59,12 +60,6 @@ func (i *Instrumental) Connect() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = i.hello(connection)
|
|
||||||
if err != nil {
|
|
||||||
i.conn = nil
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = i.authenticate(connection)
|
err = i.authenticate(connection)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
i.conn = nil
|
i.conn = nil
|
||||||
|
@ -175,39 +170,19 @@ func (i *Instrumental) SampleConfig() string {
|
||||||
return sampleConfig
|
return sampleConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *Instrumental) hello(conn net.Conn) error {
|
|
||||||
_, err := fmt.Fprintf(conn, HelloMessage)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
response := make([]byte, 512)
|
|
||||||
if _, err = conn.Read(response); err != nil {
|
|
||||||
fmt.Println("hello err", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if string(response)[:3] != "ok\n" {
|
|
||||||
return fmt.Errorf("Hello failed: %s", response)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *Instrumental) authenticate(conn net.Conn) error {
|
func (i *Instrumental) authenticate(conn net.Conn) error {
|
||||||
_, err := fmt.Fprintf(conn, AuthFormat, i.ApiToken)
|
_, err := fmt.Fprintf(conn, HandshakeFormat, i.ApiToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// The response here will either be an "ok" or an error message.
|
// The response here will either be two "ok"s or an error message.
|
||||||
responses := make([]byte, 512)
|
responses := make([]byte, 512)
|
||||||
if _, err = conn.Read(responses); err != nil {
|
if _, err = conn.Read(responses); err != nil {
|
||||||
fmt.Println("err was not nil: ", err)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if string(responses)[:3] != "ok\n" {
|
if string(responses)[:6] != "ok\nok\n" {
|
||||||
return fmt.Errorf("Authentication failed: %s", responses)
|
return fmt.Errorf("Authentication failed: %s", responses)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,10 +79,9 @@ func TCPServer(t *testing.T, wg *sync.WaitGroup) {
|
||||||
|
|
||||||
hello, _ := tp.ReadLine()
|
hello, _ := tp.ReadLine()
|
||||||
assert.Equal(t, "hello version go/telegraf/1.1", hello)
|
assert.Equal(t, "hello version go/telegraf/1.1", hello)
|
||||||
conn.Write([]byte("ok\n"))
|
|
||||||
auth, _ := tp.ReadLine()
|
auth, _ := tp.ReadLine()
|
||||||
assert.Equal(t, "authenticate abc123token", auth)
|
assert.Equal(t, "authenticate abc123token", auth)
|
||||||
conn.Write([]byte("ok\n"))
|
conn.Write([]byte("ok\nok\n"))
|
||||||
|
|
||||||
data1, _ := tp.ReadLine()
|
data1, _ := tp.ReadLine()
|
||||||
assert.Equal(t, "gauge my.prefix.192_168_0_1.mymeasurement.myfield 3.14 1289430000", data1)
|
assert.Equal(t, "gauge my.prefix.192_168_0_1.mymeasurement.myfield 3.14 1289430000", data1)
|
||||||
|
@ -96,11 +95,9 @@ func TCPServer(t *testing.T, wg *sync.WaitGroup) {
|
||||||
|
|
||||||
hello, _ = tp.ReadLine()
|
hello, _ = tp.ReadLine()
|
||||||
assert.Equal(t, "hello version go/telegraf/1.1", hello)
|
assert.Equal(t, "hello version go/telegraf/1.1", hello)
|
||||||
conn.Write([]byte("ok\n"))
|
|
||||||
|
|
||||||
auth, _ = tp.ReadLine()
|
auth, _ = tp.ReadLine()
|
||||||
assert.Equal(t, "authenticate abc123token", auth)
|
assert.Equal(t, "authenticate abc123token", auth)
|
||||||
conn.Write([]byte("ok\n"))
|
conn.Write([]byte("ok\nok\n"))
|
||||||
|
|
||||||
data3, _ := tp.ReadLine()
|
data3, _ := tp.ReadLine()
|
||||||
assert.Equal(t, "increment my.prefix.192_168_0_1.my_histogram 3.14 1289430000", data3)
|
assert.Equal(t, "increment my.prefix.192_168_0_1.my_histogram 3.14 1289430000", data3)
|
||||||
|
|
Loading…
Reference in New Issue