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/07/22 03:49:02 UTC

[2/2] ambari git commit: AMBARI-21552 - Pass Repository ID To Upgrade Prechecks (jonathanhurley)

AMBARI-21552 - Pass Repository ID To Upgrade Prechecks (jonathanhurley)


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

Branch: refs/heads/branch-feature-AMBARI-21450
Commit: eb598e8557c631b7eb4a21a6224e9aa9009942d3
Parents: 348f44e
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Fri Jul 21 14:55:49 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Fri Jul 21 23:48:29 2017 -0400

----------------------------------------------------------------------
 .../server/controller/PrereqCheckRequest.java   | 22 +++----
 .../PreUpgradeCheckResourceProvider.java        | 67 ++++++++++++--------
 .../ambari/server/state/UpgradeContext.java     | 17 ++---
 .../ambari/server/state/UpgradeHelper.java      | 59 +++++++++--------
 .../server/checks/AtlasPresenceCheckTest.java   |  8 ++-
 .../checks/ClientRetryPropertyCheckTest.java    | 17 +++--
 .../checks/ComponentExistsInRepoCheckTest.java  | 19 ++++--
 .../checks/ComponentsInstallationCheckTest.java | 28 +++++---
 .../checks/ConfigurationMergeCheckTest.java     | 15 +++--
 .../HiveDynamicServiceDiscoveryCheckTest.java   | 29 +++++++--
 .../checks/HiveMultipleMetastoreCheckTest.java  | 21 ++++--
 .../server/checks/HostsHeartbeatCheckTest.java  | 16 ++++-
 .../checks/HostsMasterMaintenanceCheckTest.java | 35 ++++++++--
 .../checks/HostsRepositoryVersionCheckTest.java | 46 +++++++++-----
 .../server/checks/InstallPackagesCheckTest.java | 18 ++++--
 ...duce2JobHistoryStatePreservingCheckTest.java |  7 +-
 .../checks/PreviousUpgradeCompletedTest.java    | 11 ++--
 .../server/checks/ServicePresenceCheckTest.java | 31 +++++----
 .../ServicesMaintenanceModeCheckTest.java       | 16 ++++-
 .../ServicesNamenodeTruncateCheckTest.java      | 26 ++++++--
 .../server/checks/ServicesUpCheckTest.java      | 27 ++++++--
 ...nTimelineServerStatePreservingCheckTest.java |  7 +-
 .../PreUpgradeCheckResourceProviderTest.java    |  6 +-
 .../ambari/server/state/UpgradeHelperTest.java  | 14 ++--
 24 files changed, 365 insertions(+), 197 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/main/java/org/apache/ambari/server/controller/PrereqCheckRequest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/PrereqCheckRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/PrereqCheckRequest.java
