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/d77bde7f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d77bde7f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d77bde7f Branch: refs/heads/branch-feature-AMBARI-12556 Commit: d77bde7fde932529dca524bf7112dd64f5c56b4d Parents: eca5599 Author: Jonathan Hurley <[email protected]> Authored: Fri Jul 21 14:55:49 2017 -0400 Committer: Jonathan Hurley <[email protected]> Committed: Fri Jul 21 23:44:39 2017 -0400 ---------------------------------------------------------------------- .../server/controller/PrereqCheckRequest.java | 28 ++++---- .../PreUpgradeCheckResourceProvider.java | 70 ++++++++++++-------- .../ambari/server/state/UpgradeContext.java | 15 ++--- .../ambari/server/state/UpgradeHelper.java | 59 ++++++++--------- .../checks/AbstractCheckDescriptorTest.java | 11 ++- .../server/checks/AtlasPresenceCheckTest.java | 4 +- .../checks/ClientRetryPropertyCheckTest.java | 22 +++++- .../checks/ComponentsInstallationCheckTest.java | 16 ++++- .../checks/ConfigurationMergeCheckTest.java | 13 ++-- .../HiveDynamicServiceDiscoveryCheckTest.java | 23 +++++-- .../checks/HiveMultipleMetastoreCheckTest.java | 26 +++++++- .../server/checks/HostsHeartbeatCheckTest.java | 16 ++++- .../checks/HostsMasterMaintenanceCheckTest.java | 27 +++++++- .../checks/HostsRepositoryVersionCheckTest.java | 40 +++++++---- .../server/checks/InstallPackagesCheckTest.java | 18 +++-- ...duce2JobHistoryStatePreservingCheckTest.java | 7 +- .../checks/PreviousUpgradeCompletedTest.java | 11 ++- .../server/checks/ServicePresenceCheckTest.java | 13 +++- .../ServicesMaintenanceModeCheckTest.java | 16 ++++- .../ServicesNamenodeTruncateCheckTest.java | 19 ++++-- .../server/checks/ServicesUpCheckTest.java | 17 ++++- ...nTimelineServerStatePreservingCheckTest.java | 7 +- .../PreUpgradeCheckResourceProviderTest.java | 6 +- .../ambari/server/state/UpgradeHelperTest.java | 14 ++-- 24 files changed, 349 insertions(+), 149 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 c8c9f9e..bd207ae 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,11 @@ public class PrereqCheckRequest { } public String getRepositoryVersion() { - return m_repositoryVersion; - } + if (null == m_targetRepositoryVersion) { + return null; + } - public void setRepositoryVersion(String repositoryVersion) { - m_repositoryVersion = repositoryVersion; + return m_targetRepositoryVersion.getVersion(); } /** @@ -115,17 +115,21 @@ public class PrereqCheckRequest { * @return the targetStackId */ public StackId getTargetStackId() { - return m_targetStackId; + if (null == m_targetRepositoryVersion) { + return null; + } + + 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/d77bde7f/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 ea8fb37..24a55c1 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,11 +47,13 @@ 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.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,20 +70,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"); @Inject private static Provider<Clusters> clustersProvider; @@ -113,8 +116,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_UPGRADE_PACK_PROPERTY_ID, - UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID); + UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID, + UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID); @SuppressWarnings("serial") @@ -134,6 +137,7 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider { super(propertyIds, keyPropertyIds, managementController); } + @Override public Set<Resource> getResources(Request request, Predicate predicate) throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException { @@ -161,19 +165,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 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); //ambariMetaInfo.getStack(stackName, cluster.getCurrentStackVersion().getStackVersion()).getUpgradePacks() // TODO AMBARI-12698, filter the upgrade checks to run based on the stack and upgrade type, or the upgrade pack. @@ -182,8 +192,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); } @@ -199,11 +210,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) { @@ -221,9 +234,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/d77bde7f/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 1695bd3..0e02c77 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 @@ -353,12 +353,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); @@ -955,16 +955,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_UPGRADE_TYPE_PROPERTY_ID).equals(type).and().property( PreUpgradeCheckResourceProvider.UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID).equals(preferredUpgradePack).toPredicate(); @@ -1122,4 +1119,4 @@ public class UpgradeContext { return hostOrderItems; } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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/d77bde7f/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java index 01cda02..9fbd012 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/AbstractCheckDescriptorTest.java @@ -17,6 +17,7 @@ */ package org.apache.ambari.server.checks; +import static org.easymock.EasyMock.anyLong; import static org.easymock.EasyMock.anyString; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; @@ -229,16 +230,20 @@ public class AbstractCheckDescriptorTest { VersionDefinitionXml repoXml = EasyMock.createMock(VersionDefinitionXml.class); expect(repoVersion.getType()).andReturn(RepositoryType.PATCH).atLeastOnce(); expect(repoVersion.getRepositoryXml()).andReturn(repoXml).atLeastOnce(); + expect(repoVersion.getStackId()).andReturn(new StackId("HDP-2.5")).atLeastOnce(); + expect(repoVersion.getVersion()).andReturn("2.5.0.0-1234").atLeastOnce(); expect(repoXml.getAvailableServiceNames()).andReturn(Collections.singleton("SERVICE2")).atLeastOnce(); - expect(repositoryVersionDao.findByStackNameAndVersion( - anyString(), anyString())).andReturn(repoVersion).atLeastOnce(); + expect(repositoryVersionDao.findByPK(anyLong())).andReturn(repoVersion).atLeastOnce(); + + expect(repositoryVersionDao.findByStackNameAndVersion(anyString(), anyString())).andReturn( + repoVersion).atLeastOnce(); replay(clusters, cluster, repositoryVersionDao, repoVersion, repoXml); AbstractCheckDescriptor check = new TestCheckImpl(PrereqCheckType.SERVICE); PrereqCheckRequest request = new PrereqCheckRequest(clusterName, UpgradeType.ROLLING); - request.setTargetStackId(new StackId("HDP-2.5")); + request.setTargetRepositoryVersion(repoVersion); List<String> allServicesList = Arrays.asList("SERVICE1", "SERVICE2"); http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 6cb4e2e..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 @@ -20,9 +20,11 @@ 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 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/d77bde7f/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 05a3c11..46a00b8 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,14 @@ import java.util.Map; 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.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 +47,10 @@ public class ClientRetryPropertyCheckTest { private final ClientRetryPropertyCheck m_check = new ClientRetryPropertyCheck(); + final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class); + private final RepositoryVersionDAO repositoryVersionDAO = Mockito.mock( + RepositoryVersionDAO.class); + /** * */ @@ -58,6 +65,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")); } /** @@ -73,11 +83,21 @@ public class ClientRetryPropertyCheckTest { 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)); + m_check.repositoryVersionDaoProvider = new Provider<RepositoryVersionDAO>() { + @Override + public RepositoryVersionDAO get() { + return repositoryVersionDAO; + } + }; + + Mockito.when(repositoryVersionDAO.findByStackNameAndVersion(Mockito.anyString(), + Mockito.anyString())).thenReturn(m_repositoryVersion); + // HDFS installed services.put("HDFS", Mockito.mock(Service.class)); Assert.assertTrue(m_check.isApplicable(request)); http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 7cdd121..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; http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 1e0405b..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; // @@ -61,6 +62,8 @@ public class ConfigurationMergeCheckTest { 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/d77bde7f/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 15e3c6d..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); + /** * */ @@ -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/d77bde7f/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 dafc15f..7a6748b 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,14 @@ import java.util.Map; 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.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; @@ -43,6 +46,10 @@ import com.google.inject.Provider; public class HiveMultipleMetastoreCheckTest { private final Clusters m_clusters = Mockito.mock(Clusters.class); private final HiveMultipleMetastoreCheck m_check = new HiveMultipleMetastoreCheck(); + private final RepositoryVersionDAO repositoryVersionDAO = Mockito.mock( + RepositoryVersionDAO.class); + + final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class); /** * @@ -58,6 +65,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")); } /** @@ -77,7 +87,7 @@ public class HiveMultipleMetastoreCheckTest { 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)); @@ -85,6 +95,16 @@ public class HiveMultipleMetastoreCheckTest { // install HIVE services.put("HIVE", Mockito.mock(Service.class)); + m_check.repositoryVersionDaoProvider = new Provider<RepositoryVersionDAO>() { + @Override + public RepositoryVersionDAO get() { + return repositoryVersionDAO; + } + }; + + Mockito.when(repositoryVersionDAO.findByStackNameAndVersion(Mockito.anyString(), + Mockito.anyString())).thenReturn(m_repositoryVersion); + // HIVE installed Assert.assertTrue(m_check.isApplicable(request)); } @@ -112,7 +132,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()); @@ -144,7 +164,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/d77bde7f/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/d77bde7f/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 1e87146..6399166 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>() { @@ -108,6 +122,7 @@ public class HostsMasterMaintenanceCheckTest { PrerequisiteCheck check = new PrerequisiteCheck(null, null); PrereqCheckRequest request = new PrereqCheckRequest("cluster"); request.setSourceStackId(new StackId("HDP-1.0")); + request.setTargetRepositoryVersion(repositoryVersion); hostsMasterMaintenanceCheck.perform(check, request); Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus()); @@ -115,6 +130,10 @@ public class HostsMasterMaintenanceCheckTest { Mockito.when(ambariMetaInfo.getUpgradePacks(Mockito.anyString(), Mockito.anyString())).thenReturn(new HashMap<String, UpgradePack>()); check = new PrerequisiteCheck(null, null); + request = new PrereqCheckRequest("cluster"); + request.setSourceStackId(new StackId("HDP-1.0")); + request.setTargetRepositoryVersion(repositoryVersion); + hostsMasterMaintenanceCheck.perform(check, request); Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus()); @@ -128,6 +147,10 @@ public class HostsMasterMaintenanceCheckTest { Mockito.when(clusters.getHostsForCluster(Mockito.anyString())).thenReturn(new HashMap<String, Host>()); check = new PrerequisiteCheck(null, null); + request = new PrereqCheckRequest("cluster"); + request.setSourceStackId(new StackId("HDP-1.0")); + request.setTargetRepositoryVersion(repositoryVersion); + hostsMasterMaintenanceCheck.perform(check, request); Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 4446cc4..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; @@ -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()); } @@ -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()); } @@ -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/d77bde7f/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/d77bde7f/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 016bdd08..32ecc26 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/d77bde7f/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/d77bde7f/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 ed2fcb9..55c622e 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 @@ -74,7 +81,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); @@ -138,12 +145,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,"OldService"); PrerequisiteCheckConfig prerequisiteCheckConfig = Mockito.mock(PrerequisiteCheckConfig.class); http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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/d77bde7f/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 ca71e3f..d0aad2f 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 @@ -56,6 +56,8 @@ public class ServicesNamenodeTruncateCheckTest { private final Map<String, String> m_configMap = new HashMap<>(); private RepositoryVersionDAO m_repositoryVersionDAO = EasyMock.createMock(RepositoryVersionDAO.class); + final RepositoryVersionEntity repositoryVersion = Mockito.mock(RepositoryVersionEntity.class); + @Before public void setup() throws Exception { Cluster cluster = EasyMock.createMock(Cluster.class); @@ -97,6 +99,8 @@ public class ServicesNamenodeTruncateCheckTest { expect(m_repositoryVersionDAO.findByStackNameAndVersion(EasyMock.anyString(), EasyMock.anyString())).andReturn(rve).anyTimes(); replay(m_repositoryVersionDAO, rve); + Mockito.when(repositoryVersion.getVersion()).thenReturn("HDP-2.2.0.0"); + Mockito.when(repositoryVersion.getStackId()).thenReturn(new StackId("HDP", "2.2.0")); } @@ -104,9 +108,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)); } @@ -121,7 +124,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()); @@ -134,7 +141,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()); http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java index 45c24d3..ba0f701 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesUpCheckTest.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,23 @@ public class ServicesUpCheckTest { 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); + ServicesUpCheck suc = new ServicesUpCheck(); Configuration config = Mockito.mock(Configuration.class); suc.config = config; http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/ambari-server/src/test/java/org/apache/ambari/server/checks/YarnTimelineServerStatePreservingCheckTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/YarnTimelineServerStatePreservingCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/YarnTimelineServerStatePreservingCheckTest.java index 5c423b5..5cb666b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/YarnTimelineServerStatePreservingCheckTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/YarnTimelineServerStatePreservingCheckTest.java @@ -50,6 +50,8 @@ public class YarnTimelineServerStatePreservingCheckTest { private final YarnTimelineServerStatePreservingCheck m_check = new YarnTimelineServerStatePreservingCheck(); + final RepositoryVersionEntity m_repositoryVersion = Mockito.mock(RepositoryVersionEntity.class); + /** * */ @@ -64,6 +66,9 @@ public class YarnTimelineServerStatePreservingCheckTest { }; 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")); } /** @@ -89,7 +94,7 @@ public class YarnTimelineServerStatePreservingCheckTest { m_check.getClass().getName())).thenReturn(checkProperties); PrereqCheckRequest request = new PrereqCheckRequest("cluster"); - request.setRepositoryVersion("2.3.0.0"); + request.setTargetRepositoryVersion(m_repositoryVersion); request.setPrerequisiteCheckConfig(prerequisiteCheckConfig); // YARN not installed http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java index 2a48fa6..3de20e4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProviderTest.java @@ -121,9 +121,9 @@ public class PreUpgradeCheckResourceProviderTest { expect(targetStackId.getStackName()).andReturn("Stack100").anyTimes(); expect(targetStackId.getStackVersion()).andReturn("1.1").anyTimes(); - expect(repoDao.findByStackNameAndVersion("Stack100", "Repo100")).andReturn(repo).anyTimes(); + expect(repoDao.findByPK(1L)).andReturn(repo).anyTimes(); expect(repo.getStackId()).andReturn(targetStackId).atLeastOnce(); - expect(upgradeHelper.suggestUpgradePack("Cluster100", "1.0", "Repo100", Direction.UPGRADE, UpgradeType.NON_ROLLING, "upgrade_pack11")).andReturn(upgradePack); + expect(upgradeHelper.suggestUpgradePack("Cluster100", currentStackId, targetStackId, Direction.UPGRADE, UpgradeType.NON_ROLLING, "upgrade_pack11")).andReturn(upgradePack); List<AbstractCheckDescriptor> upgradeChecksToRun = new LinkedList<>(); List<String> prerequisiteChecks = new LinkedList<>(); @@ -147,7 +147,7 @@ public class PreUpgradeCheckResourceProviderTest { Predicate predicate = builder.property(PreUpgradeCheckResourceProvider.UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").and() .property(PreUpgradeCheckResourceProvider.UPGRADE_CHECK_UPGRADE_PACK_PROPERTY_ID).equals("upgrade_pack11").and() .property(PreUpgradeCheckResourceProvider.UPGRADE_CHECK_UPGRADE_TYPE_PROPERTY_ID).equals(UpgradeType.NON_ROLLING).and() - .property(PreUpgradeCheckResourceProvider.UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID).equals("Repo100").toPredicate(); + .property(PreUpgradeCheckResourceProvider.UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID).equals("1").toPredicate(); System.out.println("PreUpgradeCheckResourceProvider - " + provider); http://git-wip-us.apache.org/repos/asf/ambari/blob/d77bde7f/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 921322b..aa81614 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 @@ -191,15 +191,15 @@ public class UpgradeHelperTest extends EasyMockSupport { @Test public void testSuggestUpgradePack() throws Exception{ final String clusterName = "c1"; - final String upgradeFromVersion = "2.1.1"; - final String upgradeToVersion = "2.2.0"; + final StackId sourceStackId = new StackId("HDP", "2.1.1"); + final StackId targetStackId = new StackId("HDP", "2.2.0"); final Direction upgradeDirection = Direction.UPGRADE; final UpgradeType upgradeType = UpgradeType.ROLLING; makeCluster(); try { String preferredUpgradePackName = "upgrade_test"; - UpgradePack up = m_upgradeHelper.suggestUpgradePack(clusterName, upgradeFromVersion, upgradeToVersion, upgradeDirection, upgradeType, preferredUpgradePackName); + UpgradePack up = m_upgradeHelper.suggestUpgradePack(clusterName, sourceStackId, targetStackId, upgradeDirection, upgradeType, preferredUpgradePackName); assertEquals(upgradeType, up.getType()); } catch (AmbariException e){ assertTrue(false); @@ -1734,8 +1734,8 @@ public class UpgradeHelperTest extends EasyMockSupport { @Test public void testRollingUpgradesCanUseAdvancedGroupings() throws Exception { final String clusterName = "c1"; - final String upgradeFromVersion = "2.1.1"; - final String upgradeToVersion = "2.2.0"; + final StackId sourceStackId = new StackId("HDP", "2.1.1"); + final StackId targetStackId = new StackId("HDP", "2.2.0"); final Direction upgradeDirection = Direction.UPGRADE; final UpgradeType upgradeType = UpgradeType.ROLLING; @@ -1743,8 +1743,8 @@ public class UpgradeHelperTest extends EasyMockSupport { // grab the right pack String preferredUpgradePackName = "upgrade_grouping_rolling"; - UpgradePack upgradePack = m_upgradeHelper.suggestUpgradePack(clusterName, upgradeFromVersion, - upgradeToVersion, upgradeDirection, upgradeType, preferredUpgradePackName); + UpgradePack upgradePack = m_upgradeHelper.suggestUpgradePack(clusterName, sourceStackId, + targetStackId, upgradeDirection, upgradeType, preferredUpgradePackName); assertEquals(upgradeType, upgradePack.getType());
