SLIDER-306 test checks are not consistent with current listing semantics: succeeds if live or not live cluster is in the history
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/894f5c10 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/894f5c10 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/894f5c10 Branch: refs/heads/develop Commit: 894f5c10f30695f7617ecb0ae19ed350b8b723bb Parents: 74f2ff6 Author: Steve Loughran <ste...@apache.org> Authored: Tue Aug 19 12:38:26 2014 +0100 Committer: Steve Loughran <ste...@apache.org> Committed: Fri Oct 24 21:51:10 2014 +0100 ---------------------------------------------------------------------- .../slider/agent/actions/TestActionList.groovy | 58 +++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/894f5c10/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionList.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionList.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionList.groovy index f218484..dc0f620 100644 --- a/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionList.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/agent/actions/TestActionList.groovy @@ -23,6 +23,8 @@ import org.apache.hadoop.yarn.api.records.ApplicationReport import org.apache.hadoop.yarn.conf.YarnConfiguration import org.apache.slider.agent.AgentMiniClusterTestBase import org.apache.slider.client.SliderClient +import org.apache.slider.common.params.ActionListArgs +import org.apache.slider.common.params.ActionThawArgs import org.apache.slider.common.params.Arguments import org.apache.slider.common.params.SliderActions import org.apache.slider.core.exceptions.UnknownApplicationInstanceException @@ -40,7 +42,7 @@ class TestActionList extends AgentMiniClusterTestBase { @Before public void setup() { super.setup() - createMiniCluster("", configuration, 1, false) + createMiniCluster("", configuration, 1, true) } /** @@ -55,6 +57,7 @@ class TestActionList extends AgentMiniClusterTestBase { testListAllUsersNoClusters() testListLiveCluster() testListMissingCluster() +// testActionListHistory() } public void testListThisUserNoClusters() throws Throwable { @@ -128,7 +131,7 @@ class TestActionList extends AgentMiniClusterTestBase { } public void testListMissingCluster() throws Throwable { - describe("exec the status command against an unknown cluster") + describe("exec the list command against an unknown cluster") ServiceLauncher<SliderClient> launcher try { @@ -138,7 +141,7 @@ class TestActionList extends AgentMiniClusterTestBase { //varargs list of command line params [ SliderActions.ACTION_LIST, - createClusterName() + "no-instance" ] ) fail("expected an exception, got a status code " + launcher.serviceExitCode) @@ -148,4 +151,53 @@ class TestActionList extends AgentMiniClusterTestBase { } + @Test + public void testActionListHistory() { + String clustername = createClusterName() + ServiceLauncher<SliderClient> launcher = createStandaloneAM( + clustername, + true, + true) + addToTeardown(launcher) + SliderClient sliderClient = launcher.service + waitForClusterLive(sliderClient) + + ActionListArgs args = new ActionListArgs(); + //Listing only live instances + args.live = true; + assert sliderClient.actionList(clustername, args) == 0; + clusterActionFreeze(sliderClient, clustername, "stopping first cluster") + waitForAppToFinish(sliderClient) + + //Listing only live instances but prints nothing since instance is freezed/stopped + + args.live = true; + args.history = false; + try { + int exitCode = sliderClient.actionList(clustername, args); + fail("expected an exception, got a status code $exitCode") + } catch (UnknownApplicationInstanceException expected) { + } + + // historical list will work + args.history = true; + assert sliderClient.actionList(clustername, args) == 0; + + // thaw + ActionThawArgs thawArgs = new ActionThawArgs(); + sliderClient.actionThaw(clustername, thawArgs); + waitForClusterLive(sliderClient) + + //Listing only live instances + args.live = true; + args.history = false; + assert 0 == sliderClient.actionList(clustername, args); + assert launcher.serviceExitCode == 0 + + //Listing all the instance both history (previously freezed instance) and live + args.live = true + args.history = true + assert 0 == sliderClient.actionList("", args); + } + }