Skip to content

Commit 2575f97

Browse files
committed
add tests trying to replicate #2136 to no avail, found a nasty bug where number_of_replicas can get overriden to null when calling update index settings
Conflicts: src/Nest/IndexModules/IndexSettings/Settings/IndexSettingsConverter.cs
1 parent 31d6e6d commit 2575f97

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,11 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
7575
d[UpdatableIndexSettings.SlowlogIndexingSource] = indexing?.Source;
7676

7777
var indexSettings = value as IIndexSettings;
78-
d["index.number_of_shards"] = indexSettings?.NumberOfShards;
79-
d[UpdatableIndexSettings.NumberOfReplicas] = indexSettings?.NumberOfReplicas;
80-
d[UpdatableIndexSettings.StoreType] = indexSettings?.FileSystemStorageImplementation;
78+
if (indexSettings != null)
79+
{
80+
d["index.number_of_shards"] = indexSettings?.NumberOfShards;
81+
d[UpdatableIndexSettings.StoreType] = indexSettings?.FileSystemStorageImplementation;
82+
}
8183
d["index.queries.cache.enabled"] = indexSettings?.Queries?.Cache?.Enabled;
8284

8385
d[UpdatableIndexSettings.Analysis] = ds.Analysis;

src/Tests/Indices/IndexSettings/GetIndexSettings/GetIndexSettingsApiTests.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
using System;
2+
using System.Linq;
3+
using System.Threading.Tasks;
24
using Elasticsearch.Net;
5+
using FluentAssertions;
36
using Nest;
47
using Tests.Framework;
58
using Tests.Framework.Integration;
@@ -33,5 +36,15 @@ protected override LazyResponses ClientUsage() => Calls(
3336
{
3437
Local = true
3538
};
39+
40+
protected override void ExpectResponse(IGetIndexSettingsResponse response)
41+
{
42+
response.Indices.Should().NotBeEmpty();
43+
var index = response.Indices.First().Value;
44+
index.Should().NotBeNull();
45+
index.Settings.NumberOfShards.Should().HaveValue().And.BeGreaterThan(0);
46+
index.Settings.NumberOfReplicas.Should().HaveValue();
47+
}
48+
3649
}
37-
}
50+
}

src/Tests/Indices/IndexSettings/UpdateIndicesSettings/UpdateIndexSettingsApiTests.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,23 @@ protected override LazyResponses ClientUsage() => Calls(
2727

2828
protected override object ExpectJson { get; } = new Dictionary<string, object>
2929
{
30-
{ "index.blocks.write", false }
30+
{ "index.blocks.write", false },
31+
{ "index.number_of_replicas", 2 }
3132
};
3233

3334
protected override Func<UpdateIndexSettingsDescriptor, IUpdateIndexSettingsRequest> Fluent => d => d
3435
.IndexSettings(i => i
3536
.BlocksWrite(false)
37+
.NumberOfReplicas(2)
3638
);
3739

3840
protected override UpdateIndexSettingsRequest Initializer => new UpdateIndexSettingsRequest
3941
{
4042
IndexSettings = new Nest.IndexSettings
4143
{
42-
BlocksWrite = false
44+
BlocksWrite = false,
45+
NumberOfReplicas = 2
4346
}
4447
};
4548
}
46-
}
49+
}

0 commit comments

Comments
 (0)