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 2015/10/29 18:08:05 UTC
ambari git commit: AMBARI-13614 Ambari upgrade to 2.1.3 should set
appropriate value for "Enable Ranger plugin" properties in Ranger service
(dsen)
Repository: ambari
Updated Branches:
refs/heads/trunk 59ff41558 -> 37a3f4458
AMBARI-13614 Ambari upgrade to 2.1.3 should set appropriate value for "Enable Ranger plugin" properties in Ranger service (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/37a3f445
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/37a3f445
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/37a3f445
Branch: refs/heads/trunk
Commit: 37a3f4458843dc05efa78868865e14a91f97dc3b
Parents: 59ff415
Author: Dmytro Sen <ds...@apache.org>
Authored: Thu Oct 29 19:07:38 2015 +0200
Committer: Dmytro Sen <ds...@apache.org>
Committed: Thu Oct 29 19:07:38 2015 +0200
----------------------------------------------------------------------
.../server/upgrade/UpgradeCatalog213.java | 50 +++++++++++++++
.../server/upgrade/UpgradeCatalog213Test.java | 65 ++++++++++++++++++++
2 files changed, 115 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/37a3f445/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
index 4dc300e..9503898 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog213.java
@@ -87,6 +87,7 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
private static final String AMS_ENV = "ams-env";
private static final String AMS_HBASE_ENV = "ams-hbase-env";
private static final String HBASE_ENV_CONFIG = "hbase-env";
+ private static final String RANGER_ENV_CONFIG = "ranger-env";
private static final String ZOOKEEPER_LOG4J_CONFIG = "zookeeper-log4j";
private static final String NIMBS_MONITOR_FREQ_SECS_PROPERTY = "nimbus.monitor.freq.secs";
private static final String HADOOP_ENV_CONFIG = "hadoop-env";
@@ -112,6 +113,13 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
private static final String KERBEROS_DESCRIPTOR_TABLE = "kerberos_descriptor";
private static final String KERBEROS_DESCRIPTOR_NAME_COLUMN = "kerberos_descriptor_name";
private static final String KERBEROS_DESCRIPTOR_COLUMN = "kerberos_descriptor";
+ private static final String RANGER_HDFS_PLUGIN_ENABLED_PROPERTY = "ranger-hdfs-plugin-enabled";
+ private static final String RANGER_HIVE_PLUGIN_ENABLED_PROPERTY = "ranger-hive-plugin-enabled";
+ private static final String RANGER_HBASE_PLUGIN_ENABLED_PROPERTY = "ranger-hbase-plugin-enabled";
+ private static final String RANGER_STORM_PLUGIN_ENABLED_PROPERTY = "ranger-storm-plugin-enabled";
+ private static final String RANGER_KNOX_PLUGIN_ENABLED_PROPERTY = "ranger-knox-plugin-enabled";
+ private static final String RANGER_YARN_PLUGIN_ENABLED_PROPERTY = "ranger-yarn-plugin-enabled";
+ private static final String RANGER_KAFKA_PLUGIN_ENABLED_PROPERTY = "ranger-kafka-plugin-enabled";
private static final String BLUEPRINT_TABLE = "blueprint";
private static final String SECURITY_TYPE_COLUMN = "security_type";
@@ -261,6 +269,7 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
updateHbaseEnvConfig();
updateHadoopEnv();
updateKafkaConfigs();
+ updateRangerEnvConfig();
updateZookeeperLog4j();
}
@@ -836,6 +845,47 @@ public class UpgradeCatalog213 extends AbstractUpgradeCatalog {
}
}
+ protected void updateRangerEnvConfig() throws AmbariException {
+ AmbariManagementController ambariManagementController = injector.getInstance(AmbariManagementController.class);
+
+ for (final Cluster cluster : getCheckedClusterMap(ambariManagementController.getClusters()).values()) {
+ Map<String, String> newRangerEnvProps = new HashMap<>();
+ Config rangerHdfsPluginProperties = cluster.getDesiredConfigByType("ranger-hdfs-plugin-properties");
+ if (rangerHdfsPluginProperties != null && rangerHdfsPluginProperties.getProperties().containsKey(RANGER_HDFS_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_HDFS_PLUGIN_ENABLED_PROPERTY, rangerHdfsPluginProperties.getProperties().get(RANGER_HDFS_PLUGIN_ENABLED_PROPERTY));
+ }
+ Config hiveEnvProperties = cluster.getDesiredConfigByType("hive-env");
+ if (hiveEnvProperties != null && hiveEnvProperties.getProperties().containsKey("hive_security_authorization")
+ && hiveEnvProperties.getProperties().get("hive_security_authorization").toLowerCase().equals("ranger")) {
+ newRangerEnvProps.put(RANGER_HIVE_PLUGIN_ENABLED_PROPERTY, "Yes");
+ }
+ Config rangerHbasePluginProperties = cluster.getDesiredConfigByType("ranger-hbase-plugin-properties");
+ if (rangerHbasePluginProperties != null && rangerHbasePluginProperties.getProperties().containsKey(RANGER_HBASE_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_HBASE_PLUGIN_ENABLED_PROPERTY, rangerHbasePluginProperties.getProperties().get(RANGER_HBASE_PLUGIN_ENABLED_PROPERTY));
+ }
+
+ Config rangerStormPluginProperties = cluster.getDesiredConfigByType("ranger-storm-plugin-properties");
+ if (rangerStormPluginProperties != null && rangerStormPluginProperties.getProperties().containsKey(RANGER_STORM_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_STORM_PLUGIN_ENABLED_PROPERTY, rangerStormPluginProperties.getProperties().get(RANGER_STORM_PLUGIN_ENABLED_PROPERTY));
+ }
+ Config rangerKnoxPluginProperties = cluster.getDesiredConfigByType("ranger-knox-plugin-properties");
+ if (rangerKnoxPluginProperties != null && rangerKnoxPluginProperties.getProperties().containsKey(RANGER_KNOX_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_KNOX_PLUGIN_ENABLED_PROPERTY, rangerKnoxPluginProperties.getProperties().get(RANGER_KNOX_PLUGIN_ENABLED_PROPERTY));
+ }
+ Config rangerYarnPluginProperties = cluster.getDesiredConfigByType("ranger-yarn-plugin-properties");
+ if (rangerYarnPluginProperties != null && rangerYarnPluginProperties.getProperties().containsKey(RANGER_YARN_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_YARN_PLUGIN_ENABLED_PROPERTY, rangerYarnPluginProperties.getProperties().get(RANGER_YARN_PLUGIN_ENABLED_PROPERTY));
+ }
+ Config rangerKafkaPluginProperties = cluster.getDesiredConfigByType("ranger-kafka-plugin-properties");
+ if (rangerKafkaPluginProperties != null && rangerKafkaPluginProperties.getProperties().containsKey(RANGER_KAFKA_PLUGIN_ENABLED_PROPERTY)) {
+ newRangerEnvProps.put(RANGER_KAFKA_PLUGIN_ENABLED_PROPERTY, rangerKafkaPluginProperties.getProperties().get(RANGER_KAFKA_PLUGIN_ENABLED_PROPERTY));
+ }
+ if (!newRangerEnvProps.isEmpty()) {
+ updateConfigurationPropertiesForCluster(cluster, RANGER_ENV_CONFIG, newRangerEnvProps, true, true);
+ }
+ }
+ }
+
protected String updateAmsEnvContent(String oldContent) {
if (oldContent == null) {
return null;
http://git-wip-us.apache.org/repos/asf/ambari/blob/37a3f445/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
index a9c4fb2..a68d4fd 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog213Test.java
@@ -201,6 +201,7 @@ public class UpgradeCatalog213Test {
Method updateZookeeperLog4j = UpgradeCatalog213.class.getDeclaredMethod("updateZookeeperLog4j");
Method updateHadoopEnvConfig = UpgradeCatalog213.class.getDeclaredMethod("updateHadoopEnv");
Method updateAlertDefinitions = UpgradeCatalog213.class.getDeclaredMethod("updateAlertDefinitions");
+ Method updateRangerEnvConfig = UpgradeCatalog213.class.getDeclaredMethod("updateRangerEnvConfig");
UpgradeCatalog213 upgradeCatalog213 = createMockBuilder(UpgradeCatalog213.class)
.addMockedMethod(updateAMSConfigs)
@@ -212,6 +213,7 @@ public class UpgradeCatalog213Test {
.addMockedMethod(updateKafkaConfigs)
.addMockedMethod(updateZookeeperLog4j)
.addMockedMethod(updateHadoopEnvConfig)
+ .addMockedMethod(updateRangerEnvConfig)
.createMock();
upgradeCatalog213.updateHbaseEnvConfig();
@@ -232,6 +234,8 @@ public class UpgradeCatalog213Test {
expectLastCall().once();
upgradeCatalog213.updateZookeeperLog4j();
expectLastCall().once();
+ upgradeCatalog213.updateRangerEnvConfig();
+ expectLastCall().once();
replay(upgradeCatalog213);
@@ -724,6 +728,67 @@ public class UpgradeCatalog213Test {
}
@Test
+ public void testUpdateRangerEnvConfig() throws Exception {
+ 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 Map<String, String> propertiesHiveEnv = new HashMap<String, String>() {{
+ put("hive_security_authorization", "Ranger");
+ }};
+ final Map<String, String> propertiesRangerHdfsPlugin = new HashMap<String, String>() {{
+ put("ranger-hdfs-plugin-enabled", "Yes");
+ }};
+ final Map<String, String> propertiesRangerHbasePlugin = new HashMap<String, String>() {{
+ put("ranger-hbase-plugin-enabled", "Yes");
+ }};
+ final Map<String, String> propertiesRangerKafkaPlugin = new HashMap<String, String>() {{
+ put("ranger-kafka-plugin-enabled", "Yes");
+ }};
+ final Map<String, String> propertiesRangerYarnPlugin = new HashMap<String, String>() {{
+ put("ranger-yarn-plugin-enabled", "No");
+ }};
+
+ final Config mockHiveEnvConf = easyMockSupport.createNiceMock(Config.class);
+ final Config mockRangerHdfsPluginConf = easyMockSupport.createNiceMock(Config.class);
+ final Config mockRangerHbasePluginConf = easyMockSupport.createNiceMock(Config.class);
+ final Config mockRangerKafkaPluginConf = easyMockSupport.createNiceMock(Config.class);
+ final Config mockRangerYarnPluginConf = easyMockSupport.createNiceMock(Config.class);
+ final Injector mockInjector = Guice.createInjector(new AbstractModule() {
+ @Override
+ protected void configure() {
+ bind(AmbariManagementController.class).toInstance(mockAmbariManagementController);
+ bind(Clusters.class).toInstance(mockClusters);
+ bind(EntityManager.class).toInstance(entityManager);
+
+ bind(DBAccessor.class).toInstance(createNiceMock(DBAccessor.class));
+ bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
+ }
+ });
+
+ expect(mockAmbariManagementController.getClusters()).andReturn(mockClusters).once();
+ expect(mockClusters.getClusters()).andReturn(new HashMap<String, Cluster>() {{
+ put("normal", mockClusterExpected);
+ }}).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("hive-env")).andReturn(mockHiveEnvConf).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("ranger-hdfs-plugin-properties")).andReturn(mockRangerHdfsPluginConf).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("ranger-hbase-plugin-properties")).andReturn(mockRangerHbasePluginConf).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("ranger-kafka-plugin-properties")).andReturn(mockRangerKafkaPluginConf).atLeastOnce();
+ expect(mockClusterExpected.getDesiredConfigByType("ranger-yarn-plugin-properties")).andReturn(mockRangerYarnPluginConf).atLeastOnce();
+
+ expect(mockHiveEnvConf.getProperties()).andReturn(propertiesHiveEnv).times(2);
+ expect(mockRangerHdfsPluginConf.getProperties()).andReturn(propertiesRangerHdfsPlugin).times(2);
+ expect(mockRangerHbasePluginConf.getProperties()).andReturn(propertiesRangerHbasePlugin).times(2);
+ expect(mockRangerKafkaPluginConf.getProperties()).andReturn(propertiesRangerKafkaPlugin).times(2);
+ expect(mockRangerYarnPluginConf.getProperties()).andReturn(propertiesRangerYarnPlugin).times(2);
+
+ easyMockSupport.replayAll();
+ mockInjector.getInstance(UpgradeCatalog213.class).updateRangerEnvConfig();
+ easyMockSupport.verifyAll();
+
+ }
+
+ @Test
public void testGetSourceVersion() {
final DBAccessor dbAccessor = createNiceMock(DBAccessor.class);
UpgradeCatalog upgradeCatalog = getUpgradeCatalog(dbAccessor);