Skip to content

Commit

Permalink
remoteconfig: fix products reporting (#2384)
Browse files Browse the repository at this point in the history
Fix related to #2380 : the RC client must report all registered products.
  • Loading branch information
ahmed-mez committed Nov 27, 2023
1 parent 6a7dc15 commit 6becedc
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 5 deletions.
6 changes: 1 addition & 5 deletions internal/remoteconfig/remoteconfig.go
Expand Up @@ -520,10 +520,6 @@ func (c *Client) newUpdateRequest() (bytes.Buffer, error) {
for i := range c.capabilities {
capa.SetBit(capa, int(i), 1)
}
products := make([]string, 0, len(c.products))
for p := range c.products {
products = append(products, p)
}
req := clientGetConfigsRequest{
Client: &clientData{
State: &clientState{
Expand All @@ -534,7 +530,7 @@ func (c *Client) newUpdateRequest() (bytes.Buffer, error) {
Error: errMsg,
},
ID: c.clientID,
Products: products,
Products: c.allProducts(),
IsTracer: true,
ClientTracer: &clientTracer{
RuntimeID: c.RuntimeID,
Expand Down
34 changes: 34 additions & 0 deletions internal/remoteconfig/remoteconfig_test.go
Expand Up @@ -343,3 +343,37 @@ func TestSubscribe(t *testing.T) {
require.Len(t, client.productsWithCallbacks, 1)
require.Equal(t, reflect.ValueOf(callback), reflect.ValueOf(client.callbacks[0]))
}

func TestNewUpdateRequest(t *testing.T) {
cfg := DefaultClientConfig()
cfg.ServiceName = "test-svc"
cfg.Env = "test-env"
cfg.TracerVersion = "tracer-version"
cfg.AppVersion = "app-version"
var err error
client, err = newClient(cfg)
require.NoError(t, err)

err = RegisterProduct("my-product")
require.NoError(t, err)
err = RegisterCapability(ASMActivation)
require.NoError(t, err)
err = Subscribe("my-second-product", func(u ProductUpdate) map[string]rc.ApplyStatus { return nil }, APMTracingSampleRate)
require.NoError(t, err)

b, err := client.newUpdateRequest()
require.NoError(t, err)

var req clientGetConfigsRequest
err = json.Unmarshal(b.Bytes(), &req)
require.NoError(t, err)

require.Equal(t, []string{"my-product", "my-second-product"}, req.Client.Products)
require.Equal(t, []uint8([]byte{0x10, 0x2}), req.Client.Capabilities)
require.Equal(t, "go", req.Client.ClientTracer.Language)
require.Equal(t, "test-svc", req.Client.ClientTracer.Service)
require.Equal(t, "test-env", req.Client.ClientTracer.Env)
require.Equal(t, "tracer-version", req.Client.ClientTracer.TracerVersion)
require.Equal(t, "app-version", req.Client.ClientTracer.AppVersion)
require.True(t, req.Client.IsTracer)
}

0 comments on commit 6becedc

Please sign in to comment.