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/01/23 17:34:55 UTC
git commit: AMBARI-4397 Add Services: existing Nagios's password and
email is cleared out and shows validation error. (atkach)
Updated Branches:
refs/heads/trunk 90f00a2a4 -> c7d94be5a
AMBARI-4397 Add Services: existing Nagios's password and email is cleared out and shows validation error. (atkach)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c7d94be5
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c7d94be5
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c7d94be5
Branch: refs/heads/trunk
Commit: c7d94be5a0294e3be31eabb09bc4a9e0cf2bc373
Parents: 90f00a2
Author: atkach <at...@hortonworks.com>
Authored: Thu Jan 23 18:34:52 2014 +0200
Committer: atkach <at...@hortonworks.com>
Committed: Thu Jan 23 18:34:52 2014 +0200
----------------------------------------------------------------------
.../app/controllers/wizard/step7_controller.js | 78 ++++++++++++++++++--
ambari-web/app/utils/config.js | 10 +--
2 files changed, 77 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/c7d94be5/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 34b8592..009c89f 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -55,6 +55,10 @@ App.WizardStep7Controller = Em.Controller.extend({
groupsToDelete: [],
selectedConfigGroup: null,
+ /**
+ * config tags of actually installed services
+ */
+ serviceConfigTags: [],
serviceConfigsData: require('data/service_configs'),
@@ -66,8 +70,12 @@ App.WizardStep7Controller = Em.Controller.extend({
return this.get('content.services').filterProperty('isSelected', true).filterProperty('isInstalled', false).mapProperty('serviceName');
}.property('content.services').cacheable(),
- allInstalledServiceNames: function () {
- return this.get('content.services').filterProperty('isSelected', true).mapProperty('serviceName');
+ allSelectedServiceNames: function () {
+ return this.get('content.services').filterProperty('isSelected').mapProperty('serviceName');
+ }.property('content.services').cacheable(),
+
+ installedServiceNames: function () {
+ return this.get('content.services').filterProperty('isInstalled').mapProperty('serviceName');
}.property('content.services').cacheable(),
masterComponentHosts: function () {
@@ -81,6 +89,7 @@ App.WizardStep7Controller = Em.Controller.extend({
customData: [],
clearStep: function () {
+ this.get('serviceConfigTags').clear();
this.get('stepConfigs').clear();
this.set('filter', '');
this.get('filterColumns').setEach('selected', false);
@@ -111,7 +120,6 @@ App.WizardStep7Controller = Em.Controller.extend({
var serviceConfigsDef = params.serviceConfigsDef;
var serviceName = params.serviceName;
var service = this.get('stepConfigs').findProperty('serviceName', serviceName);
- console.debug("loadServiceConfigs(): data=", data);
// Create default configuration group
var defaultConfigGroupHosts = App.Host.find().mapProperty('hostName');
var selectedConfigGroup;
@@ -319,7 +327,7 @@ App.WizardStep7Controller = Em.Controller.extend({
//STEP 5: Add custom configs
App.config.addCustomConfigs(configs);
//put properties from capacity-scheduler.xml into one config with textarea view
- if(this.get('allInstalledServiceNames').contains('YARN') && !App.supports.capacitySchedulerUi){
+ if (this.get('allSelectedServiceNames').contains('YARN') && !App.supports.capacitySchedulerUi) {
configs = App.config.fileConfigsIntoTextarea(configs, 'capacity-scheduler.xml');
}
this.set('groupsToDelete', this.get('wizardController').getDBProperty('groupsToDelete') || []);
@@ -328,8 +336,12 @@ App.WizardStep7Controller = Em.Controller.extend({
masterComponentHosts: this.get('wizardController').getDBProperty('masterComponentHosts'),
slaveComponentHosts: this.get('wizardController').getDBProperty('slaveComponentHosts')
};
+ if (this.get('wizardController.name') === 'addServiceController') {
+ this.getConfigTags();
+ this.setInstalledServiceConfigs(this.get('serviceConfigTags'), configs);
+ }
//STEP 6: Distribute configs by service and wrap each one in App.ServiceConfigProperty (configs -> serviceConfigs)
- var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'), localDB);
+ var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allSelectedServiceNames'), this.get('installedServiceNames'), localDB);
if (this.get('wizardController.name') === 'addServiceController') {
serviceConfigs.setEach('showConfig', true);
serviceConfigs.setEach('selected', false);
@@ -363,6 +375,53 @@ App.WizardStep7Controller = Em.Controller.extend({
App.router.send('next');
}
},
+ getConfigTags: function() {
+ App.ajax.send({
+ name: 'config.tags.sync',
+ sender: this,
+ success: 'getConfigTagsSuccess'
+ });
+ },
+
+ getConfigTagsSuccess: function (data, opt, params) {
+ var installedServiceSites = [];
+ this.get('serviceConfigsData').filter(function (service) {
+ if (this.get('installedServiceNames').contains(service.serviceName)){
+ installedServiceSites = installedServiceSites.concat(service.sites);
+ }
+ }, this);
+ installedServiceSites = installedServiceSites.uniq();
+ var serviceConfigTags = [];
+ for (var site in data.Clusters.desired_configs) {
+ if (installedServiceSites.contains(site)) {
+ serviceConfigTags.push({
+ siteName: site,
+ tagName: data.Clusters.desired_configs[site].tag,
+ newTagName: null
+ });
+ }
+ }
+ this.set('serviceConfigTags', serviceConfigTags);
+ },
+
+ /**
+ * set configs actual values from server
+ * @param serviceConfigTags
+ * @param configs
+ */
+ setInstalledServiceConfigs: function (serviceConfigTags, configs) {
+ var configsMap = {};
+ App.router.get('configurationController').getConfigsByTags(serviceConfigTags).forEach(function(configSite){
+ $.extend(configsMap, configSite.properties);
+ });
+ configs.forEach(function (_config) {
+ if (configsMap[_config.name] !== undefined) {
+ _config.value = configsMap[_config.name];
+ _config.defaultValue = configsMap[_config.name];
+ App.config.handleSpecialProperties(_config);
+ }
+ })
+ },
setGroupsToDelete: function(groups) {
var groupsToDelete = this.get('groupsToDelete');
@@ -443,6 +502,7 @@ App.WizardStep7Controller = Em.Controller.extend({
var serviceConfigs = this.get('selectedService.configs');
var selectedGroup = this.get('selectedConfigGroup');
var overrideToAdd = this.get('overrideToAdd');
+ var isServiceInstalled = this.get('installedServiceNames').contains(this.get('selectedService.serviceName'));
if(!selectedGroup) return;
var displayedConfigGroups = (selectedGroup.get('isDefault')) ?
this.get('selectedService.configGroups').filterProperty('isDefault', false) :
@@ -454,7 +514,13 @@ App.WizardStep7Controller = Em.Controller.extend({
});
serviceConfigs.forEach(function (config) {
var configOverrides = overrides.filterProperty('name', config.get('name'));
- config.set('isEditable', selectedGroup.get('isDefault'));
+ var isEditable = config.get('isEditable');
+ if (isServiceInstalled) {
+ isEditable = (!isEditable && !config.get('isReconfigurable')) ? false : selectedGroup.get('isDefault');
+ } else {
+ isEditable = selectedGroup.get('isDefault');
+ }
+ config.set('isEditable', isEditable);
if (overrideToAdd && overrideToAdd.get('name') === config.get('name')) {
configOverrides.push(this.addOverrideProperty(config));
this.set('overrideToAdd', null);
http://git-wip-us.apache.org/repos/asf/ambari/blob/c7d94be5/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index edb4b87..5ee0bf7 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -509,19 +509,19 @@ App.config = Em.Object.create({
* and wrap each in ServiceConfigProperty object
* @param configs
* @param storedConfigs
- * @param allInstalledServiceNames
- * @param selectedServiceNames
+ * @param allSelectedServiceNames
+ * @param installedServiceNames
* @param localDB
* @return {Array}
*/
- renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames, localDB) {
+ renderConfigs: function (configs, storedConfigs, allSelectedServiceNames, installedServiceNames, localDB) {
var renderedServiceConfigs = [];
var services = [];
this.get('preDefinedServiceConfigs').forEach(function (serviceConfig) {
- if (allInstalledServiceNames.contains(serviceConfig.serviceName) || serviceConfig.serviceName === 'MISC') {
+ if (allSelectedServiceNames.contains(serviceConfig.serviceName) || serviceConfig.serviceName === 'MISC') {
console.log('pushing ' + serviceConfig.serviceName, serviceConfig);
- if (selectedServiceNames.contains(serviceConfig.serviceName) || serviceConfig.serviceName === 'MISC') {
+ if (!installedServiceNames.contains(serviceConfig.serviceName) || serviceConfig.serviceName === 'MISC') {
serviceConfig.showConfig = true;
}
services.push(serviceConfig);