You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by aj...@apache.org on 2016/04/21 16:21:07 UTC
ambari git commit: AMBARI-16001. Fix bad entry in hbase-env.sh,
added as part of 2.2.0-2.2.1.1 upgrade (ajit)
Repository: ambari
Updated Branches:
refs/heads/trunk 9be2ba288 -> dc6cde341
AMBARI-16001. Fix bad entry in hbase-env.sh, added as part of 2.2.0-2.2.1.1 upgrade (ajit)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/dc6cde34
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/dc6cde34
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/dc6cde34
Branch: refs/heads/trunk
Commit: dc6cde341097308aca190b1dde38591f90108b17
Parents: 9be2ba2
Author: Ajit Kumar <aj...@apache.org>
Authored: Thu Apr 21 07:20:04 2016 -0700
Committer: Ajit Kumar <aj...@apache.org>
Committed: Thu Apr 21 07:20:40 2016 -0700
----------------------------------------------------------------------
.../server/upgrade/UpgradeCatalog222.java | 34 +++++++++++
.../server/upgrade/UpgradeCatalog222Test.java | 59 +++++++++++++++-----
2 files changed, 80 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc6cde34/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 a6a8991..d8658f4 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
@@ -24,6 +24,7 @@ import java.lang.reflect.Type;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -83,6 +84,8 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
private static final String ATLAS_SERVER_HTTP_PORT_PROPERTY = "atlas.server.http.port";
private static final String ATLAS_SERVER_HTTPS_PORT_PROPERTY = "atlas.server.https.port";
private static final String ATLAS_REST_ADDRESS_PROPERTY = "atlas.rest.address";
+ private static final String HBASE_ENV_CONFIG = "hbase-env";
+ private static final String CONTENT_PROPERTY = "content";
private static final String UPGRADE_TABLE = "upgrade";
private static final String UPGRADE_SUSPENDED_COLUMN = "suspended";
@@ -99,6 +102,7 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
public static final String AMS_WEBAPP_ADDRESS_PROPERTY = "timeline.metrics.service.webapp.address";
public static final String HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD_PROPERTY = "hbase.client.scanner.timeout.period";
public static final String HBASE_RPC_TIMEOUT_PROPERTY = "hbase.rpc.timeout";
+
public static final String PHOENIX_QUERY_TIMEOUT_PROPERTY = "phoenix.query.timeoutMs";
public static final String PHOENIX_QUERY_KEEPALIVE_PROPERTY = "phoenix.query.keepAliveMs";
public static final String TIMELINE_METRICS_CLUSTER_AGGREGATOR_INTERPOLATION_ENABLED
@@ -181,6 +185,7 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
updateHDFSWidgetDefinition();
updateYARNWidgetDefinition();
updateHBASEWidgetDefinition();
+ updateHbaseEnvConfig();
updateCorruptedReplicaWidget();
updateZookeeperConfigs();
createNewSliderConfigVersion();
@@ -478,6 +483,35 @@ public class UpgradeCatalog222 extends AbstractUpgradeCatalog {
updateWidgetDefinitionsForService("HBASE", widgetMap, sectionLayoutMap);
}
+
+ protected void updateHbaseEnvConfig() throws AmbariException {
+ AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
+ for (final Cluster cluster : getCheckedClusterMap(ambariManagementController.getClusters()).values()) {
+ Config hbaseEnvConfig = cluster.getDesiredConfigByType(HBASE_ENV_CONFIG);
+ if (hbaseEnvConfig != null) {
+ Map<String, String> updates = getUpdatedHbaseEnvProperties(hbaseEnvConfig.getProperties().get(CONTENT_PROPERTY));
+ if (!updates.isEmpty()) {
+ updateConfigurationPropertiesForCluster(cluster, HBASE_ENV_CONFIG, updates, true, false);
+ }
+
+ }
+ }
+ }
+
+ protected Map<String, String> getUpdatedHbaseEnvProperties(String content) {
+ if (content != null) {
+ //Fix bad config added in Upgrade 2.2.0.
+ String badConfig = "export HBASE_OPTS=\"-Djava.io.tmpdir={{java_io_tmpdir}}\"";
+ String correctConfig = "export HBASE_OPTS=\"${HBASE_OPTS} -Djava.io.tmpdir={{java_io_tmpdir}}\"";
+
+ if (content.contains(badConfig)) {
+ content = content.replace(badConfig, correctConfig);
+ return Collections.singletonMap(CONTENT_PROPERTY, content);
+ }
+ }
+ return Collections.emptyMap();
+ }
+
private void updateWidgetDefinitionsForService(String serviceName, Map<String, List<String>> widgetMap,
Map<String, String> sectionLayoutMap) throws AmbariException {
AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc6cde34/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 f0158fd..327807a 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
@@ -32,6 +32,7 @@ import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
@@ -133,6 +134,7 @@ public class UpgradeCatalog222Test {
Method updateHDFSWidget = UpgradeCatalog222.class.getDeclaredMethod("updateHDFSWidgetDefinition");
Method updateYARNWidget = UpgradeCatalog222.class.getDeclaredMethod("updateYARNWidgetDefinition");
Method updateHBASEWidget = UpgradeCatalog222.class.getDeclaredMethod("updateHBASEWidgetDefinition");
+ Method updateHbaseEnvConfig = UpgradeCatalog222.class.getDeclaredMethod("updateHbaseEnvConfig");
Method updateCorruptedReplicaWidget = UpgradeCatalog222.class.getDeclaredMethod("updateCorruptedReplicaWidget");
Method createNewSliderConfigVersion = UpgradeCatalog222.class.getDeclaredMethod("createNewSliderConfigVersion");
Method updateZookeeperConfigs = UpgradeCatalog222.class.getDeclaredMethod("updateZookeeperConfigs");
@@ -148,6 +150,7 @@ public class UpgradeCatalog222Test {
.addMockedMethod(updateHDFSWidget)
.addMockedMethod(updateYARNWidget)
.addMockedMethod(updateHBASEWidget)
+ .addMockedMethod(updateHbaseEnvConfig)
.addMockedMethod(updateCorruptedReplicaWidget)
.addMockedMethod(createNewSliderConfigVersion)
.addMockedMethod(updateZookeeperConfigs)
@@ -155,31 +158,19 @@ public class UpgradeCatalog222Test {
.createMock();
upgradeCatalog222.addNewConfigurationsFromXml();
- expectLastCall().once();
upgradeCatalog222.updateAlerts();
- expectLastCall().once();
upgradeCatalog222.updateStormConfigs();
- expectLastCall().once();
upgradeCatalog222.updateAMSConfigs();
- expectLastCall().once();
upgradeCatalog222.updateHostRoleCommands();
- expectLastCall().once();
upgradeCatalog222.updateHiveConfig();
- expectLastCall().once();
upgradeCatalog222.updateHDFSWidgetDefinition();
- expectLastCall().once();
+ upgradeCatalog222.updateHbaseEnvConfig();
upgradeCatalog222.updateYARNWidgetDefinition();
- expectLastCall().once();
upgradeCatalog222.updateHBASEWidgetDefinition();
- expectLastCall().once();
upgradeCatalog222.updateCorruptedReplicaWidget();
- expectLastCall().once();
upgradeCatalog222.updateZookeeperConfigs();
- expectLastCall().once();
upgradeCatalog222.createNewSliderConfigVersion();
- expectLastCall().once();
upgradeCatalog222.initializeStromAndKafkaWidgets();
- expectLastCall().once();
replay(upgradeCatalog222);
@@ -788,6 +779,48 @@ public class UpgradeCatalog222Test {
}
@Test
+ public void testGetUpdatedHbaseEnvProperties_BadConfig() {
+ String badContent = "export HBASE_HEAPSIZE=1000;\n\n" +
+ "export HBASE_OPTS=\"-Djava.io.tmpdir={{java_io_tmpdir}}\"\n\n" +
+ "export HBASE_LOG_DIR={{log_dir}}";
+ String expectedContent = "export HBASE_HEAPSIZE=1000;\n\n" +
+ "export HBASE_OPTS=\"${HBASE_OPTS} -Djava.io.tmpdir={{java_io_tmpdir}}\"\n\n" +
+ "export HBASE_LOG_DIR={{log_dir}}";
+ testGetUpdatedHbaseEnvProperties(badContent, expectedContent);
+ }
+
+ @Test
+ public void testGetUpdatedHbaseEnvProperties_GoodConfig() {
+
+ String goodContent = "export HBASE_HEAPSIZE=1000;\n\n" +
+ "export HBASE_OPTS=\"${HBASE_OPTS} -Djava.io.tmpdir={{java_io_tmpdir}}\"\n\n" +
+ "export HBASE_LOG_DIR={{log_dir}}";
+ testGetUpdatedHbaseEnvProperties(goodContent, null);
+ }
+
+ @Test
+ public void testGetUpdatedHbaseEnvProperties_NoConfig() {
+ String content = "export HBASE_HEAPSIZE=1000;\n\n" +
+ "export HBASE_LOG_DIR={{log_dir}}";
+ testGetUpdatedHbaseEnvProperties(content, null);
+ }
+
+ private void testGetUpdatedHbaseEnvProperties(String content, String expectedContent) {
+ Module module = new Module() {
+ @Override
+ public void configure(Binder binder) {
+ binder.bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+ binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ }
+ };
+
+ Injector injector = Guice.createInjector(module);
+ UpgradeCatalog222 upgradeCatalog222 = injector.getInstance(UpgradeCatalog222.class);
+ Map<String, String> update = upgradeCatalog222.getUpdatedHbaseEnvProperties(content);
+ assertEquals(expectedContent, update.get("content"));
+ }
+
+ @Test
public void testUpdateHostRoleCommands() throws Exception {
final DBAccessor dbAccessor = createNiceMock(DBAccessor.class);
dbAccessor.createIndex(eq("idx_hrc_status_role"), eq("host_role_command"), eq("status"), eq("role"));