You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2015/11/10 18:35:48 UTC

ambari git commit: AMBARI-13608. Fix the fixture for the TopologyManagerTest. (Laszlo Puskas via swagle)

Repository: ambari
Updated Branches:
  refs/heads/trunk 4f054cec4 -> 6123770cc


AMBARI-13608. Fix the fixture for the TopologyManagerTest. (Laszlo Puskas via swagle)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6123770c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6123770c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6123770c

Branch: refs/heads/trunk
Commit: 6123770cc4c6032f0644937548ea1da4b40b9035
Parents: 4f054ce
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Tue Nov 10 09:28:29 2015 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Tue Nov 10 09:35:42 2015 -0800

----------------------------------------------------------------------
 .../ambari/server/controller/AmbariServer.java  |   1 -
 .../server/controller/ControllerModule.java     |   4 +
 .../ambari/server/topology/AmbariContext.java   |   5 +-
 .../server/topology/PersistedStateImpl.java     |  40 +++----
 .../ambari/server/topology/TopologyManager.java |  25 ++--
 .../AmbariCustomCommandExecutionHelperTest.java |   4 +-
 .../AmbariManagementControllerTest.java         |   3 +-
 .../BackgroundCustomCommandExecutionTest.java   |   5 +-
 .../UpgradeResourceProviderHDP22Test.java       |   3 +-
 .../internal/UpgradeResourceProviderTest.java   |   3 +-
 .../server/topology/TopologyManagerTest.java    | 115 +++++++++++--------
 .../ambari/server/utils/StageUtilsTest.java     |   2 +
 12 files changed, 120 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index 114ecbc..03c2254 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@ -710,7 +710,6 @@ public class AmbariServer {
     ClusterPrivilegeResourceProvider.init(injector.getInstance(ClusterDAO.class));
     AmbariPrivilegeResourceProvider.init(injector.getInstance(ClusterDAO.class));
     ActionManager.setTopologyManager(injector.getInstance(TopologyManager.class));
-    TopologyManager.init(injector.getInstance(StackAdvisorBlueprintProcessor.class));
     StackAdvisorBlueprintProcessor.init(injector.getInstance(StackAdvisorHelper.class));
 
     RetryHelper.init(configs.getOperationsRetryAttempts());

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
index 01139b5..bc79550 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java
@@ -104,6 +104,8 @@ import org.apache.ambari.server.state.scheduler.RequestExecutionImpl;
 import org.apache.ambari.server.state.stack.OsFamily;
 import org.apache.ambari.server.state.svccomphost.ServiceComponentHostImpl;
 import org.apache.ambari.server.topology.BlueprintFactory;
+import org.apache.ambari.server.topology.PersistedState;
+import org.apache.ambari.server.topology.PersistedStateImpl;
 import org.apache.ambari.server.topology.SecurityConfigurationFactory;
 import org.apache.ambari.server.view.ViewInstanceHandlerList;
 import org.eclipse.jetty.server.SessionIdManager;
@@ -346,6 +348,8 @@ public class ControllerModule extends AbstractModule {
 
     bind(AuthenticationEntryPoint.class).to(AmbariEntryPoint.class).in(Scopes.SINGLETON);
 
+    bind(PersistedState.class).to(PersistedStateImpl.class);
+
     requestStaticInjection(ExecutionCommandWrapper.class);
     requestStaticInjection(DatabaseChecker.class);
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
index 4b0a1d1..608e6ca 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
@@ -60,6 +60,7 @@ import org.apache.ambari.server.utils.RetryHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.inject.Inject;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -77,7 +78,9 @@ public class AmbariContext {
 
   public enum TaskType {INSTALL, START}
 
-  private static PersistedState persistedState = new PersistedStateImpl();
+  @Inject
+  private PersistedState persistedState;
+
   private static AmbariManagementController controller;
   private static ClusterController clusterController;
   //todo: task id's.  Use existing mechanism for getting next task id sequence

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/main/java/org/apache/ambari/server/topology/PersistedStateImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/PersistedStateImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/PersistedStateImpl.java
index e0caa18..dcff49c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/PersistedStateImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/PersistedStateImpl.java
@@ -18,17 +18,9 @@
 
 package org.apache.ambari.server.topology;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import com.google.gson.Gson;
 import com.google.inject.Inject;
 import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.StaticallyInject;
 import org.apache.ambari.server.actionmanager.HostRoleCommand;
 import org.apache.ambari.server.api.predicate.InvalidQueryException;
 import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
@@ -48,41 +40,49 @@ import org.apache.ambari.server.stack.NoSuchStackException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.inject.Singleton;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Implementation which uses Ambari Database DAO and Entity objects for persistence
  * of topology related information.
  */
-@StaticallyInject
+@Singleton
 public class PersistedStateImpl implements PersistedState {
 
   protected final static Logger LOG = LoggerFactory.getLogger(PersistedState.class);
 
   @Inject
-  private static TopologyRequestDAO topologyRequestDAO;
+  private TopologyRequestDAO topologyRequestDAO;
 
   @Inject
-  private static TopologyHostGroupDAO hostGroupDAO;
+  private TopologyHostGroupDAO hostGroupDAO;
 
   @Inject
-  private static TopologyHostRequestDAO hostRequestDAO;
+  private TopologyHostRequestDAO hostRequestDAO;
 
   @Inject
-  private static TopologyLogicalTaskDAO topologyLogicalTaskDAO;
+  private TopologyLogicalTaskDAO topologyLogicalTaskDAO;
 
   @Inject
-  private static HostRoleCommandDAO hostRoleCommandDAO;
+  private HostRoleCommandDAO hostRoleCommandDAO;
 
   @Inject
-  private static HostRoleCommandDAO physicalTaskDAO;
+  private HostRoleCommandDAO physicalTaskDAO;
 
   @Inject
-  private static BlueprintFactory blueprintFactory;
+  private BlueprintFactory blueprintFactory;
 
   @Inject
-  private static LogicalRequestFactory logicalRequestFactory;
+  private LogicalRequestFactory logicalRequestFactory;
 
   @Inject
-  private static AmbariContext ambariContext;
+  private AmbariContext ambariContext;
 
   private static Gson jsonSerializer = new Gson();
 
@@ -133,7 +133,7 @@ public class PersistedStateImpl implements PersistedState {
 
     Map<Long, ClusterTopology> topologyRequests = new HashMap<Long, ClusterTopology>();
     for (TopologyRequestEntity entity : entities) {
-      TopologyRequest replayedRequest = new ReplayedTopologyRequest(entity);
+      TopologyRequest replayedRequest = new ReplayedTopologyRequest(entity, blueprintFactory);
       ClusterTopology clusterTopology = topologyRequests.get(replayedRequest.getClusterId());
       if (clusterTopology == null) {
         try {
@@ -306,7 +306,7 @@ public class PersistedStateImpl implements PersistedState {
     private final Configuration configuration;
     private final Map<String, HostGroupInfo> hostGroupInfoMap = new HashMap<String, HostGroupInfo>();
 
-    public ReplayedTopologyRequest(TopologyRequestEntity entity) {
+    public ReplayedTopologyRequest(TopologyRequestEntity entity, BlueprintFactory blueprintFactory) {
       clusterId = entity.getClusterId();
       type = Type.valueOf(entity.getAction());
       description = entity.getDescription();

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
index a688464..9e902a7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
@@ -82,13 +82,16 @@ public class TopologyManager {
   //todo: currently only support a single cluster
   private Map<Long, ClusterTopology> clusterTopologyMap = new HashMap<Long, ClusterTopology>();
 
-  //todo: inject
-  private static LogicalRequestFactory logicalRequestFactory = new LogicalRequestFactory();
-  private static AmbariContext ambariContext = new AmbariContext();
-  private static StackAdvisorBlueprintProcessor stackAdvisorBlueprintProcessor;
+  @Inject
+  private StackAdvisorBlueprintProcessor stackAdvisorBlueprintProcessor;
 
-  private final Object initializationLock = new Object();
+  @Inject
+  private LogicalRequestFactory logicalRequestFactory;
 
+  @Inject
+  private AmbariContext ambariContext;
+
+  private final Object initializationLock = new Object();
 
   @Inject
   private SecurityConfigurationFactory securityConfigurationFactory;
@@ -106,6 +109,10 @@ public class TopologyManager {
   private final static Logger LOG = LoggerFactory.getLogger(TopologyManager.class);
 
   public TopologyManager() {
+  }
+
+  @Inject
+  private void setPersistedState() {
     persistedState = ambariContext.getPersistedTopologyState();
   }
 
@@ -222,8 +229,8 @@ public class TopologyManager {
       // todo - perform this logic at request creation instead!
       LOG.debug("There's no security configuration in the request, retrieving it from the associated blueprint");
       securityConfiguration = request.getBlueprint().getSecurity();
-      if (securityConfiguration.getType() == SecurityType.KERBEROS &&
-        securityConfiguration.getDescriptorReference() != null) {
+      if (securityConfiguration != null && securityConfiguration.getType() == SecurityType.KERBEROS &&
+          securityConfiguration.getDescriptorReference() != null) {
         securityConfiguration = securityConfigurationFactory.loadSecurityConfigurationByReference
           (securityConfiguration.getDescriptorReference());
       }
@@ -671,10 +678,6 @@ public class TopologyManager {
     executor.execute(new ConfigureClusterTask(topology, configurationRequest));
   }
 
-  public static void init(StackAdvisorBlueprintProcessor instance) {
-    stackAdvisorBlueprintProcessor = instance;
-  }
-
   private class ConfigureClusterTask implements Runnable {
     private ClusterConfigurationRequest configRequest;
     private ClusterTopology topology;

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
index 8ccb445..baa394c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
@@ -70,6 +70,7 @@ public class AmbariCustomCommandExecutionHelperTest {
   private AmbariManagementController controller;
   private AmbariMetaInfo ambariMetaInfo;
   private Clusters clusters;
+  private TopologyManager topologyManager;
   
   
   private static final String REQUEST_CONTEXT_PROPERTY = "context";
@@ -93,7 +94,8 @@ public class AmbariCustomCommandExecutionHelperTest {
     controller = injector.getInstance(AmbariManagementController.class);
     clusters = injector.getInstance(Clusters.class);
     ambariMetaInfo = injector.getInstance(AmbariMetaInfo.class);
-    StageUtils.setTopologyManager(new TopologyManager());
+    topologyManager = injector.getInstance(TopologyManager.class);
+    StageUtils.setTopologyManager(topologyManager);
   }
   @After
   public void teardown() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/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 f216e02..4a80c4f 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
@@ -200,6 +200,7 @@ public class AmbariManagementControllerTest {
   private OrmTestHelper helper;
   private StageFactory stageFactory;
   private HostDAO hostDAO;
+  private TopologyManager topologyManager;
 
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
@@ -228,7 +229,7 @@ public class AmbariManagementControllerTest {
     helper = injector.getInstance(OrmTestHelper.class);
     stageFactory = injector.getInstance(StageFactory.class);
     hostDAO = injector.getInstance(HostDAO.class);
-    TopologyManager topologyManager = new TopologyManager();
+     topologyManager = injector.getInstance(TopologyManager.class);
     StageUtils.setTopologyManager(topologyManager);
     ActionManager.setTopologyManager(topologyManager);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
index d1475e0..30be261 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
@@ -70,7 +70,7 @@ public class BackgroundCustomCommandExecutionTest {
   private AmbariMetaInfo ambariMetaInfo;
   private Configuration configuration;
   private Clusters clusters;
-  
+  private TopologyManager topologyManager;
   
   private static final String REQUEST_CONTEXT_PROPERTY = "context";
   
@@ -96,11 +96,12 @@ public class BackgroundCustomCommandExecutionTest {
     controller = injector.getInstance(AmbariManagementController.class);
     clusters = injector.getInstance(Clusters.class);
     configuration = injector.getInstance(Configuration.class);
+    topologyManager = injector.getInstance(TopologyManager.class);
     
     Assert.assertEquals("src/main/resources/custom_action_definitions", configuration.getCustomActionDefinitionPath());
     
     ambariMetaInfo = injector.getInstance(AmbariMetaInfo.class);
-    StageUtils.setTopologyManager(new TopologyManager());
+    StageUtils.setTopologyManager(topologyManager);
   }
   @After
   public void teardown() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
index 01fce41..87f10ec 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
@@ -95,6 +95,7 @@ public class UpgradeResourceProviderHDP22Test {
   private AmbariManagementController amc;
   private ConfigHelper configHelper;
   private StackDAO stackDAO;
+  private TopologyManager topologyManager;
 
   private static final String configTagVersion1 = "version1";
   private static final String configTagVersion2 = "version2";
@@ -212,7 +213,7 @@ public class UpgradeResourceProviderHDP22Test {
     component = service.addServiceComponent("HIVE_CLIENT");
     sch = component.addServiceComponentHost("h1");
     sch.setVersion("2.2.0.0");
-    TopologyManager topologyManager = new TopologyManager();
+    topologyManager = injector.getInstance(TopologyManager.class);
     StageUtils.setTopologyManager(topologyManager);
     ActionManager.setTopologyManager(topologyManager);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
index 3cbf62b..67e1ef6 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java
@@ -117,6 +117,7 @@ public class UpgradeResourceProviderTest {
   private ConfigHelper configHelper;
   private StackDAO stackDAO;
   private AmbariMetaInfo ambariMetaInfo;
+  private TopologyManager topologyManager;
 
   @Before
   public void before() throws Exception {
@@ -224,7 +225,7 @@ public class UpgradeResourceProviderTest {
     sch = component.addServiceComponentHost("h1");
     sch.setVersion("2.1.1.0");
 
-    TopologyManager topologyManager = new TopologyManager();
+    topologyManager = injector.getInstance(TopologyManager.class);
     StageUtils.setTopologyManager(topologyManager);
     ActionManager.setTopologyManager(topologyManager);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java
index 92e3e1c..3326bd4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java
@@ -23,9 +23,12 @@ import org.apache.ambari.server.controller.ConfigurationRequest;
 import org.apache.ambari.server.controller.RequestStatusResponse;
 import org.apache.ambari.server.controller.internal.ProvisionClusterRequest;
 import org.apache.ambari.server.controller.internal.Stack;
+import org.apache.ambari.server.controller.spi.ClusterController;
+import org.apache.ambari.server.controller.spi.Resource;
+import org.apache.ambari.server.controller.spi.ResourceProvider;
+import org.apache.ambari.server.security.encryption.CredentialStoreService;
 import org.apache.ambari.server.state.SecurityType;
 import org.easymock.Capture;
-import org.easymock.EasyMock;
 import org.easymock.EasyMockRule;
 import org.easymock.EasyMockSupport;
 import org.easymock.Mock;
@@ -33,7 +36,6 @@ import org.easymock.MockType;
 import org.easymock.TestSubject;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -47,24 +49,21 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 
+import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.capture;
-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.expectLastCall;
 import static org.easymock.EasyMock.isA;
 import static org.easymock.EasyMock.isNull;
+import static org.easymock.EasyMock.newCapture;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.same;
 import static org.easymock.EasyMock.verify;
 
 /**
  * TopologyManager unit tests
  */
-@Ignore("The setup needs to be rethought as it's hard to follow!")
 public class TopologyManagerTest {
 
   private static final String CLUSTER_NAME = "test-cluster";
@@ -73,27 +72,51 @@ public class TopologyManagerTest {
   private static final String STACK_NAME = "test-stack";
   private static final String STACK_VERSION = "test-stack-version";
 
+  @Rule
+  public EasyMockRule mocks = new EasyMockRule(this);
+
   @TestSubject
   private TopologyManager topologyManager = new TopologyManager();
 
-  private final Blueprint blueprint = createNiceMock(Blueprint.class);
-  private final Stack stack = createNiceMock(Stack.class);
-  private final ProvisionClusterRequest request = createNiceMock(ProvisionClusterRequest.class);
-  private final PersistedTopologyRequest persistedTopologyRequest = new PersistedTopologyRequest(1, request);
-  private final LogicalRequestFactory logicalRequestFactory = createStrictMock(LogicalRequestFactory.class);
-  private final LogicalRequest logicalRequest = createMock(LogicalRequest.class);
-  private final AmbariContext ambariContext = createMock(AmbariContext.class);
-  private final ConfigurationRequest configurationRequest = createNiceMock(ConfigurationRequest.class);
-  private final ConfigurationRequest configurationRequest2 = createNiceMock(ConfigurationRequest.class);
-  private final ConfigurationRequest configurationRequest3 = createNiceMock(ConfigurationRequest.class);
-
-  private final RequestStatusResponse requestStatusResponse = createNiceMock(RequestStatusResponse.class);
-  private final ExecutorService executor = createStrictMock(ExecutorService.class);
-  private final PersistedState persistedState = createStrictMock(PersistedState.class);
+  @Mock(type = MockType.NICE)
+  private Blueprint blueprint;
 
-  private final HostGroup group1 = createNiceMock(HostGroup.class);
-  private final HostGroup group2 = createNiceMock(HostGroup.class);
+  @Mock(type = MockType.NICE)
+  private Stack stack;
 
+  @Mock(type = MockType.NICE)
+  private ProvisionClusterRequest request;
+  private final PersistedTopologyRequest persistedTopologyRequest = new PersistedTopologyRequest(1, request);
+  @Mock(type = MockType.STRICT)
+  private LogicalRequestFactory logicalRequestFactory;
+  @Mock(type = MockType.DEFAULT)
+  private LogicalRequest logicalRequest;
+  @Mock(type = MockType.NICE)
+  private AmbariContext ambariContext;
+  @Mock(type = MockType.NICE)
+  private ConfigurationRequest configurationRequest;
+  @Mock(type = MockType.NICE)
+  private ConfigurationRequest configurationRequest2;
+  @Mock(type = MockType.NICE)
+  private ConfigurationRequest configurationRequest3;
+  @Mock(type = MockType.NICE)
+  private RequestStatusResponse requestStatusResponse;
+  @Mock(type = MockType.STRICT)
+  private ExecutorService executor;
+  @Mock(type = MockType.STRICT)
+  private PersistedState persistedState;
+  @Mock(type = MockType.NICE)
+  private HostGroup group1;
+  @Mock(type = MockType.NICE)
+  private HostGroup group2;
+  @Mock(type = MockType.STRICT)
+  private SecurityConfigurationFactory securityConfigurationFactory;
+  @Mock(type = MockType.STRICT)
+  private CredentialStoreService credentialStoreService;
+  @Mock(type = MockType.STRICT)
+  private ClusterController clusterController;
+  @Mock(type = MockType.STRICT)
+  private ResourceProvider resourceProvider;
   private final Configuration stackConfig = new Configuration(new HashMap<String, Map<String, String>>(),
       new HashMap<String, Map<String, Map<String, String>>>());
   private final Configuration bpConfiguration = new Configuration(new HashMap<String, Map<String, String>>(),
@@ -133,22 +156,14 @@ public class TopologyManagerTest {
   private Capture<ClusterRequest> updateClusterConfigRequestCapture;
   private Capture<Runnable> updateConfigTaskCapture;
 
-
-  @Rule
-  public EasyMockRule mocks = new EasyMockRule(this);
-
-  @Mock(type = MockType.STRICT)
-  private SecurityConfigurationFactory securityConfigurationFactory;
-
-
   @Before
   public void setup() throws Exception {
-    clusterTopologyCapture = new Capture<ClusterTopology>();
-    configRequestPropertiesCapture = new Capture<Map<String, Object>>();
-    configRequestPropertiesCapture2 = new Capture<Map<String, Object>>();
-    configRequestPropertiesCapture3 = new Capture<Map<String, Object>>();
-    updateClusterConfigRequestCapture = new Capture<ClusterRequest>();
-    updateConfigTaskCapture = new Capture<Runnable>();
+    clusterTopologyCapture = newCapture();
+    configRequestPropertiesCapture = newCapture();
+    configRequestPropertiesCapture2 = newCapture();
+    configRequestPropertiesCapture3 = newCapture();
+    updateClusterConfigRequestCapture = newCapture();
+    updateConfigTaskCapture = newCapture();
 
     topoConfiguration.setProperty("service1-site", "s1-prop", "s1-prop-value");
     topoConfiguration.setProperty("service2-site", "s2-prop", "s2-prop-value");
@@ -221,8 +236,12 @@ public class TopologyManagerTest {
     expect(request.getConfiguration()).andReturn(topoConfiguration).anyTimes();
     expect(request.getHostGroupInfo()).andReturn(groupInfoMap).anyTimes();
     expect(request.getTopologyValidators()).andReturn(topologyValidators).anyTimes();
+
     expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY);
 
+    expect(request.getSecurityConfiguration()).andReturn(null).anyTimes();
+
+
     expect(group1.getBlueprintName()).andReturn(BLUEPRINT_NAME).anyTimes();
     expect(group1.getCardinality()).andReturn("test cardinality").anyTimes();
     expect(group1.containsMasterComponent()).andReturn(true).anyTimes();
@@ -246,7 +265,7 @@ public class TopologyManagerTest {
     expect(group2.getStack()).andReturn(stack).anyTimes();
 
 
-    expect(logicalRequestFactory.createRequest(eq(1L), same(request), capture(clusterTopologyCapture))).
+    expect(logicalRequestFactory.createRequest(eq(1L), (TopologyRequest) anyObject(), capture(clusterTopologyCapture))).
         andReturn(logicalRequest).anyTimes();
     expect(logicalRequest.getRequestId()).andReturn(1L).anyTimes();
     expect(logicalRequest.getReservedHosts()).andReturn(Collections.singleton("host1")).anyTimes();
@@ -274,6 +293,8 @@ public class TopologyManagerTest {
     ambariContext.persistInstallStateForUI(CLUSTER_NAME, STACK_NAME, STACK_VERSION);
     expectLastCall().once();
 
+    expect(clusterController.ensureResourceProvider(anyObject(Resource.Type.class))).andReturn(resourceProvider);
+
     executor.execute(capture(updateConfigTaskCapture));
     expectLastCall().times(1);
 
@@ -282,26 +303,18 @@ public class TopologyManagerTest {
     expect(persistedState.persistTopologyRequest(request)).andReturn(persistedTopologyRequest).once();
     persistedState.persistLogicalRequest(logicalRequest, 1);
 
-    replay(blueprint, stack, request, group1, group2, ambariContext, logicalRequestFactory,
-        logicalRequest, configurationRequest, configurationRequest2, configurationRequest3,
-        requestStatusResponse, executor, persistedState);
+    replay(blueprint, stack, request, group1, group2, ambariContext, logicalRequestFactory, logicalRequest,
+        configurationRequest, configurationRequest2, configurationRequest3, requestStatusResponse, executor,
+        persistedState, securityConfigurationFactory, credentialStoreService, clusterController, resourceProvider);
 
     Class clazz = TopologyManager.class;
-    Field f = clazz.getDeclaredField("logicalRequestFactory");
-    f.setAccessible(true);
-    f.set(null, logicalRequestFactory);
 
-    f = clazz.getDeclaredField("ambariContext");
-    f.setAccessible(true);
-    f.set(null, ambariContext);
-
-
-    f = clazz.getDeclaredField("executor");
+    Field f = clazz.getDeclaredField("executor");
     f.setAccessible(true);
     f.set(topologyManager, executor);
 
     EasyMockSupport.injectMocks(topologyManager);
-    EasyMock.replay(securityConfigurationFactory);
+
   }
 
   @After

http://git-wip-us.apache.org/repos/asf/ambari/blob/6123770c/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java
index b3984b7..c78648d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java
@@ -51,6 +51,7 @@ import org.apache.ambari.server.state.cluster.ClusterFactory;
 import org.apache.ambari.server.state.cluster.ClustersImpl;
 import org.apache.ambari.server.state.host.HostFactory;
 import org.apache.ambari.server.state.stack.OsFamily;
+import org.apache.ambari.server.topology.PersistedState;
 import org.apache.ambari.server.topology.TopologyManager;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
@@ -114,6 +115,7 @@ public class StageUtilsTest extends EasyMockSupport {
         bind(StageFactory.class).to(StageFactoryImpl.class);
         bind(HostRoleCommandFactory.class).to(HostRoleCommandFactoryImpl.class);
         bind(HostDAO.class).toInstance(createNiceMock(HostDAO.class));
+        bind(PersistedState.class).toInstance(createNiceMock(PersistedState.class));
       }
     });