Repository: ambari Updated Branches: refs/heads/branch-2.4 dae3e88ee -> f79507900
AMBARI-16231 mapreduce.jobhistory.http.policy & mapreduce.jobhistory.webapp.https.address property are not respected (ghugare via dsen) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f7950790 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f7950790 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f7950790 Branch: refs/heads/branch-2.4 Commit: f7950790035ed4bcf2bfb093ac5c9b2a3086d904 Parents: dae3e88 Author: Dmytro Sen <[email protected]> Authored: Thu May 19 14:32:00 2016 +0300 Committer: Dmytro Sen <[email protected]> Committed: Thu May 19 14:34:04 2016 +0300 ---------------------------------------------------------------------- .../internal/AbstractProviderModule.java | 9 ++++-- .../internal/JMXHostProviderTest.java | 34 ++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/f7950790/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java index d30b9d2..36be39e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java @@ -151,6 +151,7 @@ public abstract class AbstractProviderModule implements ProviderModule, initPropMap = new HashMap<String, String[]>(); initPropMap.put("HISTORYSERVER", new String[]{"mapreduce.jobhistory.webapp.address"}); + initPropMap.put("HISTORYSERVER-HTTPS", new String[]{"mapreduce.jobhistory.webapp.https.address"}); serviceDesiredProperties.put(Service.Type.MAPREDUCE2, initPropMap); initPropMap = new HashMap<String, String[]>(); @@ -164,7 +165,11 @@ public abstract class AbstractProviderModule implements ProviderModule, initPropMap = new HashMap<String, String[]>(); initPropMap.put("RESOURCEMANAGER", new String[]{"yarn.http.policy"}); jmxDesiredProperties.put("RESOURCEMANAGER", initPropMap); - + + initPropMap = new HashMap<String, String[]>(); + initPropMap.put("HISTORYSERVER", new String[]{"mapreduce.jobhistory.http.policy"}); + jmxDesiredProperties.put("HISTORYSERVER", initPropMap); + initPropMap = new HashMap<String, String[]>(); initPropMap.put("client", new String[]{"dfs.namenode.rpc-address"}); initPropMap.put("datanode", new String[]{"dfs.namenode.servicerpc-address"}); @@ -1154,7 +1159,7 @@ public abstract class AbstractProviderModule implements ProviderModule, String jmxProtocolString = clusterJmxProtocolMap.get(clusterName); try { - if (componentName.equals("NAMENODE") || componentName.equals("RESOURCEMANAGER") || componentName.equals("JOURNALNODE")) { + if (componentName.equals("NAMENODE") || componentName.equals("RESOURCEMANAGER") || componentName.equals("JOURNALNODE") || componentName.equals("HISTORYSERVER")) { Service.Type service = componentServiceMap.get(componentName); String config = serviceConfigTypes.get(service); String newSiteConfigVersion = getDesiredConfigVersion(clusterName, config); http://git-wip-us.apache.org/repos/asf/ambari/blob/f7950790/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java index a5700a9..a6e5501 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java @@ -77,6 +77,8 @@ public class JMXHostProviderTest { private static final String NODEMANAGER_PORT = "yarn.nodemanager.webapp.address"; private static final String JOURNALNODE_HTTPS_PORT = "dfs.journalnode.https-address"; private static final String HDFS_HTTPS_POLICY = "dfs.http.policy"; + private static final String MAPREDUCE_HTTPS_POLICY = "mapreduce.jobhistory.http.policy"; + private static final String MAPREDUCE_HTTPS_PORT = "mapreduce.jobhistory.webapp.https.address"; @Before public void setup() throws Exception { @@ -223,13 +225,18 @@ public class JMXHostProviderTest { cluster.setDesiredStackVersion(new StackId("HDP-2.0.6")); String serviceName = "HDFS"; String serviceName2 = "YARN"; + String serviceName3 = "MAPREDUCE2"; + createService(clusterName, serviceName, null); createService(clusterName, serviceName2, null); + createService(clusterName, serviceName3, null); + String componentName1 = "NAMENODE"; String componentName2 = "DATANODE"; String componentName3 = "HDFS_CLIENT"; String componentName4 = "RESOURCEMANAGER"; String componentName5 = "JOURNALNODE"; + String componentName6 = "HISTORYSERVER"; createServiceComponent(clusterName, serviceName, componentName1, State.INIT); @@ -241,6 +248,8 @@ public class JMXHostProviderTest { State.INIT); createServiceComponent(clusterName, serviceName, componentName5, State.INIT); + createServiceComponent(clusterName, serviceName3, componentName6, + State.INIT); String host1 = "h1"; clusters.addHost(host1); @@ -275,6 +284,8 @@ public class JMXHostProviderTest { host2, null); createServiceComponentHost(clusterName, serviceName2, componentName4, host2, null); + createServiceComponentHost(clusterName, serviceName3, componentName6, + host2, null); // Create configs Map<String, String> configs = new HashMap<String, String>(); @@ -289,6 +300,10 @@ public class JMXHostProviderTest { yarnConfigs.put(NODEMANAGER_PORT, "8042"); yarnConfigs.put(RESOURCEMANAGER_HTTPS_PORT, "8090"); yarnConfigs.put(YARN_HTTPS_POLICY, "HTTPS_ONLY"); + + Map<String, String> mapreduceConfigs = new HashMap<String, String>(); + mapreduceConfigs.put(MAPREDUCE_HTTPS_PORT, "19889"); + mapreduceConfigs.put(MAPREDUCE_HTTPS_POLICY, "HTTPS_ONLY"); ConfigurationRequest cr1 = new ConfigurationRequest(clusterName, "hdfs-site", "versionN", configs, null); @@ -304,6 +319,11 @@ public class JMXHostProviderTest { "yarn-site", "versionN", yarnConfigs, null); crReq.setDesiredConfig(Collections.singletonList(cr2)); controller.updateClusters(Collections.singleton(crReq), null); + + ConfigurationRequest cr3 = new ConfigurationRequest(clusterName, + "mapred-site", "versionN", mapreduceConfigs, null); + crReq.setDesiredConfig(Collections.singletonList(cr3)); + controller.updateClusters(Collections.singleton(crReq), null); Assert.assertEquals("versionN", cluster.getDesiredConfigByType("yarn-site") .getTag()); @@ -500,6 +520,20 @@ public class JMXHostProviderTest { Assert.assertEquals("8090", providerModule.getPort("c1", "RESOURCEMANAGER", "localhost", true)); } + + @Test + public void testJMXHistoryServerHttpsPort() throws + NoSuchParentResourceException, + ResourceAlreadyExistsException, UnsupportedPropertyException, + SystemException, AmbariException, NoSuchResourceException { + createConfigs(); + JMXHostProviderModule providerModule = new JMXHostProviderModule(); + providerModule.registerResourceProvider(Resource.Type.Cluster); + providerModule.registerResourceProvider(Resource.Type.Configuration); + Assert.assertEquals("https", providerModule.getJMXProtocol("c1", "HISTORYSERVER")); + Assert.assertEquals("19889", providerModule.getPort("c1", "HISTORYSERVER", "localhost", true)); + + } @Test public void testJMXJournalNodeHttpsPort() throws
