Format RemovePluginCommand to 100-column limit
This commit formats RemovePluginCommand.java to the 100-column limit and removes this file from the list of suppressions.
This commit is contained in:
parent
f9d6924f7d
commit
2eafe8310e
|
@ -1578,7 +1578,6 @@
|
|||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]PluginSecurity.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]PluginsService.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]ProgressInputStream.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]RemovePluginCommand.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]RepositoryPlugin.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]ScriptPlugin.java" checks="LineLength" />
|
||||
<suppress files="core[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]plugins[/\\]SearchPlugin.java" checks="LineLength" />
|
||||
|
|
|
@ -26,6 +26,7 @@ import java.nio.file.Path;
|
|||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import joptsimple.OptionSet;
|
||||
import joptsimple.OptionSpec;
|
||||
|
@ -40,21 +41,22 @@ import org.elasticsearch.env.Environment;
|
|||
import static org.elasticsearch.cli.Terminal.Verbosity.VERBOSE;
|
||||
|
||||
/**
|
||||
* A command for the plugin cli to remove a plugin from elasticsearch.
|
||||
* A command for the plugin CLI to remove a plugin from Elasticsearch.
|
||||
*/
|
||||
class RemovePluginCommand extends EnvironmentAwareCommand {
|
||||
|
||||
private final OptionSpec<String> arguments;
|
||||
|
||||
RemovePluginCommand() {
|
||||
super("Removes a plugin from elasticsearch");
|
||||
super("removes a plugin from Elasticsearch");
|
||||
this.arguments = parser.nonOptions("plugin name");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void execute(Terminal terminal, OptionSet options, Environment env) throws Exception {
|
||||
String arg = arguments.value(options);
|
||||
execute(terminal, arg, env);
|
||||
protected void execute(final Terminal terminal, final OptionSet options, final Environment env)
|
||||
throws Exception {
|
||||
final String pluginName = arguments.value(options);
|
||||
execute(terminal, pluginName, env);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -68,18 +70,22 @@ class RemovePluginCommand extends EnvironmentAwareCommand {
|
|||
* @throws UserException if plugin directory does not exist
|
||||
* @throws UserException if the plugin bin directory is not a directory
|
||||
*/
|
||||
void execute(Terminal terminal, String pluginName, Environment env) throws IOException, UserException {
|
||||
void execute(final Terminal terminal, final String pluginName, final Environment env)
|
||||
throws IOException, UserException {
|
||||
if (pluginName == null) {
|
||||
throw new UserException(ExitCodes.USAGE, "plugin name is required");
|
||||
}
|
||||
|
||||
terminal.println("-> Removing " + Strings.coalesceToEmpty(pluginName) + "...");
|
||||
terminal.println("-> removing [" + Strings.coalesceToEmpty(pluginName) + "]...");
|
||||
|
||||
final Path pluginDir = env.pluginsFile().resolve(pluginName);
|
||||
if (Files.exists(pluginDir) == false) {
|
||||
throw new UserException(
|
||||
ExitCodes.CONFIG,
|
||||
"plugin " + pluginName + " not found; run 'elasticsearch-plugin list' to get list of installed plugins");
|
||||
final String message = String.format(
|
||||
Locale.ROOT,
|
||||
"plugin [%s] not found; "
|
||||
+ "run 'elasticsearch-plugin list' to get list of installed plugins",
|
||||
pluginName);
|
||||
throw new UserException(ExitCodes.CONFIG, message);
|
||||
}
|
||||
|
||||
final List<Path> pluginPaths = new ArrayList<>();
|
||||
|
@ -87,30 +93,41 @@ class RemovePluginCommand extends EnvironmentAwareCommand {
|
|||
final Path pluginBinDir = env.binFile().resolve(pluginName);
|
||||
if (Files.exists(pluginBinDir)) {
|
||||
if (Files.isDirectory(pluginBinDir) == false) {
|
||||
throw new UserException(ExitCodes.IO_ERROR, "Bin dir for " + pluginName + " is not a directory");
|
||||
throw new UserException(
|
||||
ExitCodes.IO_ERROR, "bin dir for " + pluginName + " is not a directory");
|
||||
}
|
||||
pluginPaths.add(pluginBinDir);
|
||||
terminal.println(VERBOSE, "Removing: " + pluginBinDir);
|
||||
terminal.println(VERBOSE, "removing [" + pluginBinDir + "]");
|
||||
}
|
||||
|
||||
terminal.println(VERBOSE, "Removing: " + pluginDir);
|
||||
terminal.println(VERBOSE, "removing [" + pluginDir + "]");
|
||||
final Path tmpPluginDir = env.pluginsFile().resolve(".removing-" + pluginName);
|
||||
try {
|
||||
Files.move(pluginDir, tmpPluginDir, StandardCopyOption.ATOMIC_MOVE);
|
||||
} catch (final AtomicMoveNotSupportedException e) {
|
||||
// this can happen on a union filesystem when a plugin is not installed on the top layer; we fall back to a non-atomic move
|
||||
/*
|
||||
* On a union file system if the plugin that we are removing is not installed on the
|
||||
* top layer then atomic move will not be supported. In this case, we fall back to a
|
||||
* non-atomic move.
|
||||
*/
|
||||
Files.move(pluginDir, tmpPluginDir);
|
||||
}
|
||||
pluginPaths.add(tmpPluginDir);
|
||||
|
||||
IOUtils.rm(pluginPaths.toArray(new Path[pluginPaths.size()]));
|
||||
|
||||
// we preserve the config files in case the user is upgrading the plugin, but we print
|
||||
// a message so the user knows in case they want to remove manually
|
||||
/*
|
||||
* We preserve the config files in case the user is upgrading the plugin, but we print a
|
||||
* message so the user knows in case they want to remove manually.
|
||||
*/
|
||||
final Path pluginConfigDir = env.configFile().resolve(pluginName);
|
||||
if (Files.exists(pluginConfigDir)) {
|
||||
terminal.println(
|
||||
"-> Preserving plugin config files [" + pluginConfigDir + "] in case of upgrade, delete manually if not needed");
|
||||
final String message = String.format(
|
||||
Locale.ROOT,
|
||||
"-> preserving plugin config files [%s] in case of upgrade; "
|
||||
+ "delete manually if not needed",
|
||||
pluginConfigDir);
|
||||
terminal.println(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ public class RemovePluginCommandTests extends ESTestCase {
|
|||
|
||||
public void testMissing() throws Exception {
|
||||
UserException e = expectThrows(UserException.class, () -> removePlugin("dne", home));
|
||||
assertTrue(e.getMessage(), e.getMessage().contains("plugin dne not found"));
|
||||
assertTrue(e.getMessage(), e.getMessage().contains("plugin [dne] not found"));
|
||||
assertRemoveCleaned(env);
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ public class RemovePluginCommandTests extends ESTestCase {
|
|||
public void testRemoveUninstalledPluginErrors() throws Exception {
|
||||
UserException e = expectThrows(UserException.class, () -> removePlugin("fake", home));
|
||||
assertEquals(ExitCodes.CONFIG, e.exitCode);
|
||||
assertEquals("plugin fake not found; run 'elasticsearch-plugin list' to get list of installed plugins", e.getMessage());
|
||||
assertEquals("plugin [fake] not found; run 'elasticsearch-plugin list' to get list of installed plugins", e.getMessage());
|
||||
|
||||
MockTerminal terminal = new MockTerminal();
|
||||
new RemovePluginCommand() {
|
||||
|
@ -146,8 +146,8 @@ public class RemovePluginCommandTests extends ESTestCase {
|
|||
}
|
||||
}.main(new String[] { "-Epath.home=" + home, "fake" }, terminal);
|
||||
try (BufferedReader reader = new BufferedReader(new StringReader(terminal.getOutput()))) {
|
||||
assertEquals("-> Removing fake...", reader.readLine());
|
||||
assertEquals("ERROR: plugin fake not found; run 'elasticsearch-plugin list' to get list of installed plugins",
|
||||
assertEquals("-> removing [fake]...", reader.readLine());
|
||||
assertEquals("ERROR: plugin [fake] not found; run 'elasticsearch-plugin list' to get list of installed plugins",
|
||||
reader.readLine());
|
||||
assertNull(reader.readLine());
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ public class RemovePluginCommandTests extends ESTestCase {
|
|||
}
|
||||
|
||||
private String expectedConfigDirPreservedMessage(final Path configDir) {
|
||||
return "-> Preserving plugin config files [" + configDir + "] in case of upgrade, delete manually if not needed";
|
||||
return "-> preserving plugin config files [" + configDir + "] in case of upgrade; delete manually if not needed";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue