Skip to content

Commit 1421404

Browse files
russcamgithub-actions[bot]
authored andcommitted
Add index.final_pipeline index setting (#4401)
Relates: #4341, elastic/elasticsearch#49470 This commit adds final pipeline to index settings and deprecates required pipeline.
1 parent 9a08447 commit 1421404

File tree

4 files changed

+30
-4
lines changed

4 files changed

+30
-4
lines changed

src/Nest/IndexModules/IndexSettings/Settings/DynamicIndexSettings.cs

+17-1
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,19 @@ public interface IDynamicIndexSettings : IIsADictionary<string, object>
113113
string DefaultPipeline { get; set; }
114114

115115
/// <summary>
116-
/// The required ingest node pipeline for this index. Index requests will fail if the required pipeline is set and the pipeline
116+
/// The required ingest pipeline for this index. Index requests will fail if the required pipeline is set and the pipeline
117117
/// does not exist. The required pipeline can not be overridden with the pipeline parameter. A default pipeline and a required pipeline
118118
/// can not both be set. The special pipeline name _none indicates no ingest pipeline will run.
119119
/// </summary>
120+
[Obsolete("Use FinalPipeline")]
120121
string RequiredPipeline { get; set; }
122+
123+
/// <summary>
124+
/// The final ingest pipeline for this index. Index requests will fail if the final pipeline is set and the pipeline does not exist.
125+
/// The final pipeline always runs after the request pipeline (if specified) and the default pipeline (if it exists). The special pipeline
126+
/// name `_none` indicates no ingest pipeline will run.
127+
/// </summary>
128+
string FinalPipeline { get; set; }
121129
}
122130

123131
/// <inheritdoc />
@@ -195,8 +203,12 @@ public Time RefreshInterval
195203
public string DefaultPipeline { get; set; }
196204

197205
/// <inheritdoc cref="IDynamicIndexSettings.RequiredPipeline" />
206+
[Obsolete("Use FinalPipeline")]
198207
public string RequiredPipeline { get; set; }
199208

209+
/// <inheritdoc cref="IDynamicIndexSettings.FinalPipeline" />
210+
public string FinalPipeline { get; set; }
211+
200212
/// <summary> Add any setting to the index </summary>
201213
public void Add(string setting, object value) => BackingDictionary[setting] = value;
202214
}
@@ -232,8 +244,12 @@ public TDescriptor Setting(string setting, object value)
232244
public TDescriptor DefaultPipeline(string defaultPipeline) => Assign(defaultPipeline, (a, v) => a.DefaultPipeline = v);
233245

234246
/// <inheritdoc cref="IDynamicIndexSettings.RequiredPipeline" />
247+
[Obsolete("Use FinalPipeline")]
235248
public TDescriptor RequiredPipeline(string requiredPipeline) => Assign(requiredPipeline, (a, v) => a.RequiredPipeline = v);
236249

250+
/// <inheritdoc cref="IDynamicIndexSettings.RequiredPipeline" />
251+
public TDescriptor FinalPipeline(string finalPipeline) => Assign(finalPipeline, (a, v) => a.FinalPipeline = v);
252+
237253
/// <inheritdoc cref="IDynamicIndexSettings.BlocksMetadata" />
238254
public TDescriptor BlocksMetadata(bool? blocksMetadata = true) => Assign(blocksMetadata, (a, v) => a.BlocksMetadata = v);
239255

src/Nest/IndexModules/IndexSettings/Settings/IndexSettingsFormatter.cs

+6
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ void Set(string knownKey, object newValue)
5151
Set(NumberOfReplicas, value.NumberOfReplicas);
5252
Set(RefreshInterval, value.RefreshInterval);
5353
Set(DefaultPipeline, value.DefaultPipeline);
54+
#pragma warning disable 618
5455
Set(RequiredPipeline, value.RequiredPipeline);
56+
#pragma warning restore 618
57+
Set(FinalPipeline, value.FinalPipeline);
5558
Set(BlocksReadOnly, value.BlocksReadOnly);
5659
Set(BlocksRead, value.BlocksRead);
5760
Set(BlocksWrite, value.BlocksWrite);
@@ -182,7 +185,10 @@ private static void SetKnownIndexSettings(ref JsonReader reader, IJsonFormatterR
182185
Set<bool?>(s, settings, BlocksReadOnlyAllowDelete, v => s.BlocksReadOnlyAllowDelete = v, formatterResolver);
183186
Set<int?>(s, settings, Priority, v => s.Priority = v, formatterResolver);
184187
Set<string>(s, settings, DefaultPipeline, v => s.DefaultPipeline = v, formatterResolver);
188+
#pragma warning disable 618
185189
Set<string>(s, settings, RequiredPipeline, v => s.RequiredPipeline = v, formatterResolver);
190+
#pragma warning restore 618
191+
Set<string>(s, settings, FinalPipeline, v => s.FinalPipeline = v, formatterResolver);
186192

187193
Set<Union<int, RecoveryInitialShards>>(s, settings, UpdatableIndexSettings.RecoveryInitialShards,
188194
v => s.RecoveryInitialShards = v, formatterResolver);

src/Nest/IndexModules/IndexSettings/Settings/UpdatableIndexSettings.cs

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System;
2+
13
namespace Nest
24
{
35
/// <summary>
@@ -60,7 +62,9 @@ public static class UpdatableIndexSettings
6062
public const string RefreshInterval = "index.refresh_interval";
6163

6264
public const string DefaultPipeline = "index.default_pipeline";
65+
[Obsolete("Use FinalPipeline")]
6366
public const string RequiredPipeline = "index.required_pipeline";
67+
public const string FinalPipeline = "index.final_pipeline";
6468

6569
public const string RequestsCacheEnable = "index.requests.cache.enable";
6670
public const string RoutingAllocationDisableAllocation = "index.routing.allocation.disable_allocation";

tests/Tests/IndexModules/IndexSettings/Settings/TypedIndexSettings.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class Usage : PromiseUsageTestBase<IIndexSettings, IndexSettingsDescripto
2020
{ "index.number_of_replicas", 2 },
2121
{ "index.auto_expand_replicas", "1-3" },
2222
{ "index.default_pipeline", "a-default-pipeline" },
23-
{ "index.required_pipeline", "a-required-pipeline" },
23+
{ "index.final_pipeline", "a-final-pipeline" },
2424
{ "index.refresh_interval", -1 },
2525
{ "index.blocks.read_only", true },
2626
{ "index.blocks.read", true },
@@ -48,7 +48,7 @@ public class Usage : PromiseUsageTestBase<IIndexSettings, IndexSettingsDescripto
4848
.NumberOfShards(1)
4949
.NumberOfReplicas(2)
5050
.DefaultPipeline("a-default-pipeline")
51-
.RequiredPipeline("a-required-pipeline")
51+
.FinalPipeline("a-final-pipeline")
5252
.AutoExpandReplicas("1-3")
5353
.BlocksMetadata()
5454
.BlocksRead()
@@ -78,7 +78,7 @@ public class Usage : PromiseUsageTestBase<IIndexSettings, IndexSettingsDescripto
7878
NumberOfShards = 1,
7979
NumberOfReplicas = 2,
8080
DefaultPipeline = "a-default-pipeline",
81-
RequiredPipeline = "a-required-pipeline",
81+
FinalPipeline = "a-final-pipeline",
8282
AutoExpandReplicas = "1-3",
8383
BlocksMetadata = true,
8484
BlocksRead = true,

0 commit comments

Comments
 (0)