瀏覽代碼

AMBARI-12668. Not possible to do rolling restart of NodeManagers if YARN is in MM (akovalenko)

Aleksandr Kovalenko 10 年之前
父節點
當前提交
db7149dd2e
共有 2 個文件被更改,包括 12 次插入5 次删除
  1. 11 5
      ambari-web/app/mappers/service_mapper.js
  2. 1 0
      ambari-web/app/mappers/service_metrics_mapper.js

+ 11 - 5
ambari-web/app/mappers/service_mapper.js

@@ -22,32 +22,32 @@ App.serviceMapper = App.QuickDataMapper.create({
   config: {
     id: 'ServiceInfo.service_name',
     service_name: 'ServiceInfo.service_name',
-    work_status: 'ServiceInfo.state',
-    passive_state: 'ServiceInfo.passive_state'
+    work_status: 'ServiceInfo.state'
   },
   initialAppLoad: false,
+  passiveStateMap: {},
   map: function (json) {
     console.time("App.serviceMapper execution time");
     var self = this;
+    var passiveStateMap = this.get('passiveStateMap');
     json.items.forEach(function (service) {
       var cachedService = App.cache['services'].findProperty('ServiceInfo.service_name', service.ServiceInfo.service_name);
       if (cachedService) {
         // restore service workStatus
         App.Service.find(cachedService.ServiceInfo.service_name).set('workStatus', service.ServiceInfo.state);
         cachedService.ServiceInfo.state = service.ServiceInfo.state;
-        cachedService.ServiceInfo.passive_state = service.ServiceInfo.maintenance_state;
       } else {
         var serviceData = {
           ServiceInfo: {
             service_name: service.ServiceInfo.service_name,
-            state: service.ServiceInfo.state,
-            passive_state: service.ServiceInfo.maintenance_state
+            state: service.ServiceInfo.state
           },
           host_components: [],
           components: []
         };
         App.cache['services'].push(serviceData);
       }
+      passiveStateMap[service.ServiceInfo.service_name] = service.ServiceInfo.maintenance_state;
     });
 
     if (!this.get('initialAppLoad')) {
@@ -59,6 +59,12 @@ App.serviceMapper = App.QuickDataMapper.create({
       App.store.commit();
       this.set('initialAppLoad', true);
     }
+
+    for (var service in passiveStateMap) {
+      if (passiveStateMap.hasOwnProperty(service)) {
+        App.Service.find(service).set('passiveState', passiveStateMap[service]);
+      }
+    }
     console.timeEnd("App.serviceMapper execution time");
   }
 });

+ 1 - 0
ambari-web/app/mappers/service_metrics_mapper.js

@@ -236,6 +236,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
 
         var extendedModelInfo = this.mapExtendedModel(item);
         if (extendedModelInfo) {
+          extendedModelInfo.passive_state = App.Service.find(item.ServiceInfo.service_name).get('passiveState');
           result.push(extendedModelInfo);
         }
       }, this);