Browse Source

AMBARI-9533. RU: upgrade task names should use display names rather than IDs (ncole)

Nate Cole 10 năm trước cách đây
mục cha
commit
345290d808

+ 2 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java

@@ -394,7 +394,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
 
 
     String repoVersion = version;
     String repoVersion = version;
 
 
-    if (direction == Direction.DOWNGRADE && null != versionForUpgradePack) {
+    if (direction.isDowngrade() && null != versionForUpgradePack) {
       repoVersion = versionForUpgradePack;
       repoVersion = versionForUpgradePack;
     }
     }
 
 
@@ -469,7 +469,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
     // the version being upgraded or downgraded to (ie hdp-2.2.1.0-1234)
     // the version being upgraded or downgraded to (ie hdp-2.2.1.0-1234)
     final String version = (String) requestMap.get(UPGRADE_VERSION);
     final String version = (String) requestMap.get(UPGRADE_VERSION);
 
 
-    MasterHostResolver resolver = Direction.UPGRADE == direction ?
+    MasterHostResolver resolver = direction.isUpgrade() ?
         new MasterHostResolver(configHelper, cluster) : new MasterHostResolver(configHelper, cluster, version);
         new MasterHostResolver(configHelper, cluster) : new MasterHostResolver(configHelper, cluster, version);
 
 
     UpgradeContext ctx = new UpgradeContext(resolver, version, direction);
     UpgradeContext ctx = new UpgradeContext(resolver, version, direction);

+ 44 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java

@@ -36,6 +36,8 @@ public class UpgradeContext {
   private MasterHostResolver m_resolver;
   private MasterHostResolver m_resolver;
   private AmbariMetaInfo m_metaInfo;
   private AmbariMetaInfo m_metaInfo;
   private List<ServiceComponentHost> m_unhealthy = new ArrayList<ServiceComponentHost>();
   private List<ServiceComponentHost> m_unhealthy = new ArrayList<ServiceComponentHost>();
+  private Map<String, String> m_serviceNames = new HashMap<String, String>();
+  private Map<String, String> m_componentNames = new HashMap<String, String>();
 
 
   /**
   /**
    * Constructor.
    * Constructor.
@@ -115,5 +117,47 @@ public class UpgradeContext {
     return results;
     return results;
   }
   }
 
 
+  /**
+   * @return the service display name, or the service name if not set
+   */
+  public String getServiceDisplay(String service) {
+    if (m_serviceNames.containsKey(service)) {
+      return m_serviceNames.get(service);
+    }
+
+    return service;
+  }
+
+  /**
+   * @return the component display name, or the component name if not set
+   */
+  public String getComponentDisplay(String service, String component) {
+    String key = service + ":" + component;
+    if (m_componentNames.containsKey(key)) {
+      return m_componentNames.get(key);
+    }
+
+    return component;
+  }
+
+  /**
+   * @param service     the service name
+   * @param displayName the display name for the service
+   */
+  public void setServiceDisplay(String service, String displayName) {
+    m_serviceNames.put(service, displayName);
+  }
+
+  /**
+   * @param service     the service name that owns the component
+   * @param component   the component name
+   * @param displayName the display name for the component
+   */
+  public void setComponentDisplay(String service, String component, String displayName) {
+    String key = service + ":" + component;
+    m_componentNames.put(key, displayName);
+  }
+
+
 
 
 }
 }

+ 30 - 6
ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeHelper.java

