Repository: incubator-slider
Updated Branches:
  refs/heads/develop ceac1f75f -> 083e1bea9


SLIDER-1204 Slider handles per.component for multiple components incorrectly


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/083e1bea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/083e1bea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/083e1bea

Branch: refs/heads/develop
Commit: 083e1bea9c45e4cb9d0213cd81bd336259657422
Parents: ceac1f7
Author: Billie Rinaldi <bil...@apache.org>
Authored: Tue Feb 7 10:37:24 2017 -0800
Committer: Billie Rinaldi <bil...@apache.org>
Committed: Tue Feb 7 10:37:24 2017 -0800

----------------------------------------------------------------------
 .../org/apache/slider/providers/agent/AgentKeys.java |  4 ++--
 .../slider/providers/agent/AgentProviderService.java | 15 +++++++++++----
 .../providers/agent/TestAgentProviderService.java    |  3 ++-
 3 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/083e1bea/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
index c7f8df2..cd937de 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
@@ -87,8 +87,8 @@ public interface AgentKeys {
   String AGENT_CONFIG_FILE = "infra/conf/agent.ini";
   String AGENT_VERSION_FILE = "infra/version";
   String APP_PACKAGES_DIR = "app/packages";
-  String PER_COMPONENT = "per.component";
-  String PER_GROUP = "per.group";
+  String PER_COMPONENT = ".per.component";
+  String PER_GROUP = ".per.group";
 
   String JAVA_HOME = "java_home";
   String PACKAGE_LIST = "package_list";

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/083e1bea/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index 7f3b04e..047159c 100644
--- 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@ -564,7 +564,8 @@ public class AgentProviderService extends 
AbstractProviderService implements
           buildCommandConfigurations(instanceDefinition.getAppConfOperations(),
               container.getId().toString(), roleName, roleGroup);
       localizeConfigFiles(launcher, roleName, roleGroup, 
getMetaInfo(roleGroup),
-          configurations, launcher.getEnv(), fileSystem);
+          configurations, launcher.getEnv(), fileSystem,
+          instanceDefinition.getAppConfOperations());
     }
 
     String label = getContainerLabel(container, roleName, roleGroup);
@@ -870,7 +871,8 @@ public class AgentProviderService extends 
AbstractProviderService implements
                                      Metainfo metainfo,
                                      Map<String, Map<String, String>> configs,
                                      MapOperations env,
-                                     SliderFileSystem fileSystem)
+                                     SliderFileSystem fileSystem,
+                                     ConfTreeOperations appConf)
       throws IOException {
     for (ConfigFile configFile : metainfo.getComponentConfigFiles(roleGroup)) {
       Map<String, String> config = ConfigUtils.replacePropsInConfig(
@@ -883,10 +885,15 @@ public class AgentProviderService extends 
AbstractProviderService implements
       }
       localFile = new File(localFile, new File(fileName).getName());
 
+      boolean perComponent = appConf.getComponentOptBool(roleGroup,
+          "conf." + configFile.getDictionaryName() + PER_COMPONENT, false);
+      boolean perGroup = appConf.getComponentOptBool(roleGroup,
+          "conf." + configFile.getDictionaryName() + PER_GROUP, false);
+
       String folder = null;
-      if ("true".equals(config.get(PER_COMPONENT))) {
+      if (perComponent) {
         folder = roleName;
-      } else if ("true".equals(config.get(PER_GROUP))) {
+      } else if (perGroup) {
         folder = roleGroup;
       }
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/083e1bea/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
 
b/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
index cd853d6..f259664 100644
--- 
a/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
+++ 
b/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
@@ -1306,7 +1306,8 @@ public class TestAgentProviderService {
         (Metainfo)Matchers.anyObject(),
         anyMap(),
         (MapOperations)Matchers.anyObject(),
-        (SliderFileSystem)Matchers.anyObject());
+        (SliderFileSystem)Matchers.anyObject(),
+        (ConfTreeOperations)Matchers.anyObject());
     doReturn(Collections.emptyMap()).when(mockAps).getRoleClusterNodeMapping();
     replay(access, ctx, container, sliderFileSystem, mockFs, launcher, 
launcher2);
 

Reply via email to