Skip to content

Commit 2e89d98

Browse files
committed
Make default version dep.
1 parent 446e85b commit 2e89d98

File tree

2 files changed

+36
-7
lines changed

2 files changed

+36
-7
lines changed

server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,15 @@ public ClusterState execute(ClusterState currentState) throws Exception {
366366
}
367367
// now, put the request settings, so they override templates
368368
indexSettingsBuilder.put(request.settings());
369+
if (indexSettingsBuilder.get(SETTING_VERSION_CREATED) == null) {
370+
DiscoveryNodes nodes = currentState.nodes();
371+
final Version createdVersion = Version.min(Version.CURRENT, nodes.getSmallestNonClientNodeVersion());
372+
indexSettingsBuilder.put(SETTING_VERSION_CREATED, createdVersion);
373+
}
369374
if (indexSettingsBuilder.get(SETTING_NUMBER_OF_SHARDS) == null) {
370-
indexSettingsBuilder.put(SETTING_NUMBER_OF_SHARDS, settings.getAsInt(SETTING_NUMBER_OF_SHARDS, 1));
375+
final int numberOfShards = getNumberOfShards(indexSettingsBuilder);
376+
377+
indexSettingsBuilder.put(SETTING_NUMBER_OF_SHARDS, settings.getAsInt(SETTING_NUMBER_OF_SHARDS, numberOfShards));
371378
}
372379
if (indexSettingsBuilder.get(SETTING_NUMBER_OF_REPLICAS) == null) {
373380
indexSettingsBuilder.put(SETTING_NUMBER_OF_REPLICAS, settings.getAsInt(SETTING_NUMBER_OF_REPLICAS, 1));
@@ -376,12 +383,6 @@ public ClusterState execute(ClusterState currentState) throws Exception {
376383
indexSettingsBuilder.put(SETTING_AUTO_EXPAND_REPLICAS, settings.get(SETTING_AUTO_EXPAND_REPLICAS));
377384
}
378385

379-
if (indexSettingsBuilder.get(SETTING_VERSION_CREATED) == null) {
380-
DiscoveryNodes nodes = currentState.nodes();
381-
final Version createdVersion = Version.min(Version.CURRENT, nodes.getSmallestNonClientNodeVersion());
382-
indexSettingsBuilder.put(SETTING_VERSION_CREATED, createdVersion);
383-
}
384-
385386
if (indexSettingsBuilder.get(SETTING_CREATION_DATE) == null) {
386387
indexSettingsBuilder.put(SETTING_CREATION_DATE, new DateTime(DateTimeZone.UTC).getMillis());
387388
}
@@ -573,6 +574,18 @@ public ClusterState execute(ClusterState currentState) throws Exception {
573574
}
574575
}
575576

577+
static int getNumberOfShards(Settings.Builder indexSettingsBuilder) {
578+
// TODO: this logic can be removed when the current major version is 8
579+
assert Version.CURRENT.major == 7;
580+
final int numberOfShards;
581+
if (Version.fromId(Integer.parseInt(indexSettingsBuilder.get(SETTING_VERSION_CREATED))).before(Version.V_7_0_0_alpha1)) {
582+
numberOfShards = 5;
583+
} else {
584+
numberOfShards = 1;
585+
}
586+
return numberOfShards;
587+
}
588+
576589
@Override
577590
public void onFailure(String source, Exception e) {
578591
if (e instanceof ResourceAlreadyExistsException) {

server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexServiceTests.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import java.util.stream.Stream;
5757

5858
import static java.util.Collections.emptyMap;
59+
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_VERSION_CREATED;
5960
import static org.hamcrest.Matchers.endsWith;
6061
import static org.hamcrest.Matchers.equalTo;
6162

@@ -92,6 +93,21 @@ public static boolean isSplitable(int source, int target) {
9293
return source * x == target;
9394
}
9495

96+
public void testNumberOfShards() {
97+
{
98+
final Version versionCreated =
99+
VersionUtils.randomVersionBetween(random(), Version.V_6_0_0_alpha1, VersionUtils.getPreviousVersion(Version.V_7_0_0_alpha1));
100+
final Settings.Builder indexSettingsBuilder = Settings.builder().put(SETTING_VERSION_CREATED, versionCreated);
101+
assertThat(MetaDataCreateIndexService.IndexCreationTask.getNumberOfShards(indexSettingsBuilder), equalTo(5));
102+
}
103+
{
104+
final Version versionCreated =
105+
VersionUtils.randomVersionBetween(random(), Version.V_7_0_0_alpha1, Version.CURRENT);
106+
final Settings.Builder indexSettingsBuilder = Settings.builder().put(SETTING_VERSION_CREATED, versionCreated);
107+
assertThat(MetaDataCreateIndexService.IndexCreationTask.getNumberOfShards(indexSettingsBuilder), equalTo(1));
108+
}
109+
}
110+
95111
public void testValidateShrinkIndex() {
96112
int numShards = randomIntBetween(2, 42);
97113
ClusterState state = createClusterState("source", numShards, randomIntBetween(0, 10),

0 commit comments

Comments
 (0)