Version option should display if snapshot
We have a command-line flag -V or --version that can be used to display the version of Elasticsearch. However, the version that we display does not contain whether or not the version is a snapshot build. This commit changes the behavior here so that if the build is a snapshot, that is included in the version string. Relates #25970
This commit is contained in:
parent
bd538aa72c
commit
1afc9afcac
|
@ -382,6 +382,10 @@ public class Version implements Comparable<Version> {
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String displayVersion(final Version version, final boolean isSnapshot) {
|
||||||
|
return version + (isSnapshot ? "-SNAPSHOT" : "");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) {
|
if (this == o) {
|
||||||
|
|
|
@ -24,6 +24,7 @@ import joptsimple.OptionSpec;
|
||||||
import joptsimple.OptionSpecBuilder;
|
import joptsimple.OptionSpecBuilder;
|
||||||
import joptsimple.util.PathConverter;
|
import joptsimple.util.PathConverter;
|
||||||
import org.elasticsearch.Build;
|
import org.elasticsearch.Build;
|
||||||
|
import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.cli.EnvironmentAwareCommand;
|
import org.elasticsearch.cli.EnvironmentAwareCommand;
|
||||||
import org.elasticsearch.cli.ExitCodes;
|
import org.elasticsearch.cli.ExitCodes;
|
||||||
import org.elasticsearch.cli.Terminal;
|
import org.elasticsearch.cli.Terminal;
|
||||||
|
@ -97,7 +98,7 @@ class Elasticsearch extends EnvironmentAwareCommand {
|
||||||
throw new UserException(ExitCodes.USAGE, "Positional arguments not allowed, found " + options.nonOptionArguments());
|
throw new UserException(ExitCodes.USAGE, "Positional arguments not allowed, found " + options.nonOptionArguments());
|
||||||
}
|
}
|
||||||
if (options.has(versionOption)) {
|
if (options.has(versionOption)) {
|
||||||
terminal.println("Version: " + org.elasticsearch.Version.CURRENT
|
terminal.println("Version: " + Version.displayVersion(Version.CURRENT, Build.CURRENT.isSnapshot())
|
||||||
+ ", Build: " + Build.CURRENT.shortHash() + "/" + Build.CURRENT.date()
|
+ ", Build: " + Build.CURRENT.shortHash() + "/" + Build.CURRENT.date()
|
||||||
+ ", JVM: " + JvmInfo.jvmInfo().version());
|
+ ", JVM: " + JvmInfo.jvmInfo().version());
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -277,7 +277,7 @@ public class Node implements Closeable {
|
||||||
final JvmInfo jvmInfo = JvmInfo.jvmInfo();
|
final JvmInfo jvmInfo = JvmInfo.jvmInfo();
|
||||||
logger.info(
|
logger.info(
|
||||||
"version[{}], pid[{}], build[{}/{}], OS[{}/{}/{}], JVM[{}/{}/{}/{}]",
|
"version[{}], pid[{}], build[{}/{}], OS[{}/{}/{}], JVM[{}/{}/{}/{}]",
|
||||||
displayVersion(Version.CURRENT, Build.CURRENT.isSnapshot()),
|
Version.displayVersion(Version.CURRENT, Build.CURRENT.isSnapshot()),
|
||||||
jvmInfo.pid(),
|
jvmInfo.pid(),
|
||||||
Build.CURRENT.shortHash(),
|
Build.CURRENT.shortHash(),
|
||||||
Build.CURRENT.date(),
|
Build.CURRENT.date(),
|
||||||
|
@ -515,19 +515,14 @@ public class Node implements Closeable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// visible for testing
|
|
||||||
static void warnIfPreRelease(final Version version, final boolean isSnapshot, final Logger logger) {
|
static void warnIfPreRelease(final Version version, final boolean isSnapshot, final Logger logger) {
|
||||||
if (!version.isRelease() || isSnapshot) {
|
if (!version.isRelease() || isSnapshot) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"version [{}] is a pre-release version of Elasticsearch and is not suitable for production",
|
"version [{}] is a pre-release version of Elasticsearch and is not suitable for production",
|
||||||
displayVersion(version, isSnapshot));
|
Version.displayVersion(version, isSnapshot));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String displayVersion(final Version version, final boolean isSnapshot) {
|
|
||||||
return version + (isSnapshot ? "-SNAPSHOT" : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected TransportService newTransportService(Settings settings, Transport transport, ThreadPool threadPool,
|
protected TransportService newTransportService(Settings settings, Transport transport, ThreadPool threadPool,
|
||||||
TransportInterceptor interceptor,
|
TransportInterceptor interceptor,
|
||||||
Function<BoundTransportAddress, DiscoveryNode> localNodeFactory,
|
Function<BoundTransportAddress, DiscoveryNode> localNodeFactory,
|
||||||
|
|
|
@ -378,4 +378,16 @@ public class VersionTests extends ESTestCase {
|
||||||
VersionTests.assertUnknownVersion(VERSION_5_1_0_UNRELEASED);
|
VersionTests.assertUnknownVersion(VERSION_5_1_0_UNRELEASED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testDisplayVersion() {
|
||||||
|
final Version version = randomVersion(random());
|
||||||
|
{
|
||||||
|
final String displayVersion = Version.displayVersion(version, true);
|
||||||
|
assertThat(displayVersion, equalTo(version.toString() + "-SNAPSHOT"));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
final String displayVersion = Version.displayVersion(version, false);
|
||||||
|
assertThat(displayVersion, equalTo(version.toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class ElasticsearchCliTests extends ESElasticsearchCliTestCase {
|
||||||
|
|
||||||
private void runTestThatVersionIsReturned(String... args) throws Exception {
|
private void runTestThatVersionIsReturned(String... args) throws Exception {
|
||||||
runTestVersion(ExitCodes.OK, output -> {
|
runTestVersion(ExitCodes.OK, output -> {
|
||||||
assertThat(output, containsString("Version: " + Version.CURRENT.toString()));
|
assertThat(output, containsString("Version: " + Version.displayVersion(Version.CURRENT, Build.CURRENT.isSnapshot())));
|
||||||
assertThat(output, containsString("Build: " + Build.CURRENT.shortHash() + "/" + Build.CURRENT.date()));
|
assertThat(output, containsString("Build: " + Build.CURRENT.shortHash() + "/" + Build.CURRENT.date()));
|
||||||
assertThat(output, containsString("JVM: " + JvmInfo.jvmInfo().version()));
|
assertThat(output, containsString("JVM: " + JvmInfo.jvmInfo().version()));
|
||||||
}, args);
|
}, args);
|
||||||
|
|
Loading…
Reference in New Issue