You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rn...@apache.org on 2015/06/18 17:48:34 UTC
ambari git commit: AMBARI-12000. Blueprint export incorrectly
includes Kerberos host information. (rnettleton)
Repository: ambari
Updated Branches:
refs/heads/trunk 47f925eff -> 862827df6
AMBARI-12000. Blueprint export incorrectly includes Kerberos host information. (rnettleton)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/862827df
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/862827df
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/862827df
Branch: refs/heads/trunk
Commit: 862827df6107d7e0aec968e03bbf396bf2fe46a2
Parents: 47f925e
Author: Bob Nettleton <rn...@hortonworks.com>
Authored: Thu Jun 18 11:47:43 2015 -0400
Committer: Bob Nettleton <rn...@hortonworks.com>
Committed: Thu Jun 18 11:48:19 2015 -0400
----------------------------------------------------------------------
.../BlueprintConfigurationProcessor.java | 5 +-
.../BlueprintConfigurationProcessorTest.java | 54 ++++++++++++++++++++
2 files changed, 58 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/862827df/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java
index af3b331..f567c64 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java
@@ -127,7 +127,9 @@ public class BlueprintConfigurationProcessor {
*/
private static final PropertyFilter[] exportPropertyFilters =
{ new PasswordPropertyFilter(),
- new SimplePropertyNameExportFilter("tez.tez-ui.history-url.base", "tez-site")};
+ new SimplePropertyNameExportFilter("tez.tez-ui.history-url.base", "tez-site"),
+ new SimplePropertyNameExportFilter("admin_server_host", "kerberos-env"),
+ new SimplePropertyNameExportFilter("kdc_host", "kerberos-env")};
/**
* Statically-defined list of filters to apply on cluster config
@@ -1941,6 +1943,7 @@ public class BlueprintConfigurationProcessor {
multiCoreSiteMap.put("hadoop.proxyuser.hive.hosts", new MultipleHostTopologyUpdater("HIVE_SERVER"));
multiCoreSiteMap.put("hadoop.proxyuser.HTTP.hosts", new MultipleHostTopologyUpdater("WEBHCAT_SERVER"));
multiCoreSiteMap.put("hadoop.proxyuser.hcat.hosts", new MultipleHostTopologyUpdater("WEBHCAT_SERVER"));
+ multiCoreSiteMap.put("hadoop.proxyuser.yarn.hosts", new MultipleHostTopologyUpdater("RESOURCEMANAGER"));
multiWebhcatSiteMap.put("templeton.hive.properties", new TempletonHivePropertyUpdater());
multiWebhcatSiteMap.put("templeton.kerberos.principal", new MultipleHostTopologyUpdater("WEBHCAT_SERVER"));
hiveEnvMap.put("hive_hostname", new SingleHostTopologyUpdater("HIVE_SERVER"));
http://git-wip-us.apache.org/repos/asf/ambari/blob/862827df/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
index abf5675..c8daf09 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
@@ -714,6 +714,60 @@ public class BlueprintConfigurationProcessorTest {
tezSiteProperties.containsKey("tez.tez-ui.history-url.base"));
}
+ /**
+ * There is no support currently for deploying a fully Kerberized
+ * cluster with Blueprints. This test verifies the current treatment
+ * of Kerberos-related properties in a Blueprint export.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testKerberosConfigExport() throws Exception {
+ final String expectedHostName = "c6401.apache.ambari.org";
+ final String expectedHostGroupName = "host_group_1";
+
+ Map<String, Map<String, String>> configProperties = new HashMap<String, Map<String, String>>();
+ Map<String, String> kerberosEnvProperties = new HashMap<String, String>();
+ Map<String, String> coreSiteProperties = new HashMap<String, String>();
+ configProperties.put("kerberos-env", kerberosEnvProperties);
+ configProperties.put("core-site", coreSiteProperties);
+
+ // simulate the case of a Kerberized cluster, including config
+ // added by the Kerberos service
+ kerberosEnvProperties.put("admin_server_host", expectedHostName);
+ kerberosEnvProperties.put("kdc_host", expectedHostName);
+ coreSiteProperties.put("hadoop.proxyuser.yarn.hosts", expectedHostName);
+
+ Configuration clusterConfig = new Configuration(configProperties,
+ Collections.<String, Map<String, Map<String, String>>>emptyMap());
+
+ // note: test hostgroups may not accurately reflect the required components for the config properties
+ // which are mapped to them. Only the hostgroup name is used for hostgroup resolution an the components
+ // are not validated
+ Collection<String> groupComponents = new HashSet<String>();
+ groupComponents.add("TEZ_CLIENT");
+ groupComponents.add("RESOURCEMANAGER");
+ Collection<String> hosts = new ArrayList<String>();
+ hosts.add(expectedHostName);
+ hosts.add("serverTwo");
+ TestHostGroup group = new TestHostGroup(expectedHostGroupName, groupComponents, hosts);
+
+ Collection<TestHostGroup> hostGroups = new HashSet<TestHostGroup>();
+ hostGroups.add(group);
+
+ ClusterTopology topology = createClusterTopology(bp, clusterConfig, hostGroups);
+ BlueprintConfigurationProcessor configProcessor = new BlueprintConfigurationProcessor(topology);
+ configProcessor.doUpdateForBlueprintExport();
+
+ // verify that these properties are filtered out of the exported configuration
+ assertFalse("admin_server_host should not be present in exported blueprint in kerberos-env",
+ kerberosEnvProperties.containsKey("admin_server_host"));
+ assertFalse("kdc_host should not be present in exported blueprint in kerberos-env",
+ kerberosEnvProperties.containsKey("kdc_host"));
+ assertEquals("hadoop.proxyuser.yarn.hosts was not exported correctly",
+ createExportedHostName("host_group_1"), coreSiteProperties.get("hadoop.proxyuser.yarn.hosts"));
+ }
+
@Test
public void testDoNameNodeHighAvailabilityExportWithHAEnabled() throws Exception {
final String expectedNameService = "mynameservice";