|
|
@@ -19,6 +19,14 @@
|
|
|
|
|
|
package org.elasticsearch.plugins;
|
|
|
|
|
|
+import org.apache.lucene.util.LuceneTestCase;
|
|
|
+import org.elasticsearch.cli.MockTerminal;
|
|
|
+import org.elasticsearch.cli.UserException;
|
|
|
+import org.elasticsearch.common.settings.Settings;
|
|
|
+import org.elasticsearch.env.Environment;
|
|
|
+import org.elasticsearch.test.ESTestCase;
|
|
|
+import org.junit.Before;
|
|
|
+
|
|
|
import java.io.IOException;
|
|
|
import java.nio.file.DirectoryStream;
|
|
|
import java.nio.file.Files;
|
|
|
@@ -26,13 +34,8 @@ import java.nio.file.Path;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-import org.apache.lucene.util.LuceneTestCase;
|
|
|
-import org.elasticsearch.cli.UserException;
|
|
|
-import org.elasticsearch.cli.MockTerminal;
|
|
|
-import org.elasticsearch.common.settings.Settings;
|
|
|
-import org.elasticsearch.env.Environment;
|
|
|
-import org.elasticsearch.test.ESTestCase;
|
|
|
-import org.junit.Before;
|
|
|
+import static org.hamcrest.CoreMatchers.containsString;
|
|
|
+import static org.hamcrest.CoreMatchers.not;
|
|
|
|
|
|
@LuceneTestCase.SuppressFileSystems("*")
|
|
|
public class RemovePluginCommandTests extends ESTestCase {
|
|
|
@@ -109,4 +112,26 @@ public class RemovePluginCommandTests extends ESTestCase {
|
|
|
assertRemoveCleaned(env);
|
|
|
}
|
|
|
|
|
|
+ public void testConfigDirPreserved() throws Exception {
|
|
|
+ Files.createDirectories(env.pluginsFile().resolve("fake"));
|
|
|
+ final Path configDir = env.configFile().resolve("fake");
|
|
|
+ Files.createDirectories(configDir);
|
|
|
+ Files.createFile(configDir.resolve("fake.yml"));
|
|
|
+ final MockTerminal terminal = removePlugin("fake", home);
|
|
|
+ assertTrue(Files.exists(env.configFile().resolve("fake")));
|
|
|
+ assertThat(terminal.getOutput(), containsString(expectedConfigDirPreservedMessage(configDir)));
|
|
|
+ assertRemoveCleaned(env);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testNoConfigDirPreserved() throws Exception {
|
|
|
+ Files.createDirectories(env.pluginsFile().resolve("fake"));
|
|
|
+ final Path configDir = env.configFile().resolve("fake");
|
|
|
+ final MockTerminal terminal = removePlugin("fake", home);
|
|
|
+ assertThat(terminal.getOutput(), not(containsString(expectedConfigDirPreservedMessage(configDir))));
|
|
|
+ }
|
|
|
+
|
|
|
+ private String expectedConfigDirPreservedMessage(final Path configDir) {
|
|
|
+ return "-> Preserving plugin config files [" + configDir + "] in case of upgrade, delete manually if not needed";
|
|
|
+ }
|
|
|
+
|
|
|
}
|