AMBARI-21801 - No Hosts are Targeted For MAINT VDF If Available Services is 
Empty (jonathanhurley)


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

Branch: refs/heads/feature-branch-AMBARI-21307
Commit: 76f0dafbd561f3052bc0d90045fcfdcba93beb3a
Parents: 6063253
Author: Jonathan Hurley <jhur...@hortonworks.com>
Authored: Thu Aug 24 00:08:42 2017 -0400
Committer: Jonathan Hurley <jhur...@hortonworks.com>
Committed: Thu Aug 24 12:38:02 2017 -0400

----------------------------------------------------------------------
 .../org/apache/ambari/server/state/cluster/ClusterImpl.java    | 6 ++++--
 .../ambari/server/state/repository/VersionDefinitionXml.java   | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/76f0dafb/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
index 26be06e..3953184 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
@@ -128,6 +128,7 @@ import org.apache.ambari.server.state.UpgradeContextFactory;
 import org.apache.ambari.server.state.configgroup.ConfigGroup;
 import org.apache.ambari.server.state.configgroup.ConfigGroupFactory;
 import org.apache.ambari.server.state.fsm.InvalidStateTransitionException;
+import org.apache.ambari.server.state.repository.ClusterVersionSummary;
 import org.apache.ambari.server.state.repository.VersionDefinitionXml;
 import org.apache.ambari.server.state.scheduler.RequestExecution;
 import org.apache.ambari.server.state.scheduler.RequestExecutionFactory;
@@ -993,12 +994,13 @@ public class ClusterImpl implements Cluster {
             // does the host gets a different repo state based on VDF and repo
             // type
             boolean hostRequiresRepository = false;
-            Set<String> servicesInRepository = 
versionDefinitionXml.getAvailableServiceNames();
+            ClusterVersionSummary clusterSummary = 
versionDefinitionXml.getClusterSummary(this);
+            Set<String> servicesInUpgrade = 
clusterSummary.getAvailableServiceNames();
 
             List<ServiceComponentHost> schs = 
getServiceComponentHosts(hostEntity.getHostName());
             for (ServiceComponentHost serviceComponentHost : schs) {
               String serviceName = serviceComponentHost.getServiceName();
-              if (servicesInRepository.contains(serviceName)) {
+              if (servicesInUpgrade.contains(serviceName)) {
                 hostRequiresRepository = true;
                 break;
               }

http://git-wip-us.apache.org/repos/asf/ambari/blob/76f0dafb/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
index 96bf668..ec4814b 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
@@ -150,7 +150,7 @@ public class VersionDefinitionXml {
    * Gets the set of services that are included in this XML
    * @return an empty set for STANDARD repositories, or a non-empty set for 
PATCH type.
    */
-  public Set<String> getAvailableServiceNames() {
+  private Set<String> getAvailableServiceNames() {
     if (availableServices.isEmpty()) {
       return Collections.emptySet();
     } else {

Reply via email to