You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2016/09/21 13:29:40 UTC
[18/21] ambari git commit: AMBARI-18424. Core-site should be provided
for every stack advisor call (e.g. when deleting services) (akovalenko)
AMBARI-18424. Core-site should be provided for every stack advisor call (e.g. when deleting services) (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/04b4dc2a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/04b4dc2a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/04b4dc2a
Branch: refs/heads/branch-dev-patch-upgrade
Commit: 04b4dc2a5d57f9b092ae336c2ba089c259b8a56e
Parents: 2099763
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Tue Sep 20 18:04:10 2016 +0300
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Wed Sep 21 13:33:23 2016 +0300
----------------------------------------------------------------------
.../resourceManager/step3_controller.js | 1 -
.../mixins/common/configs/enhanced_configs.js | 24 +++---
ambari-web/app/mixins/common/serverValidator.js | 7 +-
ambari-web/app/utils/ajax/ajax.js | 4 +-
ambari-web/app/utils/blueprint.js | 10 +--
ambari-web/app/utils/config.js | 45 ++++++-----
.../common/configs/enhanced_configs_test.js | 79 +++-----------------
7 files changed, 60 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js
index 36dcfb8..08e0b73 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js
@@ -182,7 +182,6 @@ App.RMHighAvailabilityWizardStep3Controller = Em.Controller.extend(App.Blueprint
},
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'));
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/mixins/common/configs/enhanced_configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/enhanced_configs.js b/ambari-web/app/mixins/common/configs/enhanced_configs.js
index a99d835..f53b45d 100644
--- a/ambari-web/app/mixins/common/configs/enhanced_configs.js
+++ b/ambari-web/app/mixins/common/configs/enhanced_configs.js
@@ -179,17 +179,26 @@ App.EnhancedConfigsMixin = Em.Mixin.create(App.ConfigWithOverrideRecommendationP
loadConfigRecommendations: function (changedConfigs, onComplete) {
var updateDependencies = Em.isArray(changedConfigs) && changedConfigs.length > 0;
var stepConfigs = this.get('stepConfigs');
+ var requiredTags = [];
if (updateDependencies || Em.isNone(this.get('recommendationsConfigs'))) {
var recommendations = this.get('hostGroups');
var dataToSend = this.getConfigRecommendationsParams(updateDependencies, changedConfigs);
this.modifyRecommendationConfigGroups(recommendations);
- if (stepConfigs.someProperty('serviceName', 'MISC')) {
+ if (!stepConfigs.someProperty('serviceName', 'MISC')) {
+ requiredTags.push({site: 'cluster-env', serviceName: 'MISC'});
+ }
+
+ if (App.Service.find().someProperty('serviceName', 'HDFS') && !stepConfigs.someProperty('serviceName', 'HDFS')) {
+ requiredTags.push({site: 'core-site', serviceName: 'HDFS'});
+ }
+
+ if (requiredTags.length) {
+ this.loadAdditionalSites(requiredTags, stepConfigs, recommendations, dataToSend, onComplete);
+ } else {
this.addRecommendationRequestParams(recommendations, dataToSend, stepConfigs);
return this.getRecommendationsRequest(dataToSend, onComplete);
- } else {
- this.requestRecommendationsWithEnv(stepConfigs, recommendations, dataToSend, onComplete);
}
} else {
if (onComplete) {
@@ -217,13 +226,10 @@ App.EnhancedConfigsMixin = Em.Mixin.create(App.ConfigWithOverrideRecommendationP
* @param {object} dataToSend
* @param {Function} onComplete
*/
- requestRecommendationsWithEnv: function(stepConfigs, recommendations, dataToSend, onComplete) {
+ loadAdditionalSites: function(sites, stepConfigs, recommendations, dataToSend, onComplete) {
var self = this;
- App.config.getClusterEnvConfigs().done(function (clusterEnvConfigs) {
- stepConfigs = stepConfigs.concat(Em.Object.create({
- serviceName: 'MISC',
- configs: clusterEnvConfigs
- }));
+ App.config.getConfigsByTypes(sites).done(function (configs) {
+ stepConfigs = stepConfigs.concat(configs);
self.addRecommendationRequestParams(recommendations, dataToSend, stepConfigs);
self.getRecommendationsRequest(dataToSend, onComplete);
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/mixins/common/serverValidator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/serverValidator.js b/ambari-web/app/mixins/common/serverValidator.js
index 9fb5ae3..d8747d3 100644
--- a/ambari-web/app/mixins/common/serverValidator.js
+++ b/ambari-web/app/mixins/common/serverValidator.js
@@ -153,11 +153,8 @@ App.ServerValidatorMixin = Em.Mixin.create({
// check if we have configs from 'cluster-env', if not, then load them, as they are mandatory for validation request
if (!stepConfigs.findProperty('serviceName', 'MISC')) {
- App.config.getClusterEnvConfigs().done(function(clusterEnvConfigs){
- stepConfigs = stepConfigs.concat(Em.Object.create({
- serviceName: 'MISC',
- configs: clusterEnvConfigs
- }));
+ App.config.getConfigsByTypes([{site: 'cluster-env', serviceName: 'MISC'}]).done(function (configs) {
+ stepConfigs = stepConfigs.concat(configs);
dfd.resolve(blueprintUtils.buildConfigsJSON(stepConfigs));
});
} else {
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 70c73be..7eb9c9e 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -850,8 +850,8 @@ var urls = {
'mock': '/data/configurations/host_level_overrides_configs.json?{params}'
},
- 'config.cluster_env_site': {
- 'real': '/clusters/{clusterName}/configurations?type=cluster-env',
+ 'config.tags.selected': {
+ 'real': '/clusters/{clusterName}/configurations?type.in({tags})',
'mock': '/data/configuration/cluster_env_site.json'
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/utils/blueprint.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/blueprint.js b/ambari-web/app/utils/blueprint.js
index 696f7a4..1148d3d 100644
--- a/ambari-web/app/utils/blueprint.js
+++ b/ambari-web/app/utils/blueprint.js
@@ -320,13 +320,11 @@ module.exports = {
var configurations = {};
stepConfigs.forEach(function (stepConfig) {
stepConfig.get('configs').forEach(function (config) {
- if (config.get('filename') === 'cluster-env.xml' || config.get('isRequiredByAgent')) {
- var type = App.config.getConfigTagFromFileName(config.get('filename'));
- if (!configurations[type]) {
- configurations[type] = {properties: {}}
- }
- configurations[type]['properties'][config.get('name')] = config.get('value');
+ var type = App.config.getConfigTagFromFileName(config.get('filename'));
+ if (!configurations[type]) {
+ configurations[type] = {properties: {}}
}
+ configurations[type]['properties'][config.get('name')] = config.get('value');
});
});
return configurations;
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index ae09b82..abb2fbf 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -1287,28 +1287,37 @@ App.config = Em.Object.create({
* Load cluster-env configs mapped to array
* @return {*|{then}}
*/
- getClusterEnvConfigs: function () {
+ getConfigsByTypes: function (sites) {
var dfd = $.Deferred();
App.ajax.send({
- name: 'config.cluster_env_site',
- sender: this
+ name: 'config.tags.selected',
+ sender: this,
+ data: {
+ tags: sites.mapProperty('site').join(',')
+ }
}).done(function (data) {
- App.router.get('configurationController').getConfigsByTags([{
- siteName: data.items[data.items.length - 1].type,
- tagName: data.items[data.items.length - 1].tag
- }]).done(function (clusterEnvConfigs) {
- var configsObject = clusterEnvConfigs[0].properties;
- var configsArray = [];
- for (var property in configsObject) {
- if (configsObject.hasOwnProperty(property)) {
- configsArray.push(Em.Object.create({
- name: property,
- value: configsObject[property],
- filename: 'cluster-env.xml'
- }));
+ App.router.get('configurationController').getConfigsByTags(data.items.map(function (item) {
+ return {siteName: item.type, tagName: item.tag};
+ })).done(function (configs) {
+ var result = [];
+ configs.forEach(function(config){
+ var configsArray = [];
+ var configsObject = config.properties;
+ for (var property in configsObject) {
+ if (configsObject.hasOwnProperty(property)) {
+ configsArray.push(Em.Object.create({
+ name: property,
+ value: configsObject[property],
+ filename: App.config.getOriginalFileName(config.type)
+ }));
+ }
}
- }
- dfd.resolve(configsArray);
+ result.push(Em.Object.create({
+ serviceName: sites.findProperty('site', config.type).serviceName,
+ configs: configsArray
+ }));
+ });
+ dfd.resolve(result);
});
});
return dfd.promise();
http://git-wip-us.apache.org/repos/asf/ambari/blob/04b4dc2a/ambari-web/test/mixins/common/configs/enhanced_configs_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/configs/enhanced_configs_test.js b/ambari-web/test/mixins/common/configs/enhanced_configs_test.js
index 79a7ef7..a9c9770 100644
--- a/ambari-web/test/mixins/common/configs/enhanced_configs_test.js
+++ b/ambari-web/test/mixins/common/configs/enhanced_configs_test.js
@@ -164,60 +164,6 @@ describe('App.EnhancedConfigsMixin', function () {
});
});
- describe("#loadConfigRecommendations", function () {
- var mixinInstance;
-
- beforeEach(function () {
- mixinInstance = mixinClass.create({
- recommendationsConfigs: {},
- stepConfigs: [],
- hostGroups: {
- blueprint: {
- configurations: {}
- }
- }
- });
- this.mockedCallback = sinon.stub();
- sinon.stub(App.config, 'getClusterEnvConfigs').returns({
- done: function (callback) {
- callback([]);
- }
- });
- });
-
- afterEach(function () {
- App.config.getClusterEnvConfigs.restore();
- });
-
- it("should call callback if changedConfigs is empty array", function () {
- mixinInstance.loadConfigRecommendations([], this.mockedCallback);
- expect(testHelpers.findAjaxRequest('name', 'config.recommendations')).to.not.exist;
- expect(this.mockedCallback.calledOnce).to.be.true;
- });
-
- it("should call callback from ajax callback if changedConfigs is not empty", function () {
- mixinInstance.loadConfigRecommendations([{}], this.mockedCallback);
- var args = testHelpers.findAjaxRequest('name', 'config.recommendations');
- expect(args[0]).exists;
- args[0].callback();
- expect(this.mockedCallback.calledOnce).to.be.true;
- });
-
- it("should call getClusterEnvConfigs if there is no cluster-env configs in stepConfigs", function () {
- mixinInstance.loadConfigRecommendations([{}]);
- expect(App.config.getClusterEnvConfigs.calledOnce).to.be.true;
- });
-
- it("should not call getClusterEnvConfigs if there is cluster-env configs in stepConfigs", function () {
- mixinInstance.set('stepConfigs', [Em.Object.create({
- serviceName: 'MISC',
- configs: []
- })]);
- mixinInstance.loadConfigRecommendations([{}]);
- expect(App.config.getClusterEnvConfigs.calledOnce).to.be.false;
- });
- });
-
describe("#changedDependentGroup", function () {
var mixinInstance;
@@ -559,7 +505,7 @@ describe('App.EnhancedConfigsMixin', function () {
sinon.stub(mixin, 'modifyRecommendationConfigGroups');
sinon.stub(mixin, 'addRecommendationRequestParams');
sinon.stub(mixin, 'getRecommendationsRequest');
- sinon.stub(mixin, 'requestRecommendationsWithEnv');
+ sinon.stub(mixin, 'loadAdditionalSites');
});
afterEach(function() {
@@ -568,7 +514,7 @@ describe('App.EnhancedConfigsMixin', function () {
mixin.modifyRecommendationConfigGroups.restore();
mixin.addRecommendationRequestParams.restore();
mixin.getRecommendationsRequest.restore();
- mixin.requestRecommendationsWithEnv.restore();
+ mixin.loadAdditionalSites.restore();
});
it("changedConfigs is null", function() {
@@ -589,7 +535,7 @@ describe('App.EnhancedConfigsMixin', function () {
mixin.loadConfigRecommendations([], mock.onComplete);
expect(mixin.getConfigRecommendationsParams.calledWith(false)).to.be.true;
expect(mixin.modifyRecommendationConfigGroups.calledOnce).to.be.true;
- expect(mixin.requestRecommendationsWithEnv.calledOnce).to.be.true;
+ expect(mixin.loadAdditionalSites.calledOnce).to.be.true;
});
it("changedConfigs is correct, MISC service present", function() {
@@ -628,34 +574,29 @@ describe('App.EnhancedConfigsMixin', function () {
});
});
- describe("#requestRecommendationsWithEnv()", function () {
+ describe("#loadAdditionalSites()", function () {
beforeEach(function() {
- sinon.stub(App.config, 'getClusterEnvConfigs').returns({
+ sinon.stub(App.config, 'getConfigsByTypes').returns({
done: function(callback) {callback([]);}
});
sinon.stub(mixin, 'addRecommendationRequestParams');
sinon.stub(mixin, 'getRecommendationsRequest');
- mixin.requestRecommendationsWithEnv([], {}, {}, Em.K);
+ mixin.loadAdditionalSites([], [], {}, {}, Em.K);
});
afterEach(function() {
- App.config.getClusterEnvConfigs.restore();
+ App.config.getConfigsByTypes.restore();
mixin.addRecommendationRequestParams.restore();
mixin.getRecommendationsRequest.restore();
});
- it("App.config.getClusterEnvConfigs should be called", function() {
- expect(App.config.getClusterEnvConfigs.calledOnce).to.be.true;
+ it("App.config.getConfigsByTypes should be called", function() {
+ expect(App.config.getConfigsByTypes.calledOnce).to.be.true;
});
it("addRecommendationRequestParams should be called", function() {
- expect(mixin.addRecommendationRequestParams.calledWith({}, {}, [
- Em.Object.create({
- serviceName: 'MISC',
- configs: []
- })
- ])).to.be.true;
+ expect(mixin.addRecommendationRequestParams.calledWith({}, {}, [])).to.be.true;
});
it("getRecommendationsRequest should be called", function() {