AMBARI-21552 - Pass Repository ID To Upgrade Prechecks (part2) (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/95e7719b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/95e7719b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/95e7719b Branch: refs/heads/branch-feature-AMBARI-14714 Commit: 95e7719b17d3672e86af13e07041ddbb902fc922 Parents: 495a3f4 Author: Jonathan Hurley <jhur...@hortonworks.com> Authored: Sat Jul 22 22:34:19 2017 -0400 Committer: Jonathan Hurley <jhur...@hortonworks.com> Committed: Sat Jul 22 22:40:12 2017 -0400 ---------------------------------------------------------------------- .../ambari/server/checks/AbstractCheckDescriptor.java | 8 ++++---- .../ambari/server/checks/ConfigurationMergeCheck.java | 2 +- .../server/checks/HostsMasterMaintenanceCheck.java | 4 ++-- .../server/checks/HostsRepositoryVersionCheck.java | 8 ++++---- .../ambari/server/checks/InstallPackagesCheck.java | 6 +++--- .../ambari/server/controller/PrereqCheckRequest.java | 11 ++++++++++- .../internal/PreUpgradeCheckResourceProvider.java | 12 ++++++++---- .../controller/internal/ReadOnlyResourceProvider.java | 2 +- .../org/apache/ambari/server/state/UpgradeHelper.java | 4 ++-- 9 files changed, 35 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/checks/AbstractCheckDescriptor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/AbstractCheckDescriptor.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/AbstractCheckDescriptor.java index fddded7..bda2c07 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/AbstractCheckDescriptor.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/AbstractCheckDescriptor.java @@ -145,7 +145,7 @@ public abstract class AbstractCheckDescriptor { if (serviceFound && null != request.getTargetStackId()) { String stackName = request.getTargetStackId().getStackName(); RepositoryVersionEntity rve = repositoryVersionDaoProvider.get(). - findByStackNameAndVersion(stackName, request.getRepositoryVersion()); + findByStackNameAndVersion(stackName, request.getTargetVersion()); if (RepositoryType.STANDARD != rve.getType()) { try { @@ -155,7 +155,7 @@ public abstract class AbstractCheckDescriptor { serviceFound = false; } } catch (Exception e) { - LOG.warn("Could not parse xml for %s", request.getRepositoryVersion(), e); + LOG.warn("Could not parse xml for %s", request.getTargetVersion(), e); } } } @@ -253,8 +253,8 @@ public abstract class AbstractCheckDescriptor { PrerequisiteCheck prerequisiteCheck, PrereqCheckRequest request) { String fail = m_description.getFail(key); - if (fail.contains("{{version}}") && null != request.getRepositoryVersion()) { - fail = fail.replace("{{version}}", request.getRepositoryVersion()); + if (fail.contains("{{version}}") && null != request.getTargetVersion()) { + fail = fail.replace("{{version}}", request.getTargetVersion()); } if (fail.contains("{{fails}}")) { http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/checks/ConfigurationMergeCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/ConfigurationMergeCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/ConfigurationMergeCheck.java index 37fe4b0..48c652f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/ConfigurationMergeCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/ConfigurationMergeCheck.java @@ -64,7 +64,7 @@ public class ConfigurationMergeCheck extends AbstractCheckDescriptor { throws AmbariException { String stackName = request.getTargetStackId().getStackName(); - RepositoryVersionEntity rve = repositoryVersionDaoProvider.get().findByStackNameAndVersion(stackName, request.getRepositoryVersion()); + RepositoryVersionEntity rve = repositoryVersionDaoProvider.get().findByStackNameAndVersion(stackName, request.getTargetVersion()); Map<String, Map<String, ThreeWayValue>> changes = m_mergeHelper.getConflicts(request.getClusterName(), rve.getStackId()); http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheck.java index e5082c9..1c59d2e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsMasterMaintenanceCheck.java @@ -59,7 +59,7 @@ public class HostsMasterMaintenanceCheck extends AbstractCheckDescriptor { @Override public boolean isApplicable(PrereqCheckRequest request) throws AmbariException { - return super.isApplicable(request) && request.getRepositoryVersion() != null; + return super.isApplicable(request) && request.getTargetVersion() != null; } @Override @@ -70,7 +70,7 @@ public class HostsMasterMaintenanceCheck extends AbstractCheckDescriptor { final Set<String> hostsWithMasterComponent = new HashSet<>(); // TODO AMBARI-12698, need to pass the upgrade pack to use in the request, or at least the type. - final String upgradePackName = repositoryVersionHelper.get().getUpgradePackageName(stackId.getStackName(), stackId.getStackVersion(), request.getRepositoryVersion(), null); + final String upgradePackName = repositoryVersionHelper.get().getUpgradePackageName(stackId.getStackName(), stackId.getStackVersion(), request.getTargetVersion(), null); if (upgradePackName == null) { prerequisiteCheck.setStatus(PrereqCheckStatus.FAIL); String fail = getFailReason(KEY_NO_UPGRADE_NAME, prerequisiteCheck, request); http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheck.java index a66db3c..37a9d2f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/HostsRepositoryVersionCheck.java @@ -58,7 +58,7 @@ public class HostsRepositoryVersionCheck extends AbstractCheckDescriptor { @Override public boolean isApplicable(PrereqCheckRequest request) throws AmbariException { - return super.isApplicable(request) && request.getRepositoryVersion() != null; + return super.isApplicable(request) && request.getTargetVersion() != null; } @Override @@ -78,11 +78,11 @@ public class HostsRepositoryVersionCheck extends AbstractCheckDescriptor { continue; } - if (null != request.getRepositoryVersion()) { + if (null != request.getTargetVersion()) { boolean found = false; for (HostVersionEntity hve : hostVersionDaoProvider.get().findByHost(host.getHostName())) { - if (hve.getRepositoryVersion().getVersion().equals(request.getRepositoryVersion()) + if (hve.getRepositoryVersion().getVersion().equals(request.getTargetVersion()) && (hve.getState() == RepositoryVersionState.INSTALLED || hve.getState() == RepositoryVersionState.NOT_REQUIRED)) { found = true; break; @@ -94,7 +94,7 @@ public class HostsRepositoryVersionCheck extends AbstractCheckDescriptor { } } else { final RepositoryVersionEntity repositoryVersion = repositoryVersionDaoProvider.get().findByStackAndVersion( - stackId, request.getRepositoryVersion()); + stackId, request.getTargetVersion()); if (repositoryVersion == null) { prerequisiteCheck.setStatus(PrereqCheckStatus.FAIL); prerequisiteCheck.setFailReason( http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/checks/InstallPackagesCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/InstallPackagesCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/InstallPackagesCheck.java index ac2116f..7c84e5c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/InstallPackagesCheck.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/InstallPackagesCheck.java @@ -61,9 +61,9 @@ public class InstallPackagesCheck extends AbstractCheckDescriptor { final Cluster cluster = clustersProvider.get().getCluster(clusterName); final StackId targetStackId = request.getTargetStackId(); final String stackName = targetStackId.getStackName(); - final String repoVersion = request.getRepositoryVersion(); + final String repoVersion = request.getTargetVersion(); - final RepositoryVersionEntity rve = repositoryVersionDaoProvider.get().findByStackNameAndVersion(stackName, request.getRepositoryVersion()); + final RepositoryVersionEntity rve = repositoryVersionDaoProvider.get().findByStackNameAndVersion(stackName, request.getTargetVersion()); if (StringUtils.isBlank(rve.getVersion()) || !rve.getVersion().matches("^\\d+(\\.\\d+)*\\-\\d+$")) { String message = MessageFormat.format("The Repository Version {0} for Stack {1} must contain a \"-\" followed by a build number. " + "Make sure that another registered repository does not have the same repo URL or " + @@ -79,7 +79,7 @@ public class InstallPackagesCheck extends AbstractCheckDescriptor { for (Host host : cluster.getHosts()) { if (host.getMaintenanceState(cluster.getClusterId()) != MaintenanceState.ON) { for (HostVersionEntity hve : hostVersionDaoProvider.get().findByHost(host.getHostName())) { - if (hve.getRepositoryVersion().getVersion().equals(request.getRepositoryVersion()) + if (hve.getRepositoryVersion().getVersion().equals(request.getTargetVersion()) && hve.getState() == RepositoryVersionState.INSTALL_FAILED) { failedHosts.add(host.getHostName()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/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 bd207ae..a7faf87 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 @@ -64,7 +64,7 @@ public class PrereqCheckRequest { return m_upgradeType; } - public String getRepositoryVersion() { + public String getTargetVersion() { if (null == m_targetRepositoryVersion) { return null; } @@ -123,6 +123,15 @@ public class PrereqCheckRequest { } /** + * Gets the target repository of the upgrade. + * + * @return the target repository. + */ + public RepositoryVersionEntity getTargetRepositoryVersion() { + return m_targetRepositoryVersion; + } + + /** * Sets the target of the upgrade. * * @param targetRepositoryVersion http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/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 24a55c1..acf8bc1 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 @@ -80,6 +80,7 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider { 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"); + public static final String UPGRADE_CHECK_TARGET_REPOSITORY_VERSION = PropertyHelper.getPropertyId("UpgradeChecks", "repository_version"); /** * Optional parameter to specify the preferred Upgrade Pack to use. @@ -134,7 +135,7 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider { * @param managementController management controller */ public PreUpgradeCheckResourceProvider(AmbariManagementController managementController) { - super(propertyIds, keyPropertyIds, managementController); + super(Type.PreUpgradeCheck, propertyIds, keyPropertyIds, managementController); } @Override @@ -200,8 +201,9 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider { } if (upgradePack == null) { - throw new SystemException(String.format("Upgrade pack not found for the target repository version %s", - upgradeCheckRequest.getRepositoryVersion())); + throw new SystemException( + String.format("Upgrade pack not found for the target repository version %s", + upgradeCheckRequest.getTargetRepositoryVersion())); } // ToDo: properly handle exceptions, i.e. create fake check with error description @@ -234,7 +236,9 @@ 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); - setResourceProperty(resource, UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID, upgradeCheckRequest.getRepositoryVersion(), requestedIds); + + setResourceProperty(resource, UPGRADE_CHECK_TARGET_REPOSITORY_VERSION_ID_ID, repositoryVersion.getId(), requestedIds); + setResourceProperty(resource, UPGRADE_CHECK_TARGET_REPOSITORY_VERSION, repositoryVersion.getVersion(), requestedIds); resources.add(resource); } http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ReadOnlyResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ReadOnlyResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ReadOnlyResourceProvider.java index 9a1d8f8..505ec63 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ReadOnlyResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ReadOnlyResourceProvider.java @@ -102,4 +102,4 @@ public abstract class ReadOnlyResourceProvider extends AbstractControllerResourc // TODO Auto-generated method stub return null; } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/95e7719b/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 7ca6976..a5881d2 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 @@ -231,10 +231,10 @@ public class UpgradeHelper { Cluster cluster = m_clusters.get().getCluster(clusterName); StackId currentStack = cluster.getCurrentStackVersion(); - StackId stackForUpgradePack = sourceStackId; + StackId stackForUpgradePack = targetStackId; if (direction.isDowngrade()) { - stackForUpgradePack = targetStackId; + stackForUpgradePack = sourceStackId; } Map<String, UpgradePack> packs = m_ambariMetaInfoProvider.get().getUpgradePacks(