SLIDER-1134 remove command line appconfig options from resources
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/baf6532d Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/baf6532d Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/baf6532d Branch: refs/heads/feature/SLIDER-1107_AM_config_generation Commit: baf6532ddf9b91e647cfee3995b12373c3a94f4d Parents: 66257d7 Author: Billie Rinaldi <billie.rina...@gmail.com> Authored: Thu Jun 2 12:05:27 2016 -0700 Committer: Billie Rinaldi <billie.rina...@gmail.com> Committed: Thu Jun 2 12:05:27 2016 -0700 ---------------------------------------------------------------------- .../org/apache/slider/client/SliderClient.java | 1 + .../AbstractClusterBuildingActionArgs.java | 6 --- .../standalone/TestBuildStandaloneAM.groovy | 50 ++++++++++++++++++++ 3 files changed, 51 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baf6532d/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 f74d3b7..dd90e46 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 @@ -1593,6 +1593,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe // resource component args appConf.merge(cmdLineResourceOptions); + resources.merge(cmdLineResourceOptions); resources.mergeComponents(buildInfo.getResourceCompOptionMap()); builder.init(providerName, instanceDefinition); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baf6532d/slider-core/src/main/java/org/apache/slider/common/params/AbstractClusterBuildingActionArgs.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/params/AbstractClusterBuildingActionArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/AbstractClusterBuildingActionArgs.java index 3833394..2a5eedc 100644 --- a/slider-core/src/main/java/org/apache/slider/common/params/AbstractClusterBuildingActionArgs.java +++ b/slider-core/src/main/java/org/apache/slider/common/params/AbstractClusterBuildingActionArgs.java @@ -212,12 +212,6 @@ public abstract class AbstractClusterBuildingActionArgs extends ConfTree confTree = new ConfTree(); ConfTreeOperations ops = new ConfTreeOperations(confTree); confTree.global.putAll(optionsMap); - Map<String, Map<String, String>> roleOptionMap = getCompOptionMap(); - for (Map.Entry<String, Map<String, String>> entry : roleOptionMap.entrySet()) { - String key = entry.getKey(); - Map<String, String> value = entry.getValue(); - ops.getOrAddComponent(key).putAll(value); - } return confTree; } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baf6532d/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestBuildStandaloneAM.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestBuildStandaloneAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestBuildStandaloneAM.groovy index 6637c73..4a97e69 100644 --- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestBuildStandaloneAM.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestBuildStandaloneAM.groovy @@ -170,4 +170,54 @@ class TestBuildStandaloneAM extends AgentMiniClusterTestBase { assert masterRole != null, "Role hbase-master must exist" assert cd.roleNames.contains(master), "Role names must contain hbase-master" } + + @Test + public void testBuildClusterWithCompOpt() throws Throwable { + String clustername = createMiniCluster("", configuration, 1, true) + + describe "verify that a cluster can be built with compots" + + String echo = "echo" + ServiceLauncher<SliderClient> launcher = createOrBuildCluster( + SliderActions.ACTION_BUILD, + clustername, + [(echo): 1], + [ARG_COMP_OPT, echo, "non.resource.property", "value", + ARG_COMP_OPT, echo, "yarn.some.property", "yarn", + ARG_COMP_OPT, echo, "component.some.property", "component", + ARG_COMP_OPT, echo, "role.some.property", "role", + ARG_RES_COMP_OPT, echo, ResourceKeys.COMPONENT_PRIORITY, "1", + ARG_RES_COMP_OPT, echo, ResourceKeys.COMPONENT_PLACEMENT_POLICY, "4"], + true, + false, + agentDefOptions) + SliderClient sliderClient = launcher.service + addToTeardown(sliderClient); + + // verify the cluster exists + assert 0 == sliderClient.actionExists(clustername, false) + + // verify that global component options propagate from the CLI + def aggregateConf = sliderClient.loadPersistedClusterDescription(clustername) + assert "value" == aggregateConf.appConfOperations.getComponentOpt(echo, + "non.resource.property", null) + assert null == aggregateConf.resourceOperations.getComponentOpt(echo, + "non.resource.property", null) + assert "yarn" == aggregateConf.appConfOperations.getComponentOpt(echo, + "yarn.some.property", null) + assert "yarn" == aggregateConf.resourceOperations.getComponentOpt(echo, + "yarn.some.property", null) + assert "component" == aggregateConf.appConfOperations.getComponentOpt(echo, + "component.some.property", null) + assert "component" == aggregateConf.resourceOperations.getComponentOpt(echo, + "component.some.property", null) + assert "role" == aggregateConf.appConfOperations.getComponentOpt(echo, + "role.some.property", null) + assert "role" == aggregateConf.resourceOperations.getComponentOpt(echo, + "role.some.property", null) + assert 1 == aggregateConf.resourceOperations.getComponentOptInt(echo, + ResourceKeys.COMPONENT_PRIORITY, -1) + assert 4 == aggregateConf.resourceOperations.getComponentOptInt(echo, + ResourceKeys.COMPONENT_PLACEMENT_POLICY, -1) + } }