From 4336d7142cc22c197f2058749db438dd9908db52 Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Thu, 27 Jan 2022 14:32:40 -0500 Subject: [PATCH 1/4] Correctly process the hidden property in datastream definition --- internal/packages/packages.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/packages/packages.go b/internal/packages/packages.go index 89cfd24a8b..b29df22d1c 100644 --- a/internal/packages/packages.go +++ b/internal/packages/packages.go @@ -115,6 +115,7 @@ type DataStreamManifest struct { Title string `config:"title" json:"title" yaml:"title"` Type string `config:"type" json:"type" yaml:"type"` Dataset string `config:"dataset" json:"dataset" yaml:"dataset"` + Hidden bool `config:"hidden" json:"hidden" yaml:"hidden"` Release string `config:"release" json:"release" yaml:"release"` Elasticsearch *struct { IngestPipeline *struct { @@ -243,10 +244,17 @@ func (dsm *DataStreamManifest) GetPipelineNameOrDefault() string { // for this data stream. func (dsm *DataStreamManifest) IndexTemplateName(pkgName string) string { if dsm.Dataset == "" { - return fmt.Sprintf("%s-%s.%s", dsm.Type, pkgName, dsm.Name) + return dsm.IndexTemplateNamePrefix() + fmt.Sprintf("%s-%s.%s", dsm.Type, pkgName, dsm.Name) } - return fmt.Sprintf("%s-%s", dsm.Type, dsm.Dataset) + return dsm.IndexTemplateNamePrefix() + fmt.Sprintf("%s-%s", dsm.Type, dsm.Dataset) +} + +func (dsm *DataStreamManifest) IndexTemplateNamePrefix() string { + if dsm.Hidden { + return "." + } + return "" } // FindInputByType returns the input for the provided type. From 2224cb148b2def3e9ff9b5c061ac8ff9d12719a5 Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Thu, 27 Jan 2022 17:26:49 -0500 Subject: [PATCH 2/4] Add unit test coverage --- internal/packages/packages_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/internal/packages/packages_test.go b/internal/packages/packages_test.go index 30a060ae73..bba5c19716 100644 --- a/internal/packages/packages_test.go +++ b/internal/packages/packages_test.go @@ -57,6 +57,15 @@ func TestDataStreamManifest_IndexTemplateName(t *testing.T) { "pkg", dataStreamTypeLogs + "-pkg.foo", }, + "no_dataset_hidden": { + DataStreamManifest{ + Name: "foo", + Type: dataStreamTypeLogs, + Hidden: true, + }, + "pkg", + "." + dataStreamTypeLogs + "-pkg.foo", + }, "with_dataset": { DataStreamManifest{ Name: "foo", @@ -66,6 +75,16 @@ func TestDataStreamManifest_IndexTemplateName(t *testing.T) { "pkg", dataStreamTypeLogs + "-custom", }, + "with_dataset_hidden": { + DataStreamManifest{ + Name: "foo", + Type: dataStreamTypeLogs, + Dataset: "custom", + Hidden: true, + }, + "pkg", + "." + dataStreamTypeLogs + "-custom", + }, } for name, test := range cases { From 769846e38df36ef24632c75ece00363478cf5bfc Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Fri, 28 Jan 2022 08:55:16 -0500 Subject: [PATCH 3/4] Add comment referring to kibana implementation --- internal/packages/packages.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/packages/packages.go b/internal/packages/packages.go index b29df22d1c..27f3c38f92 100644 --- a/internal/packages/packages.go +++ b/internal/packages/packages.go @@ -242,6 +242,8 @@ func (dsm *DataStreamManifest) GetPipelineNameOrDefault() string { // IndexTemplateName returns the name of the Elasticsearch index template that would be installed // for this data stream. +// The template name starts with dot "." if the datastream is hidden which is consistent with kibana implementation +// https://github.com/elastic/kibana/blob/3955d0dc819fec03f68cd1d931f64da8472e34b2/x-pack/plugins/fleet/server/services/epm/elasticsearch/index.ts#L14 func (dsm *DataStreamManifest) IndexTemplateName(pkgName string) string { if dsm.Dataset == "" { return dsm.IndexTemplateNamePrefix() + fmt.Sprintf("%s-%s.%s", dsm.Type, pkgName, dsm.Name) From f0dbccaa2909650c4a15008648935fe6d8767ba0 Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Fri, 28 Jan 2022 09:18:31 -0500 Subject: [PATCH 4/4] Address code review feedback --- internal/packages/packages.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/packages/packages.go b/internal/packages/packages.go index 27f3c38f92..9f90afd859 100644 --- a/internal/packages/packages.go +++ b/internal/packages/packages.go @@ -246,13 +246,13 @@ func (dsm *DataStreamManifest) GetPipelineNameOrDefault() string { // https://github.com/elastic/kibana/blob/3955d0dc819fec03f68cd1d931f64da8472e34b2/x-pack/plugins/fleet/server/services/epm/elasticsearch/index.ts#L14 func (dsm *DataStreamManifest) IndexTemplateName(pkgName string) string { if dsm.Dataset == "" { - return dsm.IndexTemplateNamePrefix() + fmt.Sprintf("%s-%s.%s", dsm.Type, pkgName, dsm.Name) + return fmt.Sprintf("%s%s-%s.%s", dsm.indexTemplateNamePrefix(), dsm.Type, pkgName, dsm.Name) } - return dsm.IndexTemplateNamePrefix() + fmt.Sprintf("%s-%s", dsm.Type, dsm.Dataset) + return fmt.Sprintf("%s%s-%s", dsm.indexTemplateNamePrefix(), dsm.Type, dsm.Dataset) } -func (dsm *DataStreamManifest) IndexTemplateNamePrefix() string { +func (dsm *DataStreamManifest) indexTemplateNamePrefix() string { if dsm.Hidden { return "." }