Repository: ambari Updated Branches: refs/heads/branch-2.5 924d117a5 -> 659b46a5c refs/heads/trunk 03d90ae87 -> b6a06bd06
AMBARI-19675. Regenerate Keytabs action does not set cluster-env/security_enabled to true (echekanskiy via dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/659b46a5 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/659b46a5 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/659b46a5 Branch: refs/heads/branch-2.5 Commit: 659b46a5c13088f7c821c101f82949721808d1ed Parents: 924d117 Author: Lisnichenko Dmitro <[email protected]> Authored: Thu Jan 26 14:34:49 2017 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Thu Jan 26 14:34:49 2017 +0200 ---------------------------------------------------------------------- .../UpdateKerberosConfigsServerAction.java | 17 +++++++++++ .../UpdateKerberosConfigsServerActionTest.java | 32 +++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/659b46a5/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerAction.java index 931806d..2177c04 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerAction.java @@ -119,6 +119,23 @@ public class UpdateKerberosConfigsServerAction extends AbstractServerAction { } } + // ensure that cluster-env/security_enabled have proper value + final String securityEnabled = cluster.getSecurityType() == SecurityType.KERBEROS + ? "true" + : "false"; + + if(!configTypes.contains("cluster-env")) { + configTypes.add("cluster-env"); + } + + Map<String, String> clusterEnvProperties = propertiesToSet.get("cluster-env"); + if(clusterEnvProperties == null) { + clusterEnvProperties = new HashMap<>(); + propertiesToSet.put("cluster-env", clusterEnvProperties); + } + + clusterEnvProperties.put("security_enabled", securityEnabled); + if (!configTypes.isEmpty()) { String configNote = getCommandParameterValue(getCommandParameters(), KerberosServerAction.UPDATE_CONFIGURATION_NOTE); http://git-wip-us.apache.org/repos/asf/ambari/blob/659b46a5/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerActionTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerActionTest.java index 1a38d87..98b3f00 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerActionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/UpdateKerberosConfigsServerActionTest.java @@ -19,8 +19,10 @@ package org.apache.ambari.server.serveraction.kerberos; import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.capture; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; +import static org.junit.Assert.assertEquals; import java.io.File; import java.util.Collection; @@ -34,12 +36,12 @@ import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.ConfigHelper; import org.apache.ambari.server.state.stack.OsFamily; +import org.easymock.Capture; import org.easymock.EasyMockSupport; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; @@ -139,4 +141,32 @@ public class UpdateKerberosConfigsServerActionTest extends EasyMockSupport{ verifyAll(); } + + @Test + public void testUpdateConfigForceSecurityEnabled() throws Exception { + Map<String, String> commandParams = new HashMap<String, String>(); + commandParams.put(KerberosServerAction.DATA_DIRECTORY, dataDir); + + ExecutionCommand executionCommand = new ExecutionCommand(); + executionCommand.setCommandParams(commandParams); + + ConfigHelper configHelper = injector.getInstance(ConfigHelper.class); + + Capture<String> configTypes = Capture.newInstance(); + Capture<Map<String, String>> configUpdates = Capture.newInstance(); + configHelper.updateConfigType(anyObject(Cluster.class), anyObject(AmbariManagementController.class), + capture(configTypes), capture(configUpdates), anyObject(Collection.class), anyObject(String.class), anyObject(String.class)); + expectLastCall().atLeastOnce(); + + replayAll(); + + action.setExecutionCommand(executionCommand); + action.execute(null); + + assertEquals(configTypes.getValue(), "cluster-env"); + assertEquals(configUpdates.getValue().get("security_enabled"), "false"); + verifyAll(); + } + + }
