You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rl...@apache.org on 2017/11/16 19:45:33 UTC
[17/50] [abbrv] ambari git commit: AMBARI-22411. Restart all required
services failed when running cluster with several patch upgrades applied
(ncole)
AMBARI-22411. Restart all required services failed when running cluster with several patch upgrades applied (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/068d82f7
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/068d82f7
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/068d82f7
Branch: refs/heads/branch-feature-AMBARI-20859
Commit: 068d82f700432cf5cfa75d20924443e998d8fe87
Parents: ec02a14
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Nov 10 11:23:13 2017 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Fri Nov 10 12:00:14 2017 -0500
----------------------------------------------------------------------
.../AmbariCustomCommandExecutionHelper.java | 23 ++++----
.../AmbariManagementControllerImpl.java | 60 +++-----------------
.../internal/UpgradeResourceProvider.java | 8 +--
.../HDP/2.0.6/properties/stack_packages.json | 3 +-
.../AmbariManagementControllerImplTest.java | 2 +-
5 files changed, 25 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/068d82f7/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
index e8febbb..dc6bbb7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
@@ -1425,27 +1425,23 @@ public class AmbariCustomCommandExecutionHelper {
*
* @param actionExecContext the context
* @param cluster the cluster for the command
+ * @param stackId the stack id used to load service metainfo.
*
* @return a wrapper of the important JSON structures to add to a stage
*/
public ExecuteCommandJson getCommandJson(ActionExecutionContext actionExecContext,
- Cluster cluster, RepositoryVersionEntity repositoryVersion, String requestContext) throws AmbariException {
+ Cluster cluster, StackId stackId, String requestContext) throws AmbariException {
Map<String, String> commandParamsStage = StageUtils.getCommandParamsStage(actionExecContext, requestContext);
Map<String, String> hostParamsStage = new HashMap<>();
Map<String, Set<String>> clusterHostInfo;
String clusterHostInfoJson = "{}";
- StackId stackId = null;
- if (null != repositoryVersion) {
- stackId = repositoryVersion.getStackId();
- }
-
if (null != cluster) {
clusterHostInfo = StageUtils.getClusterHostInfo(cluster);
// Important, because this runs during Stack Uprade, it needs to use the effective Stack Id.
- hostParamsStage = createDefaultHostParams(cluster, repositoryVersion);
+ hostParamsStage = createDefaultHostParams(cluster, stackId);
String componentName = null;
String serviceName = null;
@@ -1454,7 +1450,7 @@ public class AmbariCustomCommandExecutionHelper {
serviceName = actionExecContext.getOperationLevel().getServiceName();
}
- if (serviceName != null && componentName != null && null != stackId) {
+ if (serviceName != null && componentName != null) {
Service service = cluster.getService(serviceName);
ServiceComponent component = service.getServiceComponent(componentName);
stackId = component.getDesiredStackId();
@@ -1473,6 +1469,10 @@ public class AmbariCustomCommandExecutionHelper {
clusterHostInfoJson = StageUtils.getGson().toJson(clusterHostInfo);
+ if (null == stackId && null != cluster) {
+ stackId = cluster.getDesiredStackVersion();
+ }
+
//Propogate HCFS service type info to command params
if (null != stackId) {
Map<String, ServiceInfo> serviceInfos = ambariMetaInfo.getServices(stackId.getStackName(),
@@ -1497,11 +1497,10 @@ public class AmbariCustomCommandExecutionHelper {
hostParamsStageJson);
}
- Map<String, String> createDefaultHostParams(Cluster cluster, RepositoryVersionEntity repositoryVersion) throws AmbariException {
- return createDefaultHostParams(cluster, repositoryVersion.getStackId());
- }
-
Map<String, String> createDefaultHostParams(Cluster cluster, StackId stackId) throws AmbariException {
+ if (null == stackId) {
+ stackId = cluster.getDesiredStackVersion();
+ }
TreeMap<String, String> hostLevelParams = new TreeMap<>();
StageUtils.useStackJdkIfExists(hostLevelParams, configs);
http://git-wip-us.apache.org/repos/asf/ambari/blob/068d82f7/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 380e1b4..4c00f1f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -68,6 +68,8 @@ import java.util.concurrent.TimeUnit;
import javax.persistence.RollbackException;
+import org.apache.ambari.annotations.Experimental;
+import org.apache.ambari.annotations.ExperimentalFeature;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.ClusterNotFoundException;
import org.apache.ambari.server.DuplicateResourceException;
@@ -2838,7 +2840,7 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
if (StringUtils.isBlank(stage.getHostParamsStage())) {
RepositoryVersionEntity repositoryVersion = serviceComponent.getDesiredRepositoryVersion();
stage.setHostParamsStage(StageUtils.getGson().toJson(
- customCommandExecutionHelper.createDefaultHostParams(cluster, repositoryVersion)));
+ customCommandExecutionHelper.createDefaultHostParams(cluster, repositoryVersion.getStackId())));
}
@@ -3186,7 +3188,7 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
Map<String, String> hostParamsCmd = customCommandExecutionHelper.createDefaultHostParams(
- cluster, scHost.getServiceComponent().getDesiredRepositoryVersion());
+ cluster, scHost.getServiceComponent().getDesiredStackId());
Stage stage = createNewStage(0, cluster, 1, "", clusterHostInfoJson, "{}", "");
@@ -4154,56 +4156,10 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
actionManager,
actionRequest);
- RepositoryVersionEntity desiredRepositoryVersion = null;
-
- RequestOperationLevel operationLevel = actionExecContext.getOperationLevel();
- if (null != operationLevel && StringUtils.isNotBlank(operationLevel.getServiceName())) {
- Service service = cluster.getService(operationLevel.getServiceName());
- if (null != service) {
- desiredRepositoryVersion = service.getDesiredRepositoryVersion();
- }
- }
-
- if (null == desiredRepositoryVersion && CollectionUtils.isNotEmpty(actionExecContext.getResourceFilters())) {
- Set<RepositoryVersionEntity> versions = new HashSet<>();
-
- for (RequestResourceFilter filter : actionExecContext.getResourceFilters()) {
- RepositoryVersionEntity repoVersion = null;
-
- if (StringUtils.isNotBlank(filter.getServiceName())) {
- Service service = cluster.getService(filter.getServiceName());
-
- if (StringUtils.isNotBlank(filter.getComponentName())) {
- ServiceComponent serviceComponent = service.getServiceComponent(filter.getComponentName());
-
- repoVersion = serviceComponent.getDesiredRepositoryVersion();
- }
-
- if (null == repoVersion) {
- repoVersion = service.getDesiredRepositoryVersion();
- }
- }
-
- if (null != repoVersion) {
- versions.add(repoVersion);
- }
- }
-
- if (1 == versions.size()) {
- desiredRepositoryVersion = versions.iterator().next();
- } else if (versions.size() > 1) {
- Set<String> errors = new HashSet<>();
- for (RepositoryVersionEntity version : versions) {
- errors.add(String.format("%s/%s", version.getStackId(), version.getVersion()));
- }
- throw new IllegalArgumentException(String.format("More than one repository is resolved with this Action: %s",
- StringUtils.join(errors, ';')));
- }
- }
-
-
- ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson(actionExecContext,
- cluster, desiredRepositoryVersion, requestContext);
+ @Experimental(feature=ExperimentalFeature.MULTI_SERVICE,
+ comment = "This must change with Multi-Service since the cluster won't have a desired stack version")
+ ExecuteCommandJson jsons = customCommandExecutionHelper.getCommandJson(actionExecContext, cluster,
+ null == cluster ? null : cluster.getDesiredStackVersion(), requestContext);
String commandParamsForStage = jsons.getCommandParamsForStage();
http://git-wip-us.apache.org/repos/asf/ambari/blob/068d82f7/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
----------------------------------------------------------------------
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 14b1b86..d4111d6 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
@@ -1073,7 +1073,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
actionContext.setAutoSkipFailures(context.isComponentFailureAutoSkipped());
ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext,
- cluster, effectiveRepositoryVersion, null);
+ cluster, effectiveRepositoryVersion.getStackId(), null);
Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari",
cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(),
@@ -1155,7 +1155,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
actionContext.setMaintenanceModeHostExcluded(true);
ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext,
- cluster, effectiveRepositoryVersion, null);
+ cluster, effectiveRepositoryVersion.getStackId(), null);
Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari",
cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(),
@@ -1220,7 +1220,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
actionContext.setMaintenanceModeHostExcluded(true);
ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext,
- cluster, effectiveRepositoryVersion, null);
+ cluster, effectiveRepositoryVersion.getStackId(), null);
Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari",
cluster.getClusterName(), cluster.getClusterId(), entity.getText(), jsons.getCommandParamsForStage(),
@@ -1361,7 +1361,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
actionContext.setMaintenanceModeHostExcluded(true);
ExecuteCommandJson jsons = s_commandExecutionHelper.get().getCommandJson(actionContext,
- cluster, context.getRepositoryVersion(), null);
+ cluster, context.getRepositoryVersion().getStackId(), null);
Stage stage = s_stageFactory.get().createNew(request.getId().longValue(), "/tmp/ambari",
cluster.getClusterName(), cluster.getClusterId(), stageText, jsons.getCommandParamsForStage(),
http://git-wip-us.apache.org/repos/asf/ambari/blob/068d82f7/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
index 23c6d32..68e6bf8 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
@@ -1277,8 +1277,7 @@
}
},
"upgrade-dependencies" : {
- "YARN": ["TEZ"],
- "TEZ": ["YARN"],
+ "HIVE": ["TEZ"],
"MAHOUT": ["MAPREDUCE2"]
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/068d82f7/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
index 9547271..94c5ebe 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
@@ -2138,7 +2138,7 @@ public class AmbariManagementControllerImplTest {
f.setAccessible(true);
f.set(helper, gson);
- Map<String, String> defaultHostParams = helper.createDefaultHostParams(cluster, repositoryVersionEntity);
+ Map<String, String> defaultHostParams = helper.createDefaultHostParams(cluster, repositoryVersionEntity.getStackId());
assertEquals(15, defaultHostParams.size());
assertEquals(MYSQL_JAR, defaultHostParams.get(DB_DRIVER_FILENAME));