Skip to content

[Backport 8.6] Fix code-gen for dynamic_templates. #7343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/integration-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
fail-fast: false
matrix:
stack_version: [
'8.0.1',
'8.1.3',
'8.2.3',
'8.3.3',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,4 @@ public GeoLocationConverter()
}
};
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public sealed partial class TypeMapping
[JsonInclude, JsonPropertyName("dynamic_date_formats")]
public ICollection<string>? DynamicDateFormats { get; set; }

[JsonInclude, JsonPropertyName("dynamic_templates"), SingleOrManyCollectionConverter(typeof(IDictionary<string, Elastic.Clients.Elasticsearch.Mapping.DynamicTemplate>))]
[JsonInclude, JsonPropertyName("dynamic_templates")]
public ICollection<IDictionary<string, Elastic.Clients.Elasticsearch.Mapping.DynamicTemplate>>? DynamicTemplates { get; set; }

[JsonInclude, JsonPropertyName("enabled")]
Expand Down Expand Up @@ -505,7 +505,7 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
if (DynamicTemplatesValue is not null)
{
writer.WritePropertyName("dynamic_templates");
SingleOrManySerializationHelper.Serialize<IDictionary<string, Elastic.Clients.Elasticsearch.Mapping.DynamicTemplate>>(DynamicTemplatesValue, writer, options);
JsonSerializer.Serialize(writer, DynamicTemplatesValue, options);
}

if (EnabledValue.HasValue)
Expand Down Expand Up @@ -981,7 +981,7 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
if (DynamicTemplatesValue is not null)
{
writer.WritePropertyName("dynamic_templates");
SingleOrManySerializationHelper.Serialize<IDictionary<string, Elastic.Clients.Elasticsearch.Mapping.DynamicTemplate>>(DynamicTemplatesValue, writer, options);
JsonSerializer.Serialize(writer, DynamicTemplatesValue, options);
}

if (EnabledValue.HasValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
//
// ------------------------------------------------

using Elastic.Clients.Elasticsearch.Core;
using Elastic.Clients.Elasticsearch.Fluent;
using Elastic.Clients.Elasticsearch.Serialization;
using Elastic.Transport;
Expand Down
42 changes: 42 additions & 0 deletions tests/Tests/IndexManagement/CreateIndexSerializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

using Elastic.Clients.Elasticsearch.Analysis;
using Elastic.Clients.Elasticsearch.IndexManagement;
using Elastic.Clients.Elasticsearch.Mapping;
using Elastic.Clients.Elasticsearch.QueryDsl;
using System.Collections.Generic;
using System.Threading.Tasks;
Expand Down Expand Up @@ -83,4 +84,45 @@ public async Task CreateIndexWithAnalysisSettings_SerializesCorrectly()
var objectJson = await SerializeAndGetJsonStringAsync(createRequest);
objectJson.Should().Be(json);
}

[U]
public async Task CreateIndexWithDynamicTemplates_SerializesCorrectly()
{
var myTemplate = new DynamicTemplate
{
PathMatch = "testPathMatch",
Mapping = new KeywordProperty()
};

var descriptor = new CreateIndexRequestDescriptor("test")
.Mappings(m => m
.DynamicTemplates(new[]
{
new Dictionary<string, DynamicTemplate>
{
{ "testTemplateName", myTemplate }
}
}));

var json = await SerializeAndGetJsonStringAsync(descriptor);

await Verifier.VerifyJson(json);

var createRequest = new CreateIndexRequest("test")
{
Mappings = new TypeMapping
{
DynamicTemplates = new[]
{
new Dictionary<string, DynamicTemplate>
{
{ "testTemplateName", myTemplate }
}
}
}
};

var objectJson = await SerializeAndGetJsonStringAsync(createRequest);
objectJson.Should().Be(json);
}
}
35 changes: 1 addition & 34 deletions tests/Tests/IndexManagement/GetIndexSerializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7058,7 +7058,7 @@ public void GetIndexResponse_DeserializedCorrectly()
}

[U]
public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplateArrayIsPresentInResponse()
public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplatesArePresentInResponse()
{
const string json = @"{
""catalog-data-2023.01.31"": {
Expand Down Expand Up @@ -7091,39 +7091,6 @@ public void GetIndexResponse_DeserializedCorrectly_WhenDynamicTemplateArrayIsPre
VerifyGetIndexResponseDynamicTemplates(response);
}

[U]
public void GetIndexResponse_DeserializedCorrectly_WhenSingleDynamicTemplateIsPresentInResponse()
{
const string json = @"{
""catalog-data-2023.01.31"": {
""aliases"": {
},
""mappings"": {
""dynamic_templates"":
{
""strings_as_keyword"": {
""match_mapping_type"": ""string"",
""mapping"": {
""ignore_above"": 1024,
""type"": ""keyword""
}
}
},
""properties"": {
""@timestamp"": {
""type"": ""date""
}
}
},
""settings"": {
}
}
}";

var response = DeserializeJsonString<GetIndexResponse>(json);
VerifyGetIndexResponseDynamicTemplates(response);
}

private static void VerifyGetIndexResponseDynamicTemplates(GetIndexResponse response)
{
response.Indices.TryGetValue("catalog-data-2023.01.31", out var indexState).Should().BeTrue();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
mappings: {
dynamic_templates: [
{
testTemplateName: {
mapping: {
type: keyword
},
path_match: testPathMatch
}
}
]
}
}