Ver código fonte

AMBARI-4271. YARN ATS: implement Install Wizard changes. (Denys Buzhor via akovalenko)

Aleksandr Kovalenko 11 anos atrás
pai
commit
85dd6783be

+ 7 - 0
ambari-web/app/controllers/wizard/step5_controller.js

@@ -447,6 +447,13 @@ App.WizardStep5Controller = Em.Controller.extend({
         return this.getNagiosServer(noOfHosts);
         return this.getNagiosServer(noOfHosts);
       case 'HUE_SERVER':
       case 'HUE_SERVER':
         return this.getHueServer(noOfHosts);
         return this.getHueServer(noOfHosts);
+      case 'APP_TIMELINE_SERVER':
+        return this.getHostForComponent(noOfHosts, {
+          "3" : 1,
+          "6" : 1,
+          "31" : 1,
+          "else" : 2
+        }).host_name;
       case 'FALCON_SERVER':
       case 'FALCON_SERVER':
         return this.getOozieServer(noOfHosts);
         return this.getOozieServer(noOfHosts);
       case 'STORM_UI_SERVER':
       case 'STORM_UI_SERVER':

+ 8 - 2
ambari-web/app/controllers/wizard/step8_controller.js

@@ -636,16 +636,22 @@ App.WizardStep8Controller = Em.Controller.extend({
   },
   },
 
 
   loadYARN: function(mrObj){
   loadYARN: function(mrObj){
+    var setComponentHost = function(component, componentName) {
+      component.set('component_value', this.get('content.masterComponentHosts').findProperty('component', componentName).hostName);
+    }.bind(this);
     mrObj.get('service_components').forEach(function (_component) {
     mrObj.get('service_components').forEach(function (_component) {
       switch (_component.get('display_name')) {
       switch (_component.get('display_name')) {
         case 'NodeManager':
         case 'NodeManager':
           this.loadNMValue(_component);
           this.loadNMValue(_component);
           break;
           break;
         case 'ResourceManager':
         case 'ResourceManager':
-          _component.set('component_value', this.get('content.masterComponentHosts').findProperty('component', 'RESOURCEMANAGER').hostName);
+          setComponentHost(_component, 'RESOURCEMANAGER');
           break;
           break;
         case 'History Server':
         case 'History Server':
-          _component.set('component_value', this.get('content.masterComponentHosts').findProperty('component', 'HISTORYSERVER').hostName);
+          setComponentHost(_component, 'HISTORYSERVER');
+          break;
+        case 'App Timeline Server':
+          setComponentHost(_component, 'APP_TIMELINE_SERVER');
           break;
           break;
       }
       }
     }, this);
     }, this);

+ 28 - 0
ambari-web/app/data/HDP2/global_properties.js

@@ -329,6 +329,34 @@ module.exports =
       "category": "ResourceManager",
       "category": "ResourceManager",
       "index": 0
       "index": 0
     },
     },
+    {
+      "id": "puppet var",
+      "name": "ats_host",
+      "displayName": "App Timeline Server",
+      "description": "Application Timeline Server Host",
+      "defaultValue": "",
+      "isOverridable": false,
+      "displayType": "masterHost",
+      "isRequiredByAgent": false,
+      "isVisible": App.supports.appTimelineServer, // @todo remove test mode check after App Timeline service integration
+      "serviceName": "YARN",
+      "category": "AppTimelineServer",
+      "index": 0
+    },
+    {
+      "id": "puppet var",
+      "name": "ats_server_port",
+      "displayName": "Server port",
+      "description": "Application Timeline Server port",
+      "defaultValue": "9292", // @todo add correct value APP_TIMELINE_SERVER.port
+      "isOverridable": false,
+      "displayType": "int",
+      "isRequiredByAgent": true,
+      "isVisible": App.supports.appTimelineServer, // @todo remove test mode check after App Timeline service integration
+      "serviceName": "YARN",
+      "category": "AppTimelineServer",
+      "index": 1
+    },
     {
     {
       "id": "puppet var",
       "id": "puppet var",
       "name": "resourcemanager_heapsize",
       "name": "resourcemanager_heapsize",

+ 16 - 0
ambari-web/app/data/review_configs.js

@@ -100,6 +100,11 @@ module.exports = [
             display_name: 'History Server',
             display_name: 'History Server',
             component_value: ''
             component_value: ''
           })
           })
+          // @todo uncomment after Application Timeline Server API implementation
+//          Ember.Object.create({
+//            display_name: 'App Timeline Server',
+//            component_value: ''
+//          })
         ]
         ]
       }),
       }),
       Ember.Object.create({
       Ember.Object.create({
@@ -253,3 +258,14 @@ module.exports = [
     ]
     ]
   }
   }
 ];
 ];
+
+// @todo remove after Application Timeline Server API implementation
+if (App.supports.appTimelineServer) {
+  var yarnServiceComponents = module.exports.findProperty('config_name', 'services').config_value.findProperty('service_name','YARN').get('service_components');
+  yarnServiceComponents.push(
+    Ember.Object.create({
+      display_name: 'App Timeline Server',
+      component_value: ''
+    })
+  )
+}

+ 22 - 0
ambari-web/app/data/service_components.js

@@ -122,6 +122,15 @@ module.exports = new Ember.Set([
     isClient: true,
     isClient: true,
     description: ''
     description: ''
   },
   },