index f80c16a..e501bb8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/PrereqCheckRequest.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/PrereqCheckRequest.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.ambari.server.checks.CheckDescription;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.UpgradePack.PrerequisiteCheckConfig;
@@ -31,9 +32,8 @@ import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
  */
 public class PrereqCheckRequest {
   private String m_clusterName;
-  private String m_repositoryVersion;
   private StackId m_sourceStackId;
-  private StackId m_targetStackId;
+  private RepositoryVersionEntity m_targetRepositoryVersion;
   private PrerequisiteCheckConfig m_prereqCheckConfig;
 
   private UpgradeType m_upgradeType;
@@ -65,11 +65,7 @@ public class PrereqCheckRequest {
   }
 
   public String getRepositoryVersion() {
-    return m_repositoryVersion;
-  }
-
-  public void setRepositoryVersion(String repositoryVersion) {
-    m_repositoryVersion = repositoryVersion;
+    return m_targetRepositoryVersion.getVersion();
   }
 
   /**
@@ -115,17 +111,17 @@ public class PrereqCheckRequest {
    * @return the targetStackId
    */
   public StackId getTargetStackId() {
-    return m_targetStackId;
+    return m_targetRepositoryVersion.getStackId();
   }
 
   /**
-   * Sets the target stack of the upgrade.
+   * Sets the target of the upgrade.
    *
-   * @param targetStackId
-   *          the targetStackId to set
+   * @param targetRepositoryVersion
+   *          the target repository version
    */
-  public void setTargetStackId(StackId targetStackId) {
-    m_targetStackId = targetStackId;
+  public void setTargetRepositoryVersion(RepositoryVersionEntity targetRepositoryVersion) {
+    m_targetRepositoryVersion = targetRepositoryVersion;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
index 7b03912..8a10fb7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
@@ -47,12 +47,14 @@ import org.apache.ambari.server.state.CheckHelper;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.ServiceInfo;
+import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.UpgradeHelper;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.apache.ambari.server.state.stack.UpgradePack;
 import org.apache.ambari.server.state.stack.upgrade.Direction;
 import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
 import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -69,20 +71,21 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
 
   //----- Property ID constants ---------------------------------------------
 
-  public static final String UPGRADE_CHECK_ID_PROPERTY_ID                 = PropertyHelper.getPropertyId("UpgradeChecks", "id");
-  public static final String UPGRADE_CHECK_CHECK_PROPERTY_ID              = PropertyHelper.getPropertyId("UpgradeChecks", "check");
-  public static final String UPGRADE_CHECK_STATUS_PROPERTY_ID             = PropertyHelper.getPropertyId("UpgradeChecks", "status");
-  public static final String UPGRADE_CHECK_REASON_PROPERTY_ID             = PropertyHelper.getPropertyId("UpgradeChecks", "reason");
-  public static final String UPGRADE_CHECK_FAILED_ON_PROPERTY_ID          = PropertyHelper.getPropertyId("UpgradeChecks", "failed_on");
-  public static final String UPGRADE_CHECK_FAILED_DETAIL_PROPERTY_ID      = PropertyHelper.getPropertyId("UpgradeChecks", "failed_detail");
-  public static final String UPGRADE_CHECK_CHECK_TYPE_PROPERTY_ID         = PropertyHelper.getPropertyId("UpgradeChecks", "check_type");
-  public static final String UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID       = PropertyHelper.getPropertyId("UpgradeChecks", "cluster_name");
-  public static final String UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID       = PropertyHelper.getPropertyId("UpgradeChecks", "upgrade_type");
+  public static final String UPGRADE_CHECK_ID_PROPERTY_ID                  = PropertyHelper.getPropertyId("UpgradeChecks", "id");
+  public static final String UPGRADE_CHECK_CHECK_PROPERTY_ID               = PropertyHelper.getPropertyId("UpgradeChecks", "check");
+  public static final String UPGRADE_CHECK_STATUS_PROPERTY_ID              = PropertyHelper.getPropertyId("UpgradeChecks", "status");
+  public static final String UPGRADE_CHECK_REASON_PROPERTY_ID              = PropertyHelper.getPropertyId("UpgradeChecks", "reason");
+  public static final String UPGRADE_CHECK_FAILED_ON_PROPERTY_ID           = PropertyHelper.getPropertyId("UpgradeChecks", "failed_on");
+  public static final String UPGRADE_CHECK_FAILED_DETAIL_PROPERTY_ID       = PropertyHelper.getPropertyId("UpgradeChecks", "failed_detail");
+  public static final String UPGRADE_CHECK_CHECK_TYPE_PROPERTY_ID          = PropertyHelper.getPropertyId("UpgradeChecks", "check_type");
+  public static final String UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID        = PropertyHelper.getPropertyId("UpgradeChecks", "cluster_name");
+  public static final String UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID        = PropertyHelper.getPropertyId("UpgradeChecks", "upgrade_type");
+  public static final String UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID = PropertyHelper.getPropertyId("UpgradeChecks", "repository_version_id");
+
   /**
    * Optional parameter to specify the preferred Upgrade Pack to use.
    */
   public static final String UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID       = PropertyHelper.getPropertyId("UpgradeChecks", "upgrade_pack");
-  public static final String UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("UpgradeChecks", "repository_version");
   public static final String UPGRADE_CHECK_FOR_REVERT_PROPERTY_ID = PropertyHelper.getPropertyId("UpgradeChecks", "for_revert");
 
   @Inject
@@ -115,8 +118,8 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
       UPGRADE_CHECK_CHECK_TYPE_PROPERTY_ID,
       UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID,
       UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID,
+      UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID,
       UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID,
-      UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID,
       UPGRADE_CHECK_FOR_REVERT_PROPERTY_ID);
 
 
@@ -165,19 +168,25 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
         throw new NoSuchResourceException(ambariException.getMessage());
       }
 
-      String stackName = cluster.getCurrentStackVersion().getStackName();
-      String sourceStackVersion = cluster.getCurrentStackVersion().getStackVersion();
+      String repositoryVersionId = (String) propertyMap.get(
+          UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID);
+
+      if (StringUtils.isBlank(repositoryVersionId)) {
+        throw new SystemException(
+            String.format("%s is a required property when executing upgrade pre-requisite checks",
+                UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID));
+      }
 
-      final PrereqCheckRequest upgradeCheckRequest = new PrereqCheckRequest(clusterName, upgradeType);
+      final PrereqCheckRequest upgradeCheckRequest = new PrereqCheckRequest(clusterName,
+          upgradeType);
+
+      StackId sourceStackId = cluster.getCurrentStackVersion();
       upgradeCheckRequest.setSourceStackId(cluster.getCurrentStackVersion());
 
-      if (propertyMap.containsKey(UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID)) {
-        String repositoryVersionId = propertyMap.get(UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID).toString();
-        RepositoryVersionEntity repositoryVersionEntity = repositoryVersionDAO.findByStackNameAndVersion(stackName, repositoryVersionId);
-        // set some required properties on the check request
-        upgradeCheckRequest.setRepositoryVersion(repositoryVersionId);
-        upgradeCheckRequest.setTargetStackId(repositoryVersionEntity.getStackId());
-      }
+      RepositoryVersionEntity repositoryVersion = repositoryVersionDAO.findByPK(
+          Long.valueOf(repositoryVersionId));
+
+      upgradeCheckRequest.setTargetRepositoryVersion(repositoryVersion);
 
       if (propertyMap.containsKey(UPGRADE_CHECK_FOR_REVERT_PROPERTY_ID)) {
         Boolean forRevert = BooleanUtils.toBooleanObject(propertyMap.get(UPGRADE_CHECK_FOR_REVERT_PROPERTY_ID).toString());
@@ -191,8 +200,9 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
           (String) propertyMap.get(UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID) : null;
       try{
         // Hint: PreChecks currently executing only before UPGRADE direction
-        upgradePack = upgradeHelper.get().suggestUpgradePack(clusterName, sourceStackVersion,
-            upgradeCheckRequest.getRepositoryVersion(), Direction.UPGRADE, upgradeType, preferredUpgradePackName);
+        upgradePack = upgradeHelper.get().suggestUpgradePack(clusterName, sourceStackId,
+            repositoryVersion.getStackId(), Direction.UPGRADE, upgradeType,
+            preferredUpgradePackName);
       } catch (AmbariException e) {
         throw new SystemException(e.getMessage(), e);
       }
@@ -208,11 +218,13 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
 
       try {
         // Register all the custom prechecks from the services
-        Map<String, ServiceInfo> services = getManagementController().getAmbariMetaInfo().getServices(stackName, sourceStackVersion);
+        Map<String, ServiceInfo> services = getManagementController().getAmbariMetaInfo().getServices(
+            sourceStackId.getStackName(), sourceStackId.getStackVersion());
+
         List<AbstractCheckDescriptor> serviceLevelUpgradeChecksToRun = upgradeCheckRegistry.getServiceLevelUpgradeChecks(upgradePack, services);
         upgradeChecksToRun.addAll(serviceLevelUpgradeChecksToRun);
       } catch (ParentObjectNotFoundException parentNotFoundException) {
-        LOG.error("Invalid stack version: " + stackName + "-" + sourceStackVersion, parentNotFoundException);
+        LOG.error("Invalid stack version: {}", sourceStackId, parentNotFoundException);
       } catch (AmbariException ambariException) {
         LOG.error("Unable to register all the custom prechecks from the services", ambariException);
       } catch (Exception e) {
@@ -230,9 +242,8 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
         setResourceProperty(resource, UPGRADE_CHECK_CHECK_TYPE_PROPERTY_ID, prerequisiteCheck.getType(), requestedIds);
         setResourceProperty(resource, UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID, prerequisiteCheck.getClusterName(), requestedIds);
         setResourceProperty(resource, UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID, upgradeType, requestedIds);
-        if (upgradeCheckRequest.getRepositoryVersion() != null) {
-          setResourceProperty(resource, UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID, upgradeCheckRequest.getRepositoryVersion(), requestedIds);
-        }
+        setResourceProperty(resource, UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID, upgradeCheckRequest.getRepositoryVersion(), requestedIds);
+
         resources.add(resource);
       }
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java
index 0ab2263..6f469e5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java
@@ -288,8 +288,8 @@ public class UpgradeContext {
 
       if (null == revertUpgrade) {
           throw new AmbariException(String.format("Could not find Upgrade with id %s to revert.", revertUpgradeId));
-      }      
-      
+      }
+
       if (revertUpgrade.getOrchestration() != RepositoryType.PATCH) {
         throw new AmbariException("Can only revert upgrades that have been done as a patch.");
       }
@@ -422,12 +422,12 @@ public class UpgradeContext {
     String preferredUpgradePackName = (String) upgradeRequestMap.get(UPGRADE_PACK);
 
     @Experimental(feature = ExperimentalFeature.PATCH_UPGRADES, comment="This is wrong")
-    String upgradePackFromVersion = cluster.getService(
-        m_services.iterator().next()).getDesiredRepositoryVersion().getVersion();
+    RepositoryVersionEntity upgradeFromRepositoryVersion = cluster.getService(
+        m_services.iterator().next()).getDesiredRepositoryVersion();
 
     m_upgradePack = m_upgradeHelper.suggestUpgradePack(m_cluster.getClusterName(),
-        upgradePackFromVersion, m_repositoryVersion.getVersion(), m_direction, m_type,
-        preferredUpgradePackName);
+        upgradeFromRepositoryVersion.getStackId(), m_repositoryVersion.getStackId(), m_direction,
+        m_type, preferredUpgradePackName);
 
     // the validator will throw an exception if the upgrade request is not valid
     UpgradeRequestValidator upgradeRequestValidator = buildValidator(m_type);
@@ -1031,16 +1031,13 @@ public class UpgradeContext {
         return;
       }
 
-      RepositoryVersionEntity repositoryVersion = m_repoVersionDAO.findByPK(
-          Long.valueOf(repositoryVersionId));
-
       // Validate pre-req checks pass
       PreUpgradeCheckResourceProvider provider = (PreUpgradeCheckResourceProvider) AbstractControllerResourceProvider.getResourceProvider(
           Resource.Type.PreUpgradeCheck);
 
       Predicate preUpgradeCheckPredicate = new PredicateBuilder().property(
           PreUpgradeCheckResourceProvider.UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID).equals(cluster.getClusterName()).and().property(
-          PreUpgradeCheckResourceProvider.UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID).equals(repositoryVersion.getVersion()).and().property(
+          PreUpgradeCheckResourceProvider.UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID).equals(repositoryVersionId).and().property(
           PreUpgradeCheckResourceProvider.UPGRADE_CHECK_FOR_REVERT_PROPERTY_ID).equals(m_isRevert).and().property(
           PreUpgradeCheckResourceProvider.UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID).equals(type).and().property(
           PreUpgradeCheckResourceProvider.UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID).equals(preferredUpgradePack).toPredicate();

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
index 5fdcd66..7ca6976 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java
@@ -50,7 +50,6 @@ import org.apache.ambari.server.controller.utilities.ClusterControllerHelper;
 import org.apache.ambari.server.controller.utilities.PredicateBuilder;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.events.listeners.upgrade.StackVersionListener;
-import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
 import org.apache.ambari.server.orm.dao.ServiceConfigDAO;
 import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
 import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
@@ -190,9 +189,6 @@ public class UpgradeHelper {
   @Inject
   private Provider<Clusters> m_clusters;
 
-  @Inject
-  private Provider<RepositoryVersionDAO> m_repoVersionProvider;
-
   /**
    * Used to update the configuration properties.
    */
@@ -211,66 +207,69 @@ public class UpgradeHelper {
    *
    * @param clusterName
    *          The name of the cluster
-   * @param upgradeFromVersion
-   *          Current stack version
-   * @param upgradeToVersion
-   *          Target stack version
+   * @param sourceStackId
+   *          the "from" stack for this upgrade/downgrade
+   * @param targetStackId
+   *          the "to" stack for this upgrade/downgrade
    * @param direction
    *          {@code Direction} of the upgrade
    * @param upgradeType
    *          The {@code UpgradeType}
+   * @param targetStackName
+   *          The destination target stack name.
    * @param preferredUpgradePackName
    *          For unit test, need to prefer an upgrade pack since multiple
    *          matches can be found.
    * @return {@code UpgradeType} object
    * @throws AmbariException
    */
-  public UpgradePack suggestUpgradePack(String clusterName, String upgradeFromVersion, String upgradeToVersion,
-    Direction direction, UpgradeType upgradeType, String preferredUpgradePackName) throws AmbariException {
+  public UpgradePack suggestUpgradePack(String clusterName,
+      StackId sourceStackId, StackId targetStackId, Direction direction, UpgradeType upgradeType,
+      String preferredUpgradePackName) throws AmbariException {
 
     // Find upgrade packs based on current stack. This is where to upgrade from
     Cluster cluster = m_clusters.get().getCluster(clusterName);
-    StackId stack =  cluster.getCurrentStackVersion();
+    StackId currentStack = cluster.getCurrentStackVersion();
 
-    String repoVersion = upgradeToVersion;
+    StackId stackForUpgradePack = sourceStackId;
 
-    // TODO AMBARI-12706. Here we need to check, how this would work with SWU Downgrade
-    if (direction.isDowngrade() && null != upgradeFromVersion) {
-      repoVersion = upgradeFromVersion;
+    if (direction.isDowngrade()) {
+      stackForUpgradePack = targetStackId;
     }
 
-    RepositoryVersionEntity versionEntity = m_repoVersionProvider.get().findByStackNameAndVersion(
-        stack.getStackName(), repoVersion);
-
-    if (versionEntity == null) {
-      throw new AmbariException(String.format("Repository version %s was not found", repoVersion));
-    }
+    Map<String, UpgradePack> packs = m_ambariMetaInfoProvider.get().getUpgradePacks(
+        currentStack.getStackName(), currentStack.getStackVersion());
 
-    Map<String, UpgradePack> packs = m_ambariMetaInfoProvider.get().getUpgradePacks(stack.getStackName(), stack.getStackVersion());
     UpgradePack pack = null;
 
     if (StringUtils.isNotEmpty(preferredUpgradePackName) && packs.containsKey(preferredUpgradePackName)) {
       pack = packs.get(preferredUpgradePackName);
-    } else {
-      String repoStackId = versionEntity.getStackId().getStackId();
+    }
+
+    // Best-attempt at picking an upgrade pack assuming within the same stack whose target stack version matches.
+    // If multiple candidates are found, raise an exception.
+    if (null == pack) {
       for (UpgradePack upgradePack : packs.values()) {
-        if (null != upgradePack.getTargetStack() && upgradePack.getTargetStack().equals(repoStackId) &&
-          upgradeType == upgradePack.getType()) {
+        if (null != upgradePack.getTargetStack()
+            && StringUtils.equals(upgradePack.getTargetStack(), stackForUpgradePack.getStackId())
+            && upgradeType == upgradePack.getType()) {
           if (null == pack) {
             // Pick the pack.
             pack = upgradePack;
           } else {
             throw new AmbariException(
-                String.format("Unable to perform %s. Found multiple upgrade packs for type %s and target version %s",
-                    direction.getText(false), upgradeType.toString(), repoVersion));
+                String.format(
+                    "Unable to perform %s. Found multiple upgrade packs for type %s and stack %s",
+                    direction.getText(false), upgradeType.toString(), stackForUpgradePack));
           }
         }
       }
     }
 
     if (null == pack) {
-      throw new AmbariException(String.format("Unable to perform %s. Could not locate %s upgrade pack for version %s",
-          direction.getText(false), upgradeType.toString(), repoVersion));
+      throw new AmbariException(
+          String.format("Unable to perform %s. Could not locate %s upgrade pack for stack %s",
+              direction.getText(false), upgradeType.toString(), stackForUpgradePack));
     }
 
    return pack;

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/AtlasPresenceCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/AtlasPresenceCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/AtlasPresenceCheckTest.java
index c833026..dca14ab 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/AtlasPresenceCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/AtlasPresenceCheckTest.java
@@ -17,12 +17,14 @@
  */
 package org.apache.ambari.server.checks;
 
+import static org.junit.Assert.assertEquals;
+
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
+import org.mockito.Mockito;
 
 
 public class AtlasPresenceCheckTest {
@@ -32,7 +34,7 @@ public class AtlasPresenceCheckTest {
   public void perform() throws Exception {
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.5.0.0");
+    request.setTargetRepositoryVersion(Mockito.mock(RepositoryVersionEntity.class));
     m_check.perform(check, request);
 
     assertEquals(PrereqCheckStatus.FAIL, check.getStatus());

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ClientRetryPropertyCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ClientRetryPropertyCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ClientRetryPropertyCheckTest.java
index c535978..85774bf 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ClientRetryPropertyCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ClientRetryPropertyCheckTest.java
@@ -22,11 +22,13 @@ import java.util.Map;
 
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Config;
 import org.apache.ambari.server.state.DesiredConfig;
 import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
@@ -44,6 +46,8 @@ public class ClientRetryPropertyCheckTest {
 
   private final ClientRetryPropertyCheck m_check = new ClientRetryPropertyCheck();
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   /**
    *
    */
@@ -58,6 +62,9 @@ public class ClientRetryPropertyCheckTest {
     };
     Configuration config = Mockito.mock(Configuration.class);
     m_check.config = config;
+
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.3.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.3"));
   }
 
   /**
@@ -69,11 +76,11 @@ public class ClientRetryPropertyCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     Mockito.when(cluster.getServices()).thenReturn(services);
 
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.3.0.0");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     // nothing installed
     Assert.assertFalse(m_check.isApplicable(request));
@@ -94,12 +101,12 @@ public class ClientRetryPropertyCheckTest {
 
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     Mockito.when(cluster.getServices()).thenReturn(services);
 
     final DesiredConfig desiredConfig = Mockito.mock(DesiredConfig.class);
     Mockito.when(desiredConfig.getTag()).thenReturn("tag");
-    Map<String, DesiredConfig> configMap = new HashMap<String, DesiredConfig>();
+    Map<String, DesiredConfig> configMap = new HashMap<>();
     configMap.put("hdfs-site", desiredConfig);
     configMap.put("hive-site", desiredConfig);
     configMap.put("oozie-env", desiredConfig);
@@ -107,7 +114,7 @@ public class ClientRetryPropertyCheckTest {
     Mockito.when(cluster.getDesiredConfigs()).thenReturn(configMap);
     final Config config = Mockito.mock(Config.class);
     Mockito.when(cluster.getConfig(Mockito.anyString(), Mockito.anyString())).thenReturn(config);
-    final Map<String, String> properties = new HashMap<String, String>();
+    final Map<String, String> properties = new HashMap<>();
     Mockito.when(config.getProperties()).thenReturn(properties);
 
     // Add HDFS

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentExistsInRepoCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentExistsInRepoCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentExistsInRepoCheckTest.java
index 76e8cc9..af28619 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentExistsInRepoCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentExistsInRepoCheckTest.java
@@ -26,6 +26,7 @@ import java.util.Map;
 import org.apache.ambari.server.StackAccessException;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.ComponentInfo;
@@ -92,6 +93,9 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
   @Mock
   private ServiceComponent m_zookeeperServer;
 
+  @Mock
+  private RepositoryVersionEntity m_repositoryVersion;
+
   @Before
   public void before() throws Exception {
 
@@ -131,6 +135,9 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
     expect(m_ambariMetaInfo.getComponent(TARGET_STACK.getStackName(),
         TARGET_STACK.getStackVersion(), "ZOOKEEPER", "ZOOKEEPER_SERVER")).andReturn(
             m_zookeeperServerInfo).anyTimes();
+
+    expect(m_repositoryVersion.getStackId()).andReturn(TARGET_STACK).anyTimes();
+    expect(m_repositoryVersion.getVersion()).andReturn("2.2.0").anyTimes();
   }
 
   /**
@@ -143,7 +150,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
     PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("ZOOKEEPER", m_zookeeperService);
     expect(m_zookeeperInfo.isValid()).andReturn(true).atLeastOnce();
@@ -172,7 +179,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
     PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("FOO_SERVICE", m_fooService);
 
@@ -208,7 +215,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
     PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("ZOOKEEPER", m_zookeeperService);
     expect(m_zookeeperInfo.isValid()).andReturn(true).atLeastOnce();
@@ -234,7 +241,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
     PrerequisiteCheck check = new PrerequisiteCheck(CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("ZOOKEEPER", m_zookeeperService);
     expect(m_zookeeperInfo.isValid()).andReturn(true).atLeastOnce();
@@ -263,7 +270,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
         CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("ZOOKEEPER", m_zookeeperService);
     CLUSTER_SERVICES.put("FOO_SERVICE", m_fooService);
@@ -297,7 +304,7 @@ public class ComponentExistsInRepoCheckTest extends EasyMockSupport {
         CheckDescription.COMPONENTS_EXIST_IN_TARGET_REPO, "c1");
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
     request.setSourceStackId(SOURCE_STACK);
-    request.setTargetStackId(TARGET_STACK);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     CLUSTER_SERVICES.put("FOO_SERVICE", m_fooService);
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentsInstallationCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentsInstallationCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentsInstallationCheckTest.java
index 450d74e..ef833b0 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentsInstallationCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ComponentsInstallationCheckTest.java
@@ -26,6 +26,7 @@ import java.util.Map;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.orm.models.HostComponentSummary;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
@@ -39,6 +40,7 @@ import org.apache.ambari.server.state.State;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
@@ -61,12 +63,22 @@ public class ComponentsInstallationCheckTest {
   private final Clusters clusters = Mockito.mock(Clusters.class);
   private AmbariMetaInfo ambariMetaInfo = Mockito.mock(AmbariMetaInfo.class);
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
+  /**
+   *
+   */
+  @Before
+  public void setup() {
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.2.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2"));
+  }
+
   @Test
   public void testIsApplicable() throws Exception {
     PrereqCheckRequest checkRequest = new PrereqCheckRequest("c1");
-    checkRequest.setRepositoryVersion("HDP-2.2.0.0");
     checkRequest.setSourceStackId(new StackId("HDP", "2.2"));
-    checkRequest.setTargetStackId(new StackId("HDP", "2.2"));
+    checkRequest.setTargetRepositoryVersion(m_repositoryVersion);
     ComponentsInstallationCheck cic = new ComponentsInstallationCheck();
     Configuration config = Mockito.mock(Configuration.class);
     cic.config = config;
@@ -106,7 +118,7 @@ public class ComponentsInstallationCheckTest {
     Mockito.when(tezService.getMaintenanceState()).thenReturn(MaintenanceState.OFF);
     Mockito.when(amsService.getMaintenanceState()).thenReturn(MaintenanceState.OFF);
 
-    HashMap<String, Service> clusterServices = new HashMap<String, Service>();
+    HashMap<String, Service> clusterServices = new HashMap<>();
     clusterServices.put("HDFS", hdfsService);
     clusterServices.put("TEZ", tezService);
     clusterServices.put("AMBARI_METRICS", amsService);
@@ -138,7 +150,7 @@ public class ComponentsInstallationCheckTest {
 
     // Put Components inside Services
     // HDFS
-    Map<String, ServiceComponent> hdfsComponents = new HashMap<String, ServiceComponent>();
+    Map<String, ServiceComponent> hdfsComponents = new HashMap<>();
 
     ServiceComponent nameNode = Mockito.mock(ServiceComponent.class);
     Mockito.when(nameNode.getName()).thenReturn("NAMENODE");
@@ -165,7 +177,7 @@ public class ComponentsInstallationCheckTest {
     Mockito.when(hdfsService.getServiceComponents()).thenReturn(hdfsComponents);
 
     // TEZ
-    Map<String, ServiceComponent> tezComponents = new HashMap<String, ServiceComponent>();
+    Map<String, ServiceComponent> tezComponents = new HashMap<>();
 
     ServiceComponent tezClient = Mockito.mock(ServiceComponent.class);
     Mockito.when(tezClient.getName()).thenReturn("TEZ_CLIENT");
@@ -177,7 +189,7 @@ public class ComponentsInstallationCheckTest {
     Mockito.when(tezService.getServiceComponents()).thenReturn(tezComponents);
 
     // AMS
-    Map<String, ServiceComponent> amsComponents = new HashMap<String, ServiceComponent>();
+    Map<String, ServiceComponent> amsComponents = new HashMap<>();
 
     ServiceComponent metricsCollector = Mockito.mock(ServiceComponent.class);
     Mockito.when(metricsCollector.getName()).thenReturn("METRICS_COLLECTOR");
@@ -203,7 +215,7 @@ public class ComponentsInstallationCheckTest {
     final HostComponentSummary hcsMetricsCollector = Mockito.mock(HostComponentSummary.class);
     final HostComponentSummary hcsMetricsMonitor = Mockito.mock(HostComponentSummary.class);
 
-    List<HostComponentSummary> allHostComponentSummaries = new ArrayList<HostComponentSummary>();
+    List<HostComponentSummary> allHostComponentSummaries = new ArrayList<>();
     allHostComponentSummaries.add(hcsNameNode);
     allHostComponentSummaries.add(hcsDataNode1);
     allHostComponentSummaries.add(hcsDataNode2);
@@ -213,7 +225,7 @@ public class ComponentsInstallationCheckTest {
     allHostComponentSummaries.add(hcsMetricsCollector);
     allHostComponentSummaries.add(hcsMetricsMonitor);
 
-    final Map<String, Host> hosts = new HashMap<String, Host>();
+    final Map<String, Host> hosts = new HashMap<>();
     final Host host1 = Mockito.mock(Host.class);
     final Host host2 = Mockito.mock(Host.class);
     final Host host3 = Mockito.mock(Host.class);

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ConfigurationMergeCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ConfigurationMergeCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ConfigurationMergeCheckTest.java
index 68a0522..df7bd1f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ConfigurationMergeCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ConfigurationMergeCheckTest.java
@@ -44,6 +44,7 @@ import org.easymock.EasyMock;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 import com.google.inject.Provider;
 //
@@ -57,10 +58,12 @@ public class ConfigurationMergeCheckTest {
   private static final String CONFIG_PROPERTY = "hdfs.property";
 
   private Clusters clusters = EasyMock.createMock(Clusters.class);
-  private Map<String, String> m_configMap = new HashMap<String, String>();
+  private Map<String, String> m_configMap = new HashMap<>();
 
   private static final StackId stackId_1_0 = new StackId("HDP-1.0");
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   @Before
   public void before() throws Exception {
     Cluster cluster = EasyMock.createMock(Cluster.class);
@@ -79,6 +82,9 @@ public class ConfigurationMergeCheckTest {
 
     expect(cluster.getDesiredConfigByType(CONFIG_TYPE)).andReturn(config).anyTimes();
 
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("1.1.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "1.1"));
+
     replay(clusters, cluster, config);
   }
 
@@ -86,7 +92,7 @@ public class ConfigurationMergeCheckTest {
   public void testApplicable() throws Exception {
 
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setTargetStackId(stackId_1_0);
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     ConfigurationMergeCheck cmc = new ConfigurationMergeCheck();
     Configuration config = EasyMock.createMock(Configuration.class);
@@ -102,7 +108,7 @@ public class ConfigurationMergeCheckTest {
 
     final RepositoryVersionDAO repositoryVersionDAO = EasyMock.createMock(RepositoryVersionDAO.class);
     expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", "1.0")).andReturn(createFor("1.0")).anyTimes();
-    expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", "1.1")).andReturn(createFor("1.1")).anyTimes();
+    expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", "1.1.0.0-1234")).andReturn(createFor("1.1")).anyTimes();
 
     replay(repositoryVersionDAO);
 
@@ -159,8 +165,7 @@ public class ConfigurationMergeCheckTest {
     replay(ami);
 
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setTargetStackId(stackId_1_0);
-    request.setRepositoryVersion("1.1");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, "cluster");
     cmc.perform(check, request);

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveDynamicServiceDiscoveryCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveDynamicServiceDiscoveryCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveDynamicServiceDiscoveryCheckTest.java
index cdf13eb..14fab7c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveDynamicServiceDiscoveryCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveDynamicServiceDiscoveryCheckTest.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Config;
@@ -45,6 +46,8 @@ public class HiveDynamicServiceDiscoveryCheckTest {
 
   private final HiveDynamicServiceDiscoveryCheck m_check = new HiveDynamicServiceDiscoveryCheck();
 
+  final RepositoryVersionEntity repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   /**
    *
    */
@@ -69,16 +72,16 @@ public class HiveDynamicServiceDiscoveryCheckTest {
 
     final DesiredConfig desiredConfig = Mockito.mock(DesiredConfig.class);
     Mockito.when(desiredConfig.getTag()).thenReturn("tag");
-    Map<String, DesiredConfig> configMap = new HashMap<String, DesiredConfig>();
+    Map<String, DesiredConfig> configMap = new HashMap<>();
     configMap.put("hive-site", desiredConfig);
 
     Mockito.when(cluster.getDesiredConfigs()).thenReturn(configMap);
     final Config config = Mockito.mock(Config.class);
     Mockito.when(cluster.getConfig(Mockito.anyString(), Mockito.anyString())).thenReturn(config);
-    final Map<String, String> properties = new HashMap<String, String>();
+    final Map<String, String> properties = new HashMap<>();
     Mockito.when(config.getProperties()).thenReturn(properties);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put("min-failure-stack-version","HDP-2.3.0.0");
     PrerequisiteCheckConfig prerequisiteCheckConfig = Mockito.mock(PrerequisiteCheckConfig.class);
     Mockito.when(prerequisiteCheckConfig.getCheckProperties(
@@ -90,25 +93,37 @@ public class HiveDynamicServiceDiscoveryCheckTest {
 
     // Check HDP-2.2.x => HDP-2.2.y
     request.setSourceStackId(new StackId("HDP-2.2.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.2.8.4"));
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("2.2.8.4");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     m_check.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
 
     // Check HDP-2.2.x => HDP-2.3.y
     request.setSourceStackId(new StackId("HDP-2.2.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.3.8.4"));
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("2.3.8.4");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.3.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     m_check.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 
     // Check HDP-2.3.x => HDP-2.3.y
     request.setSourceStackId(new StackId("HDP-2.3.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.3.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
     m_check.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 
     // Check HDP-2.3.x => HDP-2.4.y
     request.setSourceStackId(new StackId("HDP-2.3.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.4.8.4"));
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("2.4.8.4");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.4.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     m_check.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveMultipleMetastoreCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveMultipleMetastoreCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveMultipleMetastoreCheckTest.java
index 16f383a..5e7b1e5 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveMultipleMetastoreCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HiveMultipleMetastoreCheckTest.java
@@ -23,11 +23,13 @@ import java.util.Map;
 
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceComponentHost;
+import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
@@ -44,6 +46,8 @@ public class HiveMultipleMetastoreCheckTest {
   private final Clusters m_clusters = Mockito.mock(Clusters.class);
   private final HiveMultipleMetastoreCheck m_check = new HiveMultipleMetastoreCheck();
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   /**
    *
    */
@@ -58,6 +62,9 @@ public class HiveMultipleMetastoreCheckTest {
     };
     Configuration config = Mockito.mock(Configuration.class);
     m_check.config = config;
+
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("1.0.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "1.0"));
   }
 
   /**
@@ -71,13 +78,13 @@ public class HiveMultipleMetastoreCheckTest {
 
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     Mockito.when(cluster.getServices()).thenReturn(services);
 
     services.put("HDFS", Mockito.mock(Service.class));
 
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.3.0.0");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     // HIVE not installed
     Assert.assertFalse(m_check.isApplicable(request));
@@ -107,12 +114,12 @@ public class HiveMultipleMetastoreCheckTest {
 
     Mockito.when(hive.getServiceComponent("HIVE_METASTORE")).thenReturn(metastore);
 
-    Map<String, ServiceComponentHost> metastores = new HashMap<String, ServiceComponentHost>();
+    Map<String, ServiceComponentHost> metastores = new HashMap<>();
     Mockito.when(metastore.getServiceComponentHosts()).thenReturn(metastores);
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.3.0.0");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
     m_check.perform(check, request);
 
     Assert.assertEquals(PrereqCheckStatus.WARNING, check.getStatus());
@@ -129,10 +136,10 @@ public class HiveMultipleMetastoreCheckTest {
   @Test
   public void testPerformFail() throws Exception{
     final Cluster cluster = Mockito.mock(Cluster.class);
-    final LinkedHashSet<String> failedOnExpected = new LinkedHashSet<String>();
+    final LinkedHashSet<String> failedOnExpected = new LinkedHashSet<>();
     Service hive = Mockito.mock(Service.class);
     ServiceComponent metastore = Mockito.mock(ServiceComponent.class);
-    Map<String, ServiceComponentHost> metastores = new HashMap<String, ServiceComponentHost>();
+    Map<String, ServiceComponentHost> metastores = new HashMap<>();
 
     failedOnExpected.add("HIVE");
 
@@ -144,7 +151,7 @@ public class HiveMultipleMetastoreCheckTest {
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.3.0.0");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
     m_check.perform(check, request);
 
     Assert.assertEquals(PrereqCheckStatus.WARNING, check.getStatus());

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsHeartbeatCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsHeartbeatCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsHeartbeatCheckTest.java
index cc2c276..a15f9c1 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsHeartbeatCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsHeartbeatCheckTest.java
@@ -22,6 +22,7 @@ import java.util.List;
 
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Host;
@@ -32,6 +33,7 @@ import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -44,12 +46,22 @@ import com.google.inject.Provider;
 public class HostsHeartbeatCheckTest {
   private final Clusters clusters = Mockito.mock(Clusters.class);
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
+  /**
+   *
+   */
+  @Before
+  public void setup() {
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.2.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2"));
+  }
+
   @Test
   public void testIsApplicable() throws Exception {
     PrereqCheckRequest checkRequest = new PrereqCheckRequest("c1");
-    checkRequest.setRepositoryVersion("HDP-2.2.0.0");
     checkRequest.setSourceStackId(new StackId("HDP", "2.2"));
-    checkRequest.setTargetStackId(new StackId("HDP", "2.2"));
+    checkRequest.setTargetRepositoryVersion(m_repositoryVersion);
     HostsHeartbeatCheck hhc = new HostsHeartbeatCheck();
     Configuration config = Mockito.mock(Configuration.class);
     hhc.config = config;

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
index 9fcb319..e4901c7 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheckTest.java
@@ -24,6 +24,7 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
 import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Host;
@@ -51,19 +52,29 @@ public class HostsMasterMaintenanceCheckTest {
   private final RepositoryVersionHelper repositoryVersionHelper = Mockito.mock(RepositoryVersionHelper.class);
   private final AmbariMetaInfo ambariMetaInfo = Mockito.mock(AmbariMetaInfo.class);
 
+  final RepositoryVersionEntity repositoryVersion = Mockito.mock(
+      RepositoryVersionEntity.class);
+
   @Test
   public void testIsApplicable() throws Exception {
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("1.0.0.0-1234");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "1.0"));
+
     final PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("not null");
+    request.setTargetRepositoryVersion(repositoryVersion);
     HostsMasterMaintenanceCheck hmmc = new HostsMasterMaintenanceCheck();
     Configuration config = Mockito.mock(Configuration.class);
     hmmc.config = config;
     Assert.assertTrue(hmmc.isApplicable(request));
     Assert.assertTrue(new HostsMasterMaintenanceCheck().isApplicable(request));
+
     HostsMasterMaintenanceCheck hmmc2 = new HostsMasterMaintenanceCheck();
     hmmc2.config = config;
     Assert.assertTrue(hmmc2.isApplicable(request));
-    request.setRepositoryVersion(null);
+    request.setTargetRepositoryVersion(repositoryVersion);
+
+    // reset the mock
+    Mockito.reset(repositoryVersion);
 
     hmmc2.config = config;
     Assert.assertFalse(hmmc2.isApplicable(request));
@@ -71,6 +82,9 @@ public class HostsMasterMaintenanceCheckTest {
 
   @Test
   public void testPerform() throws Exception {
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("1.0.0.0-1234");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "1.0"));
+
     final String upgradePackName = "upgrade_pack";
     final HostsMasterMaintenanceCheck hostsMasterMaintenanceCheck = new HostsMasterMaintenanceCheck();
     hostsMasterMaintenanceCheck.clustersProvider = new Provider<Clusters>() {
@@ -106,17 +120,23 @@ public class HostsMasterMaintenanceCheckTest {
     Mockito.when(repositoryVersionHelper.getUpgradePackageName(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), (UpgradeType) Mockito.anyObject())).thenReturn(null);
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
-    hostsMasterMaintenanceCheck.perform(check, new PrereqCheckRequest("cluster"));
+    PrereqCheckRequest checkRequest = new PrereqCheckRequest("cluster");
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
+
+    hostsMasterMaintenanceCheck.perform(check, checkRequest);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 
     Mockito.when(repositoryVersionHelper.getUpgradePackageName(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), (UpgradeType) Mockito.anyObject())).thenReturn(upgradePackName);
     Mockito.when(ambariMetaInfo.getUpgradePacks(Mockito.anyString(), Mockito.anyString())).thenReturn(new HashMap<String, UpgradePack>());
 
     check = new PrerequisiteCheck(null, null);
-    hostsMasterMaintenanceCheck.perform(check, new PrereqCheckRequest("cluster"));
+    checkRequest = new PrereqCheckRequest("cluster");
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
+
+    hostsMasterMaintenanceCheck.perform(check, checkRequest);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 
-    final Map<String, UpgradePack> upgradePacks = new HashMap<String, UpgradePack>();
+    final Map<String, UpgradePack> upgradePacks = new HashMap<>();
     final UpgradePack upgradePack = Mockito.mock(UpgradePack.class);
     Mockito.when(upgradePack.getName()).thenReturn(upgradePackName);
     upgradePacks.put(upgradePack.getName(), upgradePack);
@@ -126,7 +146,10 @@ public class HostsMasterMaintenanceCheckTest {
     Mockito.when(clusters.getHostsForCluster(Mockito.anyString())).thenReturn(new HashMap<String, Host>());
 
     check = new PrerequisiteCheck(null, null);
-    hostsMasterMaintenanceCheck.perform(check, new PrereqCheckRequest("cluster"));
+    checkRequest = new PrereqCheckRequest("cluster");
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
+
+    hostsMasterMaintenanceCheck.perform(check, checkRequest);
     Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus());
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
index 433eee1..67e8dfa 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheckTest.java
@@ -37,6 +37,7 @@ import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -51,10 +52,18 @@ public class HostsRepositoryVersionCheckTest {
   private final HostVersionDAO hostVersionDAO = Mockito.mock(HostVersionDAO.class);
   private final RepositoryVersionDAO repositoryVersionDAO = Mockito.mock(RepositoryVersionDAO.class);
 
+  final RepositoryVersionEntity repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
+  @Before
+  public void setup() {
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("1.0.0.0-1234");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "1.0"));
+  }
+
   @Test
   public void testIsApplicable() throws Exception {
     final PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("not null");
+    request.setTargetRepositoryVersion(repositoryVersion);
     HostsRepositoryVersionCheck hrvc = new HostsRepositoryVersionCheck();
     Configuration config = Mockito.mock(Configuration.class);
     hrvc.config = config;
@@ -63,7 +72,9 @@ public class HostsRepositoryVersionCheckTest {
     HostsRepositoryVersionCheck hrvc2 = new HostsRepositoryVersionCheck();
     hrvc2.config = config;
     Assert.assertTrue(hrvc2.isApplicable(request));
-    request.setRepositoryVersion(null);
+
+    Mockito.reset(repositoryVersion);
+    request.setTargetRepositoryVersion(repositoryVersion);
 
     HostsMasterMaintenanceCheck hmmc2 = new HostsMasterMaintenanceCheck();
     hmmc2.config = config;
@@ -97,7 +108,7 @@ public class HostsRepositoryVersionCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(cluster.getDesiredStackVersion()).thenReturn(new StackId());
     Mockito.when(clusters.getCluster("cluster")).thenReturn(cluster);
-    final Map<String, Host> hosts = new HashMap<String, Host>();
+    final Map<String, Host> hosts = new HashMap<>();
     final Host host1 = Mockito.mock(Host.class);
     final Host host2 = Mockito.mock(Host.class);
     final Host host3 = Mockito.mock(Host.class);
@@ -119,7 +130,10 @@ public class HostsRepositoryVersionCheckTest {
         null);
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
-    hostsRepositoryVersionCheck.perform(check, new PrereqCheckRequest("cluster"));
+    PrereqCheckRequest checkRequest = new PrereqCheckRequest("cluster");
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
+
+    hostsRepositoryVersionCheck.perform(check, checkRequest);
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
 
     StackEntity stackEntity = new StackEntity();
@@ -146,7 +160,10 @@ public class HostsRepositoryVersionCheckTest {
             Mockito.anyString())).thenReturn(hostVersion);
 
     check = new PrerequisiteCheck(null, null);
-    hostsRepositoryVersionCheck.perform(check, new PrereqCheckRequest("cluster"));
+    checkRequest = new PrereqCheckRequest("cluster");
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
+
+    hostsRepositoryVersionCheck.perform(check, checkRequest);
     Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus());
   }
 
@@ -177,7 +194,7 @@ public class HostsRepositoryVersionCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(cluster.getDesiredStackVersion()).thenReturn(new StackId());
     Mockito.when(clusters.getCluster("cluster")).thenReturn(cluster);
-    final Map<String, Host> hosts = new HashMap<String, Host>();
+    final Map<String, Host> hosts = new HashMap<>();
     final Host host1 = Mockito.mock(Host.class);
     final Host host2 = Mockito.mock(Host.class);
     final Host host3 = Mockito.mock(Host.class);
@@ -189,11 +206,8 @@ public class HostsRepositoryVersionCheckTest {
     hosts.put("host3", host3);
     Mockito.when(clusters.getHostsForCluster("cluster")).thenReturn(hosts);
 
-    RepositoryVersionEntity rve = new RepositoryVersionEntity();
-    rve.setVersion("1.1.1");
-
     HostVersionEntity hve = new HostVersionEntity();
-    hve.setRepositoryVersion(rve);
+    hve.setRepositoryVersion(repositoryVersion);
     hve.setState(RepositoryVersionState.INSTALLED);
 
     Mockito.when(
@@ -202,7 +216,8 @@ public class HostsRepositoryVersionCheckTest {
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("1.1.1");
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     hostsRepositoryVersionCheck.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus());
   }
@@ -234,7 +249,7 @@ public class HostsRepositoryVersionCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(cluster.getDesiredStackVersion()).thenReturn(new StackId());
     Mockito.when(clusters.getCluster("cluster")).thenReturn(cluster);
-    final Map<String, Host> hosts = new HashMap<String, Host>();
+    final Map<String, Host> hosts = new HashMap<>();
     final Host host1 = Mockito.mock(Host.class);
     final Host host2 = Mockito.mock(Host.class);
     final Host host3 = Mockito.mock(Host.class);
@@ -246,11 +261,8 @@ public class HostsRepositoryVersionCheckTest {
     hosts.put("host3", host3);
     Mockito.when(clusters.getHostsForCluster("cluster")).thenReturn(hosts);
 
-    RepositoryVersionEntity rve = new RepositoryVersionEntity();
-    rve.setVersion("1.1.1");
-
     HostVersionEntity hve = new HostVersionEntity();
-    hve.setRepositoryVersion(rve);
+    hve.setRepositoryVersion(repositoryVersion);
     hve.setState(RepositoryVersionState.NOT_REQUIRED);
 
     Mockito.when(
@@ -259,7 +271,7 @@ public class HostsRepositoryVersionCheckTest {
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("1.1.1");
+    request.setTargetRepositoryVersion(repositoryVersion);
     hostsRepositoryVersionCheck.perform(check, request);
     Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus());
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/InstallPackagesCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/InstallPackagesCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/InstallPackagesCheckTest.java
index 986a0f1..9d623ec 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/InstallPackagesCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/InstallPackagesCheckTest.java
@@ -39,6 +39,7 @@ import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
@@ -65,12 +66,22 @@ public class InstallPackagesCheckTest {
   private String repositoryVersion = "2.2.6.0-1234";
   private String clusterName = "cluster";
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
+  /**
+   *
+   */
+  @Before
+  public void setup() {
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn(repositoryVersion);
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(targetStackId);
+  }
+
   @Test
   public void testIsApplicable() throws Exception {
     PrereqCheckRequest checkRequest = new PrereqCheckRequest(clusterName);
-    checkRequest.setRepositoryVersion(repositoryVersion);
     checkRequest.setSourceStackId(sourceStackId);
-    checkRequest.setTargetStackId(targetStackId);
+    checkRequest.setTargetRepositoryVersion(m_repositoryVersion);
     InstallPackagesCheck ipc = new InstallPackagesCheck();
     Configuration config = Mockito.mock(Configuration.class);
     ipc.config = config;
@@ -144,9 +155,8 @@ public class InstallPackagesCheckTest {
     Mockito.when(cluster.getHosts()).thenReturn(hosts);
 
     PrereqCheckRequest checkRequest = new PrereqCheckRequest(clusterName);
-    checkRequest.setRepositoryVersion(repositoryVersion);
     checkRequest.setSourceStackId(sourceStackId);
-    checkRequest.setTargetStackId(targetStackId);
+    checkRequest.setTargetRepositoryVersion(m_repositoryVersion);
 
     // Case 1. Initialize with good values
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/MapReduce2JobHistoryStatePreservingCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/MapReduce2JobHistoryStatePreservingCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/MapReduce2JobHistoryStatePreservingCheckTest.java
index efcf3de..a232f77 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/MapReduce2JobHistoryStatePreservingCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/MapReduce2JobHistoryStatePreservingCheckTest.java
@@ -49,6 +49,8 @@ public class MapReduce2JobHistoryStatePreservingCheckTest {
 
   private final MapReduce2JobHistoryStatePreservingCheck m_check = new MapReduce2JobHistoryStatePreservingCheck();
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   /**
    *
    */
@@ -75,6 +77,9 @@ public class MapReduce2JobHistoryStatePreservingCheckTest {
     RepositoryVersionEntity rve = Mockito.mock(RepositoryVersionEntity.class);
     Mockito.when(rve.getType()).thenReturn(RepositoryType.STANDARD);
     Mockito.when(m_repositoryVersionDao.findByStackNameAndVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(rve);
+
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.3.1.1-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.3"));
   }
 
   /**
@@ -91,8 +96,8 @@ public class MapReduce2JobHistoryStatePreservingCheckTest {
     Mockito.when(cluster.getServices()).thenReturn(services);
 
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setTargetStackId(new StackId("HDP", "2.3.1.1"));
     request.setSourceStackId(new StackId("HDP", "2.3.0.0"));
+    request.setTargetRepositoryVersion(m_repositoryVersion);
 
     // MAPREDUCE2 not installed
     Assert.assertFalse(m_check.isApplicable(request));

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/PreviousUpgradeCompletedTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/PreviousUpgradeCompletedTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/PreviousUpgradeCompletedTest.java
index 3233e55..a6bdc96 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/PreviousUpgradeCompletedTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/PreviousUpgradeCompletedTest.java
@@ -44,7 +44,6 @@ public class PreviousUpgradeCompletedTest {
   private final Cluster cluster = Mockito.mock(Cluster.class);
   private StackId sourceStackId = new StackId("HDP", "2.2");
   private StackId targetStackId = new StackId("HDP", "2.2");
-  private String sourceRepositoryVersion = "2.2.6.0-1234";
   private String destRepositoryVersion = "2.2.8.0-5678";
   private String clusterName = "cluster";
   private PrereqCheckRequest checkRequest = new PrereqCheckRequest(clusterName);
@@ -67,9 +66,12 @@ public class PreviousUpgradeCompletedTest {
     stack.setStackName(stackId.getStackName());
     stack.setStackVersion(stackId.getStackVersion());
 
-    checkRequest.setRepositoryVersion(sourceRepositoryVersion);
+    toRepsitoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+    Mockito.when(toRepsitoryVersion.getVersion()).thenReturn(destRepositoryVersion);
+    Mockito.when(toRepsitoryVersion.getStackId()).thenReturn(targetStackId);
+
     checkRequest.setSourceStackId(sourceStackId);
-    checkRequest.setTargetStackId(targetStackId);
+    checkRequest.setTargetRepositoryVersion(toRepsitoryVersion);
 
     puc.clustersProvider = new Provider<Clusters>() {
       @Override
@@ -77,9 +79,6 @@ public class PreviousUpgradeCompletedTest {
         return clusters;
       }
     };
-
-    toRepsitoryVersion = Mockito.mock(RepositoryVersionEntity.class);
-    Mockito.when(toRepsitoryVersion.getVersion()).thenReturn(destRepositoryVersion);
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicePresenceCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicePresenceCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicePresenceCheckTest.java
index 03b0e81..ae8b5c24 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicePresenceCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicePresenceCheckTest.java
@@ -21,9 +21,11 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.apache.ambari.server.state.stack.UpgradePack.PrerequisiteCheckConfig;
@@ -42,6 +44,8 @@ public class ServicePresenceCheckTest {
 
   private final ServicePresenceCheck m_check = new ServicePresenceCheck();
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
   /**
    *
    */
@@ -54,6 +58,9 @@ public class ServicePresenceCheckTest {
         return m_clusters;
       }
     };
+
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.5.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.5"));
   }
 
   @Test
@@ -62,7 +69,7 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.NO_UPGRADE_SUPPORT_SERVICES_PROPERTY_NAME,"MyServiceOne, MyServiceTwo");
     checkProperties.put(ServicePresenceCheck.REMOVED_SERVICES_PROPERTY_NAME,"OldServiceOne, OldServiceTwo");
     checkProperties.put(ServicePresenceCheck.NEW_SERVICES_PROPERTY_NAME,"NewServiceOne, NewServiceTwo");
@@ -73,7 +80,7 @@ public class ServicePresenceCheckTest {
 
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     PrereqCheckRequest request = new PrereqCheckRequest("cluster");
-    request.setRepositoryVersion("2.5.0.0");
+    request.setTargetRepositoryVersion(m_repositoryVersion);
     request.setPrerequisiteCheckConfig(prerequisiteCheckConfig);
 
     m_check.perform(check, request);
@@ -86,11 +93,11 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     services.put("ATLAS", Mockito.mock(Service.class));
     Mockito.when(cluster.getServices()).thenReturn(services);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.NO_UPGRADE_SUPPORT_SERVICES_PROPERTY_NAME,"Atlas, MyService");
     PrerequisiteCheckConfig prerequisiteCheckConfig = Mockito.mock(PrerequisiteCheckConfig.class);
     Mockito.when(prerequisiteCheckConfig.getCheckProperties(
@@ -110,12 +117,12 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     services.put("ATLAS", Mockito.mock(Service.class));
     services.put("OLDSERVICE", Mockito.mock(Service.class));
     Mockito.when(cluster.getServices()).thenReturn(services);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.REMOVED_SERVICES_PROPERTY_NAME,"Atlas, OldService");
     checkProperties.put(ServicePresenceCheck.NEW_SERVICES_PROPERTY_NAME,"Atlas2, NewService");
 
@@ -137,11 +144,11 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     services.put("ATLAS", Mockito.mock(Service.class));
     Mockito.when(cluster.getServices()).thenReturn(services);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.NO_UPGRADE_SUPPORT_SERVICES_PROPERTY_NAME,"MyServiceOne, MyServiceTwo");
     checkProperties.put(ServicePresenceCheck.REMOVED_SERVICES_PROPERTY_NAME,"Atlas, OldService");
     checkProperties.put(ServicePresenceCheck.NEW_SERVICES_PROPERTY_NAME,"Atlas2, NewService");
@@ -164,11 +171,11 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     services.put("OLDSERVICE", Mockito.mock(Service.class));
     Mockito.when(cluster.getServices()).thenReturn(services);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.NO_UPGRADE_SUPPORT_SERVICES_PROPERTY_NAME,"Atlas, MyService");
     checkProperties.put(ServicePresenceCheck.REMOVED_SERVICES_PROPERTY_NAME,"OldService");
     checkProperties.put(ServicePresenceCheck.NEW_SERVICES_PROPERTY_NAME,"NewService");
@@ -191,14 +198,14 @@ public class ServicePresenceCheckTest {
     Mockito.when(cluster.getClusterId()).thenReturn(1L);
     Mockito.when(m_clusters.getCluster("cluster")).thenReturn(cluster);
 
-    Map<String, Service> services = new HashMap<String, Service>();
+    Map<String, Service> services = new HashMap<>();
     services.put("ATLAS", Mockito.mock(Service.class));
     services.put("HDFS", Mockito.mock(Service.class));
     services.put("STORM", Mockito.mock(Service.class));
     services.put("RANGER", Mockito.mock(Service.class));
     Mockito.when(cluster.getServices()).thenReturn(services);
 
-    Map<String, String> checkProperties = new HashMap<String, String>();
+    Map<String, String> checkProperties = new HashMap<>();
     checkProperties.put(ServicePresenceCheck.NO_UPGRADE_SUPPORT_SERVICES_PROPERTY_NAME,"Atlas, HDFS");
     checkProperties.put(ServicePresenceCheck.REMOVED_SERVICES_PROPERTY_NAME,"Storm, Ranger");
     checkProperties.put(ServicePresenceCheck.NEW_SERVICES_PROPERTY_NAME,"Storm2, Ranger2");

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
index a941b7a..636cafe 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Service;
@@ -30,6 +31,7 @@ import org.apache.ambari.server.state.State;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -42,12 +44,22 @@ import com.google.inject.Provider;
 public class ServicesMaintenanceModeCheckTest {
   private final Clusters clusters = Mockito.mock(Clusters.class);
 
+  final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
+
+  /**
+   *
+   */
+  @Before
+  public void setup() {
+    Mockito.when(m_repositoryVersion.getVersion()).thenReturn("2.2.0.0-1234");
+    Mockito.when(m_repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2"));
+  }
+
   @Test
   public void testIsApplicable() throws Exception {
     PrereqCheckRequest checkRequest = new PrereqCheckRequest("c1");
-    checkRequest.setRepositoryVersion("HDP-2.2.0.0");
     checkRequest.setSourceStackId(new StackId("HDP", "2.2"));
-    checkRequest.setTargetStackId(new StackId("HDP", "2.2"));
+    checkRequest.setTargetRepositoryVersion(m_repositoryVersion);
 
     ServicesMaintenanceModeCheck smmc = new ServicesMaintenanceModeCheck();
     Configuration config = Mockito.mock(Configuration.class);

http://git-wip-us.apache.org/repos/asf/ambari/blob/eb598e85/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesNamenodeTruncateCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesNamenodeTruncateCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesNamenodeTruncateCheckTest.java
index 87d4167..cd0d4fb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesNamenodeTruncateCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesNamenodeTruncateCheckTest.java
@@ -27,6 +27,7 @@ import java.util.Map;
 
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Config;
@@ -34,14 +35,13 @@ import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.stack.PrereqCheckStatus;
 import org.apache.ambari.server.state.stack.PrerequisiteCheck;
-import org.apache.ambari.server.state.stack.UpgradePack.PrerequisiteCheckConfig;
 import org.easymock.EasyMock;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 import com.google.inject.Provider;
-import org.mockito.Mockito;
 
 /**
  * Unit tests for ServicesNamenodeTruncateCheck
@@ -51,7 +51,9 @@ public class ServicesNamenodeTruncateCheckTest {
 
   private Clusters m_clusters = EasyMock.createMock(Clusters.class);
   private ServicesNamenodeTruncateCheck m_check = new ServicesNamenodeTruncateCheck();
-  private final Map<String, String> m_configMap = new HashMap<String, String>();
+  private final Map<String, String> m_configMap = new HashMap<>();
+
+  final RepositoryVersionEntity repositoryVersion = Mockito.mock(RepositoryVersionEntity.class);
 
   @Before
   public void setup() throws Exception {
@@ -81,6 +83,9 @@ public class ServicesNamenodeTruncateCheckTest {
         return m_clusters;
       }
     };
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("HDP-2.2.0.0");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2.0"));
   }
 
 
@@ -88,9 +93,8 @@ public class ServicesNamenodeTruncateCheckTest {
   public void testIsApplicable() throws Exception {
 
     PrereqCheckRequest checkRequest = new PrereqCheckRequest("c1");
-    checkRequest.setRepositoryVersion("HDP-2.2.0.0");
     checkRequest.setSourceStackId(new StackId("HDP", "2.2"));
-    checkRequest.setTargetStackId(new StackId("HDP", "2.2"));
+    checkRequest.setTargetRepositoryVersion(repositoryVersion);
 
     Assert.assertTrue(m_check.isApplicable(checkRequest));
   }
@@ -105,7 +109,11 @@ public class ServicesNamenodeTruncateCheckTest {
     // Check HDP-2.2.x => HDP-2.2.y is FAIL
     m_configMap.put("dfs.allow.truncate", "true");
     request.setSourceStackId(new StackId("HDP-2.2.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.2.8.4"));
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("2.2.8.4");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     check = new PrerequisiteCheck(null, null);
     m_check.perform(check, request);
     assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
@@ -118,7 +126,11 @@ public class ServicesNamenodeTruncateCheckTest {
     // Check HDP-2.2.x => HDP-2.3.y is FAIL
     m_configMap.put("dfs.allow.truncate", "true");
     request.setSourceStackId(new StackId("HDP-2.2.4.2"));
-    request.setTargetStackId(new StackId("HDP-2.3.8.4"));
+
+    Mockito.when(repositoryVersion.getVersion()).thenReturn("2.3.8.4");
+    Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.3.8.4"));
+    request.setTargetRepositoryVersion(repositoryVersion);
+
     check = new PrerequisiteCheck(null, null);
     m_check.perform(check, request);
     assertEquals(PrereqCheckStatus.FAIL, check.getStatus());