From e321fb024e3e6876fd901b527026967e67ba6fd9 Mon Sep 17 00:00:00 2001 From: weizijun Date: Sat, 4 Sep 2021 04:22:56 +0800 Subject: [PATCH] Fix template equals when mappings are wrapped (#77008) When create template v2. mappings will add _doc. This will cause the created template to be inconsistent with the queried template. In template class, add mappingsEquals method, to deal with this case. reproduced: MetadataIndexTemplateServiceTests.testAddComponentTemplate when mappings are not null, the case will failed. ``` Template template = new Template( Settings.builder().build(), new CompressedXContent("{\"properties\":{\"@timestamp\":{\"type\":\"date\"}}}"), ComponentTemplateTests.randomAliases() ); ComponentTemplate componentTemplate = new ComponentTemplate(template, 1L, new HashMap<>()); ``` Co-authored-by: Elastic Machine --- .../cluster/metadata/Template.java | 27 ++++++++- .../metadata/ComponentTemplateTests.java | 56 ++++++++++++++++++ .../MetadataIndexTemplateServiceTests.java | 59 ++----------------- 3 files changed, 87 insertions(+), 55 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/Template.java b/server/src/main/java/org/elasticsearch/cluster/metadata/Template.java index ca9b6b291a2b..f5854bb97faf 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/Template.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/Template.java @@ -9,6 +9,7 @@ package org.elasticsearch.cluster.metadata; import org.elasticsearch.cluster.AbstractDiffable; +import org.elasticsearch.common.util.Maps; import org.elasticsearch.core.Nullable; import org.elasticsearch.common.xcontent.ParseField; import org.elasticsearch.common.Strings; @@ -141,7 +142,7 @@ public class Template extends AbstractDiffable