|
@@ -24,9 +24,10 @@
|
|
|
*/
|
|
|
|
|
|
var App = require('app');
|
|
|
+var blueprintUtils = require('utils/blueprint');
|
|
|
require('utils/configs/rm_ha_config_initializer');
|
|
|
|
|
|
-App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend({
|
|
|
+App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend(App.BlueprintMixin, {
|
|
|
name: "rMHighAvailabilityWizardStep3Controller",
|
|
|
|
|
|
selectedService: null,
|
|
@@ -94,12 +95,19 @@ App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend({
|
|
|
},
|
|
|
|
|
|
loadConfigsSuccessCallback: function (data, opt, params) {
|
|
|
+ var self = this;
|
|
|
+ var blueprintConfigurations = Em.getWithDefault(data || {}, 'items', []).reduce(function(prev, cur) {
|
|
|
+ prev[cur.type] = { properties: cur.properties };
|
|
|
+ return prev;
|
|
|
+ }, {});
|
|
|
params = params.serviceConfig ? params.serviceConfig : arguments[4].serviceConfig;
|
|
|
-
|
|
|
this.setDynamicConfigValues(params, data);
|
|
|
- this.setProperties({
|
|
|
- selectedService: params,
|
|
|
- isLoaded: true
|
|
|
+ this.loadRecommendations(blueprintConfigurations).always(function(recommendations) {
|
|
|
+ self.applyRecommendedConfigurations(recommendations, data, params);
|
|
|
+ self.setProperties({
|
|
|
+ selectedService: params,
|
|
|
+ isLoaded: true
|
|
|
+ });
|
|
|
});
|
|
|
},
|
|
|
|
|
@@ -140,10 +148,10 @@ App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend({
|
|
|
yarnUser: yarnUser
|
|
|
});
|
|
|
var dependencies = this._prepareDependencies(data);
|
|
|
- /** add dynamic property 'hadoop.proxyuser.' + yarnUser + '.hosts' **/
|
|
|
- var proxyUserConfig = App.ServiceConfigProperty.create(App.config.createDefaultConfig('hadoop.proxyuser.' + yarnUser + '.hosts',
|
|
|
- 'core-site', false, {category : "HDFS", isUserProperty: false, isEditable: false, isOverridable: false, serviceName: 'MISC'}));
|
|
|
- configs.configs.pushObject(proxyUserConfig);
|
|
|
+ // /** add dynamic property 'hadoop.proxyuser.' + yarnUser + '.hosts' **/
|
|
|
+ // var proxyUserConfig = App.ServiceConfigProperty.create(App.config.createDefaultConfig('hadoop.proxyuser.' + yarnUser + '.hosts',
|
|
|
+ // 'core-site', false, {category : "HDFS", isUserProperty: false, isEditable: false, isOverridable: false, serviceName: 'MISC'}));
|
|
|
+ // configs.configs.pushObject(proxyUserConfig);
|
|
|
|
|
|
configs.configs.forEach(function (config) {
|
|
|
App.RmHaConfigInitializer.initialValue(config, topologyLocalDB, dependencies);
|
|
@@ -172,6 +180,61 @@ App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend({
|
|
|
App.router.send("next");
|
|
|
});
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+ loadRecommendations: function(blueprintConfigurations) {
|
|
|
+ var dfd = $.Deferred();
|
|
|
+ var blueprint = this.getCurrentMasterSlaveBlueprint();
|
|
|
+ // host group where new ResourceManager will be added
|
|
|
+ var hostGroupName = blueprintUtils.getHostGroupByFqdn(blueprint, this.get('content.rmHosts.additionalRM'));
|
|
|
+ var dataToSend = {
|
|
|
+ recommend: 'configurations',
|
|
|
+ hosts: App.get('allHostNames'),
|
|
|
+ services: App.Service.find().mapProperty('serviceName').uniq(),
|
|
|
+ recommendations: {}
|
|
|
+ };
|
|
|
+ if (!!hostGroupName) {
|
|
|
+ blueprintUtils.addComponentToHostGroup(blueprint, 'RESOURCEMANAGER', hostGroupName);
|
|
|
+ }
|
|
|
+ blueprint.blueprint.configurations = blueprintConfigurations;
|
|
|
+ dataToSend.recommendations = blueprint;
|
|
|
+ return App.ajax.send({
|
|
|
+ name: 'config.recommendations',
|
|
|
+ sender: this,
|
|
|
+ data: {
|
|
|
+ stackVersionUrl: App.get('stackVersionURL'),
|
|
|
+ dataToSend: dataToSend
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ applyRecommendedConfigurations: function(recommendations, configurations, stepConfigs) {
|
|
|
+ var yarnEnv = Em.getWithDefault(configurations || {}, 'items', []).findProperty('type', 'yarn-env') || {},
|
|
|
+ yarnUser = Em.getWithDefault(yarnEnv, 'properties.yarn_user', false),
|
|
|
+ coreSite = Em.getWithDefault(recommendations, 'resources.0.recommendations.blueprint.configurations.core-site.properties', {}),
|
|
|
+ proxyHostName = 'hadoop.proxyuser.' + yarnUser + '.hosts',
|
|
|
+ recommendedHosts = coreSite[proxyHostName] || false,
|
|
|
+ newProp;
|
|
|
+
|
|
|
+ if (yarnUser && recommendedHosts) {
|
|
|
+ if (stepConfigs.get('configs').someProperty('name', proxyHostName)) {
|
|
|
+ stepConfigs.get('configs').findProperty('name', proxyHostName).setProperties({
|
|
|
+ recommendedValue: recommendedHosts,
|
|
|
+ value: recommendedHosts
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ newProp = App.config.createDefaultConfig(proxyHostName, 'core-site', false, {
|
|
|
+ category : "HDFS",
|
|
|
+ isUserProperty: false,
|
|
|
+ isEditable: false,
|
|
|
+ isOverridable: false,
|
|
|
+ serviceName: 'MISC',
|
|
|
+ value: recommendedHosts,
|
|
|
+ recommendedValue: recommendedHosts
|
|
|
+ });
|
|
|
+ newProp.filename = App.config.getConfigTagFromFileName(newProp.filename);
|
|
|
+ stepConfigs.get('configs').pushObject(App.ServiceConfigProperty.create(newProp));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
-
|