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(

Reply via email to