Repository: ambari Updated Branches: refs/heads/branch-2.2 2c84b99ec -> 736e3ec2f refs/heads/trunk bd7b8693c -> c4791973d
AMBARI-15536. HBASE start,Check ZooKeeper and other ones was failed after upgrade to ambari 2.2.2.0 (resource_management.core.exceptions.Fail) from 2.1.1/2.1.2 etc Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c4791973 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c4791973 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c4791973 Branch: refs/heads/trunk Commit: c4791973dc5df4b6448776af3bfd08ea7a6cf940 Parents: bd7b869 Author: Lisnichenko Dmitro <[email protected]> Authored: Thu Mar 24 16:15:49 2016 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Thu Mar 24 16:15:49 2016 +0200 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog222.java | 19 +++++++ .../server/upgrade/UpgradeCatalog222Test.java | 56 +++++++++++++++++++- 2 files changed, 74 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/c4791973/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java index 598861b..533f9bf 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog222.java @@ -179,6 +179,25 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog { updateHostRoleCommands(); updateHDFSWidgetDefinition(); updateCorruptedReplicaWidget(); + updateZookeeperConfigs(); + } + + protected void updateZookeeperConfigs() throws AmbariException { + AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class); + Map<String, Cluster> clusterMap = getCheckedClusterMap(ambariManagementController.getClusters()); + + for (final Cluster cluster : clusterMap.values()) { + Config zooEnv = cluster.getDesiredConfigByType("zookeeper-env"); + if (zooEnv != null && zooEnv.getProperties().containsKey("zk_server_heapsize")) { + String heapSizeValue = zooEnv.getProperties().get("zk_server_heapsize"); + if(!heapSizeValue.endsWith("m")) { + Map<String, String> updates = new HashMap<String, String>(); + updates.put("zk_server_heapsize", heapSizeValue+"m"); + updateConfigurationPropertiesForCluster(cluster, "zookeeper-env", updates, true, false); + } + + } + } } protected void updateStormConfigs() throws AmbariException { http://git-wip-us.apache.org/repos/asf/ambari/blob/c4791973/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java index a9eccdc..4eda972 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog222Test.java @@ -130,7 +130,7 @@ public class UpgradeCatalog222Test { Method updateHostRoleCommands = UpgradeCatalog222.class.getDeclaredMethod("updateHostRoleCommands"); Method updateHDFSWidget = UpgradeCatalog222.class.getDeclaredMethod("updateHDFSWidgetDefinition"); Method updateCorruptedReplicaWidget = UpgradeCatalog222.class.getDeclaredMethod("updateCorruptedReplicaWidget"); - + Method updateZookeeperConfigs = UpgradeCatalog222.class.getDeclaredMethod("updateZookeeperConfigs"); UpgradeCatalog222 upgradeCatalog222 = createMockBuilder(UpgradeCatalog222.class) .addMockedMethod(addNewConfigurationsFromXml) @@ -141,6 +141,7 @@ public class UpgradeCatalog222Test { .addMockedMethod(updateHostRoleCommands) .addMockedMethod(updateHDFSWidget) .addMockedMethod(updateCorruptedReplicaWidget) + .addMockedMethod(updateZookeeperConfigs) .createMock(); upgradeCatalog222.addNewConfigurationsFromXml(); @@ -159,6 +160,8 @@ public class UpgradeCatalog222Test { expectLastCall().once(); upgradeCatalog222.updateCorruptedReplicaWidget(); expectLastCall().once(); + upgradeCatalog222.updateZookeeperConfigs(); + expectLastCall().once(); replay(upgradeCatalog222); @@ -278,6 +281,57 @@ public class UpgradeCatalog222Test { } @Test + public void testUpdateZookeeperConfigs() throws Exception{ + 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 Config zookeeperEnv = easyMockSupport.createNiceMock(Config.class); + expect(zookeeperEnv.getProperties()).andReturn(new HashMap<String, String>(){{ + put("zk_server_heapsize", "1024"); + }} + ).anyTimes(); + + 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-env")).andReturn(zookeeperEnv).atLeastOnce(); + + UpgradeCatalog222 upgradeCatalog222 = createMockBuilder(UpgradeCatalog222.class) + .withConstructor(Injector.class) + .withArgs(mockInjector) + .addMockedMethod("updateConfigurationPropertiesForCluster", Cluster.class, String.class, + Map.class, boolean.class, boolean.class) + .createMock(); + + Map<String, String> expectedUpdates = new HashMap<>(); + expectedUpdates.put("zk_server_heapsize", "1024m"); + + upgradeCatalog222.updateConfigurationPropertiesForCluster(mockClusterExpected, "zookeeper-env", expectedUpdates, + true, false); + expectLastCall().once(); + + easyMockSupport.replayAll(); + replay(upgradeCatalog222); + upgradeCatalog222.updateZookeeperConfigs(); + easyMockSupport.verifyAll(); + } + + + @Test public void testAmsSiteUpdateConfigs() throws Exception{ Map<String, String> oldPropertiesAmsSite = new HashMap<String, String>() {
