Repository: ambari Updated Branches: refs/heads/trunk 955cfce2c -> cebcfdee0
AMBARI-12189. hive.security.authorization.enabled is not being handled properly during Ambari upgrade (smohanty) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/cebcfdee Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/cebcfdee Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/cebcfdee Branch: refs/heads/trunk Commit: cebcfdee0a9b8599d9d82a45246b658ceffa3c68 Parents: 955cfce Author: Sumit Mohanty <[email protected]> Authored: Sun Jun 28 11:44:34 2015 -0700 Committer: Sumit Mohanty <[email protected]> Committed: Sun Jun 28 11:44:34 2015 -0700 ---------------------------------------------------------------------- .../apache/ambari/server/upgrade/UpgradeCatalog210.java | 3 +++ .../ambari/server/upgrade/UpgradeCatalog210Test.java | 12 ++++++++++++ 2 files changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/cebcfdee/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java index c485e02..cb05c83 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java @@ -1213,17 +1213,20 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog { && RangerHiveConfig.getProperties().containsKey("ranger-hive-plugin-enabled") && cluster.getDesiredConfigByType("hive-env") != null) { Map<String, String> newHiveEnvProperties = new HashMap<String, String>(); + Map<String, String> newHiveServerProperties = new HashMap<String, String>(); Set<String> removeRangerHiveProperties = new HashSet<String>(); removeRangerHiveProperties.add("ranger-hive-plugin-enabled"); if (RangerHiveConfig.getProperties().get("ranger-hive-plugin-enabled") != null && RangerHiveConfig.getProperties().get("ranger-hive-plugin-enabled").equalsIgnoreCase("yes")) { newHiveEnvProperties.put("hive_security_authorization", "Ranger"); + newHiveServerProperties.put("hive.security.authorization.enabled", "true"); } else { newHiveEnvProperties.put("hive_security_authorization", "None"); } boolean updateProperty = cluster.getDesiredConfigByType("hive-env").getProperties().containsKey("hive_security_authorization"); updateConfigurationPropertiesForCluster(cluster, "hive-env", newHiveEnvProperties, updateProperty, true); + updateConfigurationPropertiesForCluster(cluster, "hiveserver2-site", newHiveServerProperties, updateProperty, true); updateConfigurationPropertiesForCluster(cluster, "ranger-hive-plugin-properties", new HashMap<String, String>(), removeRangerHiveProperties, false, true); } http://git-wip-us.apache.org/repos/asf/ambari/blob/cebcfdee/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java index 495f302..ea812ab 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java @@ -37,6 +37,7 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -49,6 +50,7 @@ import com.google.inject.AbstractModule; import org.apache.ambari.server.api.services.AmbariMetaInfo; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.AmbariManagementController; +import org.apache.ambari.server.controller.ServiceConfigVersionResponse; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo; import org.apache.ambari.server.orm.GuiceJpaInitializer; @@ -236,10 +238,12 @@ public class UpgradeCatalog210Test { final Config mockRangerPlugin = easyMockSupport.createNiceMock(Config.class); final Config mockHiveEnv = easyMockSupport.createNiceMock(Config.class); + final Config mockHiveServer = easyMockSupport.createNiceMock(Config.class); final Map<String, String> propertiesExpectedRangerPlugin = new HashMap<String, String>(); propertiesExpectedRangerPlugin.put("ranger-hive-plugin-enabled", "yes"); final Map<String, String> propertiesExpectedHiveEnv = new HashMap<String, String>(); + final Map<String, String> propertiesExpectedHiveServer2 = new HashMap<String, String>(); final Injector mockInjector = Guice.createInjector(new AbstractModule() { @Override protected void configure() { @@ -259,8 +263,16 @@ public class UpgradeCatalog210Test { expect(mockClusterExpected.getDesiredConfigByType("ranger-hive-plugin-properties")).andReturn(mockRangerPlugin).atLeastOnce(); expect(mockClusterExpected.getDesiredConfigByType("hive-env")).andReturn(mockHiveEnv).atLeastOnce(); + expect(mockClusterExpected.getDesiredConfigByType("hiveserver2-site")).andReturn(mockHiveServer).atLeastOnce(); expect(mockRangerPlugin.getProperties()).andReturn(propertiesExpectedRangerPlugin).anyTimes(); expect(mockHiveEnv.getProperties()).andReturn(propertiesExpectedHiveEnv).anyTimes(); + expect(mockHiveServer.getProperties()).andReturn(propertiesExpectedHiveServer2).anyTimes(); + + ServiceConfigVersionResponse r = null; + expect(mockClusterExpected.getConfig(anyObject(String.class), anyObject(String.class))). + andReturn(mockHiveServer).anyTimes(); + expect(mockClusterExpected.addDesiredConfig("ambari-upgrade", Collections.singleton(mockHiveServer))). + andReturn(r).times(3); easyMockSupport.replayAll(); mockInjector.getInstance(UpgradeCatalog210.class).updateRangerHiveConfigs();
