|
@@ -45,6 +45,7 @@ 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;
|
|
@@ -73,18 +74,7 @@ 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.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.easymock.EasyMock.*;
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
import static org.junit.Assert.assertNotNull;
|
|
|
import static org.junit.Assert.assertNull;
|
|
@@ -507,11 +497,12 @@ 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(createNiceMock(KerberosHelper.class));
|
|
|
+ expect(injector.getInstance(KerberosHelper.class)).andReturn(kerberosHelper);
|
|
|
expect(clusterRequest.getClusterName()).andReturn("clusterNew").times(4);
|
|
|
expect(clusterRequest.getClusterId()).andReturn(1L).times(6);
|
|
|
expect(clusters.getClusterById(1L)).andReturn(cluster).times(2);
|
|
@@ -535,6 +526,47 @@ public class AmbariManagementControllerImplTest {
|
|
|
verify(actionManager, cluster, clusters, injector, clusterRequest, sessionManager);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 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.
|