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 2016/04/08 19:39:27 UTC

ambari git commit: AMBARI-15759 After upgrading to Ambari 2.2.1, Storm widgets are gone (dsen)

Repository: ambari
Updated Branches:
  refs/heads/trunk 438657cba -> bc17f9cf4


AMBARI-15759 After upgrading to Ambari 2.2.1, Storm widgets are gone (dsen)


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

Branch: refs/heads/trunk
Commit: bc17f9cf4fafee7cc405160b51ef13b89743c238
Parents: 438657c
Author: Dmytro Sen <ds...@apache.org>
Authored: Fri Apr 8 20:38:48 2016 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Fri Apr 8 20:38:48 2016 +0300

----------------------------------------------------------------------
 .../server/upgrade/UpgradeCatalog222.java       | 30 +++++++++++
 .../server/upgrade/UpgradeCatalog222Test.java   | 57 ++++++++++++++++++++
 2 files changed, 87 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/bc17f9cf/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 77b8b45..8eab182 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
@@ -57,6 +57,7 @@ import com.google.gson.JsonParser;
 import com.google.inject.Inject;
 import com.google.inject.Injector;
 
+
 /**
  * Upgrade catalog for version 2.2.2.
  */
@@ -182,6 +183,7 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
     updateCorruptedReplicaWidget();
     updateZookeeperConfigs();
     createNewSliderConfigVersion();
+    initializeStromAndKafkaWidgets();
   }
 
   protected void createNewSliderConfigVersion() {
@@ -566,4 +568,32 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
       new DBAccessor.DBColumnInfo(UPGRADE_SUSPENDED_COLUMN, Short.class, 1, 0, false));
   }
 
+  /**
+   * Copy cluster & service widgets for Storm and Kafka from stack to DB.
+   */
+  protected void initializeStromAndKafkaWidgets() throws AmbariException {
+    AmbariManagementController controller = injector.getInstance(AmbariManagementController.class);
+    Clusters clusters = controller.getClusters();
+    if (clusters == null) {
+      return;
+    }
+
+    Map<String, Cluster> clusterMap = clusters.getClusters();
+
+    if (clusterMap != null && !clusterMap.isEmpty()) {
+      for (Cluster cluster : clusterMap.values()) {
+        controller.initializeWidgetsAndLayouts(cluster, null);
+
+        Map<String, Service> serviceMap = cluster.getServices();
+        if (serviceMap != null && !serviceMap.isEmpty()) {
+          for (Service service : serviceMap.values()) {
+            if ("STORM".equals(service.getName()) || "KAFKA".equals(service.getName())) {
+              controller.initializeWidgetsAndLayouts(cluster, service);
+            }
+          }
+        }
+      }
+    }
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc17f9cf/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 5f07e56..92b753c 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
@@ -134,6 +134,7 @@ public class UpgradeCatalog222Test {
     Method updateCorruptedReplicaWidget = UpgradeCatalog222.class.getDeclaredMethod("updateCorruptedReplicaWidget");
     Method createNewSliderConfigVersion = UpgradeCatalog222.class.getDeclaredMethod("createNewSliderConfigVersion");
     Method updateZookeeperConfigs = UpgradeCatalog222.class.getDeclaredMethod("updateZookeeperConfigs");
+    Method initializeStromAnsKafkaWidgets = UpgradeCatalog222.class.getDeclaredMethod("initializeStromAndKafkaWidgets");
 
     UpgradeCatalog222 upgradeCatalog222 = createMockBuilder(UpgradeCatalog222.class)
       .addMockedMethod(addNewConfigurationsFromXml)
@@ -146,6 +147,7 @@ public class UpgradeCatalog222Test {
       .addMockedMethod(updateCorruptedReplicaWidget)
       .addMockedMethod(createNewSliderConfigVersion)
       .addMockedMethod(updateZookeeperConfigs)
+      .addMockedMethod(initializeStromAnsKafkaWidgets)
       .createMock();
 
     upgradeCatalog222.addNewConfigurationsFromXml();
@@ -168,6 +170,8 @@ public class UpgradeCatalog222Test {
     expectLastCall().once();
     upgradeCatalog222.createNewSliderConfigVersion();
     expectLastCall().once();
+    upgradeCatalog222.initializeStromAndKafkaWidgets();
+    expectLastCall().once();
 
     replay(upgradeCatalog222);
 
@@ -715,5 +719,58 @@ public class UpgradeCatalog222Test {
     easyMockSupport.verifyAll();
   }
 
+  @Test
+  public void testInitializeStromAndKafkaWidgets() throws AmbariException {
+
+    String stormServiceName = "STORM";
+    String kafkaServiceName = "KAFKA";
+    String hbaseServiceName = "HBASE";
+
+    final AmbariManagementController controller = createStrictMock(AmbariManagementController.class);
+    final Clusters clusters = createStrictMock(Clusters.class);
+    final Cluster cluster = createStrictMock(Cluster.class);
+    final Service stormService = createStrictMock(Service.class);
+    final Service kafkaService = createStrictMock(Service.class);
+    final Service hbaseService = createStrictMock(Service.class);
+    final Map<String, Cluster> clusterMap = Collections.singletonMap("c1", cluster);
+    final Map<String, Service> services = new HashMap<>();
+    services.put(stormServiceName, stormService);
+    services.put(kafkaServiceName, kafkaService);
+    services.put(hbaseServiceName, hbaseService);
+
+
+    Module module = new Module() {
+      @Override
+      public void configure(Binder binder) {
+        binder.bind(AmbariManagementController.class).toInstance(controller);
+        binder.bind(Clusters.class).toInstance(clusters);
+        binder.bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+        binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+      }
+    };
+
+    expect(controller.getClusters()).andReturn(clusters).anyTimes();
+    expect(clusters.getClusters()).andReturn(clusterMap).anyTimes();
+    controller.initializeWidgetsAndLayouts(cluster, null);
+    expectLastCall().once();
+
+    expect(cluster.getServices()).andReturn(services).once();
+    expect(stormService.getName()).andReturn(stormServiceName).atLeastOnce();
+    expect(kafkaService.getName()).andReturn(kafkaServiceName).atLeastOnce();
+    expect(hbaseService.getName()).andReturn(hbaseServiceName).atLeastOnce();
+
+    controller.initializeWidgetsAndLayouts(cluster, kafkaService);
+    expectLastCall().once();
+    controller.initializeWidgetsAndLayouts(cluster, stormService);
+    expectLastCall().once();
+    // but no controller call for HBase
+
+    replay(controller, clusters, cluster, stormService, kafkaService, hbaseService);
+
+    Injector injector = Guice.createInjector(module);
+    injector.getInstance(UpgradeCatalog222.class).initializeStromAndKafkaWidgets();
+
+    verify(controller, clusters, cluster, stormService, kafkaService, hbaseService);
+  }
 
 }