You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/05/11 15:35:18 UTC
ambari git commit: AMBARI-20991 - Cluster Repository State Is Not
Calculated Correctly For Service/Patch Repos (jonathanhurley)
Repository: ambari
Updated Branches:
refs/heads/branch-feature-AMBARI-12556 8938ea219 -> b8cb5d486
AMBARI-20991 - Cluster Repository State Is Not Calculated Correctly For Service/Patch Repos (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b8cb5d48
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b8cb5d48
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b8cb5d48
Branch: refs/heads/branch-feature-AMBARI-12556
Commit: b8cb5d4863c73a1cd76a4b47fe792e650c2f67a2
Parents: 8938ea2
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Thu May 11 11:30:31 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Thu May 11 11:32:39 2017 -0400
----------------------------------------------------------------------
.../ClusterStackVersionResourceProvider.java | 38 +++++---------------
1 file changed, 9 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b8cb5d48/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
index 1e49eb2..9ca8ddc 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
@@ -77,7 +77,6 @@ import org.apache.ambari.server.state.repository.VersionDefinitionXml;
import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
import org.apache.ambari.server.utils.StageUtils;
import org.apache.ambari.server.utils.VersionUtils;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
@@ -240,6 +239,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
RepositoryVersionEntity repositoryVersion = repositoryVersionDAO.findByPK(repositoryVersionId);
+ final List<RepositoryVersionState> allStates = new ArrayList<>();
final Map<RepositoryVersionState, List<String>> hostStates = new HashMap<>();
for (RepositoryVersionState state: RepositoryVersionState.values()) {
hostStates.put(state, new ArrayList<String>());
@@ -248,10 +248,13 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
StackEntity repoVersionStackEntity = repositoryVersion.getStack();
StackId repoVersionStackId = new StackId(repoVersionStackEntity);
- for (HostVersionEntity hostVersionEntity : hostVersionDAO.findByClusterStackAndVersion(
- clusterName, repoVersionStackId, repositoryVersion.getVersion())) {
+ List<HostVersionEntity> hostVersionsForRepository = hostVersionDAO.findHostVersionByClusterAndRepository(
+ cluster.getClusterId(), repositoryVersion);
+ // create the in-memory structures
+ for (HostVersionEntity hostVersionEntity : hostVersionsForRepository) {
hostStates.get(hostVersionEntity.getState()).add(hostVersionEntity.getHostName());
+ allStates.add(hostVersionEntity.getState());
}
setResourceProperty(resource, CLUSTER_STACK_VERSION_CLUSTER_NAME_PROPERTY_ID, clusterName, requestedIds);
@@ -259,35 +262,12 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
setResourceProperty(resource, CLUSTER_STACK_VERSION_ID_PROPERTY_ID, repositoryVersion.getId(), requestedIds);
setResourceProperty(resource, CLUSTER_STACK_VERSION_STACK_PROPERTY_ID, repoVersionStackId.getStackName(), requestedIds);
setResourceProperty(resource, CLUSTER_STACK_VERSION_VERSION_PROPERTY_ID, repoVersionStackId.getStackVersion(), requestedIds);
-
+ setResourceProperty(resource, CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID, repositoryVersion.getId(), requestedIds);
@Experimental(feature = ExperimentalFeature.PATCH_UPGRADES,
comment = "this is a fake status until the UI can handle services that are on their own")
- RepositoryVersionState finalState = null;
-
- for (RepositoryVersionState state : EnumSet.of(RepositoryVersionState.INSTALLING,
- RepositoryVersionState.INSTALL_FAILED, RepositoryVersionState.OUT_OF_SYNC)) {
-
- if (CollectionUtils.isNotEmpty(hostStates.get(state))) {
- finalState = state;
- break;
- }
- }
-
- if (null == finalState) {
- int count = cluster.getClusterSize();
-
- for (RepositoryVersionState state : EnumSet.of(RepositoryVersionState.INSTALLED, RepositoryVersionState.CURRENT)) {
- if (count == CollectionUtils.size(hostStates.get(state))) {
- finalState = state;
- break;
- }
- }
- }
- // !!! end ExperimentalFeature
-
- setResourceProperty(resource, CLUSTER_STACK_VERSION_STATE_PROPERTY_ID, finalState, requestedIds);
- setResourceProperty(resource, CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID, repositoryVersion.getId(), requestedIds);
+ RepositoryVersionState aggregateState = RepositoryVersionState.getAggregateState(allStates);
+ setResourceProperty(resource, CLUSTER_STACK_VERSION_STATE_PROPERTY_ID, aggregateState, requestedIds);
if (predicate == null || predicate.evaluate(resource)) {
resources.add(resource);