Repository: ambari Updated Branches: refs/heads/branch-2.5 5b2347255 -> 0bd7b8643
AMBARI-20382. Appendum - Log Search: Web UI Alert tries to use http protocol even if ssl is enabled (oleewere) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0bd7b864 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0bd7b864 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0bd7b864 Branch: refs/heads/branch-2.5 Commit: 0bd7b864317606952a7a03a163a3b4102e5f2964 Parents: 5b23472 Author: oleewere <[email protected]> Authored: Fri Mar 10 21:09:46 2017 +0100 Committer: oleewere <[email protected]> Committed: Fri Mar 10 21:28:36 2017 +0100 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog250.java | 33 +++++++++++++++++ .../server/upgrade/UpgradeCatalog250Test.java | 38 ++++++++++++++++++++ 2 files changed, 71 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0bd7b864/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java index 029009b..e3afc33 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog250.java @@ -180,6 +180,7 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog { addNewConfigurationsFromXml(); updateAMSConfigs(); updateStormAlerts(); + updateLogSearchAlert(); removeAlertDuplicates(); updateHadoopEnvConfigs(); updateKafkaConfigs(); @@ -337,6 +338,38 @@ public class UpgradeCatalog250 extends AbstractUpgradeCatalog { } } + protected void updateLogSearchAlert() { + AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class); + AlertDefinitionDAO alertDefinitionDAO = injector.getInstance(AlertDefinitionDAO.class); + Clusters clusters = ambariManagementController.getClusters(); + + Map<String, Cluster> clusterMap = getCheckedClusterMap(clusters); + for (final Cluster cluster : clusterMap.values()) { + long clusterID = cluster.getClusterId(); + LOG.info("Updating Log Search web ui alert definitions on cluster : " + cluster.getClusterName()); + + final AlertDefinitionEntity logSearchWebAlert = alertDefinitionDAO.findByName( + clusterID, "logsearch_ui"); + + if (logSearchWebAlert != null) { + LOG.info("Updating alert definition : " + logSearchWebAlert.getDefinitionName()); + String source = logSearchWebAlert.getSource(); + JsonObject sourceJson = new JsonParser().parse(source).getAsJsonObject(); + LOG.debug("Source before update : " + sourceJson); + + JsonObject uriJson = sourceJson.get("uri").getAsJsonObject(); + uriJson.remove("https_property"); + uriJson.remove("https_property_value"); + uriJson.addProperty("https_property", "{{logsearch-env/logsearch_ui_protocol}}"); + uriJson.addProperty("https_property_value", "https"); + + LOG.debug("Source after update : " + sourceJson); + logSearchWebAlert.setSource(sourceJson.toString()); + alertDefinitionDAO.merge(logSearchWebAlert); + } + } + } + protected void updateHostVersionTable() throws SQLException { LOG.info("Updating the {} table", HOST_VERSION_TABLE); http://git-wip-us.apache.org/repos/asf/ambari/blob/0bd7b864/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java index 4b3b57f..ad21331 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog250Test.java @@ -291,6 +291,7 @@ public class UpgradeCatalog250Test { Method addNewConfigurationsFromXml = AbstractUpgradeCatalog.class.getDeclaredMethod("addNewConfigurationsFromXml"); Method updateHIVEInteractiveConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateHIVEInteractiveConfigs"); Method updateLogSearchConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateLogSearchConfigs"); + Method updateLogSearchAlert = UpgradeCatalog250.class.getDeclaredMethod("updateLogSearchAlert"); Method updateAmbariInfraConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateAmbariInfraConfigs"); Method updateRangerUrlConfigs = UpgradeCatalog250.class.getDeclaredMethod("updateRangerUrlConfigs"); Method addManageServiceAutoStartPermissions = UpgradeCatalog250.class.getDeclaredMethod("addManageServiceAutoStartPermissions"); @@ -318,6 +319,7 @@ public class UpgradeCatalog250Test { .addMockedMethod(addManageAlertNotificationsPermissions) .addMockedMethod(updateYarnSite) .addMockedMethod(updateAlerts) + .addMockedMethod(updateLogSearchAlert) .addMockedMethod(removeAlertDuplicates) .addMockedMethod(updateKerberosDescriptorArtifacts) .addMockedMethod(fixHBaseMasterCPUUtilizationAlertDefinition) @@ -372,6 +374,9 @@ public class UpgradeCatalog250Test { upgradeCatalog250.updateStormAlerts(); expectLastCall().once(); + upgradeCatalog250.updateLogSearchAlert(); + expectLastCall().once(); + upgradeCatalog250.removeAlertDuplicates(); expectLastCall().once(); @@ -453,6 +458,39 @@ public class UpgradeCatalog250Test { } @Test + public void testUpdateAlerts_LogSearchUIWebAlert() { + 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 AlertDefinitionDAO mockAlertDefinitionDAO = easyMockSupport.createNiceMock(AlertDefinitionDAO.class); + final AlertDefinitionEntity logSearchWebUIAlertMock = easyMockSupport.createNiceMock(AlertDefinitionEntity.class); + + final Injector mockInjector = createInjector(mockAmbariManagementController, mockClusters, mockAlertDefinitionDAO); + long clusterId = 1; + + 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("logsearch_ui"))) + .andReturn(logSearchWebUIAlertMock).atLeastOnce(); + expect(logSearchWebUIAlertMock.getSource()).andReturn("{\"uri\": {\n" + + " \"http\": \"{{logsearch-env/logsearch_ui_port}}\",\n" + + " \"https\": \"{{logsearch-env/logsearch_ui_port}}\"\n" + + " } }"); + + logSearchWebUIAlertMock.setSource("{\"uri\":{\"http\":\"{{logsearch-env/logsearch_ui_port}}\",\"https\":\"{{logsearch-env/logsearch_ui_port}}\",\"https_property\":\"{{logsearch-env/logsearch_ui_protocol}}\",\"https_property_value\":\"https\"}}"); + + expectLastCall().once(); + + easyMockSupport.replayAll(); + mockInjector.getInstance(UpgradeCatalog250.class).updateLogSearchAlert(); + easyMockSupport.verifyAll(); + } + + @Test public void testFixHBaseMasterCPUUtilizationAlertDefinition() { EasyMockSupport easyMockSupport = new EasyMockSupport(); final AmbariManagementController mockAmbariManagementController = easyMockSupport.createNiceMock(AmbariManagementController.class);
