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/02/21 14:49:38 UTC
git commit: AMBARI-4777 Restart indicators work incorrectly after
adding component. (atkach)
Repository: ambari
Updated Branches:
refs/heads/trunk 44f0f2d97 -> 9c98af160
AMBARI-4777 Restart indicators work incorrectly after adding component. (atkach)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9c98af16
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9c98af16
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9c98af16
Branch: refs/heads/trunk
Commit: 9c98af160d8b87068f8b223fa714501caf6701d0
Parents: 44f0f2d
Author: atkach <at...@hortonworks.com>
Authored: Fri Feb 21 15:38:59 2014 +0200
Committer: atkach <at...@hortonworks.com>
Committed: Fri Feb 21 15:38:59 2014 +0200
----------------------------------------------------------------------
.../controllers/main/service/info/configs.js | 3 +-
.../app/controllers/wizard/step8_controller.js | 107 ++-----------------
ambari-web/app/data/HDP2/config_mapping.js | 28 +++--
ambari-web/app/utils/config.js | 10 ++
4 files changed, 37 insertions(+), 111 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/9c98af16/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 1f8565c..9d3e64b 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -1112,7 +1112,8 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
var serviceConfigProperties = configs.filterProperty('id', 'site property');
this.formatConfigValues(serviceConfigProperties);
var storedConfigs = serviceConfigProperties.filterProperty('value');
- var allUiConfigs = this.loadUiSideConfigs(this.get('configMapping').all());
+ var mappedConfigs = App.config.excludeUnsupportedConfigs(this.get('configMapping').all(), App.Service.find().mapProperty('serviceName'));
+ var allUiConfigs = this.loadUiSideConfigs(mappedConfigs);
this.set('uiConfigs', storedConfigs.concat(allUiConfigs));
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/9c98af16/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index ab0f909..4280f47 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -189,13 +189,14 @@ App.WizardStep8Controller = Em.Controller.extend({
_config.value = (typeof _config.value === "boolean") ? _config.value.toString() : _config.value;
});
var storedConfigs = serviceConfigProperties.filterProperty('value');
- var uiConfigs = this.loadUiSideConfigs();
+ var mappedConfigs = App.config.excludeUnsupportedConfigs(this.get('configMapping'), this.get('selectedServices').mapProperty('serviceName'));
+ var uiConfigs = this.loadUiSideConfigs(mappedConfigs);
this.set('configs', storedConfigs.concat(uiConfigs));
},
- loadUiSideConfigs: function () {
+ loadUiSideConfigs: function (configMapping) {
var uiConfig = [];
- var configs = this.get('configMapping').filterProperty('foreignKey', null);
+ var configs = configMapping.filterProperty('foreignKey', null);
this.addDynamicProperties(configs);
configs.forEach(function (_config) {
var valueWithOverrides = this.getGlobConfigValueWithOverrides(_config.templateName, _config.value, _config.name);
@@ -207,7 +208,7 @@ App.WizardStep8Controller = Em.Controller.extend({
"overrides": valueWithOverrides.overrides
});
}, this);
- var dependentConfig = $.extend(true, [], this.get('configMapping').filterProperty('foreignKey'));
+ var dependentConfig = $.extend(true, [], configMapping.filterProperty('foreignKey'));
dependentConfig.forEach(function (_config) {
App.config.setConfigValue(uiConfig, this.get('content.serviceConfigProperties'), _config, this.get('globals'));
uiConfig.pushObject({
@@ -614,7 +615,6 @@ App.WizardStep8Controller = Em.Controller.extend({
this.createConfigurationGroups();
}
this.createAllHostComponents();
- this.createHostOverrideConfigurations();
this.ajaxQueueFinished = function () {
console.log('everything is loaded');
@@ -1238,7 +1238,6 @@ App.WizardStep8Controller = Em.Controller.extend({
globalSiteProperties[_globalSiteObj.name] = App.config.escapeXMLCharacters(_globalSiteObj.value);
}
}
- this._recordHostOverrideFromObj(_globalSiteObj, 'global', 'version1', this);
}, this);
// we don't expose gmond_user to the user; it needs to be the same as gmetad_user
globalSiteProperties['gmond_user'] = globalSiteProperties['gmetad_user'];
@@ -1255,23 +1254,15 @@ App.WizardStep8Controller = Em.Controller.extend({
var hiveUser = this.get('globals').someProperty('name', 'hive_user') ? this.get('globals').findProperty('name', 'hive_user').value : null;
var isHcatSelected = this.get('selectedServices').someProperty('serviceName', 'WEBHCAT');
var hcatUser = this.get('globals').someProperty('name', 'hcat_user') ? this.get('globals').findProperty('name', 'hcat_user').value : null;
- var isGLUSTERFSSelected = this.get('selectedServices').someProperty('serviceName', 'GLUSTERFS');
-
- // screen out the GLUSTERFS-specific core-site.xml entries when they are not needed
- if (!isGLUSTERFSSelected) {
- coreSiteObj = coreSiteObj.filter(function(_config) {
- return _config.name.indexOf("fs.glusterfs") < 0;
- });
- }
+
coreSiteObj.forEach(function (_coreSiteObj) {
if ((isOozieSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + oozieUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + oozieUser + '.groups')) && (isHiveSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + hiveUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hiveUser + '.groups')) && (isHcatSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + hcatUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hcatUser + '.groups'))) {
coreSiteProperties[_coreSiteObj.name] = App.config.escapeXMLCharacters(_coreSiteObj.value);
- this._recordHostOverrideFromObj(_coreSiteObj, 'core-site', 'version1', this);
}
- if (isGLUSTERFSSelected && _coreSiteObj.name == "fs.default.name") {
+ if (_coreSiteObj.name == "fs.default.name") {
coreSiteProperties[_coreSiteObj.name] = this.get('globals').someProperty('name', 'fs_glusterfs_default_name') ? App.config.escapeXMLCharacters(this.get('globals').findProperty('name', 'fs_glusterfs_default_name').value) : null;
}
- if (isGLUSTERFSSelected && _coreSiteObj.name == "fs.defaultFS") {
+ if (_coreSiteObj.name == "fs.defaultFS") {
coreSiteProperties[_coreSiteObj.name] = this.get('globals').someProperty('name', 'glusterfs_defaultFS_name') ? App.config.escapeXMLCharacters(this.get('globals').findProperty('name', 'glusterfs_defaultFS_name').value) : null;
}
console.log("STEP*: name of the property is: " + _coreSiteObj.name);
@@ -1285,7 +1276,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var hdfsProperties = {};
hdfsSiteObj.forEach(function (_configProperty) {
hdfsProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'hdfs-site', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1298,7 +1288,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var Log4jProperties = {};
Log4jObj.forEach(function (_configProperty) {
Log4jProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, fileName + '-log4j', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1310,7 +1299,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var hueProperties = {};
hueSiteObj.forEach(function (_configProperty) {
hueProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'hue-site', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1322,7 +1310,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var mrProperties = {};
configs.forEach(function (_configProperty) {
mrProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'mapred-site', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1334,7 +1321,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var mrProperties = {};
configs.forEach(function (_configProperty) {
mrProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'yarn-site', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1346,7 +1332,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var csProperties = {};
configs.forEach(function (_configProperty) {
csProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'capacity-scheduler', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1358,7 +1343,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var mqProperties = {};
configs.forEach(function (_configProperty) {
mqProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'mapred-queue-acls', 'version1', this);
console.log("STEP*: name of the property is: " + _configProperty.name);
console.log("STEP8: value of the property is: " + _configProperty.value);
}, this);
@@ -1370,7 +1354,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var hbaseProperties = {};
configs.forEach(function (_configProperty) {
hbaseProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'hbase-site', 'version1', this);
}, this);
return {type: 'hbase-site', tag: 'version1', properties: hbaseProperties};
},
@@ -1380,7 +1363,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var oozieProperties = {};
configs.forEach(function (_configProperty) {
oozieProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'oozie-site', 'version1', this);
}, this);
return {type: 'oozie-site', tag: 'version1', properties: oozieProperties};
},
@@ -1390,7 +1372,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var hiveProperties = {};
configs.forEach(function (_configProperty) {
hiveProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'hive-site', 'version1', this);
}, this);
return {type: 'hive-site', tag: 'version1', properties: hiveProperties};
},
@@ -1400,7 +1381,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var webHCatProperties = {};
configs.forEach(function (_configProperty) {
webHCatProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'webhcat-site', 'version1', this);
}, this);
return {type: 'webhcat-site', tag: 'version1', properties: webHCatProperties};
},
@@ -1410,7 +1390,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var csProperties = {};
configs.forEach(function (_configProperty) {
csProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'zoo.cfg', 'version1', this);
}, this);
return {type: 'zoo.cfg', tag: 'version1', properties: csProperties};
},
@@ -1429,7 +1408,6 @@ App.WizardStep8Controller = Em.Controller.extend({
} else {
stormProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
}
- this._recordHostOverrideFromObj(_configProperty, 'storm-site', 'version1', this);
}, this);
return {type: 'storm-site', tag: 'version1', properties: stormProperties};
},
@@ -1439,7 +1417,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var tezProperty = {};
configs.forEach(function (_configProperty) {
tezProperty[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'tez-site', 'version1', this);
}, this);
return {type: 'tez-site', tag: 'version1', properties: tezProperty};
},
@@ -1450,7 +1427,6 @@ App.WizardStep8Controller = Em.Controller.extend({
var falconProperties = {};
configs.forEach(function (_configProperty) {
falconProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
- this._recordHostOverrideFromObj(_configProperty, 'oozie-site', 'version1', this);
}, this);
return {type: 'oozie-site', tag: 'version1', properties: falconProperties};
},
@@ -1481,73 +1457,6 @@ App.WizardStep8Controller = Em.Controller.extend({
},
/**
- * Records all the host overrides per site/tag
- */
- _recordHostOverrideFromObj: function(serviceConfigObj, siteName, tagName, self){
- var overrides = serviceConfigObj.overrides;
- if(overrides && overrides.length>0){
- overrides.forEach(function(override){
- override.hosts.forEach(function(host){
- if(!(host in self.savedHostToOverrideSiteToTagMap)){
- self.savedHostToOverrideSiteToTagMap[host] = {};
- }
- if(!(siteName in self.savedHostToOverrideSiteToTagMap[host])){
- self.savedHostToOverrideSiteToTagMap[host][siteName] = {};
- self.savedHostToOverrideSiteToTagMap[host][siteName].map = {};
- }
- var finalTag = tagName + '_' + host;
- console.log("recordHostOverride(): Saving host override for host="+host+", site="+siteName+", tag="+finalTag+", (key,value)=("+serviceConfigObj.name+","+override.value+")");
- self.savedHostToOverrideSiteToTagMap[host][siteName].tagName = finalTag;
- self.savedHostToOverrideSiteToTagMap[host][siteName].map[serviceConfigObj.name] = override.value;
- });
- });
- }
- },
-
- /**
- * Creates host level overrides for service configuration.
- *
- */
- createHostOverrideConfigurations: function () {
- var singlePUTHostData = [];
- var savedHostSiteArray = [];
- for ( var host in this.savedHostToOverrideSiteToTagMap) {
- for ( var siteName in this.savedHostToOverrideSiteToTagMap[host]) {
- var tagName = this.savedHostToOverrideSiteToTagMap[host][siteName].tagName;
- var map = this.savedHostToOverrideSiteToTagMap[host][siteName].map;
- savedHostSiteArray.push(host + "///" + siteName);
- singlePUTHostData.push({
- RequestInfo: {
- query: 'Hosts/host_name='+host
- },
- Body: {
- Hosts: {
- desired_config: {
- type: siteName,
- tag: tagName,
- properties: map
- }
- }
- }
- });
- }
- }
- console.log("createHostOverrideConfigSites(): PUTting host-overrides. Data=", singlePUTHostData);
- if(singlePUTHostData.length>0){
- var url = App.apiPrefix + '/clusters/' + this.get('clusterName') + '/hosts';
- this.ajax({
- type: 'PUT',
- url: url,
- data: JSON.stringify(singlePUTHostData),
- dataType: 'text',
- beforeSend: function () {
- console.log("createHostOverrideConfigSites() PUT override=", singlePUTHostData);
- }
- });
- }
- },
-
- /**
* We need to do a lot of ajax calls async in special order. To do this,
* generate array of ajax objects and then send requests step by step. All
* ajax objects are stored in <code>ajaxQueue</code>
http://git-wip-us.apache.org/repos/asf/ambari/blob/9c98af16/ambari-web/app/data/HDP2/config_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/config_mapping.js b/ambari-web/app/data/HDP2/config_mapping.js
index fa1d6a4..c3757e5 100644
--- a/ambari-web/app/data/HDP2/config_mapping.js
+++ b/ambari-web/app/data/HDP2/config_mapping.js
@@ -73,43 +73,49 @@ var configs = [
"templateName": ["fs_glusterfs_impl"],
"foreignKey": null,
"value": "<templateName[0]>",
- "filename": "core-site.xml"
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
},
{
"name": "fs.glusterfs.volname",
"templateName": ["fs_glusterfs_volname"],
"foreignKey": null,
"value": "<templateName[0]>",
- "filename": "core-site.xml"
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
},
{
"name": "fs.glusterfs.mount",
"templateName": ["fs_glusterfs_mount"],
"foreignKey": null,
"value": "<templateName[0]>",
- "filename": "core-site.xml"
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
},
{
"name": "fs.glusterfs.getfattrcmd",
"templateName": ["fs_glusterfs_getfattrcmd"],
"foreignKey": null,
"value": "<templateName[0]>",
- "filename": "core-site.xml"
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
},
{
"name": "fs.AbstractFileSystem.glusterfs.impl",
"templateName": ["fs_AbstractFileSystem_glusterfs_impl"],
"foreignKey": null,
"value": "<templateName[0]>",
- "filename": "core-site.xml"
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
},
{
- "name": "gluster.daemon.user",
- "templateName": ["gluster_daemon_user"],
- "foreignKey": null,
- "value": "<templateName[0]>",
- "filename": "core-site.xml"
- }
+ "name": "gluster.daemon.user",
+ "templateName": ["gluster_daemon_user"],
+ "foreignKey": null,
+ "value": "<templateName[0]>",
+ "filename": "core-site.xml",
+ "serviceName": "GLUSTERFS"
+ }
];
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/9c98af16/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 7bfe7cb..d45f94b 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -1037,6 +1037,16 @@ App.config = Em.Object.create({
});
}
},
+ /**
+ * exclude configs that depends on services which are uninstalled
+ * if config doesn't have serviceName or dependent service is installed then
+ * config not excluded
+ */
+ excludeUnsupportedConfigs: function (configs, installedServices) {
+ return configs.filter(function (config) {
+ return !(config.serviceName && !installedServices.contains(config.serviceName));
+ });
+ },
launchConfigGroupSelectionCreationDialog : function(serviceId, configGroups, configProperty, callback, isInstaller) {
var self = this;