Repository: ambari
Updated Branches:
  refs/heads/trunk ab491eaba -> 1646be070


http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
index 215161c..7db2653 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
@@ -375,7 +375,7 @@ public class KerberosHelperTest extends EasyMockSupport {
     expect(service1.getName()).andReturn("SERVICE1").anyTimes();
     expect(service1.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
     service1.setSecurityState(SecurityState.SECURED_KERBEROS);
     expectLastCall().once();
 
@@ -383,7 +383,7 @@ public class KerberosHelperTest extends EasyMockSupport {
     expect(service2.getName()).andReturn("SERVICE2").anyTimes();
     expect(service2.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
     service2.setSecurityState(SecurityState.SECURED_KERBEROS);
     expectLastCall().once();
 
@@ -448,6 +448,9 @@ public class KerberosHelperTest extends EasyMockSupport {
     
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
"host1"))
         .andReturn(Collections.<String, Map<String, String>>emptyMap())
         .once();
+    
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
null))
+        .andReturn(Collections.<String, Map<String, String>>emptyMap())
+        .once();
     expect(ambariManagementController.getRoleCommandOrder(cluster))
         .andReturn(createNiceMock(RoleCommandOrder.class))
         .once();
@@ -461,10 +464,7 @@ public class KerberosHelperTest extends EasyMockSupport {
             }});
           }
         })
-        .once();
-    expect(configHelper.getEffectiveConfigAttributes(anyObject(Cluster.class), 
anyObject(Map.class)))
-        .andReturn(Collections.<String, Map<String, Map<String, 
String>>>emptyMap())
-        .once();
+        .times(2);
 
     final KerberosPrincipalDescriptor principalDescriptor1 = 
createNiceMock(KerberosPrincipalDescriptor.class);
     
expect(principalDescriptor1.getValue()).andReturn("component1/_HOST@${realm}").once();
@@ -625,7 +625,7 @@ public class KerberosHelperTest extends EasyMockSupport {
     expect(service1.getName()).andReturn("SERVICE1").anyTimes();
     expect(service1.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
     service1.setSecurityState(SecurityState.UNSECURED);
     expectLastCall().once();
 
@@ -633,7 +633,7 @@ public class KerberosHelperTest extends EasyMockSupport {
     expect(service2.getName()).andReturn("SERVICE2").anyTimes();
     expect(service2.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
     service2.setSecurityState(SecurityState.UNSECURED);
     expectLastCall().once();
 
@@ -694,6 +694,9 @@ public class KerberosHelperTest extends EasyMockSupport {
     
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
"host1"))
         .andReturn(Collections.<String, Map<String, String>>emptyMap())
         .once();
+    
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
null))
+        .andReturn(Collections.<String, Map<String, String>>emptyMap())
+        .once();
     expect(ambariManagementController.getRoleCommandOrder(cluster))
         .andReturn(createNiceMock(RoleCommandOrder.class))
         .once();
@@ -707,10 +710,7 @@ public class KerberosHelperTest extends EasyMockSupport {
             }});
           }
         })
-        .once();
-    expect(configHelper.getEffectiveConfigAttributes(anyObject(Cluster.class), 
anyObject(Map.class)))
-        .andReturn(Collections.<String, Map<String, Map<String, 
String>>>emptyMap())
-        .once();
+        .times(2);
 
     final KerberosPrincipalDescriptor principalDescriptor1 = 
createNiceMock(KerberosPrincipalDescriptor.class);
     
expect(principalDescriptor1.getValue()).andReturn("component1/_HOST@${realm}").once();
@@ -852,13 +852,13 @@ public class KerberosHelperTest extends EasyMockSupport {
     expect(service1.getName()).andReturn("SERVICE1").anyTimes();
     expect(service1.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
 
     final Service service2 = createStrictMock(Service.class);
     expect(service2.getName()).andReturn("SERVICE2").anyTimes();
     expect(service2.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
 
     final Map<String, String> kerberosEnvProperties = 
createNiceMock(Map.class);
     
expect(kerberosEnvProperties.get("kdc_type")).andReturn("mit-kdc").anyTimes();
@@ -920,6 +920,9 @@ public class KerberosHelperTest extends EasyMockSupport {
     
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
"host1"))
         .andReturn(Collections.<String, Map<String, String>>emptyMap())
         .once();
+    
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
null))
+        .andReturn(Collections.<String, Map<String, String>>emptyMap())
+        .once();
     expect(ambariManagementController.getRoleCommandOrder(cluster))
         .andReturn(createNiceMock(RoleCommandOrder.class))
         .once();
@@ -933,10 +936,7 @@ public class KerberosHelperTest extends EasyMockSupport {
             }});
           }
         })
