Repository: ambari Updated Branches: refs/heads/branch-2.4 d314e3478 -> 3a0d571be
AMBARI-18804. Manage Ambari principals should be set to off when upgrading Ambari from versions < 2.4.0 (rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3a0d571b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3a0d571b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3a0d571b Branch: refs/heads/branch-2.4 Commit: 3a0d571befd05615130ef3a63ce72f176dba60e8 Parents: d314e34 Author: Robert Levas <rle...@hortonworks.com> Authored: Mon Nov 7 12:38:25 2016 -0500 Committer: Robert Levas <rle...@hortonworks.com> Committed: Mon Nov 7 12:38:25 2016 -0500 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog240.java | 20 +++++++++----------- .../server/upgrade/UpgradeCatalog240Test.java | 6 ++++++ 2 files changed, 15 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/3a0d571b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java index dab20a0..b711c25 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java @@ -19,8 +19,6 @@ package org.apache.ambari.server.upgrade; import com.google.common.collect.Lists; -import com.google.common.reflect.TypeToken; -import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -48,7 +46,6 @@ import org.apache.ambari.server.orm.dao.ResourceTypeDAO; import org.apache.ambari.server.orm.dao.RoleAuthorizationDAO; import org.apache.ambari.server.orm.dao.UserDAO; import org.apache.ambari.server.orm.dao.ViewInstanceDAO; -import org.apache.ambari.server.orm.dao.WidgetDAO; import org.apache.ambari.server.orm.entities.AlertDefinitionEntity; import org.apache.ambari.server.orm.entities.ArtifactEntity; import org.apache.ambari.server.orm.entities.ClusterEntity; @@ -64,7 +61,6 @@ import org.apache.ambari.server.orm.entities.RoleAuthorizationEntity; import org.apache.ambari.server.orm.entities.UserEntity; import org.apache.ambari.server.orm.entities.ViewEntityEntity; import org.apache.ambari.server.orm.entities.ViewInstanceEntity; -import org.apache.ambari.server.orm.entities.WidgetEntity; import org.apache.ambari.server.security.authorization.ResourceType; import org.apache.ambari.server.security.authorization.User; import org.apache.ambari.server.security.authorization.Users; @@ -87,8 +83,6 @@ import org.apache.ambari.server.state.kerberos.KerberosIdentityDescriptor; import org.apache.ambari.server.state.kerberos.KerberosKeytabDescriptor; import org.apache.ambari.server.state.kerberos.KerberosPrincipalDescriptor; import org.apache.ambari.server.state.kerberos.KerberosServiceDescriptor; -import org.apache.ambari.server.state.stack.WidgetLayout; -import org.apache.ambari.server.state.stack.WidgetLayoutInfo; import org.apache.ambari.server.view.DefaultMasker; import org.apache.ambari.view.ClusterType; import org.apache.ambari.view.MaskException; @@ -100,9 +94,6 @@ import org.springframework.jdbc.support.JdbcUtils; import javax.persistence.EntityManager; import javax.persistence.Query; import javax.persistence.TypedQuery; -import java.io.File; -import java.io.FileReader; -import java.lang.reflect.Type; import java.sql.Clob; import java.sql.ResultSet; import java.sql.SQLException; @@ -2216,10 +2207,17 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog { // Update the kerberos-env properties to change kdc_host to kdc_hosts config = cluster.getDesiredConfigByType("kerberos-env"); if (config != null) { + Map<String, String> updates = new HashMap<String, String>(); + Set<String> removes = new HashSet<String>(); + // Rename kdc_host to kdc_hosts String value = config.getProperties().get("kdc_host"); - Map<String, String> updates = Collections.singletonMap("kdc_hosts", value); - Set<String> removes = Collections.singleton("kdc_host"); + updates.put("kdc_hosts", value); + removes.add("kdc_host"); + + // Ensure create_ambari_principal is set to "false" since it is expected that Ambari's + // principal, keytab file, and JAAS file has already been manually configured. + updates.put("create_ambari_principal", "false"); updateConfigurationPropertiesForCluster(cluster, "kerberos-env", updates, removes, true, false); } http://git-wip-us.apache.org/repos/asf/ambari/blob/3a0d571b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java index 0549827..cf2d87d 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java @@ -1547,10 +1547,13 @@ public class UpgradeCatalog240Test { Assert.assertNotNull(capturedCRProperties); Assert.assertFalse(capturedCRProperties.containsKey("kdc_host")); Assert.assertTrue(capturedCRProperties.containsKey("kdc_hosts")); + Assert.assertTrue(capturedCRProperties.containsKey("create_ambari_principal")); for (String property : propertiesKerberosEnv.keySet()) { if ("kdc_host".equals(property)) { Assert.assertEquals(property, propertiesKerberosEnv.get(property), capturedCRProperties.get("kdc_hosts")); + } else if ("create_ambari_principal".equals(property)) { + Assert.assertEquals(property, propertiesKerberosEnv.get(property), "false"); } else { Assert.assertEquals(property, propertiesKerberosEnv.get(property), capturedCRProperties.get(property)); } @@ -1679,10 +1682,13 @@ public class UpgradeCatalog240Test { Assert.assertNotNull(capturedCRProperties); Assert.assertFalse(capturedCRProperties.containsKey("kdc_host")); Assert.assertTrue(capturedCRProperties.containsKey("kdc_hosts")); + Assert.assertTrue(capturedCRProperties.containsKey("create_ambari_principal")); for (String property : propertiesKerberosEnv.keySet()) { if ("kdc_host".equals(property)) { Assert.assertEquals(property, propertiesKerberosEnv.get(property), capturedCRProperties.get("kdc_hosts")); + } else if ("create_ambari_principal".equals(property)) { + Assert.assertEquals(property, propertiesKerberosEnv.get(property), "false"); } else { Assert.assertEquals(property, propertiesKerberosEnv.get(property), capturedCRProperties.get(property)); }