MBARI-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/b6a06bd0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b6a06bd0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b6a06bd0

Branch: refs/heads/branch-dev-patch-upgrade
Commit: b6a06bd06d644f3ccd0e8b815f434fefe5989346
Parents: 03d90ae
Author: Lisnichenko Dmitro <[email protected]>
Authored: Thu Jan 26 14:35:29 2017 +0200
Committer: Lisnichenko Dmitro <[email protected]>
Committed: Thu Jan 26 14:35:29 2017 +0200

----------------------------------------------------------------------
 .../UpdateKerberosConfigsServerAction.java      | 17 +++++++++++
 .../UpdateKerberosConfigsServerActionTest.java  | 31 ++++++++++++++++++++
 2 files changed, 48 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b6a06bd0/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 9bf6b51..b75100e 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
@@ -120,6 +120,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/b6a06bd0/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 fc9c857..e756491 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,6 +36,7 @@ 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.EasyMock;
 import org.easymock.EasyMockSupport;
 import org.junit.Before;
@@ -140,4 +143,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();
+  }
+
+
 }

Reply via email to