@@ -189,13 +189,12 @@ public class UpgradeHelper {
 
 
     context.setAmbariMetaInfo(m_ambariMetaInfo.get());
     context.setAmbariMetaInfo(m_ambariMetaInfo.get());
     Cluster cluster = context.getCluster();
     Cluster cluster = context.getCluster();
-    boolean forUpgrade = context.getDirection() == Direction.UPGRADE;
     MasterHostResolver mhr = context.getResolver();
     MasterHostResolver mhr = context.getResolver();
 
 
     Map<String, Map<String, ProcessingComponent>> allTasks = upgradePack.getTasks();
     Map<String, Map<String, ProcessingComponent>> allTasks = upgradePack.getTasks();
     List<UpgradeGroupHolder> groups = new ArrayList<UpgradeGroupHolder>();
     List<UpgradeGroupHolder> groups = new ArrayList<UpgradeGroupHolder>();
 
 
-    for (Grouping group : upgradePack.getGroups(forUpgrade)) {
+    for (Grouping group : upgradePack.getGroups(context.getDirection().isUpgrade())) {
 
 
       UpgradeGroupHolder groupHolder = new UpgradeGroupHolder();
       UpgradeGroupHolder groupHolder = new UpgradeGroupHolder();
       groupHolder.name = group.name;
       groupHolder.name = group.name;
@@ -204,7 +203,7 @@ public class UpgradeHelper {
       groupHolder.allowRetry = group.allowRetry;
       groupHolder.allowRetry = group.allowRetry;
 
 
       // !!! all downgrades are skippable
       // !!! all downgrades are skippable
-      if (Direction.DOWNGRADE == context.getDirection()) {
+      if (context.getDirection().isDowngrade()) {
         groupHolder.skippable = true;
         groupHolder.skippable = true;
       }
       }
 
 
@@ -212,7 +211,7 @@ public class UpgradeHelper {
 
 
       List<UpgradePack.OrderService> services = group.services;
       List<UpgradePack.OrderService> services = group.services;
 
 
-      if (context.getDirection() == Direction.DOWNGRADE && !services.isEmpty()) {
+      if (context.getDirection().isDowngrade() && !services.isEmpty()) {
         List<UpgradePack.OrderService> reverse = new ArrayList<UpgradePack.OrderService>(services);
         List<UpgradePack.OrderService> reverse = new ArrayList<UpgradePack.OrderService>(services);
         Collections.reverse(reverse);
         Collections.reverse(reverse);
         services = reverse;
         services = reverse;
@@ -242,6 +241,8 @@ public class UpgradeHelper {
           Service svc = cluster.getService(service.serviceName);
           Service svc = cluster.getService(service.serviceName);
           ProcessingComponent pc = allTasks.get(service.serviceName).get(component);
           ProcessingComponent pc = allTasks.get(service.serviceName).get(component);
 
 
+          setDisplayNames(context, service.serviceName, component);
+
           // Special case for NAMENODE
           // Special case for NAMENODE
           if (service.serviceName.equalsIgnoreCase("HDFS") && component.equalsIgnoreCase("NAMENODE")) {
           if (service.serviceName.equalsIgnoreCase("HDFS") && component.equalsIgnoreCase("NAMENODE")) {
             // !!! revisit if needed
             // !!! revisit if needed
@@ -258,11 +259,11 @@ public class UpgradeHelper {
                 throw new AmbariException(MessageFormat.format("Could not find active and standby namenodes using hosts: {0}", StringUtils.join(hostsType.hosts, ", ").toString()));
                 throw new AmbariException(MessageFormat.format("Could not find active and standby namenodes using hosts: {0}", StringUtils.join(hostsType.hosts, ", ").toString()));
             }
             }
 
 
-            builder.add(hostsType, service.serviceName, forUpgrade,
+            builder.add(context, hostsType, service.serviceName,
                 svc.isClientOnlyService(), pc);
                 svc.isClientOnlyService(), pc);
 
 
           } else {
           } else {
-            builder.add(hostsType, service.serviceName, forUpgrade,
+            builder.add(context, hostsType, service.serviceName,
                 svc.isClientOnlyService(), pc);
                 svc.isClientOnlyService(), pc);
           }
           }
         }
         }
@@ -518,4 +519,27 @@ public class UpgradeHelper {
     return resources.iterator().next();
     return resources.iterator().next();
   }
   }
 
 
+  /**
+   * Helper to set service and component display names on the context
+   * @param context   the context to update
+   * @param service   the service name
+   * @param component the component name
+   */
+  private void setDisplayNames(UpgradeContext context, String service, String component) {
+    StackId stackId = context.getCluster().getDesiredStackVersion();
+    try {
+      ServiceInfo serviceInfo = m_ambariMetaInfo.get().getService(stackId.getStackName(),
+          stackId.getStackVersion(), service);
+      context.setServiceDisplay(service, serviceInfo.getDisplayName());
+
+      ComponentInfo compInfo = serviceInfo.getComponentByName(component);
+      context.setComponentDisplay(service, component, compInfo.getDisplayName());
+
+    } catch (AmbariException e) {
+      LOG.debug("Could not get service detail", e);
+    }
+
+
+  }
+
 }
 }

+ 2 - 2
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java

@@ -90,8 +90,8 @@ public class ClusterGrouping extends Grouping {
   public class ClusterBuilder extends StageWrapperBuilder {
   public class ClusterBuilder extends StageWrapperBuilder {
 
 
     @Override
     @Override
-    public void add(HostsType hostsType, String service,
-        boolean forUpgrade, boolean clientOnly, ProcessingComponent pc) {
+    public void add(UpgradeContext ctx, HostsType hostsType, String service,
+        boolean clientOnly, ProcessingComponent pc) {
       // !!! no-op in this case
       // !!! no-op in this case
     }
     }
 
 

+ 14 - 9
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java

@@ -69,8 +69,10 @@ public class ColocatedGrouping extends Grouping {
     }
     }
 
 
     @Override
     @Override
-    public void add(HostsType hostsType, String service,
-        boolean forUpgrade, boolean clientOnly, ProcessingComponent pc) {
+    public void add(UpgradeContext ctx, HostsType hostsType, String service,
+        boolean clientOnly, ProcessingComponent pc) {
+
+      boolean forUpgrade = ctx.getDirection().isUpgrade();
 
 
       int count = Double.valueOf(Math.ceil(
       int count = Double.valueOf(Math.ceil(
           (double) m_batch.percent / 100 * hostsType.hosts.size())).intValue();
           (double) m_batch.percent / 100 * hostsType.hosts.size())).intValue();
@@ -95,7 +97,8 @@ public class ColocatedGrouping extends Grouping {
         if (null != tasks && tasks.size() > 0) {
         if (null != tasks && tasks.size() > 0) {
           proxy = new TaskProxy();
           proxy = new TaskProxy();
           proxy.clientOnly = clientOnly;
           proxy.clientOnly = clientOnly;
-          proxy.message = getStageText("Preparing", pc.name, Collections.singleton(host));
+          proxy.message = getStageText("Preparing",
+              ctx.getComponentDisplay(service, pc.name), Collections.singleton(host));
           proxy.tasks.addAll(TaskWrapperBuilder.getTaskList(service, pc.name, singleHostsType, tasks));
           proxy.tasks.addAll(TaskWrapperBuilder.getTaskList(service, pc.name, singleHostsType, tasks));
           proxy.service = service;
           proxy.service = service;
           proxy.component = pc.name;
           proxy.component = pc.name;
@@ -112,8 +115,8 @@ public class ColocatedGrouping extends Grouping {
             proxy.restart = true;
             proxy.restart = true;
             proxy.service = service;
             proxy.service = service;
             proxy.component = pc.name;
             proxy.component = pc.name;
-            proxy.message = getStageText("Restarting ", pc.name, Collections.singleton(host));
-
+            proxy.message = getStageText("Restarting",
+                ctx.getComponentDisplay(service, pc.name), Collections.singleton(host));
             targetList.add(proxy);
             targetList.add(proxy);
           }
           }
         }
         }
@@ -126,7 +129,8 @@ public class ColocatedGrouping extends Grouping {
           proxy.component = pc.name;
           proxy.component = pc.name;
           proxy.service = service;
           proxy.service = service;
           proxy.tasks.addAll(TaskWrapperBuilder.getTaskList(service, pc.name, singleHostsType, tasks));
           proxy.tasks.addAll(TaskWrapperBuilder.getTaskList(service, pc.name, singleHostsType, tasks));
-          proxy.message = getStageText("Completing", pc.name, Collections.singleton(host));
+          proxy.message = getStageText("Completing",
+              ctx.getComponentDisplay(service, pc.name), Collections.singleton(host));
           targetList.add(proxy);
           targetList.add(proxy);
         }
         }
       }
       }
@@ -196,17 +200,18 @@ public class ColocatedGrouping extends Grouping {
 
 
       }
       }
 
 
-      if (Direction.UPGRADE == direction && m_serviceCheck &&
-          serviceChecks.size() > 0) {
+      if (direction.isUpgrade() && m_serviceCheck && serviceChecks.size() > 0) {
         // !!! add the service check task
         // !!! add the service check task
         List<TaskWrapper> tasks = new ArrayList<TaskWrapper>();
         List<TaskWrapper> tasks = new ArrayList<TaskWrapper>();
+        Set<String> displays = new HashSet<String>();
         for (String service : serviceChecks) {
         for (String service : serviceChecks) {
           tasks.add(new TaskWrapper(service, "", Collections.<String>emptySet(), new ServiceCheckTask()));
           tasks.add(new TaskWrapper(service, "", Collections.<String>emptySet(), new ServiceCheckTask()));
+          displays.add(service);
         }
         }
 
 
         StageWrapper wrapper = new StageWrapper(
         StageWrapper wrapper = new StageWrapper(
             StageWrapper.Type.SERVICE_CHECK,
             StageWrapper.Type.SERVICE_CHECK,
-            "Service Check " + StringUtils.join(serviceChecks, ", "),
+            "Service Check " + StringUtils.join(displays, ", "),
             tasks.toArray(new TaskWrapper[tasks.size()]));
             tasks.toArray(new TaskWrapper[tasks.size()]));
 
 
         results.add(wrapper);
         results.add(wrapper);

+ 17 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Direction.java

@@ -26,6 +26,23 @@ public enum Direction {
   UPGRADE,
   UPGRADE,
   DOWNGRADE;
   DOWNGRADE;
 
 
+  /**
+   * @return {@code true} if the direction is for upgrade.  Convenience instead
+   * of equality checking.
+   */
+  public boolean isUpgrade() {
+    return this == UPGRADE;
+  }
+
+  /**
+   * @return {@code true} if the direction is for downgrade.  Convenience instead
+   * of equality checking.
+   */
+  public boolean isDowngrade() {
+    return this == DOWNGRADE;
+  }
+
+
   /**
   /**
    * @param proper {@code true} to make the first letter captilized
    * @param proper {@code true} to make the first letter captilized
    * @return "upgrade" or "downgrade"
    * @return "upgrade" or "downgrade"

+ 11 - 8
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java

@@ -84,8 +84,10 @@ public class Grouping {
      * @param pc the ProcessingComponent derived from the upgrade pack.
      * @param pc the ProcessingComponent derived from the upgrade pack.
      */
      */
     @Override
     @Override
-    public void add(HostsType hostsType, String service,
-        boolean forUpgrade, boolean clientOnly, ProcessingComponent pc) {
+    public void add(UpgradeContext ctx, HostsType hostsType, String service,
+       boolean clientOnly, ProcessingComponent pc) {
+
+      boolean forUpgrade = ctx.getDirection().isUpgrade();
 
 
       List<TaskBucket> buckets = buckets(resolveTasks(forUpgrade, true, pc));
       List<TaskBucket> buckets = buckets(resolveTasks(forUpgrade, true, pc));
       for (TaskBucket bucket : buckets) {
       for (TaskBucket bucket : buckets) {
@@ -93,7 +95,7 @@ public class Grouping {
         Set<String> preTasksEffectiveHosts = TaskWrapperBuilder.getEffectiveHosts(preTasks);
         Set<String> preTasksEffectiveHosts = TaskWrapperBuilder.getEffectiveHosts(preTasks);
         StageWrapper stage = new StageWrapper(
         StageWrapper stage = new StageWrapper(
             bucket.type,
             bucket.type,
-            getStageText("Preparing", pc.name, preTasksEffectiveHosts),
+            getStageText("Preparing", ctx.getComponentDisplay(service, pc.name), preTasksEffectiveHosts),
             preTasks
             preTasks
             );
             );
         m_stages.add(stage);
         m_stages.add(stage);
@@ -106,7 +108,7 @@ public class Grouping {
           for (String hostName : hostsType.hosts) {
           for (String hostName : hostsType.hosts) {
             StageWrapper stage = new StageWrapper(
             StageWrapper stage = new StageWrapper(
                 StageWrapper.Type.RESTART,
                 StageWrapper.Type.RESTART,
-                getStageText("Restarting", pc.name, Collections.singleton(hostName)),
+                getStageText("Restarting", ctx.getComponentDisplay(service, pc.name), Collections.singleton(hostName)),
                 new TaskWrapper(service, pc.name, Collections.singleton(hostName), t));
                 new TaskWrapper(service, pc.name, Collections.singleton(hostName), t));
             m_stages.add(stage);
             m_stages.add(stage);
           }
           }
@@ -119,7 +121,7 @@ public class Grouping {
         Set<String> postTasksEffectiveHosts = TaskWrapperBuilder.getEffectiveHosts(postTasks);
         Set<String> postTasksEffectiveHosts = TaskWrapperBuilder.getEffectiveHosts(postTasks);
         StageWrapper stage = new StageWrapper(
         StageWrapper stage = new StageWrapper(
             bucket.type,
             bucket.type,
-            getStageText("Completing", pc.name, postTasksEffectiveHosts),
+            getStageText("Completing", ctx.getComponentDisplay(service, pc.name), postTasksEffectiveHosts),
             postTasks
             postTasks
             );
             );
         m_stages.add(stage);
         m_stages.add(stage);
@@ -134,16 +136,17 @@ public class Grouping {
     public List<StageWrapper> build(UpgradeContext ctx) {
     public List<StageWrapper> build(UpgradeContext ctx) {
 
 
       List<TaskWrapper> tasks = new ArrayList<TaskWrapper>();
       List<TaskWrapper> tasks = new ArrayList<TaskWrapper>();
+      List<String> displays = new ArrayList<String>();
       for (String service : m_servicesToCheck) {
       for (String service : m_servicesToCheck) {
         tasks.add(new TaskWrapper(
         tasks.add(new TaskWrapper(
             service, "", Collections.<String>emptySet(), new ServiceCheckTask()));
             service, "", Collections.<String>emptySet(), new ServiceCheckTask()));
+        displays.add(ctx.getServiceDisplay(service));
       }
       }
 
 
-      if (Direction.UPGRADE == ctx.getDirection() && m_serviceCheck &&
-          m_servicesToCheck.size() > 0) {
+      if (ctx.getDirection().isUpgrade() && m_serviceCheck && m_servicesToCheck.size() > 0) {
         StageWrapper wrapper = new StageWrapper(
         StageWrapper wrapper = new StageWrapper(
             StageWrapper.Type.SERVICE_CHECK,
             StageWrapper.Type.SERVICE_CHECK,
-            "Service Check " + StringUtils.join(m_servicesToCheck, ", "),
+            "Service Check " + StringUtils.join(displays, ", "),
             tasks.toArray(new TaskWrapper[0])
             tasks.toArray(new TaskWrapper[0])
             );
             );
 
 

+ 5 - 5
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java

@@ -65,8 +65,8 @@ public class ServiceCheckGrouping extends Grouping {
 
 
 
 
     @Override
     @Override
-    public void add(HostsType hostsType, String service, boolean forUpgrade, boolean clientOnly,
-        ProcessingComponent pc) {
+    public void add(UpgradeContext ctx, HostsType hostsType, String service,
+        boolean clientOnly, ProcessingComponent pc) {
       // !!! nothing to do here
       // !!! nothing to do here
     }
     }
 
 
@@ -76,7 +76,7 @@ public class ServiceCheckGrouping extends Grouping {
       m_metaInfo = ctx.getAmbariMetaInfo();
       m_metaInfo = ctx.getAmbariMetaInfo();
 
 
       List<StageWrapper> result = new ArrayList<StageWrapper>();
       List<StageWrapper> result = new ArrayList<StageWrapper>();
-      if (Direction.DOWNGRADE == ctx.getDirection()) {
+      if (ctx.getDirection().isDowngrade()) {
         return result;
         return result;
       }
       }
 
 
@@ -89,7 +89,7 @@ public class ServiceCheckGrouping extends Grouping {
         if (checkServiceValidity(service, serviceMap)) {
         if (checkServiceValidity(service, serviceMap)) {
           StageWrapper wrapper = new StageWrapper(
           StageWrapper wrapper = new StageWrapper(
               StageWrapper.Type.SERVICE_CHECK,
               StageWrapper.Type.SERVICE_CHECK,
-              "Service Check " + service,
+              "Service Check " + ctx.getServiceDisplay(service),
               new TaskWrapper(service, "", Collections.<String>emptySet(),
               new TaskWrapper(service, "", Collections.<String>emptySet(),
                   new ServiceCheckTask()));
                   new ServiceCheckTask()));
           result.add(wrapper);
           result.add(wrapper);
@@ -103,7 +103,7 @@ public class ServiceCheckGrouping extends Grouping {
         if (checkServiceValidity(service, serviceMap)) {
         if (checkServiceValidity(service, serviceMap)) {
           StageWrapper wrapper = new StageWrapper(
           StageWrapper wrapper = new StageWrapper(
               StageWrapper.Type.SERVICE_CHECK,
               StageWrapper.Type.SERVICE_CHECK,
-              "Service Check " + service,
+              "Service Check " + ctx.getServiceDisplay(service),
               new TaskWrapper(service, "", Collections.<String>emptySet(),
               new TaskWrapper(service, "", Collections.<String>emptySet(),
                   new ServiceCheckTask()));
                   new ServiceCheckTask()));
           result.add(wrapper);
           result.add(wrapper);

+ 3 - 3
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilder.java

@@ -32,14 +32,14 @@ public abstract class StageWrapperBuilder {
   /**
   /**
    * Adds a processing component that will be built into stage wrappers.
    * Adds a processing component that will be built into stage wrappers.
    *
    *
+   * @param ctx         the upgrade context
    * @param hostsType   the hosts, along with their type
    * @param hostsType   the hosts, along with their type
    * @param service     the service name
    * @param service     the service name
-   * @param forUpgrade  {@code true} when performing an upgrade, {@code false} for a downgrade
    * @param clientOnly  whether the service is client only, no service checks
    * @param clientOnly  whether the service is client only, no service checks
    * @param pc          the ProcessingComponent derived from the upgrade pack
    * @param pc          the ProcessingComponent derived from the upgrade pack
    */
    */
-  public abstract void add(HostsType hostsType, String service,
-      boolean forUpgrade, boolean clientOnly, ProcessingComponent pc);
+  public abstract void add(UpgradeContext ctx, HostsType hostsType, String service,
+      boolean clientOnly, ProcessingComponent pc);
 
 
   /**
   /**
    * Builds the stage wrappers.
    * Builds the stage wrappers.

+ 4 - 4
ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml

@@ -52,7 +52,7 @@
 
 
     </group>
     </group>
 
 
-    <group name="ZOOKEEPER" title="Zookeeper">
+    <group name="ZOOKEEPER" title="ZooKeeper">
       <service name="ZOOKEEPER">
       <service name="ZOOKEEPER">
         <component>ZOOKEEPER_SERVER</component>
         <component>ZOOKEEPER_SERVER</component>
       </service>
       </service>
@@ -88,7 +88,7 @@
       
       
     </group>
     </group>
     
     
-    <group name="SERVICE_CHECK" title="Full Service Check" xsi:type="service-check">
+    <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
       <priority>
       <priority>
         <service>HDFS</service>
         <service>HDFS</service>
         <service>MAPREDUCE2</service>
         <service>MAPREDUCE2</service>
@@ -118,7 +118,7 @@
       </batch>
       </batch>
     </group>
     </group>
     
     
-    <group name="SERVICE_CHECK" title="Full Service Check" xsi:type="service-check">
+    <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
       <priority>
       <priority>
         <service>HDFS</service>
         <service>HDFS</service>
         <service>YARN</service>
         <service>YARN</service>
@@ -190,7 +190,7 @@
       </service>
       </service>
     </group>
     </group>
 
 
-    <group name="SERVICE_CHECK" title="Full Service Check" xsi:type="service-check">
+    <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
       <priority>
       <priority>
         <service>HDFS</service>
         <service>HDFS</service>
         <service>YARN</service>
         <service>YARN</service>

+ 12 - 0
ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java

@@ -115,6 +115,13 @@ public class UpgradeHelperTest {
     assertTrue(upgrades.isEmpty());
     assertTrue(upgrades.isEmpty());
 
 
     upgrades = ambariMetaInfo.getUpgradePacks("HDP", "2.1.1");
     upgrades = ambariMetaInfo.getUpgradePacks("HDP", "2.1.1");
+
+    ServiceInfo si = ambariMetaInfo.getService("HDP", "2.1.1", "ZOOKEEPER");
+    si.setDisplayName("Zk");
+    ComponentInfo ci = si.getComponentByName("ZOOKEEPER_SERVER");
+    ci.setDisplayName("ZooKeeper1 Server2");
+
+
     assertTrue(upgrades.containsKey("upgrade_test"));
     assertTrue(upgrades.containsKey("upgrade_test"));
     UpgradePack upgrade = upgrades.get("upgrade_test");
     UpgradePack upgrade = upgrades.get("upgrade_test");
     assertNotNull(upgrade);
     assertNotNull(upgrade);
@@ -144,6 +151,11 @@ public class UpgradeHelperTest {
     assertTrue("Expected to find replaced text for Upgrading", found);
     assertTrue("Expected to find replaced text for Upgrading", found);
 
 
 
 
+    UpgradeGroupHolder group = groups.get(1);
+    // check that the display name is being used
+    assertTrue(group.items.get(1).getText().contains("ZooKeeper1 Server2"));
+    assertEquals(group.items.get(5).getText(), "Service Check Zk");
+
     UpgradeGroupHolder postGroup = groups.get(5);
     UpgradeGroupHolder postGroup = groups.get(5);
     assertEquals(postGroup.name, "POST_CLUSTER");
     assertEquals(postGroup.name, "POST_CLUSTER");
     assertEquals(postGroup.title, "Finalize Upgrade");
     assertEquals(postGroup.title, "Finalize Upgrade");