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 <jhur...@hortonworks.com> Authored: Fri Jul 21 14:55:49 2017 -0400 Committer: Jonathan Hurley <jhur...@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());