|
@@ -33,7 +33,7 @@ import static org.hamcrest.Matchers.equalTo;
|
|
|
public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
|
|
|
private Environment environment;
|
|
|
- private Path[] nodePaths;
|
|
|
+ private Path nodePath;
|
|
|
private String nodeId;
|
|
|
private final OptionSet noOptions = new OptionParser().parse();
|
|
|
|
|
@@ -42,10 +42,10 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
final Settings settings = buildEnvSettings(Settings.EMPTY);
|
|
|
environment = TestEnvironment.newEnvironment(settings);
|
|
|
try (NodeEnvironment nodeEnvironment = new NodeEnvironment(settings, environment)) {
|
|
|
- nodePaths = new Path[] { nodeEnvironment.nodeDataPath() };
|
|
|
+ nodePath = nodeEnvironment.nodeDataPath();
|
|
|
nodeId = nodeEnvironment.nodeId();
|
|
|
|
|
|
- try (PersistedClusterStateService.Writer writer = new PersistedClusterStateService(nodePaths, nodeId,
|
|
|
+ try (PersistedClusterStateService.Writer writer = new PersistedClusterStateService(new Path[] { nodePath }, nodeId,
|
|
|
xContentRegistry(), BigArrays.NON_RECYCLING_INSTANCE,
|
|
|
new ClusterSettings(settings, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS), () -> 0L).createWriter()) {
|
|
|
writer.writeFullStateAndCommit(1L, ClusterState.builder(ClusterName.DEFAULT).metadata(Metadata.builder()
|
|
@@ -57,7 +57,7 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
|
|
|
@After
|
|
|
public void checkClusterStateIntact() throws IOException {
|
|
|
- assertTrue(Metadata.SETTING_READ_ONLY_SETTING.get(new PersistedClusterStateService(nodePaths, nodeId,
|
|
|
+ assertTrue(Metadata.SETTING_READ_ONLY_SETTING.get(new PersistedClusterStateService(new Path[] { nodePath }, nodeId,
|
|
|
xContentRegistry(), BigArrays.NON_RECYCLING_INSTANCE,
|
|
|
new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS), () -> 0L)
|
|
|
.loadBestOnDiskState().metadata.persistentSettings()));
|
|
@@ -67,17 +67,17 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
final Path emptyPath = createTempDir();
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
final ElasticsearchException elasticsearchException = expectThrows(ElasticsearchException.class, () ->
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, new Path[]{emptyPath}, noOptions, environment));
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, emptyPath, noOptions, environment));
|
|
|
assertThat(elasticsearchException.getMessage(), equalTo(OverrideNodeVersionCommand.NO_METADATA_MESSAGE));
|
|
|
expectThrows(IllegalStateException.class, () -> mockTerminal.readText(""));
|
|
|
}
|
|
|
|
|
|
public void testFailsIfUnnecessary() throws IOException {
|
|
|
final Version nodeVersion = Version.fromId(between(Version.CURRENT.minimumIndexCompatibilityVersion().id, Version.CURRENT.id));
|
|
|
- PersistedClusterStateService.overrideVersion(nodeVersion, nodePaths);
|
|
|
+ PersistedClusterStateService.overrideVersion(nodeVersion, nodePath);
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
final ElasticsearchException elasticsearchException = expectThrows(ElasticsearchException.class, () ->
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePaths, noOptions, environment));
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePath, noOptions, environment));
|
|
|
assertThat(elasticsearchException.getMessage(), allOf(
|
|
|
containsString("compatible with current version"),
|
|
|
containsString(Version.CURRENT.toString()),
|
|
@@ -87,11 +87,11 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
|
|
|
public void testWarnsIfTooOld() throws Exception {
|
|
|
final Version nodeVersion = NodeMetadataTests.tooOldVersion();
|
|
|
- PersistedClusterStateService.overrideVersion(nodeVersion, nodePaths);
|
|
|
+ PersistedClusterStateService.overrideVersion(nodeVersion, nodePath);
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
mockTerminal.addTextInput("n\n");
|
|
|
final ElasticsearchException elasticsearchException = expectThrows(ElasticsearchException.class, () ->
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePaths, noOptions, environment));
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePath, noOptions, environment));
|
|
|
assertThat(elasticsearchException.getMessage(), equalTo("aborted by user"));
|
|
|
assertThat(mockTerminal.getOutput(), allOf(
|
|
|
containsString("too old"),
|
|
@@ -101,17 +101,17 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
containsString(nodeVersion.toString())));
|
|
|
expectThrows(IllegalStateException.class, () -> mockTerminal.readText(""));
|
|
|
|
|
|
- final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePaths);
|
|
|
+ final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePath);
|
|
|
assertThat(nodeMetadata.nodeVersion(), equalTo(nodeVersion));
|
|
|
}
|
|
|
|
|
|
public void testWarnsIfTooNew() throws Exception {
|
|
|
final Version nodeVersion = NodeMetadataTests.tooNewVersion();
|
|
|
- PersistedClusterStateService.overrideVersion(nodeVersion, nodePaths);
|
|
|
+ PersistedClusterStateService.overrideVersion(nodeVersion, nodePath);
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
mockTerminal.addTextInput(randomFrom("yy", "Yy", "n", "yes", "true", "N", "no"));
|
|
|
final ElasticsearchException elasticsearchException = expectThrows(ElasticsearchException.class, () ->
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePaths, noOptions, environment));
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePath, noOptions, environment));
|
|
|
assertThat(elasticsearchException.getMessage(), equalTo("aborted by user"));
|
|
|
assertThat(mockTerminal.getOutput(), allOf(
|
|
|
containsString("data loss"),
|
|
@@ -120,16 +120,16 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
containsString(nodeVersion.toString())));
|
|
|
expectThrows(IllegalStateException.class, () -> mockTerminal.readText(""));
|
|
|
|
|
|
- final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePaths);
|
|
|
+ final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePath);
|
|
|
assertThat(nodeMetadata.nodeVersion(), equalTo(nodeVersion));
|
|
|
}
|
|
|
|
|
|
public void testOverwritesIfTooOld() throws Exception {
|
|
|
final Version nodeVersion = NodeMetadataTests.tooOldVersion();
|
|
|
- PersistedClusterStateService.overrideVersion(nodeVersion, nodePaths);
|
|
|
+ PersistedClusterStateService.overrideVersion(nodeVersion, nodePath);
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
mockTerminal.addTextInput(randomFrom("y", "Y"));
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePaths, noOptions, environment);
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePath, noOptions, environment);
|
|
|
assertThat(mockTerminal.getOutput(), allOf(
|
|
|
containsString("too old"),
|
|
|
containsString("data loss"),
|
|
@@ -139,16 +139,16 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
containsString(OverrideNodeVersionCommand.SUCCESS_MESSAGE)));
|
|
|
expectThrows(IllegalStateException.class, () -> mockTerminal.readText(""));
|
|
|
|
|
|
- final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePaths);
|
|
|
+ final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePath);
|
|
|
assertThat(nodeMetadata.nodeVersion(), equalTo(Version.CURRENT));
|
|
|
}
|
|
|
|
|
|
public void testOverwritesIfTooNew() throws Exception {
|
|
|
final Version nodeVersion = NodeMetadataTests.tooNewVersion();
|
|
|
- PersistedClusterStateService.overrideVersion(nodeVersion, nodePaths);
|
|
|
+ PersistedClusterStateService.overrideVersion(nodeVersion, nodePath);
|
|
|
final MockTerminal mockTerminal = new MockTerminal();
|
|
|
mockTerminal.addTextInput(randomFrom("y", "Y"));
|
|
|
- new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePaths, noOptions, environment);
|
|
|
+ new OverrideNodeVersionCommand().processNodePaths(mockTerminal, nodePath, noOptions, environment);
|
|
|
assertThat(mockTerminal.getOutput(), allOf(
|
|
|
containsString("data loss"),
|
|
|
containsString("You should not use this tool"),
|
|
@@ -157,7 +157,7 @@ public class OverrideNodeVersionCommandTests extends ESTestCase {
|
|
|
containsString(OverrideNodeVersionCommand.SUCCESS_MESSAGE)));
|
|
|
expectThrows(IllegalStateException.class, () -> mockTerminal.readText(""));
|
|
|
|
|
|
- final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePaths);
|
|
|
+ final NodeMetadata nodeMetadata = PersistedClusterStateService.nodeMetadata(nodePath);
|
|
|
assertThat(nodeMetadata.nodeVersion(), equalTo(Version.CURRENT));
|
|
|
}
|
|
|
}
|