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;

Reply via email to