-        .once();
-    expect(configHelper.getEffectiveConfigAttributes(anyObject(Cluster.class), 
anyObject(Map.class)))
-        .andReturn(Collections.<String, Map<String, Map<String, 
String>>>emptyMap())
-        .once();
+        .times(2);
 
     final KerberosPrincipalDescriptor principalDescriptor1 = 
createNiceMock(KerberosPrincipalDescriptor.class);
     
expect(principalDescriptor1.getValue()).andReturn("component1/_HOST@${realm}").once();
@@ -1130,13 +1130,13 @@ public class KerberosHelperTest extends EasyMockSupport 
{
     expect(service1.getName()).andReturn("SERVICE1").anyTimes();
     expect(service1.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
 
     final Service service2 = createStrictMock(Service.class);
     expect(service2.getName()).andReturn("SERVICE2").anyTimes();
     expect(service2.getServiceComponents())
         .andReturn(Collections.<String, ServiceComponent>emptyMap())
-        .times(2);
+        .times(3);
 
     final Map<String, String> kerberosEnvProperties = 
createNiceMock(Map.class);
     
expect(kerberosEnvProperties.get("kdc_type")).andReturn("mit-kdc").anyTimes();
@@ -1198,6 +1198,9 @@ public class KerberosHelperTest extends EasyMockSupport {
     
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
"host1"))
         .andReturn(Collections.<String, Map<String, String>>emptyMap())
         .once();
+    
expect(ambariManagementController.findConfigurationTagsWithOverrides(cluster, 
null))
+        .andReturn(Collections.<String, Map<String, String>>emptyMap())
+        .once();
     expect(ambariManagementController.getRoleCommandOrder(cluster))
         .andReturn(createNiceMock(RoleCommandOrder.class))
         .once();
@@ -1211,16 +1214,19 @@ public class KerberosHelperTest extends EasyMockSupport 
{
             }});
           }
         })
-        .once();
-    expect(configHelper.getEffectiveConfigAttributes(anyObject(Cluster.class), 
anyObject(Map.class)))
-        .andReturn(Collections.<String, Map<String, Map<String, 
String>>>emptyMap())
-        .once();
+        .times(2);
+
+    final KerberosPrincipalDescriptor principalDescriptor1a = 
createMock(KerberosPrincipalDescriptor.class);
+    
expect(principalDescriptor1a.getValue()).andReturn("component1a/_HOST@${realm}").anyTimes();
+    
expect(principalDescriptor1a.getType()).andReturn(KerberosPrincipalType.SERVICE).anyTimes();
+    
expect(principalDescriptor1a.getLocalUsername()).andReturn(null).anyTimes();
+    
expect(principalDescriptor1a.getConfiguration()).andReturn("service1b-site/component1.kerberos.principal").anyTimes();
 
-    final KerberosPrincipalDescriptor principalDescriptor1 = 
createMock(KerberosPrincipalDescriptor.class);
-    
expect(principalDescriptor1.getValue()).andReturn("component1/_HOST@${realm}").anyTimes();
-    
expect(principalDescriptor1.getType()).andReturn(KerberosPrincipalType.SERVICE).anyTimes();
-    expect(principalDescriptor1.getLocalUsername()).andReturn(null).anyTimes();
-    
expect(principalDescriptor1.getConfiguration()).andReturn("service1-site/component1.kerberos.principal").anyTimes();
+    final KerberosPrincipalDescriptor principalDescriptor1b = 
createMock(KerberosPrincipalDescriptor.class);
+    
expect(principalDescriptor1b.getValue()).andReturn("component1b/_HOST@${realm}").anyTimes();
+    
expect(principalDescriptor1b.getType()).andReturn(KerberosPrincipalType.SERVICE).anyTimes();
+    
expect(principalDescriptor1b.getLocalUsername()).andReturn(null).anyTimes();
+    
expect(principalDescriptor1b.getConfiguration()).andReturn("service1b-site/component1.kerberos.principal").anyTimes();
 
     final KerberosPrincipalDescriptor principalDescriptor3 = 
createMock(KerberosPrincipalDescriptor.class);
     
