This is an automated email from the ASF dual-hosted git repository. ncole pushed a commit to branch branch-feature-AMBARI-14714 in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by this push: new 1e5b74e [AMBARI-24430] Orchestration: Display Names are not being resolved 1e5b74e is described below commit 1e5b74e68a73aa00cf7349c18dd656d426619766 Author: Nate Cole <nc...@hortonworks.com> AuthorDate: Wed Aug 8 14:49:51 2018 -0400 [AMBARI-24430] Orchestration: Display Names are not being resolved --- .../ambari/server/agent/stomp/TopologyHolder.java | 4 +- .../internal/UpgradeResourceProvider.java | 2 +- .../java/org/apache/ambari/server/state/Mpack.java | 20 ++++++++++ .../apache/ambari/server/state/UpgradeContext.java | 15 +++++++- .../apache/ambari/server/state/UpgradeHelper.java | 44 ++++++++++------------ .../state/stack/upgrade/ClusterGrouping.java | 5 ++- .../state/stack/upgrade/ColocatedGrouping.java | 15 ++++---- .../server/state/stack/upgrade/Grouping.java | 18 +++++---- .../state/stack/upgrade/HostOrderGrouping.java | 12 +++--- .../state/stack/upgrade/ServiceCheckGrouping.java | 9 +++-- .../state/stack/upgrade/StageWrapperBuilder.java | 9 +++-- .../stack/upgrade/StageWrapperBuilderTest.java | 9 +++-- 12 files changed, 98 insertions(+), 64 deletions(-) diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/TopologyHolder.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/TopologyHolder.java index 1cb3bf3..a2710231 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/TopologyHolder.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/TopologyHolder.java @@ -44,7 +44,7 @@ import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; import com.google.common.eventbus.Subscribe; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -95,7 +95,7 @@ public class TopologyHolder extends AgentClusterDataHolder<TopologyUpdateEvent> .setComponentName(sch.getServiceComponentName()) .setServiceName(sch.getServiceName()) .setVersion(sch.getVersion()) - .setHostIds(ImmutableSet.of(sch.getHost().getHostId())) + .setHostIds(Sets.newHashSet(sch.getHost().getHostId())) .setComponentLevelParams(ambariManagementController.getTopologyComponentLevelParams(sch)) .setCommandParams(ambariManagementController.getTopologyCommandParams(sch)) .build(); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java index 2e2f988..d5e740e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java @@ -736,7 +736,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider ConfigHelper configHelper = getManagementController().getConfigHelper(); - List<UpgradeGroupHolder> groups = s_upgradeHelper.createSequence(upgradeContext, upgradePlan); + List<UpgradeGroupHolder> groups = s_upgradeHelper.createSequence(upgradeContext); if (groups.isEmpty()) { throw new AmbariException("There are no groupings available"); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java index 1a23f38..9345e09 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java @@ -25,6 +25,7 @@ import java.util.Set; import org.apache.ambari.server.stack.RepoUtil; import org.apache.ambari.server.state.stack.RepositoryXml; +import org.apache.ambari.server.state.stack.UpgradePack; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang3.StringUtils; @@ -361,6 +362,8 @@ public class Mpack { private final Mpack m_source; private final Mpack m_target; + + private UpgradePack m_upgradePack = null; /** * Constructor. @@ -537,6 +540,23 @@ public class Mpack { public boolean hasVersionChanges() { return !m_moduleVersionChanges.isEmpty(); } + + /** + * Sets the upgrade pack which this summary uses for orchestration. + * + * @param upgradePack + * the upgrade pack + */ + public void setUpgradePack(UpgradePack upgradePack) { + m_upgradePack = upgradePack; + } + + /** + * @return the upgrade pack used for orchestration + */ + public UpgradePack getUpgradePack() { + return m_upgradePack; + } } /** diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java index f3f1b14..d74b2c6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java @@ -116,7 +116,7 @@ public class UpgradeContext { public static final String COMMAND_PARAM_TASKS = "tasks"; public static final String COMMAND_PARAM_STRUCT_OUT = "structured_out"; - /* + /** * The cluster that the upgrade is for. */ private final Cluster m_cluster; @@ -318,6 +318,10 @@ public class UpgradeContext { Long upgradePlanId = Long.valueOf(upgradeRequestMap.get(UPGRADE_PLAN_ID).toString()); UpgradePlanEntity upgradePlan = upgradePlanDAO.findByPK(upgradePlanId); + if (null == upgradePlan) { + throw new AmbariException(String.format("Cannot find upgrade plan %s", upgradePlanId)); + } + m_direction = upgradePlan.getDirection(); // depending on the direction, we must either have a target repository or an upgrade we are downgrading from @@ -339,6 +343,13 @@ public class UpgradeContext { continue; } + // !!! TODO this better be resolved in the upgrade detail and non-null + String upgradePackName = detail.getUpgradePack(); + + // !!! TODO this should be moved from the stack to the mpack + StackInfo stack = m_metaInfo.getStack(targetMpack.getStackId()); + summary.setUpgradePack(stack.getUpgradePacks().get(upgradePackName)); + m_serviceGroups.put(serviceGroup, summary); } break; @@ -749,7 +760,7 @@ public class UpgradeContext { */ @Experimental(feature=ExperimentalFeature.MPACK_UPGRADES, comment = "Needs implementation and thought") public boolean isSupportedInUpgrade(String serviceName) { - return false; + return true; } /** 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 178c7b3..d2dedb5 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 @@ -35,7 +35,6 @@ import java.util.stream.Collectors; import org.apache.ambari.annotations.Experimental; import org.apache.ambari.annotations.ExperimentalFeature; import org.apache.ambari.server.AmbariException; -import org.apache.ambari.server.StackAccessException; import org.apache.ambari.server.agent.stomp.AgentConfigsHolder; import org.apache.ambari.server.agent.stomp.MetadataHolder; import org.apache.ambari.server.api.services.AmbariMetaInfo; @@ -63,9 +62,9 @@ import org.apache.ambari.server.orm.dao.StackDAO; import org.apache.ambari.server.orm.entities.ClusterConfigEntity; import org.apache.ambari.server.orm.entities.ServiceConfigEntity; import org.apache.ambari.server.orm.entities.StackEntity; -import org.apache.ambari.server.orm.entities.UpgradePlanEntity; import org.apache.ambari.server.stack.HostsType; import org.apache.ambari.server.stack.MasterHostResolver; +import org.apache.ambari.server.state.Mpack.MpackChangeSummary; import org.apache.ambari.server.state.stack.UpgradePack; import org.apache.ambari.server.state.stack.UpgradePack.ProcessingComponent; import org.apache.ambari.server.state.stack.upgrade.AddComponentTask; @@ -240,8 +239,11 @@ public class UpgradeHelper { * @param upgradePlan * the upgrade plan to execute */ - public List<UpgradeGroupHolder> createSequence(UpgradeContext context, - UpgradePlanEntity upgradePlan) throws AmbariException { + @Experimental(feature=ExperimentalFeature.UNIT_TEST_REQUIRED, + comment = "require testing for lifecycles and mocked clusters, upgrade plans") + public List<UpgradeGroupHolder> createSequence(UpgradeContext context) throws AmbariException { + + Map<ServiceGroup, MpackChangeSummary> groupsInUpgrade = context.getServiceGroups(); // !!! TODO there is a ton of work to do here for merging upgrade packs across lifecycles @@ -249,26 +251,18 @@ public class UpgradeHelper { for (LifecycleType lifecycle : LifecycleType.ordered()) { - upgradePlan.getDetails().forEach(detail -> { - long mpackId = detail.getMpackTargetId(); - StackId stackId = m_ambariMetaInfoProvider.get().getMpack(mpackId).getStackId(); - final StackInfo stack; - try { - stack = m_ambariMetaInfoProvider.get().getStack(stackId); - } catch (StackAccessException e) { - LOG.info("Cannot access stack "); - return; - } - String upgradePackName = detail.getUpgradePack(); + groupsInUpgrade.values().forEach(detail -> { + + Mpack target = detail.getTarget(); + UpgradePack upgradePack = detail.getUpgradePack(); - UpgradePack upgradePack = stack.getUpgradePacks().get(upgradePackName); if (null == upgradePack) { throw new IllegalArgumentException( - String.format("Upgrade detail cannot find upgrade pack %s for %s", upgradePackName, stackId)); + String.format("Upgrade detail cannot find upgrade pack %s", target)); } try { - groups.addAll(createSequence(context, upgradePack, lifecycle)); + groups.addAll(createSequence(context, upgradePack, target, lifecycle)); } catch (AmbariException e) { throw new IllegalArgumentException(e); } @@ -292,7 +286,7 @@ public class UpgradeHelper { * @return the list of holders */ private List<UpgradeGroupHolder> createSequence(UpgradeContext context, UpgradePack upgradePack, - LifecycleType lifecycleType) throws AmbariException { + Mpack mpack, LifecycleType lifecycleType) throws AmbariException { Cluster cluster = context.getCluster(); MasterHostResolver mhr = context.getResolver(); @@ -481,7 +475,7 @@ public class UpgradeHelper { if (!hostsType.getHosts().isEmpty() && hostsType.hasMastersAndSecondaries()) { // The order is important, first do the standby, then the active namenode. hostsType.arrangeHostSecondariesFirst(); - builder.add(context, hostsType, service.serviceName, + builder.add(context, mpack, hostsType, service.serviceName, svc.isClientOnlyService(), pc, null); } else { LOG.warn("Could not orchestrate NameNode. Hosts could not be resolved: hosts={}, active={}, standby={}", @@ -493,27 +487,27 @@ public class UpgradeHelper { if (isNameNodeHA && hostsType.hasMastersAndSecondaries()) { // This could be any order, but the NameNodes have to know what role they are going to take. // So need to make 2 stages, and add different parameters to each one. - builder.add(context, HostsType.normal(hostsType.getMasters()), service.serviceName, + builder.add(context, mpack, HostsType.normal(hostsType.getMasters()), service.serviceName, svc.isClientOnlyService(), pc, nameNodeRole("active")); - builder.add(context, HostsType.normal(hostsType.getSecondaries()), service.serviceName, + builder.add(context, mpack, HostsType.normal(hostsType.getSecondaries()), service.serviceName, svc.isClientOnlyService(), pc, nameNodeRole("standby")); } else { // If no NameNode HA, then don't need to change hostsType.hosts since there should be exactly one. - builder.add(context, hostsType, service.serviceName, + builder.add(context, mpack, hostsType, service.serviceName, svc.isClientOnlyService(), pc, null); } break; } } else { - builder.add(context, hostsType, service.serviceName, + builder.add(context, mpack, hostsType, service.serviceName, svc.isClientOnlyService(), pc, null); } } } - List<StageWrapper> proxies = builder.build(context); + List<StageWrapper> proxies = builder.build(context, mpack); if (CollectionUtils.isNotEmpty(proxies)) { diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java index 70aa602..6ec5a65 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java @@ -40,6 +40,7 @@ import org.apache.ambari.server.stack.HostsType; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.MaintenanceState; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.stack.UpgradePack.ProcessingComponent; import org.apache.commons.lang.StringUtils; @@ -153,7 +154,7 @@ public class ClusterGrouping extends Grouping { } @Override - public void add(UpgradeContext ctx, HostsType hostsType, String service, + public void add(UpgradeContext ctx, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { // !!! no-op in this case } @@ -162,7 +163,7 @@ public class ClusterGrouping extends Grouping { * {@inheritDoc} */ @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) { if (null == executionStages) { diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java index 9e3f21a..71df27a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java @@ -32,6 +32,7 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; import org.apache.ambari.server.stack.HostsType; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.stack.UpgradePack.ProcessingComponent; import org.apache.ambari.server.state.stack.upgrade.StageWrapper.Type; @@ -83,7 +84,7 @@ public class ColocatedGrouping extends Grouping { } @Override - public void add(UpgradeContext context, HostsType hostsType, String service, + public void add(UpgradeContext context, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { int count = Double.valueOf(Math.ceil( @@ -114,7 +115,7 @@ public class ColocatedGrouping extends Grouping { proxy = new TaskProxy(); proxy.clientOnly = clientOnly; proxy.message = getStageText("Preparing", - context.getDisplayName(null, service, pc.name), Collections.singleton(host)); + context.getDisplayName(mpack, service, pc.name), Collections.singleton(host)); proxy.tasks.addAll(TaskWrapperBuilder.getTaskList(service, pc.name, singleHostsType, tasks, params)); proxy.service = service; proxy.component = pc.name; @@ -133,7 +134,7 @@ public class ColocatedGrouping extends Grouping { proxy.component = pc.name; proxy.type = Type.RESTART; proxy.message = getStageText("Restarting", - context.getDisplayName(null, service, pc.name), Collections.singleton(host)); + context.getDisplayName(mpack, service, pc.name), Collections.singleton(host)); targetList.add(proxy); } @@ -162,7 +163,7 @@ public class ColocatedGrouping extends Grouping { * {@inheritDoc} */ @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, List<StageWrapper> stageWrappers) { + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) { final List<Task> visitedServerSideTasks = new ArrayList<>(); @@ -199,7 +200,7 @@ public class ColocatedGrouping extends Grouping { List<String> messages = new ArrayList<>(); messages.add(m_batch.message); task.messages = messages; - formatFirstBatch(upgradeContext, task, befores); + formatFirstBatch(upgradeContext, mpack, task, befores); StageWrapper wrapper = new StageWrapper( StageWrapper.Type.SERVER_SIDE_ACTION, @@ -294,7 +295,7 @@ public class ColocatedGrouping extends Grouping { * @param task the manual task representing the verification message * @param wrappers the list of stage wrappers */ - private void formatFirstBatch(UpgradeContext ctx, ManualTask task, List<StageWrapper> wrappers) { + private void formatFirstBatch(UpgradeContext ctx, Mpack mpack, ManualTask task, List<StageWrapper> wrappers) { Set<String> names = new LinkedHashSet<>(); Map<String, Set<String>> compLocations = new HashMap<>(); @@ -310,7 +311,7 @@ public class ColocatedGrouping extends Grouping { compLocations.get(host).add(tw.getComponent()); } - names.add(ctx.getDisplayName(null, + names.add(ctx.getDisplayName(mpack, tw.getService(), tw.getComponent())); } } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java index d3112e5..d6d9823 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java @@ -33,6 +33,7 @@ import javax.xml.bind.annotation.XmlTransient; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.stack.HostsType; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.stack.UpgradePack; import org.apache.ambari.server.state.stack.UpgradePack.OrderService; @@ -136,7 +137,7 @@ public class Grouping { * @param params additional parameters */ @Override - public void add(UpgradeContext context, HostsType hostsType, String service, + public void add(UpgradeContext context, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { // Construct the pre tasks during Upgrade/Downgrade direction. @@ -149,7 +150,7 @@ public class Grouping { List<TaskWrapper> preTasks = TaskWrapperBuilder.getTaskList(service, pc.name, hostsType, bucket.tasks, params); List<List<TaskWrapper>> organizedTasks = organizeTaskWrappersBySyncRules(preTasks); for (List<TaskWrapper> tasks : organizedTasks) { - addTasksToStageInBatches(tasks, "Preparing", context, service, pc, params); + addTasksToStageInBatches(tasks, "Preparing", context, mpack, service, pc, params); } } @@ -157,7 +158,7 @@ public class Grouping { Task t = resolveTask(context, pc); if (null != t) { TaskWrapper tw = new TaskWrapper(service, pc.name, hostsType.getHosts(), params, t); - addTasksToStageInBatches(Collections.singletonList(tw), t.getActionVerb(), context, service, pc, params); + addTasksToStageInBatches(Collections.singletonList(tw), t.getActionVerb(), context, mpack, service, pc, params); } // Construct the post tasks during Upgrade/Downgrade direction. @@ -166,7 +167,7 @@ public class Grouping { List<TaskWrapper> postTasks = TaskWrapperBuilder.getTaskList(service, pc.name, hostsType, bucket.tasks, params); List<List<TaskWrapper>> organizedTasks = organizeTaskWrappersBySyncRules(postTasks); for (List<TaskWrapper> tasks : organizedTasks) { - addTasksToStageInBatches(tasks, "Completing", context, service, pc, params); + addTasksToStageInBatches(tasks, "Completing", context, mpack, service, pc, params); } } @@ -215,7 +216,8 @@ public class Grouping { * @param pc Processing Component * @param params Params to add to the stage. */ - private void addTasksToStageInBatches(List<TaskWrapper> tasks, String verb, UpgradeContext ctx, String service, ProcessingComponent pc, Map<String, String> params) { + private void addTasksToStageInBatches(List<TaskWrapper> tasks, String verb, + UpgradeContext ctx, Mpack mpack, String service, ProcessingComponent pc, Map<String, String> params) { if (tasks == null || tasks.isEmpty() || tasks.get(0).getTask() == null) { return; } @@ -242,7 +244,7 @@ public class Grouping { for (Set<String> hostSubset : hostSets) { batchNum++; - String stageText = getStageText(verb, ctx.getDisplayName(null, service, pc.name), + String stageText = getStageText(verb, ctx.getDisplayName(mpack, service, pc.name), hostSubset, batchNum, numBatchesNeeded); StageWrapper stage = new StageWrapper( @@ -261,7 +263,7 @@ public class Grouping { * @return Return the stages, which may potentially be followed by service checks. */ @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) { // insert all pre-processed stage wrappers first @@ -275,7 +277,7 @@ public class Grouping { tasks.add(new TaskWrapper( service, "", Collections.emptySet(), new ServiceCheckTask())); - displays.add(upgradeContext.getDisplayName(null, service)); + displays.add(upgradeContext.getDisplayName(mpack, service)); } if (upgradeContext.getDirection().isUpgrade() && m_serviceCheck diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/HostOrderGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/HostOrderGrouping.java index ddb38f4..4b1fa4e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/HostOrderGrouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/HostOrderGrouping.java @@ -101,14 +101,14 @@ public class HostOrderGrouping extends Grouping { } @Override - public void add(UpgradeContext upgradeContext, HostsType hostsType, String service, + public void add(UpgradeContext upgradeContext, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { // !!! NOOP, this called when there are services in the group, and there // are none for host-ordered. } @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) throws AmbariException { List<StageWrapper> wrappers = new ArrayList<>(stageWrappers); @@ -119,7 +119,7 @@ public class HostOrderGrouping extends Grouping { wrappers.addAll(buildHosts(upgradeContext, orderItem.getActionItems())); break; case SERVICE_CHECK: - wrappers.addAll(buildServiceChecks(upgradeContext, orderItem.getActionItems())); + wrappers.addAll(buildServiceChecks(upgradeContext, mpack, orderItem.getActionItems())); break; } } @@ -302,7 +302,9 @@ public class HostOrderGrouping extends Grouping { * @param upgradeContext the context * @return the wrappers for a host */ - private List<StageWrapper> buildServiceChecks(UpgradeContext upgradeContext, List<String> serviceChecks) { + private List<StageWrapper> buildServiceChecks(UpgradeContext upgradeContext, + Mpack mpack, List<String> serviceChecks) { + if (CollectionUtils.isEmpty(serviceChecks)) { return Collections.emptyList(); } @@ -325,7 +327,7 @@ public class HostOrderGrouping extends Grouping { } StageWrapper wrapper = new StageWrapper(StageWrapper.Type.SERVICE_CHECK, - String.format("Service Check %s", upgradeContext.getDisplayName(null, serviceName)), + String.format("Service Check %s", upgradeContext.getDisplayName(mpack, serviceName)), new TaskWrapper(serviceName, "", Collections.emptySet(), new ServiceCheckTask())); wrappers.add(wrapper); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java index cee28e8..299bf34 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java @@ -36,6 +36,7 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo; import org.apache.ambari.server.stack.HostsType; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.CommandScriptDefinition; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.StackId; @@ -116,7 +117,7 @@ public class ServiceCheckGrouping extends Grouping { * {@inheritDoc} */ @Override - public void add(UpgradeContext ctx, HostsType hostsType, String service, + public void add(UpgradeContext ctx, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { // !!! nothing to do here } @@ -125,7 +126,7 @@ public class ServiceCheckGrouping extends Grouping { * {@inheritDoc} */ @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) { m_cluster = upgradeContext.getCluster(); m_metaInfo = upgradeContext.getAmbariMetaInfo(); @@ -143,7 +144,7 @@ public class ServiceCheckGrouping extends Grouping { for (String service : priorityServices) { if (checkServiceValidity(upgradeContext, service, serviceMap)) { StageWrapper wrapper = new ServiceCheckStageWrapper(service, - upgradeContext.getDisplayName(null, service), true); + upgradeContext.getDisplayName(mpack, service), true); result.add(wrapper); clusterServices.remove(service); @@ -159,7 +160,7 @@ public class ServiceCheckGrouping extends Grouping { if (checkServiceValidity(upgradeContext, service, serviceMap)) { StageWrapper wrapper = new ServiceCheckStageWrapper(service, - upgradeContext.getDisplayName(null, service), false); + upgradeContext.getDisplayName(mpack, service), false); result.add(wrapper); } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilder.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilder.java index d3b42ac..a83781d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilder.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilder.java @@ -26,6 +26,7 @@ import java.util.Set; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.serveraction.upgrades.AutoSkipFailedSummaryAction; import org.apache.ambari.server.stack.HostsType; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.stack.UpgradePack.ProcessingComponent; import org.apache.commons.collections.CollectionUtils; @@ -76,7 +77,7 @@ public abstract class StageWrapperBuilder { * @param params * additional parameters */ - public abstract void add(UpgradeContext upgradeContext, HostsType hostsType, String service, + public abstract void add(UpgradeContext upgradeContext, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params); /** @@ -87,9 +88,9 @@ public abstract class StageWrapperBuilder { * the upgrade context (not {@code null}). * @return a list of stages, never {@code null} */ - public final List<StageWrapper> build(UpgradeContext upgradeContext) throws AmbariException { + public final List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack) throws AmbariException { List<StageWrapper> stageWrappers = beforeBuild(upgradeContext); - stageWrappers = build(upgradeContext, stageWrappers); + stageWrappers = build(upgradeContext, mpack, stageWrappers); stageWrappers = afterBuild(upgradeContext, stageWrappers); return stageWrappers; } @@ -119,7 +120,7 @@ public abstract class StageWrapperBuilder { * @return the stage wrapper list, (never {@code null}) */ public abstract List<StageWrapper> build(UpgradeContext upgradeContext, - List<StageWrapper> stageWrappers) throws AmbariException; + Mpack mpack, List<StageWrapper> stageWrappers) throws AmbariException; /** * Performs any post-processing that needs to be performed on the list of diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilderTest.java index 5872281..c523cf3 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/stack/upgrade/StageWrapperBuilderTest.java @@ -27,6 +27,7 @@ import org.apache.ambari.annotations.ExperimentalFeature; import org.apache.ambari.server.serveraction.upgrades.AutoSkipFailedSummaryAction; import org.apache.ambari.server.stack.HostsType; import org.apache.ambari.server.state.Cluster; +import org.apache.ambari.server.state.Mpack; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.UpgradeContext; import org.apache.ambari.server.state.stack.UpgradePack.ProcessingComponent; @@ -65,7 +66,7 @@ public class StageWrapperBuilderTest extends EasyMockSupport { replayAll(); MockStageWrapperBuilder builder = new MockStageWrapperBuilder(null); - List<StageWrapper> stageWrappers = builder.build(upgradeContext); + List<StageWrapper> stageWrappers = builder.build(upgradeContext, null); List<Integer> invocationOrder = builder.getInvocationOrder(); Assert.assertEquals(Integer.valueOf(0), invocationOrder.get(0)); @@ -108,7 +109,7 @@ public class StageWrapperBuilderTest extends EasyMockSupport { builder.setMockStageWrappers(mockStageWrappers); - List<StageWrapper> stageWrappers = builder.build(upgradeContext); + List<StageWrapper> stageWrappers = builder.build(upgradeContext, null); Assert.assertEquals(2, stageWrappers.size()); StageWrapper skipSummaryWrapper = stageWrappers.get(1); @@ -156,7 +157,7 @@ public class StageWrapperBuilderTest extends EasyMockSupport { * {@inheritDoc} */ @Override - public void add(UpgradeContext upgradeContext, HostsType hostsType, String service, + public void add(UpgradeContext upgradeContext, Mpack mpack, HostsType hostsType, String service, boolean clientOnly, ProcessingComponent pc, Map<String, String> params) { } @@ -164,7 +165,7 @@ public class StageWrapperBuilderTest extends EasyMockSupport { * {@inheritDoc} */ @Override - public List<StageWrapper> build(UpgradeContext upgradeContext, + public List<StageWrapper> build(UpgradeContext upgradeContext, Mpack mpack, List<StageWrapper> stageWrappers) { m_invocationOrder.add(1); return m_stageWrappers;