From 9cf78f5667613556a8c5ec711e51114448579f5b Mon Sep 17 00:00:00 2001 From: stuart nelson Date: Thu, 24 Jun 2021 11:37:50 +0200 Subject: [PATCH] update api endpoint and body format (#5536) changes to API as per https://github.com/elastic/kibana/pull/102682/files#diff-9c2335d860c78c5a6494892a1deda7dbea6206f7eb8388a31c2a11b2b4033cd9R17-R23 --- kibana/send_config.go | 11 +++++++---- kibana/send_config_test.go | 6 +++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/kibana/send_config.go b/kibana/send_config.go index 6e0464e24cd..459ead605df 100644 --- a/kibana/send_config.go +++ b/kibana/send_config.go @@ -31,9 +31,7 @@ import ( "github.com/elastic/go-ucfg" ) -// TODO: Get this value from Oliver -// https://github.com/elastic/kibana/issues/100657 -const kibanaConfigUploadPath = "/apm/fleet/apm_server_settings" +const kibanaConfigUploadPath = "/api/apm/fleet/apm_server_schema" // SendConfig marshals and uploads the provided config to kibana using the // provided ConnectingClient. It retries until its context has been canceled or @@ -45,7 +43,8 @@ func SendConfig(ctx context.Context, client Client, conf *ucfg.Config) error { if err != nil { return err } - b, err := json.Marshal(flat) + + b, err := json.Marshal(format(flat)) if err != nil { return err } @@ -75,6 +74,10 @@ func SendConfig(ctx context.Context, client Client, conf *ucfg.Config) error { } } +func format(m map[string]interface{}) map[string]interface{} { + return map[string]interface{}{"schemaJson": m} +} + func flattenAndClean(conf *ucfg.Config) (map[string]interface{}, error) { m := common.MapStr{} if err := conf.Unpack(m); err != nil { diff --git a/kibana/send_config_test.go b/kibana/send_config_test.go index 6b3a1531094..bf782ace7b6 100644 --- a/kibana/send_config_test.go +++ b/kibana/send_config_test.go @@ -29,7 +29,7 @@ import ( "github.com/elastic/go-ucfg" ) -func TestFlatten(t *testing.T) { +func TestFlattenAndFormat(t *testing.T) { tlsFieldsCount := 0 cc, err := common.NewConfigWithYAML([]byte(serverYAML), "apm-server.yml") c := ucfg.Config(*cc) @@ -38,6 +38,10 @@ func TestFlatten(t *testing.T) { flat, err := flattenAndClean(&c) assert.NoError(t, err) + flat = format(flat) + assert.Contains(t, flat, "schemaJson") + + flat = flat["schemaJson"].(map[string]interface{}) for k := range flat { assert.NotContains(t, k, "elasticsearch") assert.NotContains(t, k, "kibana")