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 2016/01/21 20:21:06 UTC
[07/22] ambari git commit: AMBARI-14723. NPE when provisioning
cluster with a Cluster template which doesn't contain all hostgroups defined
in Blueprint. (Sandor Magyari via rnettleton)
AMBARI-14723. NPE when provisioning cluster with a Cluster template which doesn't contain all hostgroups defined in Blueprint. (Sandor Magyari via rnettleton)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f8fe788a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f8fe788a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f8fe788a
Branch: refs/heads/branch-dev-patch-upgrade
Commit: f8fe788a2d208acff4a88fc5a1a17549cfe16100
Parents: 8623361
Author: Bob Nettleton <rn...@hortonworks.com>
Authored: Wed Jan 20 13:33:03 2016 -0500
Committer: Bob Nettleton <rn...@hortonworks.com>
Committed: Wed Jan 20 13:33:18 2016 -0500
----------------------------------------------------------------------
.../server/topology/ClusterTopologyImpl.java | 7 ++++-
.../topology/ClusterTopologyImplTest.java | 28 +++++++++++++++++++-
2 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8fe788a/ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java
----------------------------------------------------------------------
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 91965f1..05dc504 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
@@ -173,7 +173,12 @@ public class ClusterTopologyImpl implements ClusterTopology {
Collection<String> hosts = new ArrayList<String>();
Collection<String> hostGroups = getHostGroupsForComponent(component);
for (String group : hostGroups) {
- hosts.addAll(getHostGroupInfo().get(group).getHostNames());
+ HostGroupInfo hostGroupInfo = getHostGroupInfo().get(group);
+ if (hostGroupInfo != null) {
+ hosts.addAll(hostGroupInfo.getHostNames());
+ } else {
+ LOG.warn("HostGroup {} not found, when checking for hosts for component {}", group, component);
+ }
}
return hosts;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f8fe788a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java
----------------------------------------------------------------------
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 7c68482..95e58ae 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
@@ -24,6 +24,7 @@ import org.junit.Test;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -101,6 +102,11 @@ public class ClusterTopologyImplTest {
Set<Component> group1Components = new HashSet<Component>();
group1Components.add(new Component("component1"));
group1Components.add(new Component("component2"));
+
+ Set<String> group1ComponentNames = new HashSet<String>();
+ group1ComponentNames.add("component1");
+ group1ComponentNames.add("component2");
+
Set<Component> group2Components = new HashSet<Component>();
group2Components.add(new Component("component3"));
Set<Component> group3Components = new HashSet<Component>();
@@ -123,6 +129,11 @@ public class ClusterTopologyImplTest {
expect(group2.getComponents()).andReturn(group2Components).anyTimes();
expect(group3.getComponents()).andReturn(group3Components).anyTimes();
expect(group4.getComponents()).andReturn(group4Components).anyTimes();
+
+ expect(group1.getComponentNames()).andReturn(group1ComponentNames).anyTimes();
+ expect(group2.getComponentNames()).andReturn(Collections.singletonList("component3")).anyTimes();
+ expect(group3.getComponentNames()).andReturn(Collections.singletonList("component4")).anyTimes();
+ expect(group4.getComponentNames()).andReturn(Collections.singletonList("component5")).anyTimes();
}
@After
@@ -156,7 +167,7 @@ public class ClusterTopologyImplTest {
}
@Test
- public void testCreate_validatorSuccess() throws Exception {
+ public void testCreate_validatorSuccess() throws Exception {
TestTopologyRequest request = new TestTopologyRequest(TopologyRequest.Type.PROVISION);
TopologyValidator validator = createStrictMock(TopologyValidator.class);
@@ -182,6 +193,21 @@ public class ClusterTopologyImplTest {
new ClusterTopologyImpl(null, request);
}
+ @Test
+ public void test_GetHostAssigmentForComponents() throws Exception {
+ TestTopologyRequest request = new TestTopologyRequest(TopologyRequest.Type.PROVISION);
+
+ TopologyValidator validator = createStrictMock(TopologyValidator.class);
+ topologyValidators.add(validator);
+
+ validator.validate((ClusterTopology) notNull());
+
+ replayAll();
+ replay(validator);
+
+ new ClusterTopologyImpl(null, request).getHostAssignmentsForComponent("component1");
+ }
+
private class TestTopologyRequest implements TopologyRequest {
private Type type;