SLIDER-619 registry list and listconf commands to save output to --out file
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/70c1b1a7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/70c1b1a7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/70c1b1a7 Branch: refs/heads/develop Commit: 70c1b1a7b21e02abff825009d51ca40ee9f2aca6 Parents: 844e4b6 Author: Steve Loughran <ste...@apache.org> Authored: Wed Nov 5 20:34:13 2014 +0000 Committer: Steve Loughran <ste...@apache.org> Committed: Wed Nov 5 20:34:13 2014 +0000 ---------------------------------------------------------------------- .../org/apache/slider/client/SliderClient.java | 68 ++++++++++++++------ .../common/params/ActionRegistryArgs.java | 3 +- 2 files changed, 52 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/70c1b1a7/slider-core/src/main/java/org/apache/slider/client/SliderClient.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java index d9100e4..fcc6ef6 100644 --- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java +++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java @@ -153,7 +153,9 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.PrintStream; import java.io.StringWriter; import java.io.Writer; import java.net.InetSocketAddress; @@ -3000,16 +3002,28 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe RegistryRetriever retriever = new RegistryRetriever(instance); PublishedConfigSet configurations = retriever.getConfigurations(!registryArgs.internal); - - for (String configName : configurations.keys()) { - if (!registryArgs.verbose) { - log.info("{}", configName); + PrintStream out = null; + try { + if (registryArgs.out != null) { + out = new PrintStream(new FileOutputStream(registryArgs.out)); } else { - PublishedConfiguration published = - configurations.get(configName); - log.info("{} : {}", - configName, - published.description); + out = System.out; + } + for (String configName : configurations.keys()) { + if (!registryArgs.verbose) { + out.println(configName); + } else { + PublishedConfiguration published = + configurations.get(configName); + out.printf("%s: %s\n", + configName, + published.description); + } + } + } finally { + if (registryArgs.out != null && out != null) { + out.flush(); + out.close(); } } } @@ -3028,16 +3042,34 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe RegistryRetriever retriever = new RegistryRetriever(instance); PublishedExportsSet exports = retriever.getExports(!registryArgs.internal); - - for (String exportName : exports.keys()) { - if (!registryArgs.verbose) { - log.info("{}", exportName); + PrintStream out = null; + boolean streaming = false; + try { + if (registryArgs.out != null) { + out = new PrintStream(new FileOutputStream(registryArgs.out)); + streaming = true; + log.debug("Saving output to {}", registryArgs.out); } else { - PublishedExports published = - exports.get(exportName); - log.info("{} : {}", - exportName, - published.description); + out = System.out; + } + log.debug("Number of exports: {}", exports.keys().size()); + for (String exportName : exports.keys()) { + if (streaming) { + log.debug(exportName); + } + if (!registryArgs.verbose) { + out.println(exportName); + } else { + PublishedExports published = exports.get(exportName); + out.printf("%s: %s\n", + exportName, + published.description); + } + } + } finally { + if (streaming) { + out.flush(); + out.close(); } } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/70c1b1a7/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java index 4b4c30a..da1b0e5 100644 --- a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java +++ b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java @@ -97,6 +97,7 @@ public class ActionRegistryArgs extends AbstractActionArgs { @Parameter(names = {ARG_LISTEXP}, description = "list exports") public boolean listExports; + @Parameter(names = {ARG_GETEXP}, description = "get export") public String getExport; @@ -154,7 +155,7 @@ public class ActionRegistryArgs extends AbstractActionArgs { throw new UsageException(USAGE); } - if (out != null && (lists > 0 || set == 0)) { + if (out != null && ( set == 0)) { throw new UsageException("output path" + " is only supported on 'get' operations: "); }