Repository: incubator-slider Updated Branches: refs/heads/develop c2ae8e697 -> a0d4f93d8
SLIDER-653 slider flex does something instead of printing usage (Sherry Guo via gourksaha) Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/a0d4f93d Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/a0d4f93d Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/a0d4f93d Branch: refs/heads/develop Commit: a0d4f93d8ca81ca86a30915db624c2e3f646a221 Parents: c2ae8e6 Author: Gour Saha <[email protected]> Authored: Thu Nov 12 17:06:31 2015 -0800 Committer: Gour Saha <[email protected]> Committed: Thu Nov 12 17:06:31 2015 -0800 ---------------------------------------------------------------------- .../main/java/org/apache/slider/client/SliderClient.java | 8 ++++++-- .../org/apache/slider/client/TestClientBadArgs.groovy | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a0d4f93d/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 59e6848..f44b739 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 @@ -2709,11 +2709,15 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe @Override @VisibleForTesting public int actionFlex(String name, ActionFlexArgs args) throws YarnException, IOException { - verifyBindingsDefined(); validateClusterName(name); + Map<String, String> roleMap = args.getComponentMap(); + // throw usage exception if no changes proposed + if (roleMap.size() == 0) { + actionHelp(ACTION_FLEX); + } + verifyBindingsDefined(); log.debug("actionFlex({})", name); Map<String, Integer> roleInstances = new HashMap<>(); - Map<String, String> roleMap = args.getComponentMap(); for (Map.Entry<String, String> roleEntry : roleMap.entrySet()) { String key = roleEntry.getKey(); String val = roleEntry.getValue(); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a0d4f93d/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy index 12736e3..1a90c88 100644 --- a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy @@ -237,4 +237,15 @@ class TestClientBadArgs extends ServiceLauncherBaseTest { assert exception instanceof BadCommandArgumentsException log.info(exception.toString()) } + + @Test + public void testFlexWithNoCompoents() throws Throwable { + def exception = launchExpectingException(SliderClient, + new Configuration(), + "Usage: slider flex <application>", + [SliderActions.ACTION_FLEX, + "flex1"]) + assert exception instanceof UsageException + log.info(exception.toString()) + } }
