Просмотр исходного кода

AMBARI-9076. Pre-Upgrade Check shows incorrect check results and blocks the user from proceeding (Yurii Shylov via ncole)

Nate Cole 10 лет назад
Родитель
Сommit
29ef161627

+ 5 - 5
ambari-server/src/main/java/org/apache/ambari/server/controller/PreUpgradeCheckRequest.java

@@ -22,7 +22,7 @@ package org.apache.ambari.server.controller;
  */
 public class PreUpgradeCheckRequest {
   private final String clusterName;
-  private String repositoryVersionName;
+  private String repositoryVersion;
 
   //TODO make repositoryVersionName also final as soon as UI will be changed to always provide it to API
   public PreUpgradeCheckRequest(String clusterName) {
@@ -33,11 +33,11 @@ public class PreUpgradeCheckRequest {
     return clusterName;
   }
 
-  public String getRepositoryVersionName() {
-    return repositoryVersionName;
+  public String getRepositoryVersion() {
+    return repositoryVersion;
   }
 
-  public void setRepositoryVersionName(String repositoryVersionName) {
-    this.repositoryVersionName = repositoryVersionName;
+  public void setRepositoryVersion(String repositoryVersion) {
+    this.repositoryVersion = repositoryVersion;
   }
 }

+ 3 - 3
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java

@@ -109,7 +109,7 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
       final String clusterName = propertyMap.get(UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID).toString();
       final PreUpgradeCheckRequest upgradeCheckRequest = new PreUpgradeCheckRequest(clusterName);
       if (propertyMap.containsKey(UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID)) {
-        upgradeCheckRequest.setRepositoryVersionName(propertyMap.get(UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID).toString());
+        upgradeCheckRequest.setRepositoryVersion(propertyMap.get(UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID).toString());
       }
       for (UpgradeCheck upgradeCheck: upgradeChecks.performPreUpgradeChecks(upgradeCheckRequest)) {
         final Resource resource = new ResourceImpl(Resource.Type.PreUpgradeCheck);
@@ -120,8 +120,8 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
         setResourceProperty(resource, UPGRADE_CHECK_FAILED_ON_PROPERTY_ID, upgradeCheck.getFailedOn(), requestedIds);
         setResourceProperty(resource, UPGRADE_CHECK_CHECK_TYPE_PROPERTY_ID, upgradeCheck.getType(), requestedIds);
         setResourceProperty(resource, UPGRADE_CHECK_CLUSTER_NAME_PROPERTY_ID, upgradeCheck.getClusterName(), requestedIds);
-        if (upgradeCheckRequest.getRepositoryVersionName() != null) {
-          setResourceProperty(resource, UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID, upgradeCheckRequest.getRepositoryVersionName(), requestedIds);
+        if (upgradeCheckRequest.getRepositoryVersion() != null) {
+          setResourceProperty(resource, UPGRADE_CHECK_REPOSITORY_VERSION_PROPERTY_ID, upgradeCheckRequest.getRepositoryVersion(), requestedIds);
         }
         resources.add(resource);
       }

+ 5 - 4
ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeCheckHelper.java

@@ -310,7 +310,7 @@ public class UpgradeCheckHelper {
 
     @Override
     public boolean isApplicable(PreUpgradeCheckRequest request) throws AmbariException {
-      return request.getRepositoryVersionName() != null;
+      return request.getRepositoryVersion() != null;
     }
 
     @Override
@@ -318,10 +318,11 @@ public class UpgradeCheckHelper {
       final String clusterName = request.getClusterName();
       final Cluster cluster = clustersProvider.get().getCluster(clusterName);
       final Map<String, Host> clusterHosts = clustersProvider.get().getHostsForCluster(clusterName);
-      final RepositoryVersionEntity repositoryVersion = repositoryVersionDaoProvider.get().findByDisplayName(request.getRepositoryVersionName());
+      final StackId stackId = cluster.getDesiredStackVersion();
+      final RepositoryVersionEntity repositoryVersion = repositoryVersionDaoProvider.get().findByStackAndVersion(stackId.getStackId(), request.getRepositoryVersion());
       if (repositoryVersion == null) {
         upgradeCheck.setStatus(UpgradeCheckStatus.FAIL);
-        upgradeCheck.setFailReason("Repository version " + request.getRepositoryVersionName() + " doesn't exist");
+        upgradeCheck.setFailReason("Repository version " + request.getRepositoryVersion() + " doesn't exist");
         upgradeCheck.getFailedOn().addAll(clusterHosts.keySet());
         return;
       }
@@ -336,7 +337,7 @@ public class UpgradeCheckHelper {
       }
       if (!upgradeCheck.getFailedOn().isEmpty()) {
         upgradeCheck.setStatus(UpgradeCheckStatus.FAIL);
-        upgradeCheck.setFailReason("Some hosts do not have repository version " + request.getRepositoryVersionName() + " installed");
+        upgradeCheck.setFailReason("Some hosts do not have repository version " + request.getRepositoryVersion() + " installed");
       }
     }
   }