Browse Source

AMBARI-3192. FE change due to BE has removed ServiceComponentInfo to each NameNode. (xiwang via yusaku)

Yusaku Sako 11 years ago
parent
commit
16088a760e

+ 24 - 4
ambari-web/app/controllers/global/update_controller.js

@@ -99,10 +99,30 @@ App.UpdateController = Em.Controller.extend({
     var conditionalFieldsString = conditionalFields.length > 0 ? ',' + conditionalFields.join(',') : '';
     var methodStartTs = new Date().getTime();
     var testUrl = App.get('isHadoop2Stack') ? '/data/dashboard/HDP2/services.json':'/data/dashboard/services.json';
-    var servicesUrl = isInitialLoad ? 
-      //this.getUrl('/data/dashboard/services.json', '/services?fields=components/ServiceComponentInfo,components/host_components,components/host_components/HostRoles') :
-      this.getUrl(testUrl, '/services?fields=components/ServiceComponentInfo,components/host_components,components/host_components/HostRoles,components/host_components/metrics/jvm/memHeapUsedM,components/host_components/metrics/jvm/memHeapCommittedM,components/host_components/metrics/mapred/jobtracker/trackers_decommissioned,components/host_components/metrics/cpu/cpu_wio,components/host_components/metrics/rpc/RpcQueueTime_avg_time,components/host_components/metrics/dfs/FSNamesystem/HAState'+conditionalFieldsString) :
-      this.getUrl(testUrl, '/services?fields=components/ServiceComponentInfo,components/host_components,components/host_components/HostRoles,components/host_components/metrics/jvm/memHeapUsedM,components/host_components/metrics/jvm/memHeapCommittedM,components/host_components/metrics/mapred/jobtracker/trackers_decommissioned,components/host_components/metrics/cpu/cpu_wio,components/host_components/metrics/rpc/RpcQueueTime_avg_time,components/host_components/metrics/dfs/FSNamesystem/HAState'+conditionalFieldsString);
+
+    var realUrl = '/services?fields=components/ServiceComponentInfo,components/host_components,components/host_components/HostRoles,' +
+      'components/host_components/metrics/jvm/memHeapUsedM,' +
+      'components/host_components/metrics/jvm/memHeapCommittedM,' +
+      'components/host_components/metrics/mapred/jobtracker/trackers_decommissioned,' +
+      'components/host_components/metrics/cpu/cpu_wio,' +
+      'components/host_components/metrics/rpc/RpcQueueTime_avg_time,' +
+      'components/host_components/metrics/dfs/FSNamesystem/HAState,' +
+      'components/host_components/metrics/dfs/FSNamesystem/CapacityUsed,' +
+      'components/host_components/metrics/dfs/FSNamesystem/CapacityTotal,' +
+      'components/host_components/metrics/dfs/FSNamesystem/CapacityRemaining,' +
+      'components/host_components/metrics/dfs/FSNamesystem/BlocksTotal,' +
+      'components/host_components/metrics/dfs/FSNamesystem/CorruptBlocks,' +
+      'components/host_components/metrics/dfs/FSNamesystem/MissingBlocks,' +
+      'components/host_components/metrics/dfs/FSNamesystem/UnderReplicatedBlocks,' +
+      'components/host_components/metrics/dfs/namenode/Version,' +
+      'components/host_components/metrics/dfs/namenode/LiveNodes,' +
+      'components/host_components/metrics/dfs/namenode/DeadNodes,' +
+      'components/host_components/metrics/dfs/namenode/DecomNodes,' +
+      'components/host_components/metrics/dfs/namenode/TotalFiles,' +
+      'components/host_components/metrics/dfs/namenode/UpgradeFinalized,' +
+      'components/host_components/metrics/dfs/namenode/Safemode';
+
+    var servicesUrl = isInitialLoad ? this.getUrl(testUrl, realUrl + conditionalFieldsString) : this.getUrl(testUrl, realUrl + conditionalFieldsString);
     var callback = callback || function (jqXHR, textStatus) {
       self.set('isUpdated', true);
     };

+ 18 - 19
ambari-web/app/mappers/service_mapper.js

@@ -58,7 +58,7 @@ App.servicesMapper = App.QuickDataMapper.create({
     host_components: 'host_components'
   },
   hdfsConfig: {
-    version: 'nameNodeComponent.ServiceComponentInfo.Version',
+    version: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.Version',
     name_node_id: 'nameNodeComponent.host_components[0].HostRoles.host_name',
     sname_node_id: 'snameNodeComponent.host_components[0].HostRoles.host_name',
     active_name_node_id: 'active_name_node_id',
@@ -66,22 +66,22 @@ App.servicesMapper = App.QuickDataMapper.create({
     standby_name_node2_id: 'standby_name_node2_id',
     data_nodes: 'data_nodes',
     journal_nodes: 'journal_nodes',
-    name_node_start_time: 'nameNodeComponent.ServiceComponentInfo.StartTime',
+    name_node_start_time: 'nameNodeComponent.ServiceComponentInfo.StartTime', //// blocked by bug-8787
     jvm_memory_heap_used: 'nameNodeComponent.host_components[0].metrics.jvm.memHeapUsedM',
     jvm_memory_heap_committed: 'nameNodeComponent.host_components[0].metrics.jvm.memHeapCommittedM',
     live_data_nodes: 'live_data_nodes',
     dead_data_nodes: 'dead_data_nodes',
     decommission_data_nodes: 'decommission_data_nodes',
-    capacity_used: 'nameNodeComponent.ServiceComponentInfo.CapacityUsed',
-    capacity_total: 'nameNodeComponent.ServiceComponentInfo.CapacityTotal',
-    capacity_remaining: 'nameNodeComponent.ServiceComponentInfo.CapacityRemaining',
-    dfs_total_blocks: 'nameNodeComponent.ServiceComponentInfo.BlocksTotal',
-    dfs_corrupt_blocks: 'nameNodeComponent.ServiceComponentInfo.CorruptBlocks',
-    dfs_missing_blocks: 'nameNodeComponent.ServiceComponentInfo.MissingBlocks',
-    dfs_under_replicated_blocks: 'nameNodeComponent.ServiceComponentInfo.UnderReplicatedBlocks',
-    dfs_total_files: 'nameNodeComponent.ServiceComponentInfo.TotalFiles',
-    upgrade_status: 'nameNodeComponent.ServiceComponentInfo.UpgradeFinalized',
-    safe_mode_status: 'nameNodeComponent.ServiceComponentInfo.Safemode',
+    capacity_used: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CapacityUsed',
+    capacity_total: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CapacityTotal',
+    capacity_remaining: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CapacityRemaining',
+    dfs_total_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.BlocksTotal',
+    dfs_corrupt_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CorruptBlocks',
+    dfs_missing_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.MissingBlocks',
+    dfs_under_replicated_blocks: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.UnderReplicatedBlocks',
+    dfs_total_files: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.TotalFiles',
+    upgrade_status: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.UpgradeFinalized',
+    safe_mode_status: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.Safemode',
     name_node_cpu: 'nameNodeComponent.host_components[0].metrics.cpu.cpu_wio',
     name_node_rpc: 'nameNodeComponent.host_components[0].metrics.rpc.RpcQueueTime_avg_time'
   },
@@ -336,8 +336,8 @@ App.servicesMapper = App.QuickDataMapper.create({
     var hdfsConfig = this.hdfsConfig;
     item.components.forEach(function (component) {
       if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "NAMENODE") {
-
-        if ( component.host_components.length == 2) { //enabled HA
+        //enabled HA
+        if ( component.host_components.length == 2) {
           var haState1;
           var haState2;
           if (component.host_components[1].metrics && component.host_components[1].metrics.dfs) {
@@ -381,8 +381,7 @@ App.servicesMapper = App.QuickDataMapper.create({
               item.standby_name_node2_id = standby_name_nodes[1];
               break;
           }
-
-          // make sure: active nameNode always at host_components[0].
+          // important: active nameNode always at host_components[0]; if no active, then any nameNode could work.
           if (haState2 == "active") { // change places for all model bind with host_component[0]
             var tmp = component.host_components[1];
             component.host_components[1] = component.host_components[0];
@@ -392,9 +391,9 @@ App.servicesMapper = App.QuickDataMapper.create({
         item.nameNodeComponent = component;
         finalConfig = jQuery.extend(finalConfig, hdfsConfig);
         // Get the live, dead & decommission nodes from string json
-        var liveNodesJson = App.parseJSON(component.ServiceComponentInfo.LiveNodes);
-        var deadNodesJson = App.parseJSON(component.ServiceComponentInfo.DeadNodes);
-        var decommissionNodesJson = App.parseJSON(component.ServiceComponentInfo.DecomNodes);
+        var liveNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.LiveNodes);
+        var deadNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.DeadNodes);
+        var decommissionNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.DecomNodes);
         item.live_data_nodes = [];
         item.dead_data_nodes = [];
         item.decommission_data_nodes = [];