Browse Source

AMBARI-3880 - HDFS and HBase time series and other data are not coming thru via API

tbeerbower 11 năm trước cách đây
mục cha
commit
f0682821b5

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java

@@ -383,7 +383,7 @@ public abstract class AbstractProviderModule implements ProviderModule, Resource
             this,
             streamProvider,
             PropertyHelper.getPropertyId("ServiceComponentInfo", "cluster_name"),
-            PropertyHelper.getPropertyId("ServiceComponentInfo", "host_name"),
+            null,
             PropertyHelper.getPropertyId("ServiceComponentInfo", "component_name"),
             PropertyHelper.getPropertyId("ServiceComponentInfo", "state"),
             jpp,

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestImpl.java

@@ -105,7 +105,7 @@ public class RequestImpl implements Request {
 
   @Override
   public TemporalInfo getTemporalInfo(String id) {
-    return m_mapTemporalInfo.get(id);
+    return m_mapTemporalInfo == null ? null : m_mapTemporalInfo.get(id);
   }
 
   private void setTemporalInfo(Map<String, TemporalInfo> mapTemporalInfo) {

+ 9 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java

@@ -279,6 +279,15 @@ public class JMXPropertyProvider extends AbstractPropertyProvider {
       throws SystemException {
 
     Set<String> ids = getRequestPropertyIds(request, predicate);
+    Set<String> temporalIds = new HashSet<String>();
+
+    for (String id : ids) {
+      if (request.getTemporalInfo(id) != null) {
+        temporalIds.add(id);
+      }
+    }
+    ids.removeAll(temporalIds);
+
     if (ids.isEmpty()) {
       // no properties requested
       return resource;