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