Repository: ambari Updated Branches: refs/heads/trunk e29152193 -> 32fc073fb
http://git-wip-us.apache.org/repos/asf/ambari/blob/32fc073f/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerFactoryTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerFactoryTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerFactoryTest.java index 7cb37be..4620150 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerFactoryTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerFactoryTest.java @@ -18,22 +18,49 @@ package org.apache.ambari.server.serveraction.kerberos; +import com.google.inject.AbstractModule; +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.apache.ambari.server.AmbariException; +import org.apache.ambari.server.configuration.Configuration; +import org.apache.ambari.server.state.Clusters; +import org.easymock.EasyMock; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; + public class KerberosOperationHandlerFactoryTest { + private static Injector injector; + + @BeforeClass + public static void beforeClass() throws AmbariException { + injector = Guice.createInjector(new AbstractModule() { + @Override + protected void configure() { + Configuration configuration = EasyMock.createNiceMock(Configuration.class); + expect(configuration.getServerOsFamily()).andReturn("redhat6").anyTimes(); + replay(configuration); + + bind(Configuration.class).toInstance(configuration); + } + }); + } + @Test public void testForAD() { Assert.assertEquals(MITKerberosOperationHandler.class, - new KerberosOperationHandlerFactory().getKerberosOperationHandler(KDCType.MIT_KDC).getClass()); + injector.getInstance(KerberosOperationHandlerFactory.class).getKerberosOperationHandler(KDCType.MIT_KDC).getClass()); } @Test public void testForMIT() { Assert.assertEquals(ADKerberosOperationHandler.class, - new KerberosOperationHandlerFactory().getKerberosOperationHandler(KDCType.ACTIVE_DIRECTORY).getClass()); + injector.getInstance(KerberosOperationHandlerFactory.class).getKerberosOperationHandler(KDCType.ACTIVE_DIRECTORY).getClass()); } @Test(expected = IllegalArgumentException.class) http://git-wip-us.apache.org/repos/asf/ambari/blob/32fc073f/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandlerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandlerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandlerTest.java index f330cf2..045cfbe 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandlerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/MITKerberosOperationHandlerTest.java @@ -23,21 +23,23 @@ import com.google.inject.Guice; import com.google.inject.Injector; import junit.framework.Assert; import org.apache.ambari.server.AmbariException; +import org.apache.ambari.server.configuration.Configuration; +import org.apache.ambari.server.controller.KerberosHelper; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.utils.ShellCommandUtil; +import org.easymock.EasyMock; import org.easymock.IAnswer; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; +import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; -import static org.mockito.Mockito.mock; - public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTest { @@ -47,21 +49,30 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes private static Injector injector; - @BeforeClass - public static void beforeClass() throws AmbariException { - injector = Guice.createInjector(new MockModule()); - MITKerberosOperationHandler.init(injector); - } - private static final Map<String, String> KERBEROS_ENV_MAP = new HashMap<String, String>() { { put(MITKerberosOperationHandler.KERBEROS_ENV_ENCRYPTION_TYPES, null); } }; + @BeforeClass + public static void beforeClass() throws AmbariException { + injector = Guice.createInjector(new AbstractModule() { + @Override + protected void configure() { + Configuration configuration =EasyMock.createNiceMock(Configuration.class); + expect(configuration.getServerOsFamily()).andReturn("redhat6").anyTimes(); + replay(configuration); + + bind(Clusters.class).toInstance(EasyMock.createNiceMock(Clusters.class)); + bind(Configuration.class).toInstance(configuration); + } + }); + } + @Test public void testSetPrincipalPasswordExceptions() throws Exception { - MITKerberosOperationHandler handler = new MITKerberosOperationHandler(); + MITKerberosOperationHandler handler = injector.getInstance(MITKerberosOperationHandler.class); handler.open(new KerberosCredential(DEFAULT_ADMIN_PRINCIPAL, DEFAULT_ADMIN_PASSWORD, null), DEFAULT_REALM, KERBEROS_ENV_MAP); try { @@ -135,6 +146,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -168,6 +181,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -201,6 +216,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -234,6 +251,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -267,6 +286,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -300,6 +321,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -333,6 +356,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -366,6 +391,8 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes .addMockedMethod(KerberosOperationHandler.class.getDeclaredMethod("executeCommand", String[].class)) .createNiceMock(); + setConfiguration(handler, "redhat6"); + expect(handler.executeCommand(anyObject(String[].class))) .andAnswer(new IAnswer<ShellCommandUtil.Result>() { @Override @@ -440,11 +467,11 @@ public class MITKerberosOperationHandlerTest extends KerberosOperationHandlerTes handler.close(); } - public static class MockModule extends AbstractModule { - @Override - protected void configure() { - bind(Clusters.class).toInstance(mock(Clusters.class)); - } - } + private static void setConfiguration(MITKerberosOperationHandler handler, String osType) throws Exception { + Configuration configuration = EasyMock.createNiceMock(Configuration.class); + expect(configuration.getServerOsFamily()).andReturn("redhat6").anyTimes(); + replay(configuration); + handler.init(configuration); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/32fc073f/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py index 2b69f1a..85f3f7c 100644 --- a/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py +++ b/ambari-server/src/test/python/stacks/2.2/KERBEROS/test_kerberos_client.py @@ -311,3 +311,39 @@ class TestKerberosClient(RMFTestCase): "PK6UkwyUSMAAAA3AAEAC0VYQU1QTEUuQ09NAAlhbWJhcmkt" "cWEAAAABVKHYCgEAEQAQVqISRJwXIQnG28lI34mfeA==")) ) + + def test_delete_keytab(self): + config_file = "stacks/2.2/configs/default.json" + + with open(config_file, "r") as f: + json_data = json.load(f) + + json_data['kerberosCommandParams'] = [] + json_data['kerberosCommandParams'].append({ + "service": "HDFS", + "hostname": "c6501.ambari.apache.org", + "component": "NAMENODE", + "keytab_file_path": "/etc/security/keytabs/spnego.service.keytab", + "principal": "HTTP/_h...@example.com" + }) + + json_data['kerberosCommandParams'].append({ + "service": "HDFS", + "hostname": "c6501.ambari.apache.org", + "component": "NAMENODE", + "keytab_file_path": "/etc/security/keytabs/smokeuser.headless.keytab", + "principal": "ambari...@example.com" + }) + + self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/kerberos_client.py", + classname="KerberosClient", + command="remove_keytab", + config_dict=json_data, + hdp_stack_version=self.STACK_VERSION, + target=RMFTestCase.TARGET_COMMON_SERVICES + ) + + self.assertResourceCalled('File', "/etc/security/keytabs/spnego.service.keytab", + action=['delete']) + self.assertResourceCalled('File', "/etc/security/keytabs/smokeuser.headless.keytab", + action=['delete'])