Procházet zdrojové kódy

AMBARI-7867. mapreduce2-log4j is empty after upgrade to 1.7.0.(vbrodetskyi)

Vitaly Brodetskyi před 10 roky
rodič
revize
6930dd9289

+ 1 - 0
ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java

@@ -200,6 +200,7 @@ public class Configuration {
   public static final String CLIENT_API_SSL_KEY_NAME_DEFAULT = "https.key";
   public static final String CLIENT_API_SSL_KEY_NAME_DEFAULT = "https.key";
   public static final String CLIENT_API_SSL_CRT_NAME_DEFAULT = "https.crt";
   public static final String CLIENT_API_SSL_CRT_NAME_DEFAULT = "https.crt";
   public static final String GLOBAL_CONFIG_TAG = "global";
   public static final String GLOBAL_CONFIG_TAG = "global";
+  public static final String MAPREDUCE2_LOG4J_CONFIG_TAG = "mapreduce2-log4j";
   public static final String RCA_ENABLED_PROPERTY = "rca_enabled";
   public static final String RCA_ENABLED_PROPERTY = "rca_enabled";
   public static final String HIVE_CONFIG_TAG = "hive-site";
   public static final String HIVE_CONFIG_TAG = "hive-site";
   public static final String HIVE_METASTORE_PASSWORD_PROPERTY =
   public static final String HIVE_METASTORE_PASSWORD_PROPERTY =

+ 22 - 0
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java

@@ -649,6 +649,28 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
     moveConfigGroupsGlobalToEnv();
     moveConfigGroupsGlobalToEnv();
     addMissingConfigs();
     addMissingConfigs();
     updateClusterProvisionState();
     updateClusterProvisionState();
+    removeMapred2Log4jConfig();
+  }
+
+  private void removeMapred2Log4jConfig() {
+    ConfigHelper configHelper = injector.getInstance(ConfigHelper.class);
+
+    AmbariManagementController ambariManagementController = injector.getInstance(
+            AmbariManagementController.class);
+    Clusters clusters = ambariManagementController.getClusters();
+    if (clusters == null) {
+      return;
+    }
+    Map<String, Cluster> clusterMap = clusters.getClusters();
+
+    if (clusterMap != null && !clusterMap.isEmpty()) {
+      for (final Cluster cluster : clusterMap.values()) {
+        Config config = cluster.getDesiredConfigByType(Configuration.MAPREDUCE2_LOG4J_CONFIG_TAG);
+        if (config != null) {
+          configHelper.removeConfigsByType(cluster, Configuration.MAPREDUCE2_LOG4J_CONFIG_TAG);
+        }
+      }
+    }
   }
   }
 
 
   public void updateClusterProvisionState() {
   public void updateClusterProvisionState() {

+ 1 - 1
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog170Test.java

@@ -502,7 +502,7 @@ public class UpgradeCatalog170Test {
     expect(amc.getClusters()).andReturn(clusters).anyTimes();
     expect(amc.getClusters()).andReturn(clusters).anyTimes();
     expect(clusters.getClusters()).andReturn(clustersMap).anyTimes();
     expect(clusters.getClusters()).andReturn(clustersMap).anyTimes();
     expect(clusters.getClusterById(1L)).andReturn(clustersMap.values().iterator().next()).anyTimes();
     expect(clusters.getClusterById(1L)).andReturn(clustersMap.values().iterator().next()).anyTimes();
-    expect(clusters.getClusters()).andReturn(clustersMap).once();
+    expect(clusters.getClusters()).andReturn(clustersMap).times(2);
     expect(cluster.getDesiredConfigByType("global")).andReturn(config).anyTimes();
     expect(cluster.getDesiredConfigByType("global")).andReturn(config).anyTimes();
     expect(cluster.getDesiredConfigByType("oozie-log4j")).andReturn(config).anyTimes();
     expect(cluster.getDesiredConfigByType("oozie-log4j")).andReturn(config).anyTimes();
     expect(cluster.getClusterId()).andReturn(1L);
     expect(cluster.getClusterId()).andReturn(1L);