You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2015/10/19 18:05:32 UTC

ambari git commit: AMBARI-13471 ZooKeeper "log4j.rootLogger" should have ROLLINGFILE instead of CONSOLE (dsen)

Repository: ambari
Updated Branches:
  refs/heads/trunk fefa1c44d -> fe230132f


AMBARI-13471 ZooKeeper "log4j.rootLogger" should have ROLLINGFILE instead of CONSOLE (dsen)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fe230132
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fe230132
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fe230132

Branch: refs/heads/trunk
Commit: fe230132f472d64b1cca39d365e958cc37fb150f
Parents: fefa1c4
Author: Dmytro Sen <ds...@apache.org>
Authored: Mon Oct 19 19:05:22 2015 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Mon Oct 19 19:05:22 2015 +0300

----------------------------------------------------------------------
 .../server/upgrade/UpgradeCatalog213.java       | 42 +++++++++-------
 .../ZOOKEEPER/configuration/zookeeper-log4j.xml |  4 +-
 .../server/upgrade/UpgradeCatalog213Test.java   | 50 ++++++++++++++++++--
 3 files changed, 72 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fe230132/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
index ed536cc..a5a1b7a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
@@ -62,6 +62,8 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
   private static final String AMS_ENV = "ams-env";
   private static final String AMS_HBASE_ENV = "ams-hbase-env";
   private static final String HBASE_ENV_CONFIG = "hbase-env";
+  private static final String ZOOKEEPER_LOG4J_CONFIG = "zookeeper-log4j";
+  private static final String NIMBS_MONITOR_FREQ_SECS_PROPERTY = "nimbus.monitor.freq.secs";
   private static final String HADOOP_ENV_CONFIG = "hadoop-env";
   private static final String CONTENT_PROPERTY = "content";
   private static final String HADOOP_ENV_CONTENT_TO_APPEND = "\n{% if is_datanode_max_locked_memory_set %}\n" +
@@ -174,6 +176,7 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
     updateHbaseEnvConfig();
     updateHadoopEnv();
     updateKafkaConfigs();
