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'])

Reply via email to