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

Reply via email to