Updated Branches: refs/heads/trunk 0af2dcba3 -> 5b8530170
AMBARI-3670 - Hosts should roll up host_components status into its status - Ganglia check fails when cluster is null. Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/5b853017 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/5b853017 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/5b853017 Branch: refs/heads/trunk Commit: 5b85301707ed2cbfde0e787605e12663774fe9d7 Parents: 0af2dcb Author: tbeerbower <[email protected]> Authored: Tue Nov 5 19:28:33 2013 -0500 Committer: tbeerbower <[email protected]> Committed: Tue Nov 5 19:39:54 2013 -0500 ---------------------------------------------------------------------- .../internal/AbstractProviderModule.java | 31 ++++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/5b853017/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java index 0e65262..8005153 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java @@ -251,10 +251,15 @@ public abstract class AbstractProviderModule implements ProviderModule, Resource @Override public boolean isGangliaCollectorHostLive(String clusterName) throws SystemException { - + + if (clusterName == null) { + return false; + } + HostResponse gangliaCollectorHost; - + try { + final String gangliaCollectorHostName = getGangliaCollectorHostName(clusterName); HostRequest hostRequest = new HostRequest(gangliaCollectorHostName, clusterName, Collections.<String, String>emptyMap()); @@ -267,30 +272,30 @@ public abstract class AbstractProviderModule implements ProviderModule, Resource } //Cluster without Ganglia - return gangliaCollectorHost != null && !gangliaCollectorHost.getHostState().equals(HostState.HEARTBEAT_LOST.name()); + return gangliaCollectorHost != null && + !gangliaCollectorHost.getHostState().equals(HostState.HEARTBEAT_LOST.name()); } @Override public boolean isGangliaCollectorComponentLive(String clusterName) throws SystemException { - + if (clusterName == null) { + return false; + } ServiceComponentHostResponse gangliaCollectorHostComponent; - + try { final String gangliaCollectorHostName = getGangliaCollectorHostName(clusterName); + ServiceComponentHostRequest componentRequest = new ServiceComponentHostRequest(clusterName, "GANGLIA", Role.GANGLIA_SERVER.name(), gangliaCollectorHostName, Collections.<String, String>emptyMap(), null); - Set<ServiceComponentHostResponse> hostComponents = managementController.getHostComponents(Collections.singleton(componentRequest)); - gangliaCollectorHostComponent = (ServiceComponentHostResponse) CollectionUtils.find(hostComponents, - new org.apache.commons.collections.Predicate() { - @Override - public boolean evaluate(Object arg0) { - return ((ServiceComponentHostResponse) arg0).getHostname().equals(gangliaCollectorHostName); - } - }); + Set<ServiceComponentHostResponse> hostComponents = + managementController.getHostComponents(Collections.singleton(componentRequest)); + + gangliaCollectorHostComponent = hostComponents.size() == 1 ? hostComponents.iterator().next() : null; } catch (AmbariException e) { LOG.debug("Error checking of Ganglia server host component state: ", e); return false;
