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);

Reply via email to