Repository: ambari Updated Branches: refs/heads/trunk 943a16ba8 -> 4a3e05a9d
Revert "AMBARI-9261. Ensure enable/disable Kerberos logic should invoke only when state of security flag is changed (rlevas)" Reverting since this causes cluster deployment failure when trying to create configs. This reverts commit 859279a37d098bd4da89ec2e7c08c837f8698f15. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4a3e05a9 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4a3e05a9 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4a3e05a9 Branch: refs/heads/trunk Commit: 4a3e05a9d4bb9f1a8c714e5b707772d540caabe8 Parents: 943a16b Author: Yusaku Sako <yus...@hortonworks.com> Authored: Thu Jan 22 14:55:53 2015 -0800 Committer: Yusaku Sako <yus...@hortonworks.com> Committed: Thu Jan 22 14:56:09 2015 -0800 ---------------------------------------------------------------------- .../AmbariManagementControllerImpl.java | 62 +++----------------- .../AmbariManagementControllerImplTest.java | 58 ++++-------------- .../AmbariManagementControllerTest.java | 6 +- 3 files changed, 24 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/4a3e05a9/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 7e4ce69..dd18e8d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -1196,51 +1196,7 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle cluster.setClusterName(request.getClusterName()); } - // ---------------------- - // Check to see if the security state is being changed... if so, attempt to enable or disable - // Kerberos - boolean toggleKerberos = false; - - String desiredSecurityState = null; - List<ConfigurationRequest> desiredConfig = request.getDesiredConfig(); - if (desiredConfig != null) { - for (ConfigurationRequest configurationRequest : desiredConfig) { - if ("cluster-env".equals(configurationRequest.getType())) { - Map<String, String> properties = configurationRequest.getProperties(); - - if ((properties == null) || properties.isEmpty()) { - Config configClusterEnv = cluster.getConfig(configurationRequest.getType(), configurationRequest.getVersionTag()); - if (configClusterEnv != null) { - properties = configClusterEnv.getProperties(); - } - } - - desiredSecurityState = (properties == null) ? null : properties.get("security_enabled"); - } - } - } - - if(desiredSecurityState != null) { - Config configClusterEnv = cluster.getDesiredConfigByType("cluster-env"); - if (configClusterEnv == null) { - String message = "The 'cluster-env' configuration is not available"; - LOG.error(message); - throw new AmbariException(message); - } - - Map<String, String> clusterEnvProperties = configClusterEnv.getProperties(); - if (clusterEnvProperties == null) { - String message = "The 'cluster-env' configuration properties are not available"; - LOG.error(message); - throw new AmbariException(message); - } - - toggleKerberos = !desiredSecurityState.equals(clusterEnvProperties.get("security_enabled")); - } - // ---------------------- - - - // set or create configuration mapping (and optionally create the map of properties) + // set or create configuration mapping (and optionally create the map of properties) if (null != request.getDesiredConfig()) { Set<Config> configs = new HashSet<Config>(); String note = null; @@ -1370,15 +1326,13 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle } RequestStageContainer requestStageContainer = null; - if(toggleKerberos) { - Map<String, Service> services = cluster.getServices(); - if ((services != null) && services.containsKey("KERBEROS")) { - // Handle either adding or removing Kerberos from the cluster. This may generate multiple stages - // or not depending the current state of the cluster. The main configuration used to determine - // whether Kerberos is to be added or removed is cluster-config/security_enabled. - requestStageContainer = kerberosHelper.toggleKerberos(cluster, - request.getKerberosDescriptor(), null); - } + Map<String, Service> services = cluster.getServices(); + if ((services != null) && services.containsKey("KERBEROS")) { + // Handle either adding or removing Kerberos from the cluster. This may generate multiple stages + // or not depending the current state of the cluster. The main configuration used to determine + // whether Kerberos is to be added or removed is cluster-config/security_enabled. + requestStageContainer = kerberosHelper.toggleKerberos(cluster, + request.getKerberosDescriptor(), null); } if (requestStageContainer != null) { http://git-wip-us.apache.org/repos/asf/ambari/blob/4a3e05a9/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java index ab07df7..e713d7f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java @@ -45,7 +45,6 @@ import org.apache.ambari.server.security.ldap.LdapBatchDto; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.ComponentInfo; -import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.MaintenanceState; import org.apache.ambari.server.state.Service; @@ -74,7 +73,18 @@ import java.util.TreeMap; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.DB_DRIVER_FILENAME; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_NAME; import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_VERSION; -import static org.easymock.EasyMock.*; +import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.capture; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createMockBuilder; +import static org.easymock.EasyMock.createNiceMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.expectLastCall; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.reset; +import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -497,12 +507,11 @@ public class AmbariManagementControllerImplTest { // requests Set<ClusterRequest> setRequests = Collections.singleton(clusterRequest); - KerberosHelper kerberosHelper = createStrictMock(KerberosHelper.class); // expectations injector.injectMembers(capture(controllerCapture)); expect(injector.getInstance(Gson.class)).andReturn(null); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null); - expect(injector.getInstance(KerberosHelper.class)).andReturn(kerberosHelper); + expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); expect(clusterRequest.getClusterName()).andReturn("clusterNew").times(4); expect(clusterRequest.getClusterId()).andReturn(1L).times(6); expect(clusters.getClusterById(1L)).andReturn(cluster).times(2); @@ -527,47 +536,6 @@ public class AmbariManagementControllerImplTest { } /** - * Ensure that when the cluster is updated KerberosHandler.toggleKerberos is not invoked unless - * the security state is altered - */ - @Test - public void testUpdateClustersToggleKerberosNotInvoked() throws Exception { - // member state mocks - Capture<AmbariManagementController> controllerCapture = new Capture<AmbariManagementController>(); - Injector injector = createStrictMock(Injector.class); - Cluster cluster = createNiceMock(Cluster.class); - ActionManager actionManager = createNiceMock(ActionManager.class); - ClusterRequest clusterRequest = createNiceMock(ClusterRequest.class); - - // requests - Set<ClusterRequest> setRequests = Collections.singleton(clusterRequest); - - KerberosHelper kerberosHelper = createStrictMock(KerberosHelper.class); - // expectations - injector.injectMembers(capture(controllerCapture)); - expect(injector.getInstance(Gson.class)).andReturn(null); - expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null); - expect(injector.getInstance(KerberosHelper.class)).andReturn(kerberosHelper); - expect(clusterRequest.getClusterId()).andReturn(1L).times(6); - expect(clusters.getClusterById(1L)).andReturn(cluster).times(2); - expect(cluster.getClusterName()).andReturn("cluster").times(2); - - cluster.addSessionAttributes(anyObject(Map.class)); - expectLastCall().once(); - - // replay mocks - replay(actionManager, cluster, clusters, injector, clusterRequest, sessionManager); - - // test - AmbariManagementController controller = new AmbariManagementControllerImpl(actionManager, clusters, injector); - controller.updateClusters(setRequests, null); - - // assert and verify - assertSame(controller, controllerCapture.getValue()); - verify(actionManager, cluster, clusters, injector, clusterRequest, sessionManager); - } - - /** * Ensure that RollbackException is thrown outside the updateClusters method * when a unique constraint violation occurs. */ http://git-wip-us.apache.org/repos/asf/ambari/blob/4a3e05a9/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index f6c34f2..805b498 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -9369,7 +9369,7 @@ public class AmbariManagementControllerTest { injector.injectMembers(capture(controllerCapture)); expect(injector.getInstance(Gson.class)).andReturn(null); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(maintHelper); - expect(injector.getInstance(KerberosHelper.class)).andReturn(createStrictMock(KerberosHelper.class)); + expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); // getServices expect(clusters.getCluster("cluster1")).andReturn(cluster); @@ -9413,7 +9413,7 @@ public class AmbariManagementControllerTest { injector.injectMembers(capture(controllerCapture)); expect(injector.getInstance(Gson.class)).andReturn(null); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(maintHelper); - expect(injector.getInstance(KerberosHelper.class)).andReturn(createStrictMock(KerberosHelper.class)); + expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); // getServices expect(clusters.getCluster("cluster1")).andReturn(cluster); @@ -9472,7 +9472,7 @@ public class AmbariManagementControllerTest { injector.injectMembers(capture(controllerCapture)); expect(injector.getInstance(Gson.class)).andReturn(null); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(maintHelper); - expect(injector.getInstance(KerberosHelper.class)).andReturn(createStrictMock(KerberosHelper.class)); + expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); // getServices expect(clusters.getCluster("cluster1")).andReturn(cluster).times(4);