+  // @todo uncomment after Application Timeline Server API implementation
+//  {
+//    service_name: 'YARN',
+//    component_name: 'APP_TIMELINE_SERVER',
+//    display_name: 'App Timeline Server',
+//    isMaster: true,
+//    isClient: false,
+//    description: ''
+//  },
   {
   {
     service_name: 'YARN',
     service_name: 'YARN',
     component_name: 'NODEMANAGER',
     component_name: 'NODEMANAGER',
@@ -379,3 +388,16 @@ module.exports = new Ember.Set([
     description: 'Master component for STORM'
     description: 'Master component for STORM'
   }
   }
 ]);
 ]);
+
+// @todo remove after Application Timeline Server API implementation
+if (App.supports.appTimelineServer) {
+  var appTimelineServerObj = {
+    service_name: 'YARN',
+    component_name: 'APP_TIMELINE_SERVER',
+    display_name: 'App Timeline Server',
+    isMaster: true,
+    isClient: false,
+    description: ''
+  };
+  module.exports.push(appTimelineServerObj);
+}

+ 1 - 0
ambari-web/app/data/service_configs.js

@@ -79,6 +79,7 @@ module.exports = [
     configCategories: [
     configCategories: [
       App.ServiceConfigCategory.create({ name: 'ResourceManager', displayName : 'Resource Manager', hostComponentNames : ['RESOURCEMANAGER']}),
       App.ServiceConfigCategory.create({ name: 'ResourceManager', displayName : 'Resource Manager', hostComponentNames : ['RESOURCEMANAGER']}),
       App.ServiceConfigCategory.create({ name: 'NodeManager', displayName : 'Node Manager', hostComponentNames : ['NODEMANAGER']}),
       App.ServiceConfigCategory.create({ name: 'NodeManager', displayName : 'Node Manager', hostComponentNames : ['NODEMANAGER']}),
+      App.ServiceConfigCategory.create({ name: 'AppTimelineServer', displayName : 'Application Timeline Server', hostComponentNames : ['APP_TIMELINE_SERVER']}),
       App.ServiceConfigCategory.create({ name: 'General', displayName : 'General'}),
       App.ServiceConfigCategory.create({ name: 'General', displayName : 'General'}),
       App.ServiceConfigCategory.create({ name: 'CapacityScheduler', displayName : 'Scheduler', isCapacityScheduler : true, isCustomView: true, siteFileName: 'capacity-scheduler.xml', siteFileNames: ['capacity-scheduler.xml', 'mapred-queue-acls.xml'], canAddProperty: App.supports.capacitySchedulerUi}),
       App.ServiceConfigCategory.create({ name: 'CapacityScheduler', displayName : 'Scheduler', isCapacityScheduler : true, isCustomView: true, siteFileName: 'capacity-scheduler.xml', siteFileNames: ['capacity-scheduler.xml', 'mapred-queue-acls.xml'], canAddProperty: App.supports.capacitySchedulerUi}),
       App.ServiceConfigCategory.create({ name: 'Advanced', displayName : 'Advanced'}),
       App.ServiceConfigCategory.create({ name: 'Advanced', displayName : 'Advanced'}),

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

@@ -191,6 +191,7 @@ App.QuickDataMapper.componentServiceMap = function () {
     'RESOURCEMANAGER': 'YARN',
     'RESOURCEMANAGER': 'YARN',
     'YARN_CLIENT': 'YARN',
     'YARN_CLIENT': 'YARN',
     'NODEMANAGER': 'YARN',
     'NODEMANAGER': 'YARN',
+    'APP_TIMELINE_SERVER': 'YARN',
     'ZOOKEEPER_SERVER': 'ZOOKEEPER',
     'ZOOKEEPER_SERVER': 'ZOOKEEPER',
     'ZOOKEEPER_CLIENT': 'ZOOKEEPER',
     'ZOOKEEPER_CLIENT': 'ZOOKEEPER',
     'HBASE_MASTER': 'HBASE',
     'HBASE_MASTER': 'HBASE',

+ 1 - 0
ambari-web/app/models/host_component.js

@@ -83,6 +83,7 @@ App.HostComponent = DS.Model.extend({
       case 'LOGVIEWER_SERVER':
       case 'LOGVIEWER_SERVER':
       case 'DRPC_SERVER':
       case 'DRPC_SERVER':
       case 'RESOURCEMANAGER':
       case 'RESOURCEMANAGER':
+      case 'APP_TIMELINE_SERVER':
         return true;
         return true;
       default:
       default:
         return false;
         return false;

+ 4 - 0
ambari-web/app/models/service_config.js

@@ -312,6 +312,10 @@ App.ServiceConfigProperty = Ember.Object.extend({
       case 'rm_host':
       case 'rm_host':
         this.set('value', masterComponentHostsInDB.findProperty('component', 'RESOURCEMANAGER').hostName);
         this.set('value', masterComponentHostsInDB.findProperty('component', 'RESOURCEMANAGER').hostName);
         break;
         break;
+      case 'ats_host':
+        if (!App.supports.appTimelineServer) return; // @todo remove test mode check after App Timeline service integration
+        this.set('value', masterComponentHostsInDB.findProperty('component', 'APP_TIMELINE_SERVER').hostName);
+        break;
       case 'yarn.resourcemanager.hostname':
       case 'yarn.resourcemanager.hostname':
         var rmHost = masterComponentHostsInDB.findProperty('component', 'RESOURCEMANAGER').hostName;
         var rmHost = masterComponentHostsInDB.findProperty('component', 'RESOURCEMANAGER').hostName;
         this.set('defaultValue',rmHost);
         this.set('defaultValue',rmHost);