You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2018/08/08 19:40:45 UTC
[ambari] branch branch-feature-AMBARI-14714 updated: [AMBARI-24430]
Orchestration: Display Names are not being resolved
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;