You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2015/06/30 19:45:52 UTC

ambari git commit: AMBARI-12221 RU: Install Version on host fails with 500 error (dsen)

Repository: ambari
Updated Branches:
  refs/heads/trunk 416f60063 -> bf5fe282b


AMBARI-12221 RU: Install Version on host fails with 500 error (dsen)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bf5fe282
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bf5fe282
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bf5fe282

Branch: refs/heads/trunk
Commit: bf5fe282be0348ff82c592baca2a1b0daea42408
Parents: 416f600
Author: Dmytro Sen <ds...@apache.org>
Authored: Tue Jun 30 20:45:24 2015 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Tue Jun 30 20:45:24 2015 +0300

----------------------------------------------------------------------
 .../HostStackVersionResourceProvider.java       | 27 +++++++++-----------
 1 file changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/bf5fe282/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
index a44be9a..96460e4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
@@ -248,7 +248,7 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
     final String desiredRepoVersion;
     String stackName;
     String stackVersion;
-    if (request.getProperties().size() != 1) {
+    if (request.getProperties().size() > 1) {
       throw new UnsupportedOperationException("Multiple requests cannot be executed at the same time.");
     }
 
@@ -296,7 +296,7 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
         clusterSet = getManagementController().getClusters().getClustersForHost(hostName);
       } catch (AmbariException e) {
         throw new NoSuchParentResourceException(String.format((
-                "Host %s does belong to any cluster"
+                "Host %s does not belong to any cluster"
         ), hostName), e);
       }
     } else {
@@ -311,21 +311,18 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
       clusterSet = Collections.singleton(cluster);
     }
 
-    // Select all clusters that contain the desired repo version
-    Set<Cluster> selectedClusters = new HashSet<Cluster>();
-    for (Cluster cluster : clusterSet) {
-      if (cluster.getCurrentStackVersion().equals(stackId)) {
-        selectedClusters.add(cluster);
-      }
-    }
-
     Cluster cluster;
-    if (selectedClusters.size() != 1) {
-      throw new UnsupportedOperationException(String.format("Host %s belongs to %d clusters " +
-              "with stack id %s. Performing %s action on multiple clusters " +
-              "is not supported", hostName, selectedClusters.size(), stackId, INSTALL_PACKAGES_FULL_NAME));
+    if (clusterSet.isEmpty()) {
+      throw new UnsupportedOperationException(String.format("Host %s belongs " +
+        "to 0 clusters with stack id %s. Performing %s action failed.",
+        hostName, stackId, INSTALL_PACKAGES_FULL_NAME));
+    } else if (clusterSet.size() > 1) {
+      throw new UnsupportedOperationException(String.format("Host %s belongs " +
+        "to %d clusters with stack id %s. Performing %s action on multiple " +
+        "clusters is not supported", hostName, clusterSet.size(), stackId,
+        INSTALL_PACKAGES_FULL_NAME));
     } else {
-      cluster = selectedClusters.iterator().next();
+      cluster = clusterSet.iterator().next();
     }
 
     RepositoryVersionEntity repoVersionEnt = repositoryVersionDAO.findByStackAndVersion(stackId, desiredRepoVersion);