expect(principalDescriptor3.getValue()).andReturn("component3/${host}@${realm}").anyTimes();
@@ -1246,44 +1252,61 @@ public class KerberosHelperTest extends EasyMockSupport 
{
 
     final KerberosIdentityDescriptor identityDescriptor1a = 
createMock(KerberosIdentityDescriptor.class);
     expect(identityDescriptor1a.getName()).andReturn("identity1a").anyTimes();
-    
expect(identityDescriptor1a.getPrincipalDescriptor()).andReturn(principalDescriptor1).anyTimes();
+    
expect(identityDescriptor1a.getPrincipalDescriptor()).andReturn(principalDescriptor1a).anyTimes();
     
expect(identityDescriptor1a.getKeytabDescriptor()).andReturn(keytabDescriptor1).anyTimes();
 
     final KerberosIdentityDescriptor identityDescriptor1b = 
createMock(KerberosIdentityDescriptor.class);
     expect(identityDescriptor1b.getName()).andReturn("identity1b").anyTimes();
+    
expect(identityDescriptor1b.getPrincipalDescriptor()).andReturn(principalDescriptor1b).anyTimes();
 
     final KerberosIdentityDescriptor identityDescriptor3 = 
createMock(KerberosIdentityDescriptor.class);
     expect(identityDescriptor3.getName()).andReturn("identity3").anyTimes();
     
expect(identityDescriptor3.getPrincipalDescriptor()).andReturn(principalDescriptor3).anyTimes();
     
expect(identityDescriptor3.getKeytabDescriptor()).andReturn(keytabDescriptor3).anyTimes();
 
+    final ArrayList<KerberosIdentityDescriptor> identityDescriptors1 = new 
ArrayList<KerberosIdentityDescriptor>() {{
+      add(identityDescriptor1a);
+      add(identityDescriptor1b);
+    }};
     final KerberosComponentDescriptor componentDescriptor1 = 
createStrictMock(KerberosComponentDescriptor.class);
-    expect(componentDescriptor1.getIdentities(true)).
-        andReturn(new ArrayList<KerberosIdentityDescriptor>() {{
-          add(identityDescriptor1a);
-          add(identityDescriptor1b);
-        }}).once();
-    
expect(componentDescriptor1.getConfigurations(true)).andReturn(null).once();
-
+    
expect(componentDescriptor1.getIdentities(true)).andReturn(identityDescriptors1).times(1);
+    
expect(componentDescriptor1.getConfigurations(true)).andReturn(null).times(1);
+    
expect(componentDescriptor1.getIdentities(true)).andReturn(identityDescriptors1).times(1);
+    
expect(componentDescriptor1.getAuthToLocalProperties()).andReturn(null).times(1);
+
+    final ArrayList<KerberosIdentityDescriptor> identityDescriptors3 = new 
ArrayList<KerberosIdentityDescriptor>() {{
+      add(identityDescriptor3);
+    }};
     final KerberosComponentDescriptor componentDescriptor3 = 
createStrictMock(KerberosComponentDescriptor.class);
-    expect(componentDescriptor3.getIdentities(true)).
-        andReturn(new ArrayList<KerberosIdentityDescriptor>() {{
-          add(identityDescriptor3);
-        }}).once();
-    
expect(componentDescriptor3.getConfigurations(true)).andReturn(null).once();
+    
expect(componentDescriptor3.getIdentities(true)).andReturn(identityDescriptors3).times(1);
+    
expect(componentDescriptor3.getConfigurations(true)).andReturn(null).times(1);
 
     final KerberosServiceDescriptor serviceDescriptor1 = 
createMock(KerberosServiceDescriptor.class);
-    expect(serviceDescriptor1.getIdentities(true)).andReturn(null).once();
+    expect(serviceDescriptor1.getIdentities(true)).andReturn(null).times(1);
+    expect(serviceDescriptor1.getName()).andReturn("SERVICE1").times(1);
+    expect(serviceDescriptor1.getIdentities(true)).andReturn(null).times(1);
+    expect(serviceDescriptor1.getComponents()).andReturn(new HashMap<String, 
KerberosComponentDescriptor>(){{
+      put("COMPONENT1", componentDescriptor1);
+    }}).times(1);
     
expect(serviceDescriptor1.getComponent("COMPONENT1")).andReturn(componentDescriptor1).once();
+    
expect(serviceDescriptor1.getAuthToLocalProperties()).andReturn(null).once();
 
     final KerberosServiceDescriptor serviceDescriptor3 = 
createMock(KerberosServiceDescriptor.class);
-    expect(serviceDescriptor3.getIdentities(true)).andReturn(null).once();
+    expect(serviceDescriptor3.getIdentities(true)).andReturn(null).times(1);
+    expect(serviceDescriptor3.getName()).andReturn("SERVICE3").times(1);
     
expect(serviceDescriptor3.getComponent("COMPONENT3")).andReturn(componentDescriptor3).once();
 
     final KerberosDescriptor kerberosDescriptor = 
createStrictMock(KerberosDescriptor.class);
     expect(kerberosDescriptor.getProperties()).andReturn(null).once();
     
expect(kerberosDescriptor.getService("SERVICE1")).andReturn(serviceDescriptor1).once();
     
expect(kerberosDescriptor.getService("SERVICE3")).andReturn(serviceDescriptor3).once();
+    expect(kerberosDescriptor.getIdentities()).andReturn(null).once();
+    
expect(kerberosDescriptor.getAuthToLocalProperties()).andReturn(null).once();
+    expect(kerberosDescriptor.getServices()).andReturn(new HashMap<String, 
KerberosServiceDescriptor>()
+    {{
+      put("SERVCE1", serviceDescriptor1);
+      put("SERVCE2", serviceDescriptor3);
+    }}).once();
 
     setupGetDescriptorFromCluster(kerberosDescriptor);
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
index e697b99..9bc7570 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
@@ -20,7 +20,6 @@ package org.apache.ambari.server.controller.internal;
 
 import com.google.inject.Injector;
 import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.KerberosHelper;
 import org.apache.ambari.server.controller.MaintenanceStateHelper;
 import org.apache.ambari.server.controller.RequestStatusResponse;
 import org.apache.ambari.server.controller.ResourceProviderFactory;
@@ -35,7 +34,6 @@ import 
org.apache.ambari.server.controller.utilities.PredicateBuilder;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.SecurityType;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceComponentHost;
@@ -60,7 +58,6 @@ import java.util.Set;
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
 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.replay;
@@ -304,7 +301,7 @@ public class HostComponentResourceProviderTest {
     HostComponentResourceProvider provider =
         new 
TestHostComponentResourceProvider(PropertyHelper.getPropertyIds(type),
             PropertyHelper.getKeyPropertyIds(type),
-            managementController, injector, maintenanceStateHelper, null);
+            managementController, injector, maintenanceStateHelper);
 
     
expect(resourceProviderFactory.getHostComponentResourceProvider(anyObject(Set.class),
         anyObject(Map.class),
@@ -355,8 +352,6 @@ public class HostComponentResourceProviderTest {
     ServiceComponentHost clientComponentHost = 
createNiceMock(ServiceComponentHost.class);
     RequestStageContainer stageContainer = 
createNiceMock(RequestStageContainer.class);
     MaintenanceStateHelper maintenanceStateHelper = 
createNiceMock(MaintenanceStateHelper.class);
-    // INIT->INSTALLED state transition causes check for kerberized cluster
-    KerberosHelper kerberosHelper = createStrictMock(KerberosHelper.class);
 
     Collection<String> hosts = new HashSet<String>();
     hosts.add("Host100");
@@ -432,18 +427,16 @@ public class HostComponentResourceProviderTest {
     HostComponentResourceProvider provider =
         new 
TestHostComponentResourceProvider(PropertyHelper.getPropertyIds(type),
             PropertyHelper.getKeyPropertyIds(type),
-            managementController, injector, maintenanceStateHelper, 
kerberosHelper);
+            managementController, injector, maintenanceStateHelper);
 
     
expect(resourceProviderFactory.getHostComponentResourceProvider(anyObject(Set.class),
         anyObject(Map.class),
         eq(managementController))).
         andReturn(provider).anyTimes();
 
-    
expect(kerberosHelper.isClusterKerberosEnabled(cluster)).andReturn(false).times(2);
-
     // replay
     replay(managementController, response, resourceProviderFactory, clusters, 
cluster, service,
-        component, componentHost, stageContainer, maintenanceStateHelper, 
kerberosHelper, clientComponent,
+        component, componentHost, stageContainer, maintenanceStateHelper, 
clientComponent,
         clientComponentHost);
 
     Map<String, Object> properties = new LinkedHashMap<String, Object>();
@@ -453,109 +446,8 @@ public class HostComponentResourceProviderTest {
 
     assertSame(response, requestResponse);
     // verify
-    verify(managementController, response, resourceProviderFactory, 
stageContainer, kerberosHelper,
-           clientComponent, clientComponentHost);
-  }
-
-  @Test
-  public void testInstallAndStart_kerberizedCluster() throws Exception {
-    Resource.Type type = Resource.Type.HostComponent;
-
-    AmbariManagementController managementController = 
createMock(AmbariManagementController.class);
-    RequestStatusResponse response = 
createNiceMock(RequestStatusResponse.class);
-    ResourceProviderFactory resourceProviderFactory = 
createNiceMock(ResourceProviderFactory.class);
-    Injector injector = createNiceMock(Injector.class);
-    Clusters clusters = createNiceMock(Clusters.class);
-    Cluster cluster = createNiceMock(Cluster.class);
-    Service service = createNiceMock(Service.class);
-    ServiceComponent component = createNiceMock(ServiceComponent.class);
-    ServiceComponentHost componentHost = 
createNiceMock(ServiceComponentHost.class);
-    RequestStageContainer stageContainer = 
createNiceMock(RequestStageContainer.class);
-    MaintenanceStateHelper maintenanceStateHelper = 
createNiceMock(MaintenanceStateHelper.class);
-    KerberosHelper kerberosHelper = createStrictMock(KerberosHelper.class);
-
-    Collection<String> hosts = new HashSet<String>();
-    hosts.add("Host100");
-
-    Map<String, String> mapRequestProps = new HashMap<String, String>();
-    mapRequestProps.put("context", "Install and start components on added 
hosts");
-
-    Set<ServiceComponentHostResponse> nameResponse = new 
HashSet<ServiceComponentHostResponse>();
-    nameResponse.add(new ServiceComponentHostResponse(
-        "Cluster102", "Service100", "Component100", "Host100", "INIT", "", 
"INIT", "", null));
-    Set<ServiceComponentHostResponse> nameResponse2 = new 
HashSet<ServiceComponentHostResponse>();
-    nameResponse2.add(new ServiceComponentHostResponse(
-        "Cluster102", "Service100", "Component100", "Host100", "INIT", "", 
"INSTALLED", "", null));
-
-
-    // set expectations
-    expect(managementController.getClusters()).andReturn(clusters).anyTimes();
-    expect(managementController.findServiceName(cluster, 
"Component100")).andReturn("Service100").anyTimes();
-    expect(clusters.getCluster("Cluster102")).andReturn(cluster).anyTimes();
-    expect(cluster.getService("Service100")).andReturn(service).anyTimes();
-    
expect(service.getServiceComponent("Component100")).andReturn(component).anyTimes();
-    
expect(component.getServiceComponentHost("Host100")).andReturn(componentHost).anyTimes();
-    expect(component.getName()).andReturn("Component100").anyTimes();
-    // actual state is always INIT until stages actually execute
-    expect(componentHost.getState()).andReturn(State.INIT).anyTimes();
-    expect(componentHost.getHostName()).andReturn("Host100").anyTimes();
-    
expect(componentHost.getServiceComponentName()).andReturn("Component100").anyTimes();
-    expect(response.getMessage()).andReturn("response msg").anyTimes();
-
-    //Cluster is default type.  Maintenance mode is not being tested here so 
the default is returned.
-    expect(maintenanceStateHelper.isOperationAllowed(Resource.Type.Cluster, 
componentHost)).andReturn(true).anyTimes();
-
-    expect(managementController.getHostComponents(
-        
EasyMock.<Set<ServiceComponentHostRequest>>anyObject())).andReturn(nameResponse);
-    expect(managementController.getHostComponents(
-        
EasyMock.<Set<ServiceComponentHostRequest>>anyObject())).andReturn(nameResponse2);
-
-    Map<String, Map<State, List<ServiceComponentHost>>> changedHosts =
-        new HashMap<String, Map<State, List<ServiceComponentHost>>>();
-    List<ServiceComponentHost> changedComponentHosts = 
Collections.singletonList(componentHost);
-    changedHosts.put("Component100", Collections.singletonMap(State.INSTALLED, 
changedComponentHosts));
-
-    Map<String, Map<State, List<ServiceComponentHost>>> changedHosts2 =
-        new HashMap<String, Map<State, List<ServiceComponentHost>>>();
-    List<ServiceComponentHost> changedComponentHosts2 = 
Collections.singletonList(componentHost);
-    changedHosts2.put("Component100", Collections.singletonMap(State.STARTED, 
changedComponentHosts2));
-
-    expect(managementController.addStages(null, cluster, mapRequestProps, 
null, null, null, changedHosts,
-        Collections.<ServiceComponentHost>emptyList(), false, 
false)).andReturn(stageContainer).once();
-
-    expect(managementController.addStages(stageContainer, cluster, 
mapRequestProps, null, null, null, changedHosts2,
-        Collections.<ServiceComponentHost>emptyList(), false, 
false)).andReturn(stageContainer).once();
-
-    stageContainer.persist();
-    expect(stageContainer.getProjectedState("Host100", 
"Component100")).andReturn(State.INSTALLED).once();
-    
expect(stageContainer.getRequestStatusResponse()).andReturn(response).once();
-
-    HostComponentResourceProvider provider =
-        new 
TestHostComponentResourceProvider(PropertyHelper.getPropertyIds(type),
-            PropertyHelper.getKeyPropertyIds(type),
-            managementController, injector, maintenanceStateHelper, 
kerberosHelper);
-
-    
expect(resourceProviderFactory.getHostComponentResourceProvider(anyObject(Set.class),
-        anyObject(Map.class),
-        eq(managementController))).
-        andReturn(provider).anyTimes();
-
-    
expect(kerberosHelper.isClusterKerberosEnabled(cluster)).andReturn(true).once();
-    expect(kerberosHelper.toggleKerberos(cluster, SecurityType.KERBEROS, 
stageContainer)).
-        andReturn(stageContainer).once();
-
-    // replay
-    replay(managementController, response, resourceProviderFactory, clusters, 
cluster, service,
-        component, componentHost, stageContainer, maintenanceStateHelper, 
kerberosHelper);
-
-    Map<String, Object> properties = new LinkedHashMap<String, Object>();
-    
properties.put(HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID, 
"STARTED");
-
-    RequestStatusResponse requestResponse = 
provider.installAndStart("Cluster102", hosts);
-
-    assertSame(response, requestResponse);
-    // verify
-    verify(managementController, response, resourceProviderFactory, 
stageContainer, kerberosHelper);
+    verify(managementController, response, resourceProviderFactory, 
stageContainer,
+        clientComponent, clientComponentHost);
   }
 
   @Test
@@ -657,8 +549,8 @@ public class HostComponentResourceProviderTest {
     HostComponentResourceProvider provider =
         new 
TestHostComponentResourceProvider(PropertyHelper.getPropertyIds(type),
             PropertyHelper.getKeyPropertyIds(type),
-            controller, injector, 
injector.getInstance(MaintenanceStateHelper.class),
-            injector.getInstance(KerberosHelper.class));
+            controller, injector, 
injector.getInstance(MaintenanceStateHelper.class)
+        );
     RequestStageContainer requestStages = provider.updateHostComponents(null, 
requests, requestProperties, runSmokeTest);
     requestStages.persist();
     return requestStages.getRequestStatusResponse();
@@ -675,8 +567,7 @@ public class HostComponentResourceProviderTest {
      */
     public TestHostComponentResourceProvider(Set<String> propertyIds, 
Map<Resource.Type, String> keyPropertyIds,
                                              AmbariManagementController 
managementController, Injector injector,
-                                             MaintenanceStateHelper 
maintenanceStateHelper,
-                                             KerberosHelper kerberosHelper) 
throws Exception {
+                                             MaintenanceStateHelper 
maintenanceStateHelper) throws Exception {
 
       super(propertyIds, keyPropertyIds, managementController, injector);
 
@@ -685,10 +576,6 @@ public class HostComponentResourceProviderTest {
       Field f = c.getDeclaredField("maintenanceStateHelper");
       f.setAccessible(true);
       f.set(this, maintenanceStateHelper);
-
-      f = c.getDeclaredField("kerberosHelper");
-      f.setAccessible(true);
-      f.set(this, kerberosHelper);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/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 8215120..6bb59c5 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
@@ -26,6 +26,7 @@ import 
org.apache.ambari.server.controller.AmbariManagementController;
 import org.apache.ambari.server.controller.ConfigurationRequest;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.ConfigHelper;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.easymock.EasyMock;
 import org.junit.After;
@@ -50,9 +51,11 @@ public class UpdateKerberosConfigsServerActionTest {
   String dataDir;
   private Injector injector;
   private UpdateKerberosConfigsServerAction action;
-  final AmbariManagementController controller = 
EasyMock.createNiceMock(AmbariManagementController.class);
-  Clusters clusters = EasyMock.createNiceMock(Clusters.class);
-  Cluster cluster = EasyMock.createNiceMock(Cluster.class);
+
+  private final AmbariManagementController controller = 
EasyMock.createNiceMock(AmbariManagementController.class);
+  private final ConfigHelper configHelper = createNiceMock(ConfigHelper.class);
+  private final Clusters clusters = EasyMock.createNiceMock(Clusters.class);
+  private final Cluster cluster = EasyMock.createNiceMock(Cluster.class);
 
   @Before
   public void setup() throws Exception {
@@ -60,14 +63,13 @@ public class UpdateKerberosConfigsServerActionTest {
     setupConfigDat();
 
     expect(controller.getClusters()).andReturn(clusters).once();
-
-    
expect(controller.createConfiguration(anyObject(ConfigurationRequest.class))).andReturn(
-      null).once();
-
     replay(controller);
 
-    expect(cluster.getConfigsByType("hdfs-site")).andReturn(null).once();
-    expect(cluster.getDesiredConfigByType("hdfs-site")).andReturn(null).once();
+    configHelper.updateConfigType(anyObject(Cluster.class), 
anyObject(AmbariManagementController.class),
+        anyObject(String.class), anyObject(Map.class), 
anyObject(String.class), anyObject(String.class));
+    expectLastCall().atLeastOnce();
+    replay(configHelper);
+
     replay(cluster);
 
     
expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster).once();
@@ -78,6 +80,7 @@ public class UpdateKerberosConfigsServerActionTest {
       @Override
       protected void configure() {
         bind(AmbariManagementController.class).toInstance(controller);
+        bind(ConfigHelper.class).toInstance(configHelper);
       }
     });
     action = injector.getInstance(UpdateKerberosConfigsServerAction.class);
@@ -137,9 +140,7 @@ public class UpdateKerberosConfigsServerActionTest {
 
     action.execute(requestSharedDataContext);
 
-    verify(controller);
-    verify(clusters);
-    verify(cluster);
+    verify(controller, clusters, cluster, configHelper);
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
index e657f38..9f0f7a1 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosComponentDescriptorTest.java
@@ -25,8 +25,11 @@ import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 public class KerberosComponentDescriptorTest {
   public static final String JSON_VALUE =
@@ -42,7 +45,10 @@ public class KerberosComponentDescriptorTest {
           "        \"service.component.property2\": \"value2\"" +
           "      }" +
           "    }" +
-          "  ]" +
+          "  ]," +
+          "  \"auth_to_local_properties\": [" +
+          "      component.name.rules1" +
+          "    ]" +
           "}";
 
   public static final Map<String, Object> MAP_VALUE =
@@ -66,6 +72,9 @@ public class KerberosComponentDescriptorTest {
               }
             });
           }});
+          
put(KerberosDescriptorType.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), 
new ArrayList<String>() {{
+            add("component.name.rules2");
+          }});
         }
       };
 
@@ -96,6 +105,11 @@ public class KerberosComponentDescriptorTest {
     Assert.assertEquals(2, properties.size());
     Assert.assertEquals("value1", 
properties.get("service.component.property1"));
     Assert.assertEquals("value2", 
properties.get("service.component.property2"));
+
+    Set<String> authToLocalProperties = 
componentDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("component.name.rules1", 
authToLocalProperties.iterator().next());
   }
 
   public static void validateFromMap(KerberosComponentDescriptor 
componentDescriptor) {
@@ -125,6 +139,11 @@ public class KerberosComponentDescriptorTest {
     Assert.assertEquals(2, properties.size());
     Assert.assertEquals("red", properties.get("service.component.property1"));
     Assert.assertEquals("green", properties.get("service.component.property"));
+
+    Set<String> authToLocalProperties = 
componentDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("component.name.rules2", 
authToLocalProperties.iterator().next());
   }
 
   public static void validateUpdatedData(KerberosComponentDescriptor 
componentDescriptor) {
@@ -154,6 +173,15 @@ public class KerberosComponentDescriptorTest {
     Assert.assertEquals("red", properties.get("service.component.property1"));
     Assert.assertEquals("value2", 
properties.get("service.component.property2"));
     Assert.assertEquals("green", properties.get("service.component.property"));
+
+    Set<String> authToLocalProperties = 
componentDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(2, authToLocalProperties.size());
+    // guarantee ordering...
+    Iterator<String> iterator = new 
TreeSet<String>(authToLocalProperties).iterator();
+    Assert.assertEquals("component.name.rules1", iterator.next());
+    Assert.assertEquals("component.name.rules2", iterator.next());
+
   }
 
   private static KerberosComponentDescriptor createFromJSON() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
index 7944cd6..97f8008 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosDescriptorTest.java
@@ -24,8 +24,11 @@ import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 public class KerberosDescriptorTest {
   private static final KerberosDescriptorFactory KERBEROS_DESCRIPTOR_FACTORY = 
new KerberosDescriptorFactory();
@@ -37,6 +40,9 @@ public class KerberosDescriptorTest {
           "      \"realm\": \"${cluster-env/kerberos_domain}\"," +
           "      \"keytab_dir\": \"/etc/security/keytabs\"" +
           "    }," +
+          "  \"auth_to_local_properties\": [" +
+          "      generic.name.rules" +
+          "    ]," +
           "  \"services\": [" +
           KerberosServiceDescriptorTest.JSON_VALUE +
           "    ]" +
@@ -50,6 +56,10 @@ public class KerberosDescriptorTest {
             put("some.property", "Hello World");
           }});
 
+          
put(KerberosDescriptorType.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), 
new ArrayList<String>() {{
+            add("global.name.rules");
+          }});
+
           put(KerberosDescriptorType.SERVICE.getDescriptorPluralName(), new 
ArrayList<Object>() {{
             add(KerberosServiceDescriptorTest.MAP_VALUE);
           }});
@@ -102,6 +112,11 @@ public class KerberosDescriptorTest {
     Assert.assertEquals("${cluster-env/kerberos_domain}", 
properties.get("realm"));
     Assert.assertEquals("/etc/security/keytabs", properties.get("keytab_dir"));
 
+    Set<String> authToLocalProperties = descriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("generic.name.rules", 
authToLocalProperties.iterator().next());
+
     Map<String, KerberosServiceDescriptor> serviceDescriptors = 
descriptor.getServices();
     Assert.assertNotNull(serviceDescriptors);
     Assert.assertEquals(1, serviceDescriptors.size());
@@ -125,6 +140,11 @@ public class KerberosDescriptorTest {
     Assert.assertEquals("EXAMPLE.COM", properties.get("realm"));
     Assert.assertEquals("Hello World", properties.get("some.property"));
 
+    Set<String> authToLocalProperties = descriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("global.name.rules", 
authToLocalProperties.iterator().next());
+
     Map<String, KerberosServiceDescriptor> services = descriptor.getServices();
     Assert.assertNotNull(services);
     Assert.assertEquals(1, services.size());
@@ -193,6 +213,14 @@ public class KerberosDescriptorTest {
     Assert.assertEquals("/etc/security/keytabs", properties.get("keytab_dir"));
     Assert.assertEquals("Hello World", properties.get("some.property"));
 
+    Set<String> authToLocalProperties = descriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(2, authToLocalProperties.size());
+    // guarantee ordering...
+    Iterator<String> iterator = new 
TreeSet<String>(authToLocalProperties).iterator();
+    Assert.assertEquals("generic.name.rules", iterator.next());
+    Assert.assertEquals("global.name.rules", iterator.next());
+
     Map<String, KerberosServiceDescriptor> serviceDescriptors = 
descriptor.getServices();
     Assert.assertNotNull(serviceDescriptors);
     Assert.assertEquals(2, serviceDescriptors.size());

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
index 040d481..e5392c0 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/state/kerberos/KerberosServiceDescriptorTest.java
@@ -26,8 +26,11 @@ import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 public class KerberosServiceDescriptorTest {
   public static final String JSON_VALUE =
@@ -39,6 +42,9 @@ public class KerberosServiceDescriptorTest {
           "  \"components\": [" +
           KerberosComponentDescriptorTest.JSON_VALUE +
           "]," +
+          "  \"auth_to_local_properties\": [" +
+          "      service.name.rules1" +
+          "    ]," +
           "  \"configurations\": [" +
           "    {" +
           "      \"service-site\": {" +
@@ -60,6 +66,9 @@ public class KerberosServiceDescriptorTest {
           "  \"components\": [" +
           KerberosComponentDescriptorTest.JSON_VALUE +
           "]," +
+          "  \"auth_to_local_properties\": [" +
+          "      service.name.rules1" +
+          "    ]," +
           "  \"configurations\": [" +
           "    {" +
           "      \"service-site\": {" +
@@ -111,6 +120,9 @@ public class KerberosServiceDescriptorTest {
               }
             });
           }});
+          
put(KerberosDescriptorType.AUTH_TO_LOCAL_PROPERTY.getDescriptorPluralName(), 
new ArrayList<String>() {{
+            add("service.name.rules2");
+          }});
         }
       };
 
@@ -161,6 +173,11 @@ public class KerberosServiceDescriptorTest {
     Assert.assertEquals(2, properties.size());
     Assert.assertEquals("value1", properties.get("service.property1"));
     Assert.assertEquals("value2", properties.get("service.property2"));
+
+    Set<String> authToLocalProperties = 
serviceDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("service.name.rules1", 
authToLocalProperties.iterator().next());
   }
 
   public static void validateFromMap(KerberosServiceDescriptor 
serviceDescriptor) {
@@ -201,6 +218,11 @@ public class KerberosServiceDescriptorTest {
     Assert.assertEquals(2, properties.size());
     Assert.assertEquals("red", properties.get("service.property1"));
     Assert.assertEquals("green", properties.get("service.property"));
+
+    Set<String> authToLocalProperties = 
serviceDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(1, authToLocalProperties.size());
+    Assert.assertEquals("service.name.rules2", 
authToLocalProperties.iterator().next());
   }
 
   public void validateUpdatedData(KerberosServiceDescriptor serviceDescriptor) 
{
@@ -240,6 +262,15 @@ public class KerberosServiceDescriptorTest {
     Assert.assertEquals("red", properties.get("service.property1"));
     Assert.assertEquals("value2", properties.get("service.property2"));
     Assert.assertEquals("green", properties.get("service.property"));
+
+    Set<String> authToLocalProperties = 
serviceDescriptor.getAuthToLocalProperties();
+    Assert.assertNotNull(authToLocalProperties);
+    Assert.assertEquals(2, authToLocalProperties.size());
+    // guarantee ordering...
+    Iterator<String> iterator = new 
TreeSet<String>(authToLocalProperties).iterator();
+    Assert.assertEquals("service.name.rules1", iterator.next());
+    Assert.assertEquals("service.name.rules2", iterator.next());
+
   }
 
   private KerberosServiceDescriptor createFromJSON() throws AmbariException {

http://git-wip-us.apache.org/repos/asf/ambari/blob/1646be07/ambari-server/src/test/resources/stacks/HDP/2.0.8/kerberos.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.0.8/kerberos.json 
b/ambari-server/src/test/resources/stacks/HDP/2.0.8/kerberos.json
index 1902319..cf49786 100644
--- a/ambari-server/src/test/resources/stacks/HDP/2.0.8/kerberos.json
+++ b/ambari-server/src/test/resources/stacks/HDP/2.0.8/kerberos.json
@@ -23,13 +23,16 @@
       }
     }
   ],
+  "auth_to_local_properties" : [
+    "hadoop.security.auth_to_local"
+  ],
   "configurations": [
     {
       "core-site": {
         "hadoop.security.authentication": "kerberos",
         "hadoop.rpc.protection": "authentication",
         "hadoop.security.authorization": "true",
-        "hadoop.security.auth_to_local": "_AUTH_TO_LOCAL_RULES",
+        "hadoop.security.auth_to_local": "",
         "hadoop.proxyuser.superuser.hosts": "",
         "hadoop.proxyuser.superuser.groups": ""
       }

Reply via email to