You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by at...@apache.org on 2014/03/20 16:46:38 UTC
git commit: AMBARI-5161 Customize Services step load: change calls to
asynchronous. (atkach)
Repository: ambari
Updated Branches:
refs/heads/trunk 35b5a57f9 -> b6b56cfeb
AMBARI-5161 Customize Services step load: change calls to asynchronous. (atkach)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b6b56cfe
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b6b56cfe
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b6b56cfe
Branch: refs/heads/trunk
Commit: b6b56cfeb600cd1be788245843f57ed2c6306072
Parents: 35b5a57
Author: atkach <at...@hortonworks.com>
Authored: Thu Mar 20 17:44:34 2014 +0200
Committer: atkach <at...@hortonworks.com>
Committed: Thu Mar 20 17:44:34 2014 +0200
----------------------------------------------------------------------
ambari-web/app/controllers/wizard.js | 25 +++++++++++++-------
.../app/controllers/wizard/step7_controller.js | 8 ++++++-
ambari-web/app/routes/add_service_routes.js | 4 ++--
ambari-web/app/routes/installer.js | 3 ++-
ambari-web/app/templates/wizard/step7.hbs | 7 +++++-
ambari-web/app/utils/ajax.js | 7 +-----
ambari-web/app/utils/config.js | 18 ++++++++------
7 files changed, 45 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/controllers/wizard.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index f69ff3e..eabb904 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -691,16 +691,23 @@ App.WizardController = Em.Controller.extend({
/**
* load advanced configs from server
*/
- loadAdvancedConfigs: function () {
- var configs = (this.getDBProperty('advancedServiceConfig')) ? this.getDBProperty('advancedServiceConfig') : [];
- this.get('content.services').filterProperty('isSelected', true).mapProperty('serviceName').forEach(function (_serviceName) {
- var serviceComponents = App.config.loadAdvancedConfig(_serviceName);
- if (serviceComponents) {
- configs = configs.concat(serviceComponents);
- }
+ loadAdvancedConfigs: function (dependentController) {
+ var self = this;
+ var counter = this.get('content.services').filterProperty('isSelected').length;
+ var loadAdvancedConfigResult = [];
+ dependentController.set('isAdvancedConfigLoaded', false);
+ this.get('content.services').filterProperty('isSelected').mapProperty('serviceName').forEach(function (_serviceName) {
+ App.config.loadAdvancedConfig(_serviceName, function(properties){
+ loadAdvancedConfigResult.pushObjects(properties);
+ counter--;
+ //pass configs to controller after last call is completed
+ if (counter === 0) {
+ self.set('content.advancedServiceConfig', loadAdvancedConfigResult);
+ self.setDBProperty('advancedServiceConfig', loadAdvancedConfigResult);
+ dependentController.set('isAdvancedConfigLoaded', true);
+ }
+ });
}, this);
- this.set('content.advancedServiceConfig', configs);
- this.setDBProperty('advancedServiceConfig', configs);
},
/**
* Load serviceConfigProperties to model
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index 0adbd7f..48310c7 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -62,6 +62,8 @@ App.WizardStep7Controller = Em.Controller.extend({
serviceConfigsData: require('data/service_configs'),
+ isAdvancedConfigLoaded: true,
+
isSubmitDisabled: function () {
return (!this.stepConfigs.filterProperty('showConfig', true).everyProperty('errorCount', 0) || this.get("miscModalVisible"));
}.property('stepConfigs.@each.errorCount', 'miscModalVisible'),
@@ -342,6 +344,9 @@ App.WizardStep7Controller = Em.Controller.extend({
*/
loadStep: function () {
console.log("TRACE: Loading step7: Configure Services");
+ if (!this.get('isAdvancedConfigLoaded')) {
+ return;
+ }
this.clearStep();
//STEP 1: Load advanced configs
var advancedConfigs = this.get('content.advancedServiceConfig');
@@ -403,7 +408,8 @@ App.WizardStep7Controller = Em.Controller.extend({
if (this.get('content.skipConfigStep')) {
App.router.send('next');
}
- },
+ }.observes('isAdvancedConfigLoaded'),
+
getConfigTags: function() {
App.ajax.send({
name: 'config.tags.sync',
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/routes/add_service_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_service_routes.js b/ambari-web/app/routes/add_service_routes.js
index 5b38e3b..d2ac777 100644
--- a/ambari-web/app/routes/add_service_routes.js
+++ b/ambari-web/app/routes/add_service_routes.js
@@ -185,9 +185,9 @@ module.exports = App.WizardRoute.extend({
var controller = router.get('addServiceController');
controller.setCurrentStep('4');
controller.dataLoading().done(function () {
- controller.loadAllPriorSteps();
- controller.loadAdvancedConfigs();
var wizardStep7Controller = router.get('wizardStep7Controller');
+ controller.loadAllPriorSteps();
+ controller.loadAdvancedConfigs(wizardStep7Controller);
wizardStep7Controller.set('wizardController', controller);
controller.connectOutlet('wizardStep7', controller.get('content'));
})
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/routes/installer.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/installer.js b/ambari-web/app/routes/installer.js
index 9408adb..0c9080d 100644
--- a/ambari-web/app/routes/installer.js
+++ b/ambari-web/app/routes/installer.js
@@ -280,6 +280,7 @@ module.exports = Em.Route.extend({
next: function (router) {
var controller = router.get('installerController');
var wizardStep6Controller = router.get('wizardStep6Controller');
+ var wizardStep7Controller = router.get('wizardStep7Controller');
if (wizardStep6Controller.validate()) {
controller.saveSlaveComponentHosts(wizardStep6Controller);
@@ -287,7 +288,7 @@ module.exports = Em.Route.extend({
controller.setDBProperty('serviceConfigProperties', null);
controller.setDBProperty('advancedServiceConfig', null);
controller.setDBProperty('serviceConfigGroups', null);
- controller.loadAdvancedConfigs();
+ controller.loadAdvancedConfigs(wizardStep7Controller);
router.transitionTo('step7');
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/templates/wizard/step7.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step7.hbs b/ambari-web/app/templates/wizard/step7.hbs
index d5a60cc..b18d294 100644
--- a/ambari-web/app/templates/wizard/step7.hbs
+++ b/ambari-web/app/templates/wizard/step7.hbs
@@ -23,7 +23,12 @@
{{t installer.step7.body}}
</div>
- {{view App.ServicesConfigView}}
+ {{#if isAdvancedConfigLoaded}}
+ {{view App.ServicesConfigView}}
+ {{else}}
+ <div class="spinner"></div>
+ {{/if}}
+
<div class="btn-area">
<a class="btn" {{action back}}>← {{t common.back}}</a>
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/utils/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax.js b/ambari-web/app/utils/ajax.js
index 6cd7d79..85695b8 100644
--- a/ambari-web/app/utils/ajax.js
+++ b/ambari-web/app/utils/ajax.js
@@ -299,12 +299,7 @@ var urls = {
'config.advanced': {
'real': '{stack2VersionUrl}/stackServices/{serviceName}/configurations?fields=*',
- 'mock': '/data/wizard/stack/hdp/version{stackVersion}/{serviceName}.json',
- 'format': function() {
- return {
- async: false
- };
- }
+ 'mock': '/data/wizard/stack/hdp/version{stackVersion}/{serviceName}.json'
},
'config.advanced.global': {
'real': '{stack2VersionUrl}/stackServices?fields=configurations/StackConfigurations/type',
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6b56cfe/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index aeb57f8..3911bf4 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -20,7 +20,6 @@ var App = require('app');
var stringUtils = require('utils/string_utils');
var categotyConfigs = require('data/service_configs');
-var serviceComponents = {};
var configGroupsByTag = [];
App.config = Em.Object.create({
@@ -747,19 +746,19 @@ App.config = Em.Object.create({
* @param serviceName
* @return {*}
*/
- loadAdvancedConfig: function (serviceName) {
+ loadAdvancedConfig: function (serviceName, callback) {
App.ajax.send({
name: 'config.advanced',
sender: this,
data: {
serviceName: serviceName,
stack2VersionUrl: App.get('stack2VersionURL'),
- stackVersion: App.get('currentStackVersionNumber')
+ stackVersion: App.get('currentStackVersionNumber'),
+ callback: callback
},
- success: 'loadAdvancedConfigSuccess'
+ success: 'loadAdvancedConfigSuccess',
+ error: 'loadAdvancedConfigError'
});
- return serviceComponents[serviceName];
- //TODO clean serviceComponents
},
loadAdvancedConfigSuccess: function (data, opt, params) {
@@ -789,8 +788,13 @@ App.config = Em.Object.create({
});
}
}, this);
- serviceComponents[data.items[0].StackConfigurations.service_name] = properties;
}
+ params.callback(properties);
+ },
+
+ loadAdvancedConfigError: function (request, ajaxOptions, error, opt, params) {
+ console.log('ERROR: failed to load stack configs for', params.serviceName);
+ params.callback([]);
},
/**