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)
+  }
 }

Reply via email to