Skip to content

Commit 0ed63dc

Browse files
russcamStuart Cam
authored and
Stuart Cam
committed
Add version to PutTemplateRequest (#2971)
Adds version to PutTemplateRequest and GetIndexTemplateRequest
1 parent b018a97 commit 0ed63dc

File tree

4 files changed

+72
-5
lines changed

4 files changed

+72
-5
lines changed

src/Nest/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/TemplateMapping.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public interface ITemplateMapping
1919

2020
[JsonProperty("aliases")]
2121
IAliases Aliases { get; set; }
22+
23+
[JsonProperty("version")]
24+
int? Version { get; set; }
2225
}
2326

2427
public class TemplateMapping : ITemplateMapping
@@ -32,5 +35,7 @@ public class TemplateMapping : ITemplateMapping
3235
public IMappings Mappings { get; set; }
3336

3437
public IAliases Aliases { get; set; }
38+
39+
public int? Version { get; set; }
3540
}
3641
}

src/Nest/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateRequest.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4+
using Newtonsoft.Json;
45

56
namespace Nest
67
{
@@ -14,6 +15,8 @@ public partial class PutIndexTemplateRequest
1415

1516
public int? Order { get; set; }
1617

18+
public int? Version { get; set; }
19+
1720
public IIndexSettings Settings { get; set; }
1821

1922
public IMappings Mappings { get; set; }
@@ -26,17 +29,22 @@ public partial class PutIndexTemplateDescriptor
2629
{
2730
int? ITemplateMapping.Order { get; set; }
2831

32+
int? ITemplateMapping.Version { get; set; }
33+
2934
IIndexSettings ITemplateMapping.Settings { get; set; }
3035

3136
IMappings ITemplateMapping.Mappings { get; set; }
3237

3338
IAliases ITemplateMapping.Aliases { get; set; }
3439

35-
IReadOnlyCollection<string> ITemplateMapping.IndexPatterns {get;set;}
40+
IReadOnlyCollection<string> ITemplateMapping.IndexPatterns { get; set; }
3641

3742
public PutIndexTemplateDescriptor Order(int order) => Assign(a => a.Order = order);
3843

44+
public PutIndexTemplateDescriptor Version(int version) => Assign(a => a.Version = version);
45+
3946
public PutIndexTemplateDescriptor IndexPatterns(params string[] patterns)=> Assign(a => a.IndexPatterns = patterns);
47+
4048
public PutIndexTemplateDescriptor IndexPatterns(IEnumerable<string> patterns)=> Assign(a => a.IndexPatterns = patterns?.ToArray());
4149

4250
public PutIndexTemplateDescriptor Settings(Func<IndexSettingsDescriptor, IPromise<IIndexSettings>> settingsSelector) =>

src/Tests/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/GetIndexTemplateApiTests.cs

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System;
2+
using System.Linq;
23
using Elasticsearch.Net;
4+
using FluentAssertions;
35
using Nest;
46
using Tests.Framework;
57
using Tests.Framework.Integration;
@@ -9,7 +11,7 @@
911
namespace Tests.Indices.IndexSettings.IndexTemplates.GetIndexTemplate
1012
{
1113
public class GetIndexTemplateApiTests
12-
: ApiTestBase<WritableCluster, IGetIndexTemplateResponse, IGetIndexTemplateRequest, GetIndexTemplateDescriptor, GetIndexTemplateRequest>
14+
: ApiIntegrationTestBase<WritableCluster, IGetIndexTemplateResponse, IGetIndexTemplateRequest, GetIndexTemplateDescriptor, GetIndexTemplateRequest>
1315
{
1416
public GetIndexTemplateApiTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
1517
protected override LazyResponses ClientUsage() => Calls(
@@ -25,6 +27,46 @@ protected override LazyResponses ClientUsage() => Calls(
2527
protected override Func<GetIndexTemplateDescriptor, IGetIndexTemplateRequest> Fluent => d => d
2628
.Name(CallIsolatedValue);
2729

30+
protected override int ExpectStatusCode => 200;
31+
32+
protected override bool ExpectIsValid => true;
33+
2834
protected override GetIndexTemplateRequest Initializer => new GetIndexTemplateRequest(CallIsolatedValue);
35+
36+
protected override object ExpectJson => null;
37+
38+
protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values)
39+
{
40+
foreach (var callUniqueValue in values)
41+
{
42+
var putTemplateResponse = client.PutIndexTemplate(callUniqueValue.Value, d =>
43+
d.IndexPatterns("startingwiththis-*")
44+
.Settings(s => s.NumberOfShards(2))
45+
.Version(1)
46+
);
47+
48+
if (!putTemplateResponse.IsValid)
49+
throw new Exception($"Problem putting index template for integration test: {putTemplateResponse.DebugInformation}");
50+
}
51+
}
52+
53+
protected override void ExpectResponse(IGetIndexTemplateResponse response)
54+
{
55+
response.ShouldBeValid();
56+
57+
response.TemplateMappings.Should().NotBeNull();
58+
response.TemplateMappings.Should().HaveCount(1);
59+
60+
var responseTemplateMapping = response.TemplateMappings[CallIsolatedValue];
61+
62+
responseTemplateMapping.IndexPatterns.Should().NotBeNull();
63+
responseTemplateMapping.IndexPatterns.Should().HaveCount(1);
64+
responseTemplateMapping.IndexPatterns.First().Should().Be("startingwiththis-*");
65+
66+
responseTemplateMapping.Version.Should().Be(1);
67+
68+
responseTemplateMapping.Settings.Should().NotBeNull();
69+
responseTemplateMapping.Settings.NumberOfShards.Should().Be(2);
70+
}
2971
}
3072
}

src/Tests/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateApiTests.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using Elasticsearch.Net;
4+
using FluentAssertions;
45
using Nest;
56
using Tests.Framework;
67
using Tests.Framework.Integration;
@@ -10,7 +11,7 @@
1011
namespace Tests.Indices.IndexSettings.IndexTemplates.PutIndexTemplate
1112
{
1213
public class PutIndexTemplateApiTests
13-
: ApiTestBase<WritableCluster, IPutIndexTemplateResponse, IPutIndexTemplateRequest, PutIndexTemplateDescriptor, PutIndexTemplateRequest>
14+
: ApiIntegrationTestBase<WritableCluster, IPutIndexTemplateResponse, IPutIndexTemplateRequest, PutIndexTemplateDescriptor, PutIndexTemplateRequest>
1415
{
1516
public PutIndexTemplateApiTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage)
1617
{
@@ -24,14 +25,15 @@ protected override LazyResponses ClientUsage() => Calls(
2425
);
2526

2627
protected override HttpMethod HttpMethod => HttpMethod.PUT;
27-
2828
protected override string UrlPath => $"/_template/{CallIsolatedValue}?create=false";
29-
3029
protected override bool SupportsDeserialization => false;
30+
protected override int ExpectStatusCode => 200;
31+
protected override bool ExpectIsValid => true;
3132

3233
protected override object ExpectJson { get; } = new
3334
{
3435
order = 1,
36+
version = 2,
3537
index_patterns = new [] {"nestx-*" },
3638
settings = new Dictionary<string, object> { { "index.number_of_shards", 1 } },
3739
mappings = new
@@ -61,6 +63,7 @@ protected override LazyResponses ClientUsage() => Calls(
6163

6264
protected override Func<PutIndexTemplateDescriptor, IPutIndexTemplateRequest> Fluent => d => d
6365
.Order(1)
66+
.Version(2)
6467
.IndexPatterns("nestx-*")
6568
.Create(false)
6669
.Settings(p=>p.NumberOfShards(1))
@@ -80,9 +83,12 @@ protected override LazyResponses ClientUsage() => Calls(
8083
)
8184
);
8285

86+
87+
8388
protected override PutIndexTemplateRequest Initializer => new PutIndexTemplateRequest(CallIsolatedValue)
8489
{
8590
Order = 1,
91+
Version = 2,
8692
IndexPatterns = new[] { "nestx-*" },
8793
Create = false,
8894
Settings = new Nest.IndexSettings
@@ -110,5 +116,11 @@ protected override LazyResponses ClientUsage() => Calls(
110116
}
111117
}
112118
};
119+
120+
protected override void ExpectResponse(IPutIndexTemplateResponse response)
121+
{
122+
response.ShouldBeValid();
123+
response.Acknowledged.Should().BeTrue();
124+
}
113125
}
114126
}

0 commit comments

Comments
 (0)