Skip to content

Commit

Permalink
Always show composed_of field for composable index templates (elast…
Browse files Browse the repository at this point in the history
…ic#105315)

* Always show `composed_of` field for composable index templates

Prior to e786cfa we inadvertently always added composable index
templates with `composed_of: []` beacuse
elastic@e786cfa#diff-5081302eb39033199deb1977d544d1cd7867212a92b8d77e0aa0ded361272b11L618-L630
created a new `ComposableIndexTemplate` from an existing one, and the `.composedOf()` field returned
an empty list of no component templates were provided:

https://github.com/elastic/elasticsearch/blob/89e714ee5dc60db8b4979ab6372ff767e108e9da/server/src/main/java/org/elasticsearch/cluster/metadata/ComposableIndexTemplate.java#L172-L177

This meant that before 8.12.0 we would always show `composed_of: []` for composable index templates.
This commit recreates this behavior, and always displays the empty list even if no component
templates are used by a composable index template.

Resolves elastic#104627
  • Loading branch information
dakrone committed Feb 15, 2024
1 parent ad2bc23 commit 93b552a
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
6 changes: 6 additions & 0 deletions docs/changelog/105315.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pr: 105315
summary: Always show `composed_of` field for composable index templates
area: Indices APIs
type: bug
issues:
- 104627
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,16 @@ setup:
type: keyword
lifecycle:
data_retention: "30d"

---
"Get index template always shows composed_of":
- skip:
version: " - 8.12.99"
reason: "A bug was fixed in 8.13.0 to make `composed_of` always returned"

- do:
indices.get_index_template:
name: test

- match: {index_templates.0.name: test}
- match: {index_templates.0.index_template.composed_of: []}
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ private ComposableIndexTemplate(
) {
this.indexPatterns = indexPatterns;
this.template = template;
this.componentTemplates = componentTemplates;
this.componentTemplates = componentTemplates == null ? List.of() : componentTemplates;
this.priority = priority;
this.version = version;
this.metadata = metadata;
Expand Down

0 comments on commit 93b552a

Please sign in to comment.