Update broker--proxy protocol with proxy type

Proxies now include information about what type they are when they poll
for client offers. The broker saves this information along with
snowflake ids and outputs it on the /debug page.
This commit is contained in:
Cecylia Bocovich 2019-11-20 12:41:53 -05:00
parent 7092b2cb2c
commit 7277bb37cd
6 changed files with 75 additions and 40 deletions

View file

@ -29,7 +29,7 @@ func TestBroker(t *testing.T) {
Convey("Adds Snowflake", func() {
So(ctx.snowflakes.Len(), ShouldEqual, 0)
So(len(ctx.idToSnowflake), ShouldEqual, 0)
ctx.AddSnowflake("foo")
ctx.AddSnowflake("foo", "")
So(ctx.snowflakes.Len(), ShouldEqual, 1)
So(len(ctx.idToSnowflake), ShouldEqual, 1)
})
@ -55,7 +55,7 @@ func TestBroker(t *testing.T) {
Convey("Request an offer from the Snowflake Heap", func() {
done := make(chan []byte)
go func() {
offer := ctx.RequestOffer("test")
offer := ctx.RequestOffer("test", "")
done <- offer
}()
request := <-ctx.proxyPolls
@ -79,7 +79,7 @@ func TestBroker(t *testing.T) {
Convey("with a proxy answer if available.", func() {
done := make(chan bool)
// Prepare a fake proxy to respond with.
snowflake := ctx.AddSnowflake("fake")
snowflake := ctx.AddSnowflake("fake", "")
go func() {
clientOffers(ctx, w, r)
done <- true
@ -97,7 +97,7 @@ func TestBroker(t *testing.T) {
return
}
done := make(chan bool)
snowflake := ctx.AddSnowflake("fake")
snowflake := ctx.AddSnowflake("fake", "")
go func() {
clientOffers(ctx, w, r)
// Takes a few seconds here...
@ -147,7 +147,7 @@ func TestBroker(t *testing.T) {
})
Convey("Responds to proxy answers...", func() {
s := ctx.AddSnowflake("test")
s := ctx.AddSnowflake("test", "")
w := httptest.NewRecorder()
data := bytes.NewReader([]byte(`{"Version":"1.0","Sid":"test","Answer":"test"}`))
@ -211,7 +211,7 @@ func TestBroker(t *testing.T) {
// Manually do the Broker goroutine action here for full control.
p := <-ctx.proxyPolls
So(p.id, ShouldEqual, "ymbcCMto7KHNGYlp")
s := ctx.AddSnowflake(p.id)
s := ctx.AddSnowflake(p.id, "")
go func() {
offer := <-s.offerChannel
p.offerChannel <- offer
@ -449,7 +449,7 @@ func TestMetrics(t *testing.T) {
So(err, ShouldBeNil)
// Prepare a fake proxy to respond with.
snowflake := ctx.AddSnowflake("fake")
snowflake := ctx.AddSnowflake("fake", "")
go func() {
clientOffers(ctx, w, r)
done <- true