Repository: ambari Updated Branches: refs/heads/trunk 69c834195 -> 44c98665a
AMBARI-14848 : AMS service has critical alert after upgrade to 2.2.1.0. (avijayan) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/44c98665 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/44c98665 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/44c98665 Branch: refs/heads/trunk Commit: 44c98665a4bf9c76434741d1bdae1f1a35145f45 Parents: 69c8341 Author: Aravindan Vijayan <avija...@hortonworks.com> Authored: Fri Jan 29 14:10:01 2016 -0800 Committer: Aravindan Vijayan <avija...@hortonworks.com> Committed: Fri Jan 29 14:10:01 2016 -0800 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog221.java | 7 ++++ .../server/upgrade/UpgradeCatalog221Test.java | 43 ++++++++++++++++++++ 2 files changed, 50 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/44c98665/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java index 13ec345..0f9d0e0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java @@ -198,6 +198,13 @@ public class UpgradeCatalog221 extends AbstractUpgradeCatalog { alertDefinitionDAO.merge(alertDefinition); } + final AlertDefinitionEntity amsZookeeperProcessAlertDefinitionEntity = alertDefinitionDAO.findByName( + clusterID, "ams_metrics_collector_zookeeper_server_process"); + + if (amsZookeeperProcessAlertDefinitionEntity != null) { + LOG.info("Removing alert : ams_metrics_collector_zookeeper_server_process"); + alertDefinitionDAO.remove(amsZookeeperProcessAlertDefinitionEntity); + } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/44c98665/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java index c15fbd8..e754a41 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java @@ -39,7 +39,9 @@ import org.apache.ambari.server.controller.KerberosHelper; import org.apache.ambari.server.controller.MaintenanceStateHelper; import org.apache.ambari.server.orm.GuiceJpaInitializer; import org.apache.ambari.server.orm.InMemoryDefaultTestModule; +import org.apache.ambari.server.orm.dao.AlertDefinitionDAO; import org.apache.ambari.server.orm.dao.StackDAO; +import org.apache.ambari.server.orm.entities.AlertDefinitionEntity; import org.apache.ambari.server.orm.entities.StackEntity; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; @@ -560,4 +562,45 @@ public class UpgradeCatalog221Test { String result = (String) updateAmsEnvContent.invoke(upgradeCatalog221, oldContent); Assert.assertEquals(expectedContent, result); } + + @Test + public void testUpdateAlertDefinitions() { + EasyMockSupport easyMockSupport = new EasyMockSupport(); + long clusterId = 1; + + final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class); + final AlertDefinitionDAO mockAlertDefinitionDAO = easyMockSupport.createNiceMock(AlertDefinitionDAO.class); + final Clusters mockClusters = easyMockSupport.createStrictMock(Clusters.class); + final Cluster mockClusterExpected = easyMockSupport.createNiceMock(Cluster.class); + final AlertDefinitionEntity mockAmsZookeeperProcessAlertDefinitionEntity = easyMockSupport.createNiceMock(AlertDefinitionEntity.class); + + 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(AlertDefinitionDAO.class).toInstance(mockAlertDefinitionDAO); + 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.getClusterId()).andReturn(clusterId).anyTimes(); + + expect(mockAlertDefinitionDAO.findByName(eq(clusterId), eq("ams_metrics_collector_zookeeper_server_process"))) + .andReturn(mockAmsZookeeperProcessAlertDefinitionEntity).atLeastOnce(); + + mockAlertDefinitionDAO.remove(mockAmsZookeeperProcessAlertDefinitionEntity); + expectLastCall().once(); + + easyMockSupport.replayAll(); + mockInjector.getInstance(UpgradeCatalog221.class).updateAlerts(); + easyMockSupport.verifyAll(); + } }