You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/05/31 20:12:37 UTC

[06/50] [abbrv] ambari git commit: AMBARI-20957. Remove cluster_version use (ncole)

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ClusterVersionDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ClusterVersionDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ClusterVersionDAOTest.java
deleted file mode 100644
index 81fa8e1..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ClusterVersionDAOTest.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ambari.server.orm.dao;
-
-import java.sql.SQLException;
-
-import org.apache.ambari.server.AmbariException;
-import org.apache.ambari.server.H2DatabaseCleaner;
-import org.apache.ambari.server.orm.GuiceJpaInitializer;
-import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.apache.ambari.server.orm.OrmTestHelper;
-import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
-import org.apache.ambari.server.state.RepositoryVersionState;
-import org.apache.ambari.server.state.StackId;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * ClusterVersionDAO unit tests.
- */
-public class ClusterVersionDAOTest {
-
-  private static Injector injector;
-  private ClusterVersionDAO clusterVersionDAO;
-  private ClusterDAO clusterDAO;
-  private OrmTestHelper helper;
-
-  private long clusterId;
-  ClusterEntity cluster;
-  private int lastStep = -1;
-
-  ClusterVersionEntity cvA;
-  long cvAId = 0L;
-
-  ClusterVersionEntity cvB;
-  long cvBId = 0L;
-
-  ClusterVersionEntity cvC;
-  long cvCId = 0L;
-
-  private final static StackId HDP_22_STACK = new StackId("HDP", "2.2.0");
-  private final static StackId BAD_STACK = new StackId("BADSTACK", "1.0");
-
-  @Before
-  public void before() {
-    injector = Guice.createInjector(new InMemoryDefaultTestModule());
-    injector.getInstance(GuiceJpaInitializer.class);
-
-    clusterVersionDAO = injector.getInstance(ClusterVersionDAO.class);
-    clusterDAO = injector.getInstance(ClusterDAO.class);
-    helper = injector.getInstance(OrmTestHelper.class);
-  }
-
-  /**
-   * Helper function to transition the cluster through several cluster versions.
-   * @param currStep Step to go to is a value from 1 - 7, inclusive.
-   */
-  private void createRecordsUntilStep(int currStep) throws Exception {
-    // Fresh install on A
-    if (currStep >= 1 && lastStep <= 0) {
-      clusterId = helper.createCluster();
-      cluster = clusterDAO.findById(clusterId);
-
-      cvA = new ClusterVersionEntity(cluster, helper.getOrCreateRepositoryVersion(HDP_22_STACK, "2.2.0.0-995"), RepositoryVersionState.CURRENT, System.currentTimeMillis(), System.currentTimeMillis(), "admin");
-      clusterVersionDAO.create(cvA);
-      cvAId = cvA.getId();
-    } else {
-      cluster = clusterDAO.findById(clusterId);
-      cvA = clusterVersionDAO.findByPK(cvAId);
-    }
-
-    // Install B
-    if (currStep >= 2) {
-      if (lastStep <= 1) {
-        cvB = new ClusterVersionEntity(cluster, helper.getOrCreateRepositoryVersion(HDP_22_STACK, "2.2.0.1-998"), RepositoryVersionState.INSTALLED, System.currentTimeMillis(), System.currentTimeMillis(), "admin");
-        clusterVersionDAO.create(cvB);
-        cvBId = cvB.getId();
-      } else {
-        cvB = clusterVersionDAO.findByPK(cvBId);
-      }
-    }
-
-    // Switch from A to B
-    if (currStep >= 3 && lastStep <= 2) {
-      cvA.setState(RepositoryVersionState.INSTALLED);
-      cvB.setState(RepositoryVersionState.CURRENT);
-      clusterVersionDAO.merge(cvA);
-      clusterVersionDAO.merge(cvB);
-    }
-
-    // Start upgrading C
-    if (currStep >= 4) {
-      if (lastStep <= 3) {
-        cvC = new ClusterVersionEntity(cluster, helper.getOrCreateRepositoryVersion(HDP_22_STACK, "2.2.0.0-100"), RepositoryVersionState.INSTALLING, System.currentTimeMillis(), "admin");
-        clusterVersionDAO.create(cvC);
-        cvCId = cvC.getId();
-      } else {
-        cvC = clusterVersionDAO.findByPK(cvCId);
-      }
-    }
-
-    // Fail upgrade for C
-    if (currStep >= 5 && lastStep <= 4) {
-        cvC.setState(RepositoryVersionState.INSTALL_FAILED);
-        cvC.setEndTime(System.currentTimeMillis());
-        clusterVersionDAO.merge(cvC);
-    }
-
-    // Retry upgrade on C
-    if (currStep >= 6 && lastStep <= 5) {
-        cvC.setState(RepositoryVersionState.INSTALLING);
-        cvC.setEndTime(0L);
-        clusterVersionDAO.merge(cvC);
-    }
-
-    // Finalize upgrade on C to make it the current cluster version
-    if (currStep >= 7 && lastStep <= 6) {
-        cvC.setState(RepositoryVersionState.CURRENT);
-        cvC.setEndTime(System.currentTimeMillis());
-        clusterVersionDAO.merge(cvC);
-
-        cvA.setState(RepositoryVersionState.INSTALLED);
-        cvB.setState(RepositoryVersionState.INSTALLED);
-        clusterVersionDAO.merge(cvA);
-        clusterVersionDAO.merge(cvB);
-    }
-
-    lastStep = currStep;
-  }
-
-  @Test
-  public void testFindByStackAndVersion() throws Exception {
-    createRecordsUntilStep(1);
-    Assert.assertEquals(
-        0,
-        clusterVersionDAO.findByStackAndVersion("non existing", "non existing",
-            "non existing").size());
-
-    Assert.assertEquals(
-        1,
-        clusterVersionDAO.findByStackAndVersion(HDP_22_STACK.getStackName(),
-            HDP_22_STACK.getStackVersion(), "2.2.0.0-995").size());
-  }
-
-  @Test
-  public void testFindByCluster() throws Exception {
-    createRecordsUntilStep(1);
-    Assert.assertEquals(0, clusterVersionDAO.findByCluster("non existing").size());
-    Assert.assertEquals(1, clusterVersionDAO.findByCluster(cluster.getClusterName()).size());
-  }
-
-  @Test
-  public void testFindByClusterAndStackAndVersion() throws Exception {
-    createRecordsUntilStep(1);
-    Assert.assertNull(clusterVersionDAO.findByClusterAndStackAndVersion(
-        cluster.getClusterName(), BAD_STACK, "non existing"));
-
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStackAndVersion(
-        cluster.getClusterName(), HDP_22_STACK, "2.2.0.0-995"));
-  }
-
-  /**
-   * At all times the cluster should have a cluster version whose state is {@link org.apache.ambari.server.state.RepositoryVersionState#CURRENT}
-   */
-  @Test
-  public void testFindByClusterAndStateCurrent() throws Exception {
-    createRecordsUntilStep(1);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(2);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(3);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(4);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(5);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(6);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-
-    createRecordsUntilStep(7);
-    Assert.assertNotNull(clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName()));
-  }
-
-  /**
-   * Test the state of certain cluster versions.
-   */
-  @Test
-  public void testFindByClusterAndState() throws Exception {
-    createRecordsUntilStep(1);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(2);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(3);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(4);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(5);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(6);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-
-    createRecordsUntilStep(7);
-    Assert.assertEquals(1, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.CURRENT).size());
-    Assert.assertEquals(2, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLED).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALLING).size());
-    Assert.assertEquals(0, clusterVersionDAO.findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.INSTALL_FAILED).size());
-  }
-
-  @After
-  public void after() throws AmbariException, SQLException {
-    H2DatabaseCleaner.clearDatabaseAndStopPersistenceService(injector);
-    injector = null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
index eb0c49e..e0caf01 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/HostVersionDAOTest.java
@@ -30,7 +30,6 @@ import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.OrmTestHelper;
 import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.orm.entities.HostEntity;
 import org.apache.ambari.server.orm.entities.HostVersionEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
@@ -58,7 +57,6 @@ public class HostVersionDAOTest {
   private ResourceTypeDAO resourceTypeDAO;
   private ClusterDAO clusterDAO;
   private StackDAO stackDAO;
-  private ClusterVersionDAO clusterVersionDAO;
   private HostDAO hostDAO;
   private HostVersionDAO hostVersionDAO;
   private OrmTestHelper helper;
@@ -79,7 +77,6 @@ public class HostVersionDAOTest {
     resourceTypeDAO = injector.getInstance(ResourceTypeDAO.class);
     clusterDAO = injector.getInstance(ClusterDAO.class);
     stackDAO = injector.getInstance(StackDAO.class);
-    clusterVersionDAO = injector.getInstance(ClusterVersionDAO.class);
     hostDAO = injector.getInstance(HostDAO.class);
     hostVersionDAO = injector.getInstance(HostVersionDAO.class);
     helper = injector.getInstance(OrmTestHelper.class);
@@ -116,17 +113,6 @@ public class HostVersionDAOTest {
 
     RepositoryVersionEntity repoVersionEntity = helper.getOrCreateRepositoryVersion(HDP_22_STACK, repoVersion_2200);
 
-    // Create the Cluster Version and link it to the cluster
-    ClusterVersionEntity clusterVersionEntity = new ClusterVersionEntity(
-        clusterEntity, repoVersionEntity, RepositoryVersionState.CURRENT,
-        System.currentTimeMillis(), System.currentTimeMillis(), "admin");
-    List<ClusterVersionEntity> clusterVersionEntities = new ArrayList<>();
-    clusterVersionEntities.add(clusterVersionEntity);
-    clusterEntity.setClusterVersionEntities(clusterVersionEntities);
-
-    clusterVersionDAO.create(clusterVersionEntity);
-    clusterDAO.merge(clusterEntity);
-
     // Create the hosts
     HostEntity host1 = new HostEntity();
     HostEntity host2 = new HostEntity();
@@ -157,9 +143,9 @@ public class HostVersionDAOTest {
     clusterDAO.merge(clusterEntity);
 
     // Create the Host Versions
-    HostVersionEntity hostVersionEntity1 = new HostVersionEntity(host1, clusterVersionEntity.getRepositoryVersion(), RepositoryVersionState.CURRENT);
-    HostVersionEntity hostVersionEntity2 = new HostVersionEntity(host2, clusterVersionEntity.getRepositoryVersion(), RepositoryVersionState.INSTALLED);
-    HostVersionEntity hostVersionEntity3 = new HostVersionEntity(host3, clusterVersionEntity.getRepositoryVersion(), RepositoryVersionState.INSTALLED);
+    HostVersionEntity hostVersionEntity1 = new HostVersionEntity(host1, repoVersionEntity, RepositoryVersionState.CURRENT);
+    HostVersionEntity hostVersionEntity2 = new HostVersionEntity(host2, repoVersionEntity, RepositoryVersionState.INSTALLED);
+    HostVersionEntity hostVersionEntity3 = new HostVersionEntity(host3, repoVersionEntity, RepositoryVersionState.INSTALLED);
 
     hostVersionDAO.create(hostVersionEntity1);
     hostVersionDAO.create(hostVersionEntity2);
@@ -172,20 +158,8 @@ public class HostVersionDAOTest {
   private void addMoreVersions() {
     ClusterEntity clusterEntity = clusterDAO.findByName("test_cluster1");
 
-    // Create another Cluster Version and mark the old one as INSTALLED
-    if (clusterEntity.getClusterVersionEntities() != null && clusterEntity.getClusterVersionEntities().size() > 0) {
-      ClusterVersionEntity installedClusterVersion = clusterVersionDAO.findByClusterAndStateCurrent(clusterEntity.getClusterName());
-      installedClusterVersion.setState(RepositoryVersionState.INSTALLED);
-      clusterVersionDAO.merge(installedClusterVersion);
-    } else {
-      Assert.fail("Cluster is expected to have at least one cluster version");
-    }
-
     RepositoryVersionEntity repositoryVersionEnt_2_2_0_1 = helper.getOrCreateRepositoryVersion(HDP_22_STACK, repoVersion_2201);
 
-    ClusterVersionEntity newClusterVersionEntity = new ClusterVersionEntity(clusterEntity, repositoryVersionEnt_2_2_0_1, RepositoryVersionState.CURRENT, System.currentTimeMillis(), System.currentTimeMillis(), "admin");
-    clusterEntity.addClusterVersionEntity(newClusterVersionEntity);
-    clusterVersionDAO.create(newClusterVersionEntity);
 
     HostEntity[] hostEntities = clusterEntity.getHostEntities().toArray(new HostEntity[clusterEntity.getHostEntities().size()]);
     // Must sort by host name in ascending order to ensure that state is accurately set later on.
@@ -193,7 +167,7 @@ public class HostVersionDAOTest {
 
     // For each of the hosts, add a host version
     for (HostEntity host : hostEntities) {
-      HostVersionEntity hostVersionEntity = new HostVersionEntity(host, helper.getOrCreateRepositoryVersion(HDP_22_STACK, repoVersion_2201), RepositoryVersionState.INSTALLED);
+      HostVersionEntity hostVersionEntity = new HostVersionEntity(host, repositoryVersionEnt_2_2_0_1, RepositoryVersionState.INSTALLED);
       hostVersionDAO.create(hostVersionEntity);
     }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java
index c7414bc..016ca90 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java
@@ -26,12 +26,8 @@ import org.apache.ambari.server.H2DatabaseCleaner;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.apache.ambari.server.orm.OrmTestHelper;
-import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.orm.entities.StackEntity;
-import org.apache.ambari.server.state.RepositoryVersionState;
 import org.apache.ambari.server.state.StackId;
 import org.junit.After;
 import org.junit.Assert;
@@ -53,20 +49,14 @@ public class RepositoryVersionDAOTest {
   private static final StackId BAD_STACK = new StackId("BADSTACK", "1.0");
 
   private RepositoryVersionDAO repositoryVersionDAO;
-  private ClusterVersionDAO clusterVersionDAO;
 
-  private ClusterDAO clusterDAO;
   private StackDAO stackDAO;
-  private OrmTestHelper helper;
 
   @Before
   public void before() {
     injector = Guice.createInjector(new InMemoryDefaultTestModule());
     repositoryVersionDAO = injector.getInstance(RepositoryVersionDAO.class);
-    clusterVersionDAO = injector.getInstance(ClusterVersionDAO.class);
-    clusterDAO = injector.getInstance(ClusterDAO.class);
     stackDAO = injector.getInstance(StackDAO.class);
-    helper = injector.getInstance(OrmTestHelper.class);
     injector.getInstance(GuiceJpaInitializer.class);
 
     // required to populate stacks into the database
@@ -176,31 +166,6 @@ public class RepositoryVersionDAOTest {
   }
 
   @Test
-  public void testDeleteCascade() throws Exception {
-    long clusterId = helper.createCluster();
-    ClusterEntity cluster = clusterDAO.findById(clusterId);
-    createSingleRecord();
-    final RepositoryVersionEntity entity = repositoryVersionDAO.findByStackAndVersion(
-        HDP_206, "version");
-
-    ClusterVersionEntity cvA = new ClusterVersionEntity(cluster, entity, RepositoryVersionState.INSTALLED, System.currentTimeMillis(), System.currentTimeMillis(), "admin");
-    clusterVersionDAO.create(cvA);
-    long cvAId = cvA.getId();
-    cvA = clusterVersionDAO.findByPK(cvAId);
-    Assert.assertNotNull(cvA.getRepositoryVersion());
-    final RepositoryVersionEntity newEntity = repositoryVersionDAO.findByStackAndVersion(
-        HDP_206, "version");
-    try {
-      repositoryVersionDAO.remove(newEntity);
-    } catch (Exception e) {
-      //Cascade deletion will fail because absent integrity in in-memory DB
-      Assert.assertNotNull(clusterVersionDAO.findByPK(cvAId));
-    }
-    //
-
-  }
-
-  @Test
   public void testRemovePrefixFromVersion() {
 
     StackEntity hdp206StackEntity = stackDAO.find(HDP_206.getStackName(),

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java
index 91d5f04..7301c66 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ComponentVersionCheckActionTest.java
@@ -30,7 +30,6 @@ import javax.persistence.EntityManager;
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.H2DatabaseCleaner;
 import org.apache.ambari.server.ServiceComponentNotFoundException;
-import org.apache.ambari.server.ServiceNotFoundException;
 import org.apache.ambari.server.actionmanager.ExecutionCommandWrapper;
 import org.apache.ambari.server.actionmanager.HostRoleCommand;
 import org.apache.ambari.server.actionmanager.HostRoleCommandFactory;
@@ -41,14 +40,12 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.OrmTestHelper;
-import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.dao.HostDAO;
 import org.apache.ambari.server.orm.dao.HostVersionDAO;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
 import org.apache.ambari.server.orm.dao.RequestDAO;
 import org.apache.ambari.server.orm.dao.StackDAO;
 import org.apache.ambari.server.orm.dao.UpgradeDAO;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.orm.entities.HostVersionEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.orm.entities.RequestEntity;
@@ -74,8 +71,6 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Inject;
@@ -86,8 +81,6 @@ import com.google.inject.persist.UnitOfWork;
  * Tests upgrade-related server side actions
  */
 public class ComponentVersionCheckActionTest {
-  private static final Logger LOG = LoggerFactory.getLogger(ComponentVersionCheckActionTest.class);
-
 
   private static final String HDP_2_1_1_0 = "2.1.1.0-1";
   private static final String HDP_2_1_1_1 = "2.1.1.1-2";
@@ -108,9 +101,6 @@ public class ComponentVersionCheckActionTest {
   private RepositoryVersionDAO repoVersionDAO;
 
   @Inject
-  private ClusterVersionDAO clusterVersionDAO;
-
-  @Inject
   private HostVersionDAO hostVersionDAO;
 
   @Inject
@@ -174,8 +164,6 @@ public class ComponentVersionCheckActionTest {
 
     // Create the starting repo version
     m_helper.getOrCreateRepositoryVersion(sourceStack, sourceRepo);
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
 
     // Create the new repo version
     String urlInfo = "[{'repositories':["
@@ -184,8 +172,6 @@ public class ComponentVersionCheckActionTest {
     repoVersionDAO.create(stackEntityTarget, targetRepo, String.valueOf(System.currentTimeMillis()), urlInfo);
 
     // Start upgrading the newer repo
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
     c.setCurrentStackVersion(targetStack);
 
     HostDAO hostDAO = m_injector.getInstance(HostDAO.class);
@@ -249,8 +235,6 @@ public class ComponentVersionCheckActionTest {
 
     // Create the starting repo version
     m_helper.getOrCreateRepositoryVersion(sourceStack, sourceRepo);
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
 
     RequestEntity requestEntity = new RequestEntity();
     requestEntity.setClusterId(c.getClusterId());
@@ -274,12 +258,10 @@ public class ComponentVersionCheckActionTest {
 
   private void createNewRepoVersion(StackId targetStack, String targetRepo, String clusterName,
                                     String hostName) throws AmbariException {
-    Clusters clusters = m_injector.getInstance(Clusters.class);
     StackDAO stackDAO = m_injector.getInstance(StackDAO.class);
 
     StackEntity stackEntityTarget = stackDAO.find(targetStack.getStackName(), targetStack.getStackVersion());
 
-    Cluster c = clusters.getCluster(clusterName);
     // Create the new repo version
     String urlInfo = "[{'repositories':["
         + "{'Repositories/base_url':'http://foo1','Repositories/repo_name':'HDP','Repositories/repo_id':'" + targetRepo + "'}"
@@ -287,9 +269,6 @@ public class ComponentVersionCheckActionTest {
     repoVersionDAO.create(stackEntityTarget, targetRepo, String.valueOf(System.currentTimeMillis()), urlInfo);
 
     // Start upgrading the newer repo
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
-
     HostDAO hostDAO = m_injector.getInstance(HostDAO.class);
 
     HostVersionEntity entity = new HostVersionEntity();
@@ -350,7 +329,9 @@ public class ComponentVersionCheckActionTest {
     Clusters clusters = m_injector.getInstance(Clusters.class);
     Cluster cluster = clusters.getCluster("c1");
 
-    Service service = installService(cluster, "HDFS");
+    RepositoryVersionEntity repositoryVersion = m_helper.getOrCreateRepositoryVersion(HDP_21_STACK, HDP_2_1_1_0);
+
+    Service service = installService(cluster, "HDFS", repositoryVersion);
     addServiceComponent(cluster, service, "NAMENODE");
     addServiceComponent(cluster, service, "DATANODE");
     createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", "h1");
@@ -371,17 +352,10 @@ public class ComponentVersionCheckActionTest {
 
     // inject an unhappy path where the cluster repo version is still UPGRADING
     // even though all of the hosts are UPGRADED
-    ClusterVersionEntity upgradingClusterVersion = clusterVersionDAO.findByClusterAndStackAndVersion(
-        "c1", HDP_22_STACK, targetRepo);
-
-    upgradingClusterVersion.setState(RepositoryVersionState.INSTALLING);
-    upgradingClusterVersion = clusterVersionDAO.merge(upgradingClusterVersion);
 
     // verify the conditions for the test are met properly
-    upgradingClusterVersion = clusterVersionDAO.findByClusterAndStackAndVersion("c1", HDP_22_STACK, targetRepo);
     List<HostVersionEntity> hostVersions = hostVersionDAO.findByClusterStackAndVersion("c1", HDP_22_STACK, targetRepo);
 
-    assertEquals(RepositoryVersionState.INSTALLING, upgradingClusterVersion.getState());
     assertTrue(hostVersions.size() > 0);
     for (HostVersionEntity hostVersion : hostVersions) {
       assertEquals(RepositoryVersionState.INSTALLED, hostVersion.getState());
@@ -437,19 +411,17 @@ public class ComponentVersionCheckActionTest {
     RepositoryVersionEntity repositoryVersion2111 = m_helper.getOrCreateRepositoryVersion(
         HDP_21_STACK, HDP_2_1_1_1);
 
-    Service service = installService(cluster, "HDFS");
-    service.setDesiredRepositoryVersion(repositoryVersion2110);
-    ServiceComponent sc = addServiceComponent(cluster, service, "NAMENODE");
-    sc = addServiceComponent(cluster, service, "DATANODE");
+    Service service = installService(cluster, "HDFS", repositoryVersion2110);
+    addServiceComponent(cluster, service, "NAMENODE");
+    addServiceComponent(cluster, service, "DATANODE");
 
     ServiceComponentHost sch = createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", "h1");
     sch.setVersion(HDP_2_1_1_0);
     sch = createNewServiceComponentHost(cluster, "HDFS", "DATANODE", "h1");
     sch.setVersion(HDP_2_1_1_0);
 
-    service = installService(cluster, "ZOOKEEPER");
-    service.setDesiredRepositoryVersion(repositoryVersion2111);
-    sc = addServiceComponent(cluster, service, "ZOOKEEPER_SERVER");
+    service = installService(cluster, "ZOOKEEPER", repositoryVersion2111);
+    addServiceComponent(cluster, service, "ZOOKEEPER_SERVER");
 
     sch = createNewServiceComponentHost(cluster, "ZOOKEEPER", "ZOOKEEPER_SERVER", "h1");
     sch.setVersion(HDP_2_1_1_1);
@@ -488,7 +460,7 @@ public class ComponentVersionCheckActionTest {
   private ServiceComponentHost createNewServiceComponentHost(Cluster cluster, String svc,
                                                              String svcComponent, String hostName) throws AmbariException {
     Assert.assertNotNull(cluster.getConfigGroups());
-    Service s = installService(cluster, svc);
+    Service s = cluster.getService(svc);
     ServiceComponent sc = addServiceComponent(cluster, s, svcComponent);
 
     ServiceComponentHost sch = serviceComponentHostFactory.createNew(sc, hostName);
@@ -500,17 +472,9 @@ public class ComponentVersionCheckActionTest {
     return sch;
   }
 
-  private Service installService(Cluster cluster, String serviceName) throws AmbariException {
-    Service service = null;
-
-    try {
-      service = cluster.getService(serviceName);
-    } catch (ServiceNotFoundException e) {
-      RepositoryVersionEntity repositoryVersion = cluster.getCurrentClusterVersion().getRepositoryVersion();
-      service = serviceFactory.createNew(cluster, serviceName, repositoryVersion);
-      cluster.addService(service);
-    }
-
+  private Service installService(Cluster cluster, String serviceName, RepositoryVersionEntity repositoryVersion) throws AmbariException {
+    Service service = serviceFactory.createNew(cluster, serviceName, repositoryVersion);
+    cluster.addService(service);
     return service;
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java
index 860369b..57a281a 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java
@@ -1730,17 +1730,11 @@ public class ConfigureActionTest {
     hostAttributes.put("os_release_version", "6");
     host.setHostAttributes(hostAttributes);
 
-    c.createClusterVersion(HDP_220_STACK, HDP_2_2_0_0, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(HDP_220_STACK, HDP_2_2_0_0, RepositoryVersionState.CURRENT);
-
     String urlInfo = "[{'repositories':["
         + "{'Repositories/base_url':'http://foo1','Repositories/repo_name':'HDP','Repositories/repo_id':'HDP-2.2.0'}"
         + "], 'OperatingSystems/os_type':'redhat6'}]";
     repoVersionDAO.create(stackEntity, HDP_2_2_0_1, String.valueOf(System.currentTimeMillis()), urlInfo);
 
-
-    c.createClusterVersion(HDP_220_STACK, HDP_2_2_0_1, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(HDP_220_STACK, HDP_2_2_0_1, RepositoryVersionState.INSTALLED);
     c.setCurrentStackVersion(HDP_220_STACK);
 
     HostVersionEntity entity = new HostVersionEntity();

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
index 18eef56..0ff0b0a 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
@@ -47,7 +47,6 @@ import org.apache.ambari.server.controller.ServiceConfigVersionResponse;
 import org.apache.ambari.server.orm.GuiceJpaInitializer;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.OrmTestHelper;
-import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.dao.HostDAO;
 import org.apache.ambari.server.orm.dao.HostVersionDAO;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
@@ -55,7 +54,6 @@ import org.apache.ambari.server.orm.dao.RequestDAO;
 import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO;
 import org.apache.ambari.server.orm.dao.StackDAO;
 import org.apache.ambari.server.orm.dao.UpgradeDAO;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.orm.entities.HostVersionEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.orm.entities.RequestEntity;
@@ -121,8 +119,6 @@ public class UpgradeActionTest {
   @Inject
   private Clusters clusters;
   @Inject
-  private ClusterVersionDAO clusterVersionDAO;
-  @Inject
   private HostVersionDAO hostVersionDAO;
   @Inject
   private HostDAO hostDAO;
@@ -176,8 +172,6 @@ public class UpgradeActionTest {
 
     clusters.addCluster(clusterName, sourceStack);
 
-    Cluster c = clusters.getCluster(clusterName);
-
     // add a host component
     clusters.addHost(hostName);
 
@@ -190,13 +184,9 @@ public class UpgradeActionTest {
 
     // Create the starting repo version
     m_helper.getOrCreateRepositoryVersion(sourceStack, sourceRepo);
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
 
     // Start upgrading the newer repo
     m_helper.getOrCreateRepositoryVersion(targetStack, targetRepo);
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
 
     HostVersionEntity entity = new HostVersionEntity();
     entity.setHostEntity(hostDAO.findByName(hostName));
@@ -224,26 +214,16 @@ public class UpgradeActionTest {
 
     // Create the starting repo version
     m_helper.getOrCreateRepositoryVersion(sourceStack, sourceRepo);
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
 
     // Start upgrading the mid repo
     m_helper.getOrCreateRepositoryVersion(midStack, midRepo);
     c.setDesiredStackVersion(midStack);
-    c.createClusterVersion(midStack, midRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(midStack, midRepo, RepositoryVersionState.INSTALLED);
-    c.transitionClusterVersion(midStack, midRepo, RepositoryVersionState.CURRENT);
-
-    // Set original version as INSTALLED
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.INSTALLED);
 
     // Notice that we have not yet changed the cluster current stack to the mid stack to simulate
     // the user skipping this step.
 
     m_helper.getOrCreateRepositoryVersion(targetStack, targetRepo);
     c.setDesiredStackVersion(targetStack);
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
 
     // Create a host version for the starting repo in INSTALLED
     HostVersionEntity entitySource = new HostVersionEntity();
@@ -301,8 +281,6 @@ public class UpgradeActionTest {
             "]");
     repoVersionDAO.merge(sourceRepositoryVersion);
 
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
     return sourceRepositoryVersion;
   }
 
@@ -320,8 +298,6 @@ public class UpgradeActionTest {
     repoVersionDAO.create(stackEntityTarget, targetRepo, String.valueOf(System.currentTimeMillis()), urlInfo);
 
     // Start upgrading the newer repo
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
     c.setCurrentStackVersion(targetStack);
 
     // create a single host with the UPGRADED HostVersionEntity
@@ -371,15 +347,11 @@ public class UpgradeActionTest {
 
     // Create the starting repo version
     sourceRepositoryVersion = m_helper.getOrCreateRepositoryVersion(sourceStack, sourceRepo);
-    c.createClusterVersion(sourceStack, sourceRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(sourceStack, sourceRepo, RepositoryVersionState.CURRENT);
   }
 
   private void makeCrossStackUpgradeTargetRepo(StackId targetStack, String targetRepo, String hostName) throws Exception{
     StackEntity stackEntityTarget = stackDAO.find(targetStack.getStackName(), targetStack.getStackVersion());
     assertNotNull(stackEntityTarget);
-    Cluster c = clusters.getCluster(clusterName);
-
 
     // Create the new repo version
     String urlInfo = "[{'repositories':["
@@ -388,8 +360,6 @@ public class UpgradeActionTest {
     repoVersionDAO.create(stackEntityTarget, targetRepo, String.valueOf(System.currentTimeMillis()), urlInfo);
 
     // Start upgrading the newer repo
-    c.createClusterVersion(targetStack, targetRepo, "admin", RepositoryVersionState.INSTALLING);
-    c.transitionClusterVersion(targetStack, targetRepo, RepositoryVersionState.INSTALLED);
 
     HostDAO hostDAO = m_injector.getInstance(HostDAO.class);
 
@@ -478,6 +448,7 @@ public class UpgradeActionTest {
 
     CommandReport report = action.execute(null);
     assertNotNull(report);
+
     assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
 
     List<ServiceConfigVersionResponse> configVersionsAfter = cluster.getServiceConfigVersions();
@@ -526,14 +497,6 @@ public class UpgradeActionTest {
         assertEquals(RepositoryVersionState.INSTALLED, entity.getState());
       }
     }
-
-    for (ClusterVersionEntity entity : clusterVersionDAO.findByCluster(clusterName)) {
-      if (entity.getRepositoryVersion().getVersion().equals(sourceRepo)) {
-        assertEquals(RepositoryVersionState.CURRENT, entity.getState());
-      } else if (entity.getRepositoryVersion().getVersion().equals(targetRepo)) {
-        assertEquals(RepositoryVersionState.INSTALLED, entity.getState());
-      }
-    }
   }
 
   /**
@@ -865,17 +828,11 @@ public class UpgradeActionTest {
 
     // inject an unhappy path where the cluster repo version is still UPGRADING
     // even though all of the hosts are UPGRADED
-    ClusterVersionEntity upgradingClusterVersion = clusterVersionDAO.findByClusterAndStackAndVersion(
-            clusterName, HDP_22_STACK, targetRepo);
 
-    upgradingClusterVersion.setState(RepositoryVersionState.INSTALLING);
-    upgradingClusterVersion = clusterVersionDAO.merge(upgradingClusterVersion);
 
     // verify the conditions for the test are met properly
-    upgradingClusterVersion = clusterVersionDAO.findByClusterAndStackAndVersion(clusterName, HDP_22_STACK, targetRepo);
     List<HostVersionEntity> hostVersions = hostVersionDAO.findByClusterStackAndVersion(clusterName, HDP_22_STACK, targetRepo);
 
-    assertEquals(RepositoryVersionState.INSTALLING, upgradingClusterVersion.getState());
     assertTrue(hostVersions.size() > 0);
     for (HostVersionEntity hostVersion : hostVersions) {
       assertEquals(RepositoryVersionState.INSTALLED, hostVersion.getState());

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
index d67cdfc..ba6e6ff 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest.java
@@ -18,37 +18,35 @@
 package org.apache.ambari.server.stack;
 
 
+import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
+import java.util.Collections;
 
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
 import org.apache.ambari.server.orm.dao.ClusterDAO;
-import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
 import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
-import org.apache.ambari.server.orm.entities.OperatingSystemEntity;
-import org.apache.ambari.server.orm.entities.RepositoryEntity;
+import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
+import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
 import org.apache.ambari.server.orm.entities.StackEntity;
 import org.apache.ambari.server.state.RepositoryInfo;
 import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
-import org.junit.Assert;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 import com.google.common.base.Charsets;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.Resources;
 import com.google.gson.Gson;
 import com.google.inject.Guice;
-import com.google.inject.Injector;
 import com.google.inject.Provider;
 
 /**
@@ -60,7 +58,6 @@ public class UpdateActiveRepoVersionOnStartupTest {
   private static String ADD_ON_REPO_ID = "MSFT_R-8.0";
 
   private RepositoryVersionDAO repositoryVersionDao;
-  private RepositoryVersionEntity repoVersion;
   private UpdateActiveRepoVersionOnStartup activeRepoUpdater;
 
   @Test
@@ -82,22 +79,12 @@ public class UpdateActiveRepoVersionOnStartupTest {
    * @throws Exception
    */
   private void verifyRepoIsAdded() throws Exception {
-    verify(repositoryVersionDao, times(1)).merge(repoVersion);
-
-    boolean serviceRepoAddedToJson = false;
-    outer:
-    for (OperatingSystemEntity os: repoVersion.getOperatingSystems()) if (os.getOsType().equals("redhat6")) {
-      for (RepositoryEntity repo: os.getRepositories()) if (repo.getRepositoryId().equals(ADD_ON_REPO_ID)) {
-        serviceRepoAddedToJson = true;
-        break outer;
-      }
-    }
-    Assert.assertTrue(ADD_ON_REPO_ID + " is add-on repo was not added to JSON representation", serviceRepoAddedToJson);
+    verify(repositoryVersionDao, atLeast(1)).merge(Mockito.any(RepositoryVersionEntity.class));
   }
 
   public void init(boolean addClusterVersion) throws Exception {
     ClusterDAO clusterDao = mock(ClusterDAO.class);
-    ClusterVersionDAO clusterVersionDAO = mock(ClusterVersionDAO.class);
+
     repositoryVersionDao = mock(RepositoryVersionDAO.class);
 
     final RepositoryVersionHelper repositoryVersionHelper = new RepositoryVersionHelper();
@@ -105,7 +92,6 @@ public class UpdateActiveRepoVersionOnStartupTest {
     field.setAccessible(true);
     field.set(repositoryVersionHelper, new Gson());
 
-
     final AmbariMetaInfo metaInfo = mock(AmbariMetaInfo.class);
 
     StackManager stackManager = mock(StackManager.class);
@@ -120,22 +106,34 @@ public class UpdateActiveRepoVersionOnStartupTest {
     stackEntity.setStackVersion("2.3");
     cluster.setDesiredStack(stackEntity);
 
+    RepositoryVersionEntity desiredRepositoryVersion = new RepositoryVersionEntity();
+    desiredRepositoryVersion.setStack(stackEntity);
+    desiredRepositoryVersion.setOperatingSystems(resourceAsString("org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest_initialRepos.json"));
+
+    ServiceDesiredStateEntity serviceDesiredStateEntity = new ServiceDesiredStateEntity();
+    serviceDesiredStateEntity.setDesiredRepositoryVersion(desiredRepositoryVersion);
+
+    ClusterServiceEntity clusterServiceEntity = new ClusterServiceEntity();
+    clusterServiceEntity.setServiceDesiredStateEntity(serviceDesiredStateEntity);
+    cluster.setClusterServiceEntities(Collections.singletonList(clusterServiceEntity));
+
     StackInfo stackInfo = new StackInfo();
     stackInfo.setName("HDP");
     stackInfo.setVersion("2.3");
+
     RepositoryInfo repositoryInfo = new RepositoryInfo();
     repositoryInfo.setBaseUrl("http://msft.r");
     repositoryInfo.setRepoId(ADD_ON_REPO_ID);
     repositoryInfo.setRepoName("MSFT_R");
     repositoryInfo.setOsType("redhat6");
     stackInfo.getRepositories().add(repositoryInfo);
+
     when(stackManager.getStack("HDP", "2.3")).thenReturn(stackInfo);
 
     final Provider<RepositoryVersionHelper> repositoryVersionHelperProvider = mock(Provider.class);
     when(repositoryVersionHelperProvider.get()).thenReturn(repositoryVersionHelper);
 
 
-
     InMemoryDefaultTestModule testModule = new InMemoryDefaultTestModule() {
       @Override
       protected void configure() {
@@ -151,23 +149,21 @@ public class UpdateActiveRepoVersionOnStartupTest {
       }
     };
 
-    Injector injector = Guice.createInjector(testModule);
+    Guice.createInjector(testModule);
     if (addClusterVersion) {
-      repoVersion = new RepositoryVersionEntity();
-      repoVersion.setStack(stackEntity);
-      repoVersion.setOperatingSystems(resourceAsString("org/apache/ambari/server/stack/UpdateActiveRepoVersionOnStartupTest_initialRepos.json"));
-      ClusterVersionEntity clusterVersion = new ClusterVersionEntity();
-      clusterVersion.setRepositoryVersion(repoVersion);
-      when(clusterVersionDAO.findByClusterAndStateCurrent(CLUSTER_NAME)).thenReturn(clusterVersion);
 
+      RepositoryInfo info = new RepositoryInfo();
+      info.setBaseUrl("http://msft.r");
+      info.setRepoId(ADD_ON_REPO_ID);
+      info.setRepoName("MSFT_R1");
+      info.setOsType("redhat6");
+      stackInfo.getRepositories().add(info);
     }
 
     activeRepoUpdater = new UpdateActiveRepoVersionOnStartup(clusterDao,
-        clusterVersionDAO, repositoryVersionDao, repositoryVersionHelper, metaInfo);
+        repositoryVersionDao, repositoryVersionHelper, metaInfo);
   }
 
-
-
   private static String resourceAsString(String resourceName) throws IOException {
     return Resources.toString(Resources.getResource(resourceName), Charsets.UTF_8);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/state/CheckHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/CheckHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/CheckHelperTest.java
index 63eae6a..cf4a9cb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/CheckHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/CheckHelperTest.java
@@ -29,7 +29,6 @@ import org.apache.ambari.server.checks.AbstractCheckDescriptor;
 import org.apache.ambari.server.checks.CheckDescription;
 import org.apache.ambari.server.checks.ServicesUpCheck;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
-import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.dao.HostVersionDAO;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
 import org.apache.ambari.server.orm.dao.UpgradeDAO;
@@ -155,7 +154,6 @@ public class CheckHelperTest {
       @Override
       protected void configure() {
         bind(Clusters.class).toInstance(clusters);
-        bind(ClusterVersionDAO.class).toProvider(Providers.<ClusterVersionDAO>of(null));
         bind(HostVersionDAO.class).toProvider(Providers.<HostVersionDAO>of(null));
         bind(UpgradeDAO.class).toProvider(Providers.<UpgradeDAO>of(null));
         bind(RepositoryVersionDAO.class).toProvider(Providers.<RepositoryVersionDAO>of(null));

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
index 8f2020d..325fc90 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
@@ -105,9 +105,6 @@ public class ServiceComponentTest {
     RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
         stackId.getStackVersion());
 
-    cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
-        RepositoryVersionState.INSTALLING);
-
     Service s = serviceFactory.createNew(cluster, serviceName, repositoryVersion);
     cluster.addService(s);
     service = cluster.getService(serviceName);

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
index 364b92c..e3ffe8f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
@@ -98,8 +98,8 @@ import com.google.inject.util.Modules;
  */
 public class UpgradeHelperTest {
 
-  private static final StackId HDP_21 = new StackId("HDP-2.1.1");
-  private static final StackId HDP_22 = new StackId("HDP-2.2.0");
+//  private static final StackId HDP_21 = new StackId("HDP-2.1.1");
+//  private static final StackId HDP_22 = new StackId("HDP-2.2.0");
   private static final String UPGRADE_VERSION = "2.2.1.0-1234";
   private static final String DOWNGRADE_VERSION = "2.2.0.0-1234";
 
@@ -1260,9 +1260,6 @@ public class UpgradeHelperTest {
 
     helper.getOrCreateRepositoryVersion(stackId2, UPGRADE_VERSION);
 
-    c.createClusterVersion(stackId, repositoryVersionString, "admin",
-        RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 4; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1485,8 +1482,6 @@ public class UpgradeHelperTest {
 
     RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, version);
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1564,8 +1559,6 @@ public class UpgradeHelperTest {
     RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
         version);
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1627,8 +1620,6 @@ public class UpgradeHelperTest {
     RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
         version);
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1691,8 +1682,6 @@ public class UpgradeHelperTest {
     RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
         version);
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1811,8 +1800,6 @@ public class UpgradeHelperTest {
 
     helper.getOrCreateRepositoryVersion(stackId2,"2.2.0");
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -1912,8 +1899,6 @@ public class UpgradeHelperTest {
 
     helper.getOrCreateRepositoryVersion(stackId2, UPGRADE_VERSION);
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);
       clusters.addHost(hostName);
@@ -2097,8 +2082,6 @@ public class UpgradeHelperTest {
 
     helper.getOrCreateRepositoryVersion(stackId2, "2.2.0");
 
-    c.createClusterVersion(stackId, version, "admin", RepositoryVersionState.INSTALLING);
-
     // create 2 hosts
     for (int i = 0; i < 2; i++) {
       String hostName = "h" + (i+1);

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java
index 9c17e01..e7516e6 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java
@@ -42,7 +42,6 @@ import org.apache.ambari.server.state.Config;
 import org.apache.ambari.server.state.ConfigFactory;
 import org.apache.ambari.server.state.Host;
 import org.apache.ambari.server.state.MaintenanceState;
-import org.apache.ambari.server.state.RepositoryVersionState;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceComponentFactory;
@@ -124,8 +123,6 @@ public class ClusterDeadlockTest {
     clusters.addCluster("c1", stackId);
     cluster = clusters.getCluster("c1");
     helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
-    cluster.createClusterVersion(stackId,
-        stackId.getStackVersion(), "admin", RepositoryVersionState.INSTALLING);
 
     Config config1 = configFactory.createNew(cluster, "test-type1", "version1", new HashMap<String, String>(), new HashMap<String,
         Map<String, String>>());

http://git-wip-us.apache.org/repos/asf/ambari/blob/aaa821cc/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java
deleted file mode 100644
index bba197f..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ambari.server.state.cluster;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-
-import org.apache.ambari.server.actionmanager.ActionManager;
-import org.apache.ambari.server.actionmanager.HostRoleCommandFactory;
-import org.apache.ambari.server.actionmanager.RequestFactory;
-import org.apache.ambari.server.actionmanager.StageFactory;
-import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import org.apache.ambari.server.controller.AbstractRootServiceResponseFactory;
-import org.apache.ambari.server.controller.AmbariManagementController;
-import org.apache.ambari.server.controller.KerberosHelper;
-import org.apache.ambari.server.controller.spi.ClusterController;
-import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
-import org.apache.ambari.server.hooks.HookContextFactory;
-import org.apache.ambari.server.hooks.HookService;
-import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider;
-import org.apache.ambari.server.metadata.RoleCommandOrderProvider;
-import org.apache.ambari.server.orm.DBAccessor;
-import org.apache.ambari.server.orm.dao.ClusterDAO;
-import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
-import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
-import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
-import org.apache.ambari.server.orm.entities.ConfigGroupEntity;
-import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
-import org.apache.ambari.server.orm.entities.RequestScheduleEntity;
-import org.apache.ambari.server.orm.entities.StackEntity;
-import org.apache.ambari.server.orm.entities.UpgradeEntity;
-import org.apache.ambari.server.scheduler.ExecutionScheduler;
-import org.apache.ambari.server.security.authorization.Users;
-import org.apache.ambari.server.stack.StackManagerFactory;
-import org.apache.ambari.server.stageplanner.RoleGraphFactory;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.ConfigFactory;
-import org.apache.ambari.server.state.ServiceComponentFactory;
-import org.apache.ambari.server.state.ServiceComponentHostFactory;
-import org.apache.ambari.server.state.ServiceFactory;
-import org.apache.ambari.server.state.ServiceInfo;
-import org.apache.ambari.server.state.UpgradeContextFactory;
-import org.apache.ambari.server.state.configgroup.ConfigGroupFactory;
-import org.apache.ambari.server.state.scheduler.RequestExecutionFactory;
-import org.apache.ambari.server.state.stack.OsFamily;
-import org.apache.ambari.server.state.stack.upgrade.Direction;
-import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.eclipse.jetty.server.SessionManager;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.springframework.security.crypto.password.PasswordEncoder;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Binder;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
-
-/**
- * Tests that cluster effective version is calcualted correctly during upgrades.
- */
-@RunWith(value = PowerMockRunner.class)
-@PrepareForTest({ ClusterImpl.class })
-public class ClusterEffectiveVersionTest extends EasyMockSupport {
-
-  private Injector m_injector;
-  private ClusterEntity m_clusterEntity;
-  private Cluster m_cluster;
-
-  /**
-   * @throws Exception
-   */
-  @Before
-  public void setup() throws Exception {
-    m_injector = Guice.createInjector(new MockModule());
-    m_clusterEntity = createNiceMock(ClusterEntity.class);
-
-    expectClusterEntityMocks();
-
-    replayAll();
-
-    ClusterFactory clusterFactory = m_injector.getInstance(ClusterFactory.class);
-    m_cluster = clusterFactory.create(m_clusterEntity);
-
-    verifyAll();
-  }
-
-  /**
-   * Tests that {@link Cluster#getEffectiveClusterVersion()} returns the
-   * "current" version when there is no upgrade in progress.
-   */
-  @Test
-  public void testEffectiveVersionWithNoUpgrade() throws Exception {
-    Cluster clusterSpy = Mockito.spy(m_cluster);
-
-    Mockito.doReturn(null).when(clusterSpy).getUpgradeInProgress();
-
-    ClusterVersionEntity currentClusterVersion = new ClusterVersionEntity();
-    Mockito.doReturn(currentClusterVersion).when(clusterSpy).getCurrentClusterVersion();
-
-    ClusterVersionEntity effectiveVersion = clusterSpy.getEffectiveClusterVersion();
-    Assert.assertEquals(currentClusterVersion, effectiveVersion);
-  }
-
-  /**
-   * Tests that {@link Cluster#getEffectiveClusterVersion()} returns the target
-   * version in an active rolling upgrade.
-   */
-  @Test
-  public void testEffectiveVersionWithActiveRollingUpgrade() throws Exception {
-    resetAll();
-    expectClusterEntityMocks();
-
-    Cluster clusterSpy = Mockito.spy(m_cluster);
-
-    UpgradeEntity upgradeEntity = createNiceMock(UpgradeEntity.class);
-    EasyMock.expect(upgradeEntity.getId()).andReturn(1L).atLeastOnce();
-    EasyMock.expect(upgradeEntity.getUpgradeType()).andReturn(UpgradeType.ROLLING).atLeastOnce();
-    EasyMock.expect(upgradeEntity.getFromVersion()).andReturn("2.3.0.0-1234").anyTimes();
-    EasyMock.expect(upgradeEntity.getToVersion()).andReturn("2.4.0.0-1234").atLeastOnce();
-
-    RepositoryVersionEntity repositoryVersionEntity = createNiceMock(RepositoryVersionEntity.class);
-    EasyMock.expect(repositoryVersionEntity.getVersion()).andReturn("2.4.0.0-1234").atLeastOnce();
-
-    ClusterVersionEntity clusterVersionUpgradingTo = createNiceMock(ClusterVersionEntity.class);
-    EasyMock.expect(clusterVersionUpgradingTo.getRepositoryVersion()).andReturn(
-        repositoryVersionEntity).atLeastOnce();
-
-    List<ClusterVersionEntity> clusterVersionEntities = Lists.newArrayList(clusterVersionUpgradingTo);
-    EasyMock.expect(m_clusterEntity.getClusterVersionEntities()).andReturn(clusterVersionEntities).atLeastOnce();
-
-    replayAll();
-
-    Mockito.doReturn(upgradeEntity).when(clusterSpy).getUpgradeInProgress();
-
-    // this shouldn't be returned since there is an upgrade in progress
-    ClusterVersionEntity currentClusterVersion = new ClusterVersionEntity();
-    Mockito.doReturn(currentClusterVersion).when(clusterSpy).getCurrentClusterVersion();
-
-    ClusterVersionEntity effectiveVersion = clusterSpy.getEffectiveClusterVersion();
-    Assert.assertEquals(clusterVersionUpgradingTo, effectiveVersion);
-
-    verifyAll();
-  }
-
-  /**
-   * Tests that {@link Cluster#getEffectiveClusterVersion()} returns the target
-   * version in an active rolling upgrade.
-   */
-  @Test
-  public void testEffectiveVersionWithActiveExpressDowngrade() throws Exception {
-    resetAll();
-    expectClusterEntityMocks();
-
-    Cluster clusterSpy = Mockito.spy(m_cluster);
-
-    // from/to are switched on downgrade
-    UpgradeEntity upgradeEntity = createNiceMock(UpgradeEntity.class);
-    EasyMock.expect(upgradeEntity.getId()).andReturn(1L).atLeastOnce();
-    EasyMock.expect(upgradeEntity.getUpgradeType()).andReturn(UpgradeType.NON_ROLLING).atLeastOnce();
-    EasyMock.expect(upgradeEntity.getToVersion()).andReturn("2.3.0.0-1234").atLeastOnce();
-    EasyMock.expect(upgradeEntity.getFromVersion()).andReturn("2.4.0.0-1234").anyTimes();
-    EasyMock.expect(upgradeEntity.getDirection()).andReturn(Direction.DOWNGRADE).atLeastOnce();
-
-    RepositoryVersionEntity repositoryVersionEntity = createNiceMock(RepositoryVersionEntity.class);
-    EasyMock.expect(repositoryVersionEntity.getVersion()).andReturn("2.3.0.0-1234").atLeastOnce();
-
-    ClusterVersionEntity clusterVersionUpgradingTo = createNiceMock(ClusterVersionEntity.class);
-    EasyMock.expect(clusterVersionUpgradingTo.getRepositoryVersion()).andReturn(
-        repositoryVersionEntity).atLeastOnce();
-
-    List<ClusterVersionEntity> clusterVersionEntities = Lists.newArrayList(clusterVersionUpgradingTo);
-    EasyMock.expect(m_clusterEntity.getClusterVersionEntities()).andReturn(clusterVersionEntities).atLeastOnce();
-
-    replayAll();
-
-    Mockito.doReturn(upgradeEntity).when(clusterSpy).getUpgradeInProgress();
-
-    // this shouldn't be returned since there is an upgrade in progress
-    ClusterVersionEntity currentClusterVersion = new ClusterVersionEntity();
-    Mockito.doReturn(currentClusterVersion).when(clusterSpy).getCurrentClusterVersion();
-
-    ClusterVersionEntity effectiveVersion = clusterSpy.getEffectiveClusterVersion();
-    Assert.assertEquals(clusterVersionUpgradingTo, effectiveVersion);
-
-    verifyAll();
-  }
-
-  /**
-   * Sets the expectations on the {@link ClusterEntity} mock.
-   */
-  private void expectClusterEntityMocks() {
-    ClusterDAO clusterDAO = m_injector.getInstance(ClusterDAO.class);
-    StackEntity stackEntity = createNiceMock(StackEntity.class);
-
-    EasyMock.expect(clusterDAO.findById(1L)).andReturn(m_clusterEntity).anyTimes();
-
-    EasyMock.expect(stackEntity.getStackId()).andReturn(1L).anyTimes();
-    EasyMock.expect(stackEntity.getStackName()).andReturn("HDP").anyTimes();
-    EasyMock.expect(stackEntity.getStackVersion()).andReturn("2.3").anyTimes();
-
-    EasyMock.expect(m_clusterEntity.getClusterId()).andReturn(1L).anyTimes();
-    EasyMock.expect(m_clusterEntity.getClusterName()).andReturn("c1").anyTimes();
-    EasyMock.expect(m_clusterEntity.getDesiredStack()).andReturn(stackEntity).anyTimes();
-    EasyMock.expect(m_clusterEntity.getClusterServiceEntities()).andReturn(
-        new ArrayList<ClusterServiceEntity>()).anyTimes();
-    EasyMock.expect(m_clusterEntity.getClusterConfigEntities()).andReturn(
-        new ArrayList<ClusterConfigEntity>()).anyTimes();
-
-    EasyMock.expect(m_clusterEntity.getConfigGroupEntities()).andReturn(
-        new ArrayList<ConfigGroupEntity>()).anyTimes();
-
-    EasyMock.expect(m_clusterEntity.getRequestScheduleEntities()).andReturn(
-        new ArrayList<RequestScheduleEntity>()).anyTimes();
-  }
-
-  /**
-  *
-  */
-  private class MockModule implements Module {
-    /**
-    *
-    */
-    @Override
-    public void configure(Binder binder) {
-      binder.bind(UpgradeContextFactory.class).toInstance(EasyMock.createNiceMock(UpgradeContextFactory.class));
-      binder.bind(Clusters.class).toInstance(EasyMock.createNiceMock(Clusters.class));
-      binder.bind(OsFamily.class).toInstance(EasyMock.createNiceMock(OsFamily.class));
-      binder.bind(DBAccessor.class).toInstance(EasyMock.createNiceMock(DBAccessor.class));
-      binder.bind(EntityManager.class).toInstance(EasyMock.createNiceMock(EntityManager.class));
-      binder.bind(ActionManager.class).toInstance(EasyMock.createNiceMock(ActionManager.class));
-      binder.bind(HostRoleCommandFactory.class).toInstance(EasyMock.createNiceMock(HostRoleCommandFactory.class));
-      binder.bind(HostRoleCommandDAO.class).toInstance(EasyMock.createNiceMock(HostRoleCommandDAO.class));
-      binder.bind(AmbariManagementController.class).toInstance(EasyMock.createNiceMock(AmbariManagementController.class));
-      binder.bind(ClusterController.class).toInstance(EasyMock.createNiceMock(ClusterController.class));
-      binder.bind(StackManagerFactory.class).toInstance(EasyMock.createNiceMock(StackManagerFactory.class));
-      binder.bind(SessionManager.class).toInstance(EasyMock.createNiceMock(SessionManager.class));
-      binder.bind(RequestExecutionFactory.class).toInstance(EasyMock.createNiceMock(RequestExecutionFactory.class));
-      binder.bind(ExecutionScheduler.class).toInstance(EasyMock.createNiceMock(ExecutionScheduler.class));
-      binder.bind(RequestFactory.class).toInstance(EasyMock.createNiceMock(RequestFactory.class));
-      binder.bind(StageFactory.class).toInstance(EasyMock.createNiceMock(StageFactory.class));
-      binder.bind(RoleGraphFactory.class).toInstance(EasyMock.createNiceMock(RoleGraphFactory.class));
-      binder.bind(AbstractRootServiceResponseFactory.class).toInstance(EasyMock.createNiceMock(AbstractRootServiceResponseFactory.class));
-      binder.bind(ConfigFactory.class).toInstance(EasyMock.createNiceMock(ConfigFactory.class));
-      binder.bind(ConfigGroupFactory.class).toInstance(EasyMock.createNiceMock(ConfigGroupFactory.class));
-      binder.bind(ServiceFactory.class).toInstance(EasyMock.createNiceMock(ServiceFactory.class));
-      binder.bind(ServiceComponentFactory.class).toInstance(EasyMock.createNiceMock(ServiceComponentFactory.class));
-      binder.bind(ServiceComponentHostFactory.class).toInstance(EasyMock.createNiceMock(ServiceComponentHostFactory.class));
-      binder.bind(PasswordEncoder.class).toInstance(EasyMock.createNiceMock(PasswordEncoder.class));
-      binder.bind(KerberosHelper.class).toInstance(EasyMock.createNiceMock(KerberosHelper.class));
-      binder.bind(Users.class).toInstance(EasyMock.createNiceMock(Users.class));
-      binder.bind(AmbariEventPublisher.class).toInstance(createNiceMock(AmbariEventPublisher.class));
-      binder.bind(HookContextFactory.class).toInstance(createMock(HookContextFactory.class));
-      binder.bind(HookService.class).toInstance(createMock(HookService.class));
-      binder.install(new FactoryModuleBuilder().implement(
-          Cluster.class, ClusterImpl.class).build(ClusterFactory.class));
-
-      binder.bind(RoleCommandOrderProvider.class).to(CachedRoleCommandOrderProvider.class);
-
-      try {
-        AmbariMetaInfo ambariMetaInfo = EasyMock.createNiceMock(AmbariMetaInfo.class);
-        EasyMock.expect(
-            ambariMetaInfo.getServices(EasyMock.anyString(), EasyMock.anyString())).andReturn(
-                new HashMap<String, ServiceInfo>()).anyTimes();
-
-        EasyMock.replay(ambariMetaInfo);
-
-        binder.bind(AmbariMetaInfo.class).toInstance(ambariMetaInfo);
-      } catch (Exception exception) {
-        Assert.fail(exception.toString());
-      }
-
-      binder.bind(ClusterDAO.class).toInstance(createNiceMock(ClusterDAO.class));
-    }
-  }
-}