Bat scripts to work with JAVA_HOME with parentheses Backports (#40832)
backports : Bat scripts to work with JAVA_HOME with parentheses (#39712) Link to SYSTEM_JAVA_HOME on windows (#40806)
This commit is contained in:
parent
fb5a0652a8
commit
65d25186d3
|
@ -65,5 +65,5 @@ rem check the Java version
|
|||
%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.java_version_checker.JavaVersionChecker" || exit /b 1
|
||||
|
||||
if not defined ES_TMPDIR (
|
||||
for /f "tokens=* usebackq" %%a in (`"%JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.TempDirectory""`) do set ES_TMPDIR=%%a
|
||||
for /f "tokens=* usebackq" %%a in (`CALL %JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.TempDirectory"`) do set ES_TMPDIR=%%a
|
||||
)
|
||||
|
|
|
@ -41,9 +41,9 @@ IF ERRORLEVEL 1 (
|
|||
EXIT /B %ERRORLEVEL%
|
||||
)
|
||||
|
||||
set "ES_JVM_OPTIONS=%ES_PATH_CONF%\jvm.options"
|
||||
set ES_JVM_OPTIONS=%ES_PATH_CONF%\jvm.options
|
||||
@setlocal
|
||||
for /F "usebackq delims=" %%a in (`"%JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.JvmOptionsParser" "!ES_JVM_OPTIONS!" || echo jvm_options_parser_failed"`) do set JVM_OPTIONS=%%a
|
||||
for /F "usebackq delims=" %%a in (`CALL %JAVA% -cp "!ES_CLASSPATH!" "org.elasticsearch.tools.launchers.JvmOptionsParser" "!ES_JVM_OPTIONS!" ^|^| echo jvm_options_parser_failed`) do set JVM_OPTIONS=%%a
|
||||
@endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%JVM_OPTIONS%" & set ES_JAVA_OPTS=%JVM_OPTIONS:${ES_TMPDIR}=!ES_TMPDIR!% %ES_JAVA_OPTS%
|
||||
|
||||
if "%MAYBE_JVM_OPTIONS_PARSER_FAILED%" == "jvm_options_parser_failed" (
|
||||
|
|
|
@ -20,21 +20,24 @@
|
|||
package org.elasticsearch.packaging.test;
|
||||
|
||||
import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering;
|
||||
import com.carrotsearch.randomizedtesting.generators.RandomStrings;
|
||||
import org.apache.http.client.fluent.Request;
|
||||
import org.elasticsearch.packaging.util.Archives;
|
||||
import org.elasticsearch.packaging.util.Distribution;
|
||||
import org.elasticsearch.packaging.util.FileUtils;
|
||||
import org.elasticsearch.packaging.util.Installation;
|
||||
import org.elasticsearch.packaging.util.Platforms;
|
||||
import org.elasticsearch.packaging.util.ServerUtils;
|
||||
import org.elasticsearch.packaging.util.Shell;
|
||||
import org.elasticsearch.packaging.util.Shell.Result;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.carrotsearch.randomizedtesting.RandomizedTest.getRandom;
|
||||
import static org.elasticsearch.packaging.util.Archives.ARCHIVE_OWNER;
|
||||
import static org.elasticsearch.packaging.util.Archives.installArchive;
|
||||
import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation;
|
||||
|
@ -49,6 +52,7 @@ import static org.elasticsearch.packaging.util.FileUtils.mv;
|
|||
import static org.elasticsearch.packaging.util.FileUtils.rm;
|
||||
import static org.elasticsearch.packaging.util.ServerUtils.makeRequest;
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
|
@ -62,12 +66,12 @@ import static org.junit.Assume.assumeThat;
|
|||
@TestCaseOrdering(TestCaseOrdering.AlphabeticOrder.class)
|
||||
public abstract class ArchiveTestCase extends PackagingTestCase {
|
||||
|
||||
public void test10Install() {
|
||||
public void test10Install() throws Exception {
|
||||
installation = installArchive(distribution());
|
||||
verifyArchiveInstallation(installation, distribution());
|
||||
}
|
||||
|
||||
public void test20PluginsListWithNoPlugins() {
|
||||
public void test20PluginsListWithNoPlugins() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -77,7 +81,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
assertThat(r.stdout, isEmptyString());
|
||||
}
|
||||
|
||||
public void test30NoJava() {
|
||||
public void test30NoJava() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -101,7 +105,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test40CreateKeystoreManually() {
|
||||
public void test40CreateKeystoreManually() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -134,7 +138,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
});
|
||||
}
|
||||
|
||||
public void test50StartAndStop() throws IOException {
|
||||
public void test50StartAndStop() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
// cleanup from previous test
|
||||
|
@ -152,7 +156,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
Archives.stopElasticsearch(installation);
|
||||
}
|
||||
|
||||
public void assertRunsWithJavaHome() throws IOException {
|
||||
public void assertRunsWithJavaHome() throws Exception {
|
||||
Shell sh = newShell();
|
||||
|
||||
Platforms.onLinux(() -> {
|
||||
|
@ -173,13 +177,13 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
assertThat(new String(Files.readAllBytes(log), StandardCharsets.UTF_8), containsString(systemJavaHome));
|
||||
}
|
||||
|
||||
public void test51JavaHomeOverride() throws IOException {
|
||||
public void test51JavaHomeOverride() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
assertRunsWithJavaHome();
|
||||
}
|
||||
|
||||
public void test52BundledJdkRemoved() throws IOException {
|
||||
public void test52BundledJdkRemoved() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
assumeThat(distribution().hasJdk, is(true));
|
||||
|
||||
|
@ -192,7 +196,63 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test60AutoCreateKeystore() {
|
||||
public void test53JavaHomeWithSpecialCharacters() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
Platforms.onWindows(() -> {
|
||||
final Shell sh = new Shell();
|
||||
try {
|
||||
// once windows 2012 is no longer supported and powershell 5.0 is always available we can change this command
|
||||
sh.run("cmd /c mklink /D 'C:\\Program Files (x86)\\java' $Env:SYSTEM_JAVA_HOME");
|
||||
|
||||
sh.getEnv().put("JAVA_HOME", "C:\\Program Files (x86)\\java");
|
||||
|
||||
//verify ES can start, stop and run plugin list
|
||||
Archives.runElasticsearch(installation, sh);
|
||||
|
||||
Archives.stopElasticsearch(installation);
|
||||
|
||||
String pluginListCommand = installation.bin + "/elasticsearch-plugin list";
|
||||
Result result = sh.run(pluginListCommand);
|
||||
assertThat(result.exitCode, equalTo(0));
|
||||
|
||||
} finally {
|
||||
//clean up sym link
|
||||
sh.run("cmd /c rmdir 'C:\\Program Files (x86)\\java' ");
|
||||
}
|
||||
});
|
||||
|
||||
Platforms.onLinux(() -> {
|
||||
final Shell sh = new Shell();
|
||||
// Create temporary directory with a space and link to java binary.
|
||||
// Use it as java_home
|
||||
String nameWithSpace = RandomStrings.randomAsciiAlphanumOfLength(getRandom(), 10) + "java home";
|
||||
String test_java_home = FileUtils.mkdir(Paths.get("/home",ARCHIVE_OWNER, nameWithSpace)).toAbsolutePath().toString();
|
||||
try {
|
||||
final String systemJavaHome = sh.run("echo $SYSTEM_JAVA_HOME").stdout.trim();
|
||||
final String java = systemJavaHome + "/bin/java";
|
||||
|
||||
sh.run("mkdir -p \"" + test_java_home + "/bin\"");
|
||||
sh.run("ln -s \"" + java + "\" \"" + test_java_home + "/bin/java\"");
|
||||
sh.run("chown -R " + ARCHIVE_OWNER + ":" + ARCHIVE_OWNER + " \"" + test_java_home + "\"");
|
||||
|
||||
sh.getEnv().put("JAVA_HOME", test_java_home);
|
||||
|
||||
//verify ES can start, stop and run plugin list
|
||||
Archives.runElasticsearch(installation, sh);
|
||||
|
||||
Archives.stopElasticsearch(installation);
|
||||
|
||||
String pluginListCommand = installation.bin + "/elasticsearch-plugin list";
|
||||
Result result = sh.run(pluginListCommand);
|
||||
assertThat(result.exitCode, equalTo(0));
|
||||
} finally {
|
||||
FileUtils.rm(Paths.get("\"" + test_java_home + "\""));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void test60AutoCreateKeystore() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
assertThat(installation.config("elasticsearch.keystore"), file(File, ARCHIVE_OWNER, ARCHIVE_OWNER, p660));
|
||||
|
@ -211,7 +271,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
});
|
||||
}
|
||||
|
||||
public void test70CustomPathConfAndJvmOptions() throws IOException {
|
||||
public void test70CustomPathConfAndJvmOptions() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Path tempConf = getTempDir().resolve("esconf-alternate");
|
||||
|
@ -260,7 +320,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test80RelativePathConf() throws IOException {
|
||||
public void test80RelativePathConf() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Path temp = getTempDir().resolve("esconf-alternate");
|
||||
|
@ -304,7 +364,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test90SecurityCliPackaging() {
|
||||
public void test90SecurityCliPackaging() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -328,7 +388,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test91ElasticsearchShardCliPackaging() {
|
||||
public void test91ElasticsearchShardCliPackaging() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -345,7 +405,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test92ElasticsearchNodeCliPackaging() {
|
||||
public void test92ElasticsearchNodeCliPackaging() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -363,7 +423,7 @@ public abstract class ArchiveTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test93ElasticsearchNodeCustomDataPathAndNotEsHomeWorkDir() throws IOException {
|
||||
public void test93ElasticsearchNodeCustomDataPathAndNotEsHomeWorkDir() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
Path relativeDataPath = installation.data.relativize(installation.home);
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.elasticsearch.packaging.util.Shell;
|
|||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
|
@ -54,7 +53,7 @@ public abstract class DebPreservationTestCase extends PackagingTestCase {
|
|||
protected abstract Distribution distribution();
|
||||
|
||||
@BeforeClass
|
||||
public static void cleanup() {
|
||||
public static void cleanup() throws Exception {
|
||||
installation = null;
|
||||
cleanEverything();
|
||||
}
|
||||
|
@ -65,14 +64,14 @@ public abstract class DebPreservationTestCase extends PackagingTestCase {
|
|||
assumeTrue("only compatible distributions", distribution().packaging.compatible);
|
||||
}
|
||||
|
||||
public void test10Install() throws IOException {
|
||||
public void test10Install() throws Exception {
|
||||
assertRemoved(distribution());
|
||||
installation = install(distribution());
|
||||
assertInstalled(distribution());
|
||||
verifyPackageInstallation(installation, distribution(), newShell());
|
||||
}
|
||||
|
||||
public void test20Remove() {
|
||||
public void test20Remove() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
remove(distribution());
|
||||
|
@ -117,7 +116,7 @@ public abstract class DebPreservationTestCase extends PackagingTestCase {
|
|||
assertTrue(Files.exists(installation.envFile));
|
||||
}
|
||||
|
||||
public void test30Purge() {
|
||||
public void test30Purge() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
final Shell sh = new Shell();
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
package org.elasticsearch.packaging.test;
|
||||
|
||||
import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering;
|
||||
import com.carrotsearch.randomizedtesting.generators.RandomStrings;
|
||||
import org.apache.http.client.fluent.Request;
|
||||
import org.elasticsearch.packaging.util.FileUtils;
|
||||
import org.elasticsearch.packaging.util.Shell;
|
||||
|
@ -27,7 +28,6 @@ import org.elasticsearch.packaging.util.Shell.Result;
|
|||
import org.hamcrest.CoreMatchers;
|
||||
import org.junit.Before;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
@ -36,6 +36,7 @@ import java.nio.file.StandardOpenOption;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static com.carrotsearch.randomizedtesting.RandomizedTest.getRandom;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.append;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.assertPathsDontExist;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.assertPathsExist;
|
||||
|
@ -72,19 +73,19 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
private Shell sh;
|
||||
|
||||
@Before
|
||||
public void onlyCompatibleDistributions() {
|
||||
public void onlyCompatibleDistributions() throws Exception {
|
||||
assumeTrue("only compatible distributions", distribution().packaging.compatible);
|
||||
sh = newShell();
|
||||
}
|
||||
|
||||
public void test10InstallPackage() throws IOException {
|
||||
public void test10InstallPackage() throws Exception {
|
||||
assertRemoved(distribution());
|
||||
installation = install(distribution());
|
||||
assertInstalled(distribution());
|
||||
verifyPackageInstallation(installation, distribution(), sh);
|
||||
}
|
||||
|
||||
public void test20PluginsCommandWhenNoPlugins() {
|
||||
public void test20PluginsCommandWhenNoPlugins() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
assertThat(sh.run(installation.bin("elasticsearch-plugin") + " list").stdout, isEmptyString());
|
||||
|
@ -104,7 +105,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
assertThat(sh.run("ps aux").stdout, not(containsString("org.elasticsearch.bootstrap.Elasticsearch")));
|
||||
}
|
||||
|
||||
public void assertRunsWithJavaHome() throws IOException {
|
||||
public void assertRunsWithJavaHome() throws Exception {
|
||||
String systemJavaHome = sh.run("echo $SYSTEM_JAVA_HOME").stdout.trim();
|
||||
byte[] originalEnvFile = Files.readAllBytes(installation.envFile);
|
||||
try {
|
||||
|
@ -121,7 +122,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
assertThat(new String(Files.readAllBytes(log), StandardCharsets.UTF_8), containsString(systemJavaHome));
|
||||
}
|
||||
|
||||
public void test32JavaHomeOverride() throws IOException {
|
||||
public void test32JavaHomeOverride() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
// we always run with java home when no bundled jdk is included, so this test would be repetitive
|
||||
assumeThat(distribution().hasJdk, is(true));
|
||||
|
@ -129,7 +130,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
assertRunsWithJavaHome();
|
||||
}
|
||||
|
||||
public void test42BundledJdkRemoved() throws IOException {
|
||||
public void test42BundledJdkRemoved() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
assumeThat(distribution().hasJdk, is(true));
|
||||
|
||||
|
@ -142,7 +143,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test40StartServer() throws IOException {
|
||||
public void test40StartServer() throws Exception {
|
||||
String start = sh.runIgnoreExitCode("date ").stdout.trim();
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
|
@ -160,7 +161,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
verifyPackageInstallation(installation, distribution(), sh); // check startup script didn't change permissions
|
||||
}
|
||||
|
||||
public void test50Remove() {
|
||||
public void test50Remove() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
remove(distribution());
|
||||
|
@ -210,7 +211,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
assertFalse(Files.exists(SYSTEMD_SERVICE));
|
||||
}
|
||||
|
||||
public void test60Reinstall() throws IOException {
|
||||
public void test60Reinstall() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
installation = install(distribution());
|
||||
|
@ -221,7 +222,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
assertRemoved(distribution());
|
||||
}
|
||||
|
||||
public void test70RestartServer() throws IOException {
|
||||
public void test70RestartServer() throws Exception {
|
||||
try {
|
||||
installation = install(distribution());
|
||||
assertInstalled(distribution());
|
||||
|
@ -236,7 +237,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
}
|
||||
|
||||
|
||||
public void test72TestRuntimeDirectory() throws IOException {
|
||||
public void test72TestRuntimeDirectory() throws Exception {
|
||||
try {
|
||||
installation = install(distribution());
|
||||
FileUtils.rm(installation.pidDir);
|
||||
|
@ -248,7 +249,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test73gcLogsExist() throws IOException {
|
||||
public void test73gcLogsExist() throws Exception {
|
||||
installation = install(distribution());
|
||||
startElasticsearch(sh);
|
||||
// it can be gc.log or gc.log.0.current
|
||||
|
@ -265,7 +266,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
* # but it should not block ES from starting
|
||||
* # see https://github.com/elastic/elasticsearch/issues/11594
|
||||
*/
|
||||
public void test80DeletePID_DIRandRestart() throws IOException {
|
||||
public void test80DeletePID_DIRandRestart() throws Exception {
|
||||
assumeTrue(isSystemd());
|
||||
|
||||
rm(installation.pidDir);
|
||||
|
@ -281,7 +282,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
stopElasticsearch(sh);
|
||||
}
|
||||
|
||||
public void test81CustomPathConfAndJvmOptions() throws IOException {
|
||||
public void test81CustomPathConfAndJvmOptions() throws Exception {
|
||||
assumeTrue(isSystemd());
|
||||
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
@ -292,8 +293,9 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
// The custom config directory is not under /tmp or /var/tmp because
|
||||
// systemd's private temp directory functionally means different
|
||||
// processes can have different views of what's in these directories
|
||||
String temp = sh.runIgnoreExitCode("mktemp -p /etc -d").stdout.trim();
|
||||
final Path tempConf = Paths.get(temp);
|
||||
String randomName = RandomStrings.randomAsciiAlphanumOfLength(getRandom(), 10);
|
||||
sh.run("mkdir /etc/"+randomName);
|
||||
final Path tempConf = Paths.get("/etc/"+randomName);
|
||||
|
||||
try {
|
||||
mkdir(tempConf);
|
||||
|
@ -332,7 +334,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test82SystemdMask() throws IOException {
|
||||
public void test82SystemdMask() throws Exception {
|
||||
try {
|
||||
assumeTrue(isSystemd());
|
||||
|
||||
|
@ -346,7 +348,7 @@ public abstract class PackageTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test83serviceFileSetsLimits() throws IOException {
|
||||
public void test83serviceFileSetsLimits() throws Exception {
|
||||
// Limits are changed on systemd platforms only
|
||||
assumeTrue(isSystemd());
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ public abstract class PackagingTestCase extends Assert {
|
|||
protected static Installation installation;
|
||||
|
||||
@BeforeClass
|
||||
public static void cleanup() {
|
||||
public static void cleanup() throws Exception {
|
||||
installation = null;
|
||||
cleanEverything();
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public abstract class PackagingTestCase extends Assert {
|
|||
/** The {@link Distribution} that should be tested in this case */
|
||||
protected abstract Distribution distribution();
|
||||
|
||||
protected Shell newShell() {
|
||||
protected Shell newShell() throws Exception {
|
||||
Shell sh = new Shell();
|
||||
if (distribution().hasJdk == false) {
|
||||
Platforms.onLinux(() -> {
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.elasticsearch.packaging.util.Shell;
|
|||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -56,7 +55,7 @@ public abstract class RpmPreservationTestCase extends PackagingTestCase {
|
|||
protected abstract Distribution distribution();
|
||||
|
||||
@BeforeClass
|
||||
public static void cleanup() {
|
||||
public static void cleanup() throws Exception {
|
||||
installation = null;
|
||||
cleanEverything();
|
||||
}
|
||||
|
@ -67,14 +66,14 @@ public abstract class RpmPreservationTestCase extends PackagingTestCase {
|
|||
assumeTrue("only compatible distributions", distribution().packaging.compatible);
|
||||
}
|
||||
|
||||
public void test10Install() throws IOException {
|
||||
public void test10Install() throws Exception {
|
||||
assertRemoved(distribution());
|
||||
installation = install(distribution());
|
||||
assertInstalled(distribution());
|
||||
verifyPackageInstallation(installation, distribution(), newShell());
|
||||
}
|
||||
|
||||
public void test20Remove() {
|
||||
public void test20Remove() throws Exception {
|
||||
assumeThat(installation, is(notNullValue()));
|
||||
|
||||
remove(distribution());
|
||||
|
@ -89,7 +88,7 @@ public abstract class RpmPreservationTestCase extends PackagingTestCase {
|
|||
assertFalse(Files.exists(installation.envFile));
|
||||
}
|
||||
|
||||
public void test30PreserveConfig() throws IOException {
|
||||
public void test30PreserveConfig() throws Exception {
|
||||
final Shell sh = new Shell();
|
||||
|
||||
installation = install(distribution());
|
||||
|
|
|
@ -102,7 +102,7 @@ public abstract class WindowsServiceTestCase extends PackagingTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public void test10InstallArchive() {
|
||||
public void test10InstallArchive() throws Exception {
|
||||
installation = installArchive(distribution());
|
||||
verifyArchiveInstallation(installation, distribution());
|
||||
serviceScript = installation.bin("elasticsearch-service.bat").toString();
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.elasticsearch.packaging.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
@ -37,15 +36,14 @@ import static org.elasticsearch.packaging.util.FileUtils.getCurrentVersion;
|
|||
import static org.elasticsearch.packaging.util.FileUtils.getDefaultArchiveInstallPath;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.lsGlob;
|
||||
|
||||
import static org.elasticsearch.packaging.util.FileUtils.mv;
|
||||
import static org.elasticsearch.packaging.util.FileUtils.slurp;
|
||||
import static org.elasticsearch.packaging.util.Platforms.isDPKG;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.isEmptyOrNullString;
|
||||
import static org.hamcrest.core.Is.is;
|
||||
import static org.hamcrest.collection.IsEmptyCollection.empty;
|
||||
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
|
||||
import static org.hamcrest.collection.IsEmptyCollection.empty;
|
||||
import static org.hamcrest.core.Is.is;
|
||||
import static org.hamcrest.core.IsNot.not;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
|
@ -59,11 +57,11 @@ public class Archives {
|
|||
? "vagrant"
|
||||
: "elasticsearch";
|
||||
|
||||
public static Installation installArchive(Distribution distribution) {
|
||||
public static Installation installArchive(Distribution distribution) throws Exception {
|
||||
return installArchive(distribution, getDefaultArchiveInstallPath(), getCurrentVersion());
|
||||
}
|
||||
|
||||
public static Installation installArchive(Distribution distribution, Path fullInstallPath, String version) {
|
||||
public static Installation installArchive(Distribution distribution, Path fullInstallPath, String version) throws Exception {
|
||||
final Shell sh = new Shell();
|
||||
|
||||
final Path distributionFile = getDistributionFile(distribution);
|
||||
|
@ -255,11 +253,7 @@ public class Archives {
|
|||
).forEach(configFile -> assertThat(es.config(configFile), file(File, owner, owner, p660)));
|
||||
}
|
||||
|
||||
public static void runElasticsearch(Installation installation) throws IOException {
|
||||
runElasticsearch(installation, new Shell());
|
||||
}
|
||||
|
||||
public static void runElasticsearch(Installation installation, Shell sh) throws IOException {
|
||||
public static void runElasticsearch(Installation installation, Shell sh) throws Exception {
|
||||
final Path pidFile = installation.home.resolve("elasticsearch.pid");
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -309,7 +303,7 @@ public class Archives {
|
|||
Platforms.onWindows(() -> sh.run("Get-Process -Id " + pid));
|
||||
}
|
||||
|
||||
public static void stopElasticsearch(Installation installation) {
|
||||
public static void stopElasticsearch(Installation installation) throws Exception {
|
||||
Path pidFile = installation.home.resolve("elasticsearch.pid");
|
||||
assertTrue(Files.exists(pidFile));
|
||||
String pid = slurp(pidFile).trim();
|
||||
|
|
|
@ -50,7 +50,7 @@ public class Cleanup {
|
|||
// todo
|
||||
private static final List<String> ELASTICSEARCH_FILES_WINDOWS = Collections.emptyList();
|
||||
|
||||
public static void cleanEverything() {
|
||||
public static void cleanEverything() throws Exception {
|
||||
final Shell sh = new Shell();
|
||||
|
||||
// kill elasticsearch processes
|
||||
|
|
|
@ -54,14 +54,14 @@ public class Packages {
|
|||
public static final Path SYSVINIT_SCRIPT = Paths.get("/etc/init.d/elasticsearch");
|
||||
public static final Path SYSTEMD_SERVICE = Paths.get("/usr/lib/systemd/system/elasticsearch.service");
|
||||
|
||||
public static void assertInstalled(Distribution distribution) {
|
||||
public static void assertInstalled(Distribution distribution) throws Exception {
|
||||
final Result status = packageStatus(distribution);
|
||||
assertThat(status.exitCode, is(0));
|
||||
|
||||
Platforms.onDPKG(() -> assertFalse(Pattern.compile("(?m)^Status:.+deinstall ok").matcher(status.stdout).find()));
|
||||
}
|
||||
|
||||
public static void assertRemoved(Distribution distribution) {
|
||||
public static void assertRemoved(Distribution distribution) throws Exception {
|
||||
final Result status = packageStatus(distribution);
|
||||
|
||||
Platforms.onRPM(() -> assertThat(status.exitCode, is(1)));
|
||||
|
@ -133,7 +133,7 @@ public class Packages {
|
|||
}
|
||||
}
|
||||
|
||||
public static void remove(Distribution distribution) {
|
||||
public static void remove(Distribution distribution) throws Exception {
|
||||
final Shell sh = new Shell();
|
||||
|
||||
Platforms.onRPM(() -> {
|
||||
|
|
|
@ -65,25 +65,25 @@ public class Platforms {
|
|||
return new Shell().runIgnoreExitCode("which service").isSuccess();
|
||||
}
|
||||
|
||||
public static void onWindows(PlatformAction action) {
|
||||
public static void onWindows(PlatformAction action) throws Exception {
|
||||
if (WINDOWS) {
|
||||
action.run();
|
||||
}
|
||||
}
|
||||
|
||||
public static void onLinux(PlatformAction action) {
|
||||
public static void onLinux(PlatformAction action) throws Exception {
|
||||
if (LINUX) {
|
||||
action.run();
|
||||
}
|
||||
}
|
||||
|
||||
public static void onRPM(PlatformAction action) {
|
||||
public static void onRPM(PlatformAction action) throws Exception {
|
||||
if (isRPM()) {
|
||||
action.run();
|
||||
}
|
||||
}
|
||||
|
||||
public static void onDPKG(PlatformAction action) {
|
||||
public static void onDPKG(PlatformAction action) throws Exception {
|
||||
if (isDPKG()) {
|
||||
action.run();
|
||||
}
|
||||
|
@ -94,6 +94,6 @@ public class Platforms {
|
|||
*/
|
||||
@FunctionalInterface
|
||||
public interface PlatformAction {
|
||||
void run();
|
||||
void run() throws Exception;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue