mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-24 17:09:48 +00:00
Remove reference to standalonerunner
This commit is contained in:
parent
e5c852f767
commit
3836f3a736
@ -33,10 +33,6 @@ import java.util.Map;
|
||||
*/
|
||||
public class CliToolConfig {
|
||||
|
||||
public static Builder config(String name, Class<? extends CliTool> toolType) {
|
||||
return new Builder(name, toolType);
|
||||
}
|
||||
|
||||
private final Class<? extends CliTool> toolType;
|
||||
private final String name;
|
||||
private final Map<String, Cmd> cmds;
|
||||
@ -82,55 +78,6 @@ public class CliToolConfig {
|
||||
helpPrinter.print(this, terminal);
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
public static Cmd.Builder cmd(String name, Class<? extends CliTool.Command> cmdType) {
|
||||
return new Cmd.Builder(name, cmdType);
|
||||
}
|
||||
|
||||
public static OptionBuilder option(String shortName, String longName) {
|
||||
return new OptionBuilder(shortName, longName);
|
||||
}
|
||||
|
||||
public static Option.Builder optionBuilder(String shortName, String longName) {
|
||||
return Option.builder(shortName).argName(longName).longOpt(longName);
|
||||
}
|
||||
|
||||
public static OptionGroupBuilder optionGroup(boolean required) {
|
||||
return new OptionGroupBuilder(required);
|
||||
}
|
||||
|
||||
private final Class<? extends CliTool> toolType;
|
||||
private final String name;
|
||||
private Cmd[] cmds;
|
||||
|
||||
private Builder(String name, Class<? extends CliTool> toolType) {
|
||||
this.name = name;
|
||||
this.toolType = toolType;
|
||||
}
|
||||
|
||||
public Builder cmds(Cmd.Builder... cmds) {
|
||||
this.cmds = new Cmd[cmds.length];
|
||||
for (int i = 0; i < cmds.length; i++) {
|
||||
this.cmds[i] = cmds[i].build();
|
||||
this.cmds[i].toolName = name;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder cmds(Cmd... cmds) {
|
||||
for (int i = 0; i < cmds.length; i++) {
|
||||
cmds[i].toolName = name;
|
||||
}
|
||||
this.cmds = cmds;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CliToolConfig build() {
|
||||
return new CliToolConfig(name, toolType, cmds);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Cmd {
|
||||
|
||||
private String toolName;
|
||||
|
@ -145,7 +145,7 @@ class InstallPluginCommand extends Command {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
protected void execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
// TODO: in jopt-simple 5.0 we can enforce a min/max number of positional args
|
||||
List<String> args = arguments.values(options);
|
||||
if (args.size() != 1) {
|
||||
@ -154,7 +154,6 @@ class InstallPluginCommand extends Command {
|
||||
String pluginId = args.get(0);
|
||||
boolean isBatch = options.has(batchOption) || System.console() == null;
|
||||
execute(terminal, pluginId, isBatch);
|
||||
return ExitCodes.OK;
|
||||
}
|
||||
|
||||
// pkg private for testing
|
||||
@ -222,14 +221,14 @@ class InstallPluginCommand extends Command {
|
||||
BufferedReader checksumReader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
|
||||
expectedChecksum = checksumReader.readLine();
|
||||
if (checksumReader.readLine() != null) {
|
||||
throw new UserError(CliTool.ExitStatus.IO_ERROR.status(), "Invalid checksum file at " + checksumUrl);
|
||||
throw new UserError(ExitCodes.IO_ERROR, "Invalid checksum file at " + checksumUrl);
|
||||
}
|
||||
}
|
||||
|
||||
byte[] zipbytes = Files.readAllBytes(zip);
|
||||
String gotChecksum = MessageDigests.toHexString(MessageDigests.sha1().digest(zipbytes));
|
||||
if (expectedChecksum.equals(gotChecksum) == false) {
|
||||
throw new UserError(CliTool.ExitStatus.IO_ERROR.status(), "SHA1 mismatch, expected " + expectedChecksum + " but got " + gotChecksum);
|
||||
throw new UserError(ExitCodes.IO_ERROR, "SHA1 mismatch, expected " + expectedChecksum + " but got " + gotChecksum);
|
||||
}
|
||||
|
||||
return zip;
|
||||
@ -271,7 +270,7 @@ class InstallPluginCommand extends Command {
|
||||
Files.delete(zip);
|
||||
if (hasEsDir == false) {
|
||||
IOUtils.rm(target);
|
||||
throw new UserError(CliTool.ExitStatus.DATA_ERROR.status(), "`elasticsearch` directory is missing in the plugin zip");
|
||||
throw new UserError(ExitCodes.DATA_ERROR, "`elasticsearch` directory is missing in the plugin zip");
|
||||
}
|
||||
return target;
|
||||
}
|
||||
@ -285,7 +284,7 @@ class InstallPluginCommand extends Command {
|
||||
// don't let luser install plugin as a module...
|
||||
// they might be unavoidably in maven central and are packaged up the same way)
|
||||
if (MODULES.contains(info.getName())) {
|
||||
throw new UserError(CliTool.ExitStatus.USAGE.status(), "plugin '" + info.getName() + "' cannot be installed like this, it is a system module");
|
||||
throw new UserError(ExitCodes.USAGE, "plugin '" + info.getName() + "' cannot be installed like this, it is a system module");
|
||||
}
|
||||
|
||||
// check for jar hell before any copying
|
||||
@ -341,7 +340,7 @@ class InstallPluginCommand extends Command {
|
||||
|
||||
final Path destination = env.pluginsFile().resolve(info.getName());
|
||||
if (Files.exists(destination)) {
|
||||
throw new UserError(CliTool.ExitStatus.USAGE.status(), "plugin directory " + destination.toAbsolutePath() + " already exists. To update the plugin, uninstall it first using 'remove " + info.getName() + "' command");
|
||||
throw new UserError(ExitCodes.USAGE, "plugin directory " + destination.toAbsolutePath() + " already exists. To update the plugin, uninstall it first using 'remove " + info.getName() + "' command");
|
||||
}
|
||||
|
||||
Path tmpBinDir = tmpRoot.resolve("bin");
|
||||
@ -374,7 +373,7 @@ class InstallPluginCommand extends Command {
|
||||
/** Copies the files from {@code tmpBinDir} into {@code destBinDir}, along with permissions from dest dirs parent. */
|
||||
private void installBin(PluginInfo info, Path tmpBinDir, Path destBinDir) throws Exception {
|
||||
if (Files.isDirectory(tmpBinDir) == false) {
|
||||
throw new UserError(CliTool.ExitStatus.IO_ERROR.status(), "bin in plugin " + info.getName() + " is not a directory");
|
||||
throw new UserError(ExitCodes.IO_ERROR, "bin in plugin " + info.getName() + " is not a directory");
|
||||
}
|
||||
Files.createDirectory(destBinDir);
|
||||
|
||||
@ -392,7 +391,7 @@ class InstallPluginCommand extends Command {
|
||||
try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpBinDir)) {
|
||||
for (Path srcFile : stream) {
|
||||
if (Files.isDirectory(srcFile)) {
|
||||
throw new UserError(CliTool.ExitStatus.DATA_ERROR.status(), "Directories not allowed in bin dir for plugin " + info.getName() + ", found " + srcFile.getFileName());
|
||||
throw new UserError(ExitCodes.DATA_ERROR, "Directories not allowed in bin dir for plugin " + info.getName() + ", found " + srcFile.getFileName());
|
||||
}
|
||||
|
||||
Path destFile = destBinDir.resolve(tmpBinDir.relativize(srcFile));
|
||||
@ -413,7 +412,7 @@ class InstallPluginCommand extends Command {
|
||||
*/
|
||||
private void installConfig(PluginInfo info, Path tmpConfigDir, Path destConfigDir) throws Exception {
|
||||
if (Files.isDirectory(tmpConfigDir) == false) {
|
||||
throw new UserError(CliTool.ExitStatus.IO_ERROR.status(), "config in plugin " + info.getName() + " is not a directory");
|
||||
throw new UserError(ExitCodes.IO_ERROR, "config in plugin " + info.getName() + " is not a directory");
|
||||
}
|
||||
|
||||
// create the plugin's config dir "if necessary"
|
||||
@ -422,7 +421,7 @@ class InstallPluginCommand extends Command {
|
||||
try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpConfigDir)) {
|
||||
for (Path srcFile : stream) {
|
||||
if (Files.isDirectory(srcFile)) {
|
||||
throw new UserError(CliTool.ExitStatus.DATA_ERROR.status(), "Directories not allowed in config dir for plugin " + info.getName());
|
||||
throw new UserError(ExitCodes.DATA_ERROR, "Directories not allowed in config dir for plugin " + info.getName());
|
||||
}
|
||||
|
||||
Path destFile = destConfigDir.resolve(tmpConfigDir.relativize(srcFile));
|
||||
|
@ -44,7 +44,7 @@ class ListPluginsCommand extends Command {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
protected void execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
if (Files.exists(env.pluginsFile()) == false) {
|
||||
throw new IOException("Plugins directory missing: " + env.pluginsFile());
|
||||
}
|
||||
@ -55,7 +55,5 @@ class ListPluginsCommand extends Command {
|
||||
terminal.println(plugin.getFileName().toString());
|
||||
}
|
||||
}
|
||||
|
||||
return ExitCodes.OK;
|
||||
}
|
||||
}
|
||||
|
@ -53,14 +53,13 @@ class RemovePluginCommand extends Command {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
protected void execute(Terminal terminal, OptionSet options) throws Exception {
|
||||
// TODO: in jopt-simple 5.0 we can enforce a min/max number of positional args
|
||||
List<String> args = arguments.values(options);
|
||||
if (args.size() != 1) {
|
||||
throw new UserError(ExitCodes.USAGE, "Must supply a single plugin id argument");
|
||||
}
|
||||
execute(terminal, args.get(0));
|
||||
return ExitCodes.OK;
|
||||
}
|
||||
|
||||
// pkg private for testing
|
||||
|
@ -19,13 +19,40 @@
|
||||
|
||||
package org.elasticsearch.plugins;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.elasticsearch.cli.Command;
|
||||
import org.elasticsearch.cli.CommandTestCase;
|
||||
import org.elasticsearch.common.cli.CliToolTestCase;
|
||||
import org.elasticsearch.cli.MockTerminal;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.env.Environment;
|
||||
import org.junit.Before;
|
||||
|
||||
import static org.hamcrest.Matchers.hasItem;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
public class PluginCliTests extends CliToolTestCase {
|
||||
public class PluginCliTests extends CommandTestCase {
|
||||
|
||||
// the home dir for each test to use
|
||||
Path homeDir;
|
||||
|
||||
// settings used to create an Environment for tools
|
||||
Settings.Builder settingsBuilder;
|
||||
|
||||
@Before
|
||||
public void setupHome() {
|
||||
homeDir = createTempDir();
|
||||
settingsBuilder = Settings.builder()
|
||||
.put("path.home", homeDir);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Command newCommand() {
|
||||
return new PluginCli(new Environment(settingsBuilder.build()));
|
||||
}
|
||||
|
||||
public void testHelpWorks() throws Exception {
|
||||
MockTerminal terminal = new MockTerminal();
|
||||
/* nocommit
|
||||
@ -48,4 +75,5 @@ public class PluginCliTests extends CliToolTestCase {
|
||||
assertTerminalOutputContainsHelpFile(terminal, "/org/elasticsearch/plugins/plugin-list.help");
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -405,41 +405,3 @@ It gives back:
|
||||
}
|
||||
}
|
||||
--------------------------
|
||||
|
||||
[[mapper-attachments-standalone]]
|
||||
==== Stand alone runner
|
||||
|
||||
If you want to run some tests within your IDE, you can use `StandaloneRunner` class.
|
||||
It accepts arguments:
|
||||
|
||||
* `-u file://URL/TO/YOUR/DOC`
|
||||
* `--size` set extracted size (default to mapper attachment size)
|
||||
* `BASE64` encoded binary
|
||||
|
||||
Example:
|
||||
|
||||
[source,sh]
|
||||
--------------------------
|
||||
StandaloneRunner BASE64Text
|
||||
StandaloneRunner -u /tmp/mydoc.pdf
|
||||
StandaloneRunner -u /tmp/mydoc.pdf --size 1000000
|
||||
--------------------------
|
||||
|
||||
It produces something like:
|
||||
|
||||
[source,text]
|
||||
--------------------------
|
||||
## Extracted text
|
||||
--------------------- BEGIN -----------------------
|
||||
This is the extracted text
|
||||
---------------------- END ------------------------
|
||||
## Metadata
|
||||
- author: null
|
||||
- content_length: null
|
||||
- content_type: application/pdf
|
||||
- date: null
|
||||
- keywords: null
|
||||
- language: null
|
||||
- name: null
|
||||
- title: null
|
||||
--------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user