This is an automated email from the ASF dual-hosted git repository. wuzhiguo pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push: new 852d46387f AMBARI-25210: ONEFS installation via blueprint fails (#3434) 852d46387f is described below commit 852d46387f5aafdfba9cb9b7b11609e636e66e95 Author: Zhiguo Wu <wuzhi...@apache.org> AuthorDate: Thu Nov 3 17:44:06 2022 +0800 AMBARI-25210: ONEFS installation via blueprint fails (#3434) --- .../controller/internal/BlueprintConfigurationProcessor.java | 2 +- .../java/org/apache/ambari/server/topology/ClusterTopology.java | 4 ++-- .../org/apache/ambari/server/topology/ClusterTopologyImpl.java | 7 ++----- .../org/apache/ambari/server/topology/ClusterTopologyImplTest.java | 4 +--- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java index 8e22e0954b..b3540dce5d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java @@ -1955,7 +1955,7 @@ public class BlueprintConfigurationProcessor { return origValue; } - if (topology.isComponentHadoopCompatible(component)) { + if (isComponentNameNode() && topology.hasHadoopCompatibleService()) { // do not fail, could be a ONEFS installation return origValue; } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopology.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopology.java index 4d8bba3c28..bb6c1021f2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopology.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopology.java @@ -186,7 +186,7 @@ public interface ClusterTopology { String getDefaultPassword(); /** - * @return true if the given component belongs to a service that has serviceType=HCFS + * @return true if the topology contains any service with HCFS tag */ - boolean isComponentHadoopCompatible(String component); + boolean hasHadoopCompatibleService(); } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java index c1c57908b3..87d95fc203 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java @@ -300,12 +300,9 @@ public class ClusterTopologyImpl implements ClusterTopology { } @Override - public boolean isComponentHadoopCompatible(String component) { + public boolean hasHadoopCompatibleService() { return blueprint.getServiceInfos().stream() - .filter(service -> service.getComponentByName(component) != null) - .findFirst() - .map(service -> HADOOP_COMPATIBLE_FS.equals(service.getServiceType())) - .orElse(false); + .anyMatch(service -> HADOOP_COMPATIBLE_FS.equals(service.getServiceType())); } private void registerHostGroupInfo(Map<String, HostGroupInfo> requestedHostGroupInfoMap) throws InvalidTopologyException { diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java index d157ff6e4a..9b17c11c08 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java @@ -21,7 +21,6 @@ package org.apache.ambari.server.topology; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.easymock.EasyMock.expect; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.powermock.api.easymock.PowerMock.createNiceMock; import static org.powermock.api.easymock.PowerMock.replay; @@ -187,8 +186,7 @@ public class ClusterTopologyImplTest { ).anyTimes(); replayAll(); ClusterTopologyImpl topology = new ClusterTopologyImpl(null, new TestTopologyRequest(TopologyRequest.Type.PROVISION)); - assertTrue(topology.isComponentHadoopCompatible("ONEFS_CLIENT")); - assertFalse(topology.isComponentHadoopCompatible("ZOOKEEPER_CLIENT")); + assertTrue(topology.hasHadoopCompatibleService()); } private ServiceInfo aHCFSWith(ComponentInfo... components) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@ambari.apache.org For additional commands, e-mail: commits-h...@ambari.apache.org