+    updateZookeeperLog4j();
   }
 
   /**
@@ -276,26 +279,31 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
     }
   }
 
-  protected void updateStormConfigs() throws AmbariException {
+  protected void updateZookeeperLog4j() throws AmbariException {
     AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
-    Clusters clusters = ambariManagementController.getClusters();
 
-    if (clusters != null) {
-      Map<String, Cluster> clusterMap = clusters.getClusters();
+    for (final Cluster cluster : getCheckedClusterMap(ambariManagementController.getClusters()).values()) {
+      Config zookeeperLog4jConfig = cluster.getDesiredConfigByType(ZOOKEEPER_LOG4J_CONFIG);
+      if (zookeeperLog4jConfig != null) {
+        String content = zookeeperLog4jConfig.getProperties().get(CONTENT_PROPERTY);
+        if (content != null) {
+          content = content.replaceAll("[\n^]\\s*log4j\\.rootLogger\\s*=\\s*INFO\\s*,\\s*CONSOLE", "\nlog4j.rootLogger=INFO, ROLLINGFILE");
+          Map<String, String> updates = Collections.singletonMap(CONTENT_PROPERTY, content);
+          updateConfigurationPropertiesForCluster(cluster, ZOOKEEPER_LOG4J_CONFIG, updates, true, false);
+        }
+      }
+    }
+  }
 
-      if ((clusterMap != null) && !clusterMap.isEmpty()) {
-        // Iterate through the clusters and perform any configuration updates
-        for (final Cluster cluster : clusterMap.values()) {
-          Config stormSiteProps = cluster.getDesiredConfigByType(STORM_SITE);
-
-          if (stormSiteProps != null) {
-            String value = stormSiteProps.getProperties().get("nimbus.monitor.freq.secs");
-            if (value != null && value.equals("10")) {
-              Map<String, String> updates = new HashMap<String, String>();
-              updates.put("nimbus.monitor.freq.secs", "120");
-              updateConfigurationPropertiesForCluster(cluster, STORM_SITE, updates, true, false);
-            }
-          }
+  protected void updateStormConfigs() throws AmbariException {
+    AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
+    for (final Cluster cluster : getCheckedClusterMap(ambariManagementController.getClusters()).values()) {
+      Config stormSiteProps = cluster.getDesiredConfigByType(STORM_SITE);
+      if (stormSiteProps != null) {
+        String nimbusMonitorFreqSecs = stormSiteProps.getProperties().get(NIMBS_MONITOR_FREQ_SECS_PROPERTY);
+        if (nimbusMonitorFreqSecs != null && nimbusMonitorFreqSecs.equals("10")) {
+          Map<String, String> updates = Collections.singletonMap(NIMBS_MONITOR_FREQ_SECS_PROPERTY, "120");
+          updateConfigurationPropertiesForCluster(cluster, STORM_SITE, updates, true, false);
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/fe230132/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/configuration/zookeeper-log4j.xml b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
index 6fcf5bc..d7edd1b 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
@@ -52,8 +52,8 @@
 # ZooKeeper Logging Configuration
 #
 
-# DEFAULT: console appender only
-log4j.rootLogger=INFO, CONSOLE
+# DEFAULT: rollingfile appender only
+log4j.rootLogger=INFO, ROLLINGFILE
 
 # Example with rolling log file
 #log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE

http://git-wip-us.apache.org/repos/asf/ambari/blob/fe230132/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
index 24471bd..34ff56b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
@@ -132,6 +132,7 @@ public class UpgradeCatalog213Test {
     Method updateStormConfigs = UpgradeCatalog213.class.getDeclaredMethod("updateStormConfigs");
     Method addNewConfigurationsFromXml = AbstractUpgradeCatalog.class.getDeclaredMethod("addNewConfigurationsFromXml");
     Method updateHbaseEnvConfig = UpgradeCatalog213.class.getDeclaredMethod("updateHbaseEnvConfig");
+    Method updateZookeeperLog4j = UpgradeCatalog213.class.getDeclaredMethod("updateZookeeperLog4j");
     Method updateHadoopEnvConfig = UpgradeCatalog213.class.getDeclaredMethod("updateHadoopEnv");
     Method updateAlertDefinitions = UpgradeCatalog213.class.getDeclaredMethod("updateAlertDefinitions");
 
@@ -143,6 +144,7 @@ public class UpgradeCatalog213Test {
         .addMockedMethod(updateHbaseEnvConfig)
         .addMockedMethod(updateAlertDefinitions)
         .addMockedMethod(updateKafkaConfigs)
+        .addMockedMethod(updateZookeeperLog4j)
         .addMockedMethod(updateHadoopEnvConfig)
         .createMock();
 
@@ -162,6 +164,8 @@ public class UpgradeCatalog213Test {
     expectLastCall().once();
     upgradeCatalog213.updateHDFSConfigs();
     expectLastCall().once();
+    upgradeCatalog213.updateZookeeperLog4j();
+    expectLastCall().once();
 
     replay(upgradeCatalog213);
 
@@ -212,10 +216,6 @@ public class UpgradeCatalog213Test {
     final Config mockStormSite = easyMockSupport.createNiceMock(Config.class);
     expect(mockStormSite.getProperties()).andReturn(propertiesStormSite).once();
 
-    final Map<String, String> propertiesExpectedHiveSite = new HashMap<String, String>() {{
-      put("nimbus.monitor.freq.secs", "210");
-    }};
-
     final Injector mockInjector = Guice.createInjector(new AbstractModule() {
       @Override
       protected void configure() {
@@ -234,7 +234,7 @@ public class UpgradeCatalog213Test {
     }}).once();
 
     expect(mockClusterExpected.getDesiredConfigByType("storm-site")).andReturn(mockStormSite).atLeastOnce();
-    expect(mockStormSite.getProperties()).andReturn(propertiesExpectedHiveSite).atLeastOnce();
+    expect(mockStormSite.getProperties()).andReturn(propertiesStormSite).atLeastOnce();
 
     easyMockSupport.replayAll();
     mockInjector.getInstance(UpgradeCatalog213.class).updateStormConfigs();
@@ -507,6 +507,46 @@ public class UpgradeCatalog213Test {
   }
 
   @Test
+  public void testUpdateZookeeperLog4jConfig() throws AmbariException {
+    EasyMockSupport easyMockSupport = new EasyMockSupport();
+    final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class);
+    final Clusters mockClusters = easyMockSupport.createStrictMock(Clusters.class);
+    final Cluster mockClusterExpected = easyMockSupport.createNiceMock(Cluster.class);
+    final Map<String, String> propertiesZookeeperLog4j = new HashMap<String, String>() {
+      {
+        put("content", "log4j.rootLogger=INFO, CONSOLE");
+      }
+    };
+
+    final Config mockZookeeperLog4j = easyMockSupport.createNiceMock(Config.class);
+    expect(mockZookeeperLog4j.getProperties()).andReturn(propertiesZookeeperLog4j).once();
+
+    final Injector mockInjector = Guice.createInjector(new AbstractModule() {
+      @Override
+      protected void configure() {
+        bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
+        bind(Clusters.class).toInstance(mockClusters);
+        bind(EntityManager.class).toInstance(entityManager);
+
+        bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+        bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+      }
+    });
+
+    expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
+    expect(mockClusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
+      put("normal", mockClusterExpected);
+    }}).atLeastOnce();
+
+    expect(mockClusterExpected.getDesiredConfigByType("zookeeper-log4j")).andReturn(mockZookeeperLog4j).atLeastOnce();
+    expect(mockZookeeperLog4j.getProperties()).andReturn(propertiesZookeeperLog4j).atLeastOnce();
+
+    easyMockSupport.replayAll();
+    mockInjector.getInstance(UpgradeCatalog213.class).updateZookeeperLog4j();
+    easyMockSupport.verifyAll();
+
+  }
+
   public void testGetSourceVersion() {
     final DBAccessor dbAccessor = createNiceMock(DBAccessor.class);
     UpgradeCatalog upgradeCatalog = getUpgradeCatalog(dbAccessor);