You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2013/03/21 17:53:47 UTC
svn commit: r1459397 - in /incubator/ambari/trunk: ./ ambari-web/app/
ambari-web/app/controllers/main/
ambari-web/app/controllers/main/admin/security/
ambari-web/app/controllers/main/admin/security/add/ ambari-web/app/data/
ambari-web/app/routes/
Author: jaimin
Date: Thu Mar 21 16:53:46 2013
New Revision: 1459397
URL: http://svn.apache.org/r1459397
Log:
AMBARI-1672. Security Wizard - integrate with cluster-level config API. (jaimin)
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-web/app/controllers/main/admin.js
incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/add/step3.js
incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/disable.js
incubator/ambari/trunk/ambari-web/app/data/secure_configs.js
incubator/ambari/trunk/ambari-web/app/messages.js
incubator/ambari/trunk/ambari-web/app/routes/main.js
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Thu Mar 21 16:53:46 2013
@@ -145,6 +145,8 @@ Trunk (unreleased changes):
IMPROVEMENTS
+ AMBARI-1672. Security Wizard - integrate with cluster-level config API. (jaimin)
+
AMBARI-1669. Security Wizard UI tweaks. (jaimin)
AMBARI-1630. Expose HUE config parameters through Ambari Web. (yusaku)
Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/admin.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/admin.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/main/admin.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/main/admin.js Thu Mar 21 16:53:46 2013
@@ -35,7 +35,7 @@ App.MainAdminController = Em.Controller.
dfd.resolve();
}, 50);
} else {
- this.getHDFSDetailsFromServer(dfd);
+ this.getSecurityStatusFromServer(dfd);
}
return dfd.promise();
},
@@ -43,9 +43,9 @@ App.MainAdminController = Em.Controller.
/**
* return true if security status is loaded and false otherwise
*/
- getHDFSDetailsFromServer: function (dfd) { //TODO: this should be obtain from cluster level config rather than HDFS global config
+ getSecurityStatusFromServer: function (dfd) { //TODO: this should be obtain from cluster level config rather than HDFS global config
var self = this;
- var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/services/HDFS';
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName();
$.ajax({
type: 'GET',
url: url,
@@ -55,9 +55,9 @@ App.MainAdminController = Em.Controller.
success: function (data) {
console.log("TRACE: The url is: " + url);
var jsonData = jQuery.parseJSON(data);
- var configs = jsonData.ServiceInfo.desired_configs;
+ var configs = jsonData.Clusters.desired_configs;
if ('global' in configs) {
- self.getServiceConfigsFromServer(dfd, 'global', configs['global']);
+ self.getServiceConfigsFromServer(dfd, 'global', configs['global'].tag);
} else {
if (dfd) {
dfd.reject();
Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/add/step3.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/add/step3.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/add/step3.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/add/step3.js Thu Mar 21 16:53:46 2013
@@ -39,13 +39,13 @@ App.MainAdminSecurityAddStep3Controller
}.property('content.services'),
serviceUsersBinding: 'App.router.mainAdminController.serviceUsers',
- hasHostPopup:true,
- services:[],
+ hasHostPopup: true,
+ services: [],
serviceTimestamp: null,
clearStep: function () {
this.get('stages').clear();
- this.set('isSubmitDisabled',true);
+ this.set('isSubmitDisabled', true);
},
loadStep: function () {
@@ -59,17 +59,17 @@ App.MainAdminSecurityAddStep3Controller
updateServices: function () {
this.services.clear();
var services = this.get("services");
- this.get("stages").forEach(function(stages){
+ this.get("stages").forEach(function (stages) {
var newService = Ember.Object.create({
- name:stages.label,
- hosts:[]
+ name: stages.label,
+ hosts: []
});
var hostNames = stages.get("polledData").mapProperty('Tasks.host_name').uniq();
- hostNames.forEach(function(name){
+ hostNames.forEach(function (name) {
newService.hosts.push({
- name:name,
- publicName:name,
- logTasks:stages.polledData
+ name: name,
+ publicName: name,
+ logTasks: stages.polledData
});
});
services.push(newService);
@@ -97,7 +97,7 @@ App.MainAdminSecurityAddStep3Controller
currentStage.set('isCompleted', true);
this.moveToNextStage();
} else {
- this.loadConfigsForAllServices();
+ this.loadClusterConfigs();
}
}
}
@@ -116,6 +116,16 @@ App.MainAdminSecurityAddStep3Controller
}
}.observes('stages.@each.isCompleted'),
+ moveToNextStage: function () {
+ var nextStage = this.get('stages').findProperty('isStarted', false);
+ if (nextStage) {
+ nextStage.set('isStarted', true);
+ this.set('isSubmitDisabled', true);
+ } else {
+ this.set('isSubmitDisabled', false);
+ }
+ },
+
addInfoToStages: function () {
this.addInfoToStage2();
this.addInfoToStage3();
@@ -325,45 +335,32 @@ App.MainAdminSecurityAddStep3Controller
serviceUsers.pushObject({id: 'puppet var', name: 'hbase_user', value: 'hbase'});
serviceUsers.pushObject({id: 'puppet var', name: 'hive_user', value: 'hive'});
} else {
- App.router.get('mainAdminController').getHDFSDetailsFromServer();
+ App.router.get('mainAdminController').getSecurityStatusFromServer();
}
},
- loadConfigsForAllServices: function () {
- this.set('noOfWaitingAjaxCalls', this.get('content.services').length - 1);
- this.get('content.services').forEach(function (_secureService, index) {
- if (_secureService.serviceName !== 'GENERAL') {
- this.getConfigDetailsFromServer(_secureService, index);
- }
- }, this);
- },
-
- getConfigDetailsFromServer: function (secureService, id) {
+ loadClusterConfigs: function () {
var self = this;
- var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/services/' + secureService.serviceName;
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName();
$.ajax({
type: 'GET',
url: url,
timeout: 10000,
dataType: 'text',
success: function (data) {
- console.log("TRACE: In success function for the GET getServciceConfigs call");
- console.log("TRACE: The url is: " + url);
var jsonData = jQuery.parseJSON(data);
//prepare tags to fetch all configuration for a service
- self.setServiceTagNames(secureService.serviceName, jsonData.ServiceInfo.desired_configs);
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
-
- if (self.get('noOfWaitingAjaxCalls') == 0) {
- self.getAllConfigsFromServer();
- }
+ self.get('content.services').forEach(function (_secureService) {
+ if (_secureService.serviceName !== 'GENERAL') {
+ self.setServiceTagNames(_secureService, jsonData.Clusters.desired_configs);
+ }
+ });
+ self.getAllConfigurations();
},
error: function (request, ajaxOptions, error) {
self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log("TRACE: In error function for the getServciceConfigs call");
- console.log("TRACE: value of the url is: " + url);
console.log("TRACE: error code status is: " + request.status);
},
@@ -371,115 +368,51 @@ App.MainAdminSecurityAddStep3Controller
});
},
+
/**
* set tagnames for configuration of the *-site.xml
*/
- setServiceTagNames: function (secureServiceName, configs) {
+ setServiceTagNames: function (secureService, configs) {
console.log("TRACE: In setServiceTagNames function:");
//var serviceConfigTags = this.get('serviceConfigTags');
for (var index in configs) {
- var serviceConfigObj = {
- serviceName: secureServiceName,
- siteName: index,
- tagName: configs[index],
- newTagName: null,
- configs: {}
- };
- console.log("The value of serviceConfigTags[index]: " + configs[index]);
- this.get('serviceConfigTags').pushObject(serviceConfigObj);
+ if (secureService.sites.contains(index)) {
+ var serviceConfigObj = {
+ siteName: index,
+ tagName: configs[index].tag,
+ newTagName: null,
+ configs: {}
+ };
+ console.log("The value of serviceConfigTags[index]: " + configs[index]);
+ this.get('serviceConfigTags').pushObject(serviceConfigObj);
+ }
}
return serviceConfigObj;
},
-
- getAllConfigsFromServer: function () {
- this.set('noOfWaitingAjaxCalls', this.get('serviceConfigTags').length - 1);
- this.get('serviceConfigTags').forEach(function (_serviceConfigTags) {
- if (_serviceConfigTags.serviceName !== 'MAPREDUCE' || _serviceConfigTags.siteName !== 'core-site') { //skip MapReduce core-site configuration
- this.getServiceConfigsFromServer(_serviceConfigTags);
- }
- }, this);
- },
-
-
- createConfigurations: function () {
- this.set('noOfWaitingAjaxCalls', this.get('serviceConfigTags').length - 1);
- this.get('serviceConfigTags').forEach(function (_serviceConfigTags) {
- if (_serviceConfigTags.serviceName !== 'MAPREDUCE' || _serviceConfigTags.siteName !== 'core-site') { //skip MapReduce core-site configuration
- this.createConfiguration(_serviceConfigTags);
- }
+ applyConfigurationsToCluster: function () {
+ this.set('noOfWaitingAjaxCalls', this.get('serviceConfigTags').length);
+ this.get('serviceConfigTags').forEach(function (_serviceConfig) {
+ this.applyConfigurationToCluster({type: _serviceConfig.siteName, tag: _serviceConfig.newTagName, properties: _serviceConfig.configs});
}, this);
},
- createConfiguration: function (serviceConfigTags) {
+ applyConfigurationToCluster: function (data) {
var self = this;
- var clusterName = App.router.getClusterName();
- var url = App.apiPrefix + '/clusters/' + clusterName + '/configurations';
- var data = this.createConfigurationData(serviceConfigTags);
- $.ajax({
- type: 'POST',
- url: url,
- data: JSON.stringify(data),
- dataType: 'text',
- timeout: 5000,
- success: function (data) {
- var jsonData = jQuery.parseJSON(data);
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
- if (self.get('noOfWaitingAjaxCalls') == 0) {
- self.applyConfigurationToServices();
- }
- },
-
- error: function (request, ajaxOptions, error) {
- self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log('TRACE: In Error ');
- console.log('TRACE: Error message is: ' + request.responseText);
- console.log("TRACE: value of the url is: " + url);
- },
-
- statusCode: require('data/statusCodes')
- });
-
- },
-
- createConfigurationData: function (serviceConfigTags) {
- return {"type": serviceConfigTags.siteName, "tag": serviceConfigTags.newTagName, "properties": serviceConfigTags.configs};
- },
-
- applyConfigurationToServices: function () {
- this.applyHdfsCoretoMaprCore();
- this.set('noOfWaitingAjaxCalls', this.get('content.services').length - 1);
- this.set('noOfWaitingAjaxCalls', this.get('content.services').length - 1);
- this.get('content.services').forEach(function (_service) {
- if (_service.serviceName !== 'GENERAL') {
- var data = {config: {}};
- this.get('serviceConfigTags').filterProperty('serviceName', _service.serviceName).forEach(function (_serviceConfig) {
- data.config[_serviceConfig.siteName] = _serviceConfig.newTagName;
- }, this);
- this.applyConfToService(_service.serviceName, data);
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName();
+ var clusterData = {
+ Clusters: {
+ desired_config: data
}
- }, this);
- },
-
- applyHdfsCoretoMaprCore: function () {
- this.get('serviceConfigTags').filterProperty('serviceName', 'MAPREDUCE').findProperty('siteName', 'core-site').newTagName = this.get('serviceConfigTags').filterProperty('serviceName', 'HDFS').findProperty('siteName', 'core-site').newTagName;
- },
-
- applyConfToService: function (serviceName, data) {
- var self = this;
- var clusterName = App.router.getClusterName();
- var url = App.apiPrefix + '/clusters/' + clusterName + '/services/' + serviceName;
+ };
$.ajax({
type: 'PUT',
url: url,
async: false,
dataType: 'text',
- data: JSON.stringify(data),
+ data: JSON.stringify(clusterData),
timeout: 5000,
success: function (data) {
- var jsonData = jQuery.parseJSON(data);
- console.log("TRACE: In success function for the applyCreatedConfToService call");
- console.log("TRACE: value of the url is: " + url);
self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
if (self.get('noOfWaitingAjaxCalls') == 0) {
var currentStage = self.get('stages').findProperty('stage', 'stage3');
@@ -487,77 +420,64 @@ App.MainAdminSecurityAddStep3Controller
currentStage.set('isCompleted', true);
}
},
-
error: function (request, ajaxOptions, error) {
self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log('Error: In Error of apply');
- console.log('Error: Error message is: ' + request.responseText);
},
-
statusCode: require('data/statusCodes')
});
- console.log("Exiting applyCreatedConfToService");
},
- moveToNextStage: function () {
- var nextStage = this.get('stages').findProperty('isStarted', false);
- if (nextStage) {
- nextStage.set('isStarted', true);
- this.set('isSubmitDisabled', true);
- } else {
- this.set('isSubmitDisabled', false);
- }
- },
/**
* gets site config properties from server and sets it for every configuration
* @param serviceConfigTags
*/
- getServiceConfigsFromServer: function (serviceConfigTags) {
+ getAllConfigurations: function () {
var self = this;
- var properties = {};
- var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/configurations/?type=' + serviceConfigTags.siteName + '&tag=' + serviceConfigTags.tagName;
- $.ajax({
- type: 'GET',
- url: url,
- async: true,
- timeout: 10000,
- dataType: 'json',
- success: function (data) {
- console.log("TRACE: In success function for the GET getServiceConfigsFromServer call");
- console.log("TRACE: The url is: " + url);
- serviceConfigTags.configs = data.items.findProperty('tag', serviceConfigTags.tagName).properties;
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
-
- if (self.get('noOfWaitingAjaxCalls') == 0) {
+ var urlParams = [];
+ this.get('serviceConfigTags').forEach(function (_tag) {
+ urlParams.push('(type=' + _tag.siteName + '&tag=' + _tag.tagName + ')');
+ }, this);
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/configurations?' + urlParams.join('|');
+ if (urlParams.length > 0) {
+ $.ajax({
+ type: 'GET',
+ url: url,
+ async: true,
+ timeout: 10000,
+ dataType: 'json',
+ success: function (data) {
+ console.log("TRACE: In success function for the GET getServiceConfigsFromServer call");
+ console.log("TRACE: The url is: " + url);
+ self.get('serviceConfigTags').forEach(function (_tag) {
+ _tag.configs = data.items.findProperty('type', _tag.siteName).properties;
+ });
self.addSecureConfigs();
- self.createConfigurations();
- }
- },
+ self.applyConfigurationsToCluster();
+ },
- error: function (request, ajaxOptions, error) {
- self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log("TRACE: In error function for the getServiceConfigsFromServer call");
- console.log("TRACE: value of the url is: " + url);
- console.log("TRACE: error code status is: " + request.status);
- },
+ error: function (request, ajaxOptions, error) {
+ self.get('stages').findProperty('stage', 'stage3').set('isError', true);
+ console.log("TRACE: In error function for the getServiceConfigsFromServer call");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: error code status is: " + request.status);
+ },
- statusCode: require('data/statusCodes')
- });
+ statusCode: require('data/statusCodes')
+ });
+ }
},
-
addSecureConfigs: function () {
this.get('serviceConfigTags').forEach(function (_serviceConfigTags, index) {
+ _serviceConfigTags.newTagName = 'version' + (new Date).getTime();
if (_serviceConfigTags.siteName === 'global') {
- _serviceConfigTags.newTagName = 'version' + (new Date).getTime() + index;
this.get('globalProperties').forEach(function (_globalProperty) {
_serviceConfigTags.configs[_globalProperty.name] = _globalProperty.value;
}, this);
} else {
- _serviceConfigTags.newTagName = 'version' + (new Date).getTime();
this.get('configs').filterProperty('id', 'site property').filterProperty('filename', _serviceConfigTags.siteName + '.xml').forEach(function (_config) {
_serviceConfigTags.configs[_config.name] = _config.value;
}, this);
Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/disable.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/disable.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/disable.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/main/admin/security/disable.js Thu Mar 21 16:53:46 2013
@@ -51,6 +51,16 @@ App.MainAdminSecurityDisableController =
]);
},
+
+ moveToNextStage: function () {
+ var nextStage = this.get('stages').findProperty('isStarted', false);
+ if (nextStage) {
+ nextStage.set('isStarted', true);
+ } else {
+ this.set('isSubmitDisabled', false);
+ }
+ },
+
startStage: function () {
var startedStages = this.get('stages').filterProperty('isStarted', true);
if (startedStages.length) {
@@ -63,7 +73,7 @@ App.MainAdminSecurityDisableController =
currentStage.set('isCompleted', true);
this.moveToNextStage();
} else {
- this.loadConfigsForAllServices();
+ this.loadClusterConfigs();
}
}
}
@@ -116,88 +126,113 @@ App.MainAdminSecurityDisableController =
stage4.set('data', data);
},
- loadSecureServices: function () {
- var secureServices = require('data/secure_configs');
- var installedServices = App.Service.find().mapProperty('serviceName');
- //General (only non service tab) tab is always displayed
- installedServices.forEach(function (_service) {
- var secureService = secureServices.findProperty('serviceName', _service);
- if (secureService) {
- this.get('secureServices').push(secureService);
- }
- }, this);
- },
-
- /**
- * gets site config properties from server and sets it for every configuration
- * @param serviceConfigTags
- */
-
- getServiceConfigsFromServer: function (serviceConfigTags) {
+ loadClusterConfigs: function () {
var self = this;
- var properties = {};
- var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/configurations/?type=' + serviceConfigTags.siteName + '&tag=' + serviceConfigTags.tagName;
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName();
$.ajax({
type: 'GET',
url: url,
- async: true,
timeout: 10000,
- dataType: 'json',
+ dataType: 'text',
success: function (data) {
- console.log("TRACE: In success function for the GET getServiceConfigsFromServer call");
- console.log("TRACE: The url is: " + url);
- serviceConfigTags.configs = data.items.findProperty('tag', serviceConfigTags.tagName).properties;
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
-
- if (self.get('noOfWaitingAjaxCalls') == 0) {
- self.removeSecureConfigs();
- self.createConfigurations();
- }
+ var jsonData = jQuery.parseJSON(data);
+ //prepare tags to fetch all configuration for a service
+ self.get('secureServices').forEach(function (_secureService) {
+ self.setServiceTagNames(_secureService, jsonData.Clusters.desired_configs);
+ });
+ self.getAllConfigurations();
},
error: function (request, ajaxOptions, error) {
self.get('stages').findProperty('stage', 'stage3').set('isError', true);
+ console.log("TRACE: error code status is: " + request.status);
},
statusCode: require('data/statusCodes')
});
},
- loadConfigsForAllServices: function () {
- this.set('noOfWaitingAjaxCalls', this.get('secureServices').length);
- this.get('secureServices').forEach(function (_secureService, index) {
- this.getConfigDetailsFromServer(_secureService, index);
+
+ getAllConfigurations: function () {
+ var self = this;
+ var urlParams = [];
+ this.get('serviceConfigTags').forEach(function (_tag) {
+ urlParams.push('(type=' + _tag.siteName + '&tag=' + _tag.tagName + ')');
+ }, this);
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/configurations?' + urlParams.join('|');
+ if (urlParams.length > 0) {
+ $.ajax({
+ type: 'GET',
+ url: url,
+ async: true,
+ timeout: 10000,
+ dataType: 'json',
+ success: function (data) {
+ console.log("TRACE: In success function for the GET getServiceConfigsFromServer call");
+ console.log("TRACE: The url is: " + url);
+ self.get('serviceConfigTags').forEach(function (_tag) {
+ _tag.configs = data.items.findProperty('type', _tag.siteName).properties;
+ });
+ self.removeSecureConfigs();
+ self.applyConfigurationsToCluster();
+ },
+
+ error: function (request, ajaxOptions, error) {
+ self.get('stages').findProperty('stage', 'stage3').set('isError', true);
+ console.log("TRACE: In error function for the getServiceConfigsFromServer call");
+ console.log("TRACE: value of the url is: " + url);
+ console.log("TRACE: error code status is: " + request.status);
+ },
+
+ statusCode: require('data/statusCodes')
+ });
+ }
+ },
+
+ loadSecureServices: function () {
+ var secureServices = require('data/secure_configs');
+ var installedServices = App.Service.find().mapProperty('serviceName');
+ //General (only non service tab) tab is always displayed
+ installedServices.forEach(function (_service) {
+ var secureService = secureServices.findProperty('serviceName', _service);
+ if (secureService) {
+ this.get('secureServices').push(secureService);
+ }
+ }, this);
+ },
+
+ applyConfigurationsToCluster: function () {
+ this.set('noOfWaitingAjaxCalls', this.get('serviceConfigTags').length);
+ this.get('serviceConfigTags').forEach(function (_serviceConfig) {
+ this.applyConfigurationToCluster({type: _serviceConfig.siteName, tag: _serviceConfig.newTagName, properties: _serviceConfig.configs});
}, this);
},
- getConfigDetailsFromServer: function (secureService, id) {
+ applyConfigurationToCluster: function (data) {
var self = this;
- var url = App.apiPrefix + '/clusters/' + App.router.getClusterName() + '/services/' + secureService.serviceName;
+ var url = App.apiPrefix + '/clusters/' + App.router.getClusterName();
+ var clusterData = {
+ Clusters: {
+ desired_config: data
+ }
+ };
$.ajax({
- type: 'GET',
+ type: 'PUT',
url: url,
- timeout: 10000,
+ async: false,
dataType: 'text',
+ data: JSON.stringify(clusterData),
+ timeout: 5000,
success: function (data) {
- console.log("TRACE: In success function for the GET getServciceConfigs call");
- console.log("TRACE: The url is: " + url);
- var jsonData = jQuery.parseJSON(data);
-
- //prepare tags to fetch all configuration for a service
- self.setServiceTagNames(secureService.serviceName, jsonData.ServiceInfo.desired_configs);
self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
-
if (self.get('noOfWaitingAjaxCalls') == 0) {
- self.getAllConfigsFromServer();
+ var currentStage = self.get('stages').findProperty('stage', 'stage3');
+ currentStage.set('isSuccess', true);
+ currentStage.set('isCompleted', true);
}
},
-
error: function (request, ajaxOptions, error) {
self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log("TRACE: In error function for the getServciceConfigs call");
- console.log("TRACE: value of the url is: " + url);
- console.log("TRACE: error code status is: " + request.status);
},
-
statusCode: require('data/statusCodes')
});
},
@@ -212,7 +247,7 @@ App.MainAdminSecurityDisableController =
var serviceConfigObj = {
serviceName: secureServiceName,
siteName: index,
- tagName: configs[index],
+ tagName: configs[index].tag,
newTagName: null,
configs: {}
};
@@ -232,111 +267,10 @@ App.MainAdminSecurityDisableController =
}, this);
},
-
- createConfigurations: function () {
- this.set('noOfWaitingAjaxCalls', this.get('serviceConfigTags').length - 1);
- this.get('serviceConfigTags').forEach(function (_serviceConfigTags) {
- if (_serviceConfigTags.serviceName !== 'MAPREDUCE' || _serviceConfigTags.siteName !== 'core-site') { //skip MapReduce core-site configuration
- this.createConfiguration(_serviceConfigTags);
- }
- }, this);
- },
-
- createConfiguration: function (serviceConfigTags) {
- var self = this;
- var clusterName = App.router.getClusterName();
- var url = App.apiPrefix + '/clusters/' + clusterName + '/configurations';
- var data = this.createConfigurationData(serviceConfigTags);
- $.ajax({
- type: 'POST',
- url: url,
- data: JSON.stringify(data),
- dataType: 'text',
- timeout: 5000,
- success: function (data) {
- var jsonData = jQuery.parseJSON(data);
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
- if (self.get('noOfWaitingAjaxCalls') == 0) {
- self.applyConfigurationToServices();
- }
- },
-
- error: function (request, ajaxOptions, error) {
- self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- console.log('TRACE: In Error ');
- console.log('TRACE: Error message is: ' + request.responseText);
- console.log("TRACE: value of the url is: " + url);
- },
-
- statusCode: require('data/statusCodes')
- });
-
- },
-
- createConfigurationData: function (serviceConfigTags) {
- return {"type": serviceConfigTags.siteName, "tag": serviceConfigTags.newTagName, "properties": serviceConfigTags.configs};
- },
-
- applyConfigurationToServices: function () {
- this.applyHdfsCoretoMaprCore();
- this.set('noOfWaitingAjaxCalls', this.get('secureServices').length);
- this.get('secureServices').forEach(function (_service) {
- var data = {config: {}};
- this.get('serviceConfigTags').filterProperty('serviceName', _service.serviceName).forEach(function (_serviceConfig) {
- data.config[_serviceConfig.siteName] = _serviceConfig.newTagName;
- }, this);
- this.applyConfToService(_service.serviceName, data);
-
- }, this);
- },
-
- applyHdfsCoretoMaprCore: function () {
- this.get('serviceConfigTags').filterProperty('serviceName', 'MAPREDUCE').findProperty('siteName', 'core-site').newTagName = this.get('serviceConfigTags').filterProperty('serviceName', 'HDFS').findProperty('siteName', 'core-site').newTagName;
- },
-
- applyConfToService: function (serviceName, data) {
- var self = this;
- var clusterName = App.router.getClusterName();
- var url = App.apiPrefix + '/clusters/' + clusterName + '/services/' + serviceName;
- $.ajax({
- type: 'PUT',
- url: url,
- async: false,
- dataType: 'text',
- data: JSON.stringify(data),
- timeout: 5000,
- success: function (data) {
- self.set('noOfWaitingAjaxCalls', self.get('noOfWaitingAjaxCalls') - 1);
- if (self.get('noOfWaitingAjaxCalls') == 0) {
- var currentStage = self.get('stages').findProperty('stage', 'stage3');
- currentStage.set('isSuccess', true);
- currentStage.set('isCompleted', true);
- }
- },
-
- error: function (request, ajaxOptions, error) {
- self.get('stages').findProperty('stage', 'stage3').set('isError', true);
- },
-
- statusCode: require('data/statusCodes')
- });
- console.log("Exiting applyCreatedConfToService");
-
- },
-
- moveToNextStage: function () {
- var nextStage = this.get('stages').findProperty('isStarted', false);
- if (nextStage) {
- nextStage.set('isStarted', true);
- } else {
- this.set('isSubmitDisabled', false);
- }
- },
-
removeSecureConfigs: function () {
this.get('serviceConfigTags').forEach(function (_serviceConfigTags, index) {
+ _serviceConfigTags.newTagName = 'version' + (new Date).getTime();
if (_serviceConfigTags.siteName === 'global') {
- _serviceConfigTags.newTagName = 'version' + (new Date).getTime() + index;
this.get('secureProperties').forEach(function (_config) {
if (_config.name in _serviceConfigTags.configs) {
delete _serviceConfigTags.configs[_config.name];
@@ -344,7 +278,6 @@ App.MainAdminSecurityDisableController =
}, this);
_serviceConfigTags.configs.security_enabled = false;
} else {
- _serviceConfigTags.newTagName = 'version' + (new Date).getTime();
this.get('configMapping').filterProperty('filename', _serviceConfigTags.siteName + '.xml').forEach(function (_config) {
if (_config.name in _serviceConfigTags.configs) {
if (_config.name === 'dfs.datanode.address') {
Modified: incubator/ambari/trunk/ambari-web/app/data/secure_configs.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/secure_configs.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/secure_configs.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/secure_configs.js Thu Mar 21 16:53:46 2013
@@ -43,6 +43,7 @@ module.exports = [
App.ServiceConfigCategory.create({ name: 'SNameNode',displayName: 'SNameNode'}),
App.ServiceConfigCategory.create({ name: 'DataNode', displayName: 'DataNode'})
],
+ sites: ['global', 'core-site', 'hdfs-site'],
configs: configProperties.filterProperty('serviceName', 'HDFS')
},
@@ -54,6 +55,7 @@ module.exports = [
App.ServiceConfigCategory.create({ name: 'JobTracker', displayName: 'JobTracker'}),
App.ServiceConfigCategory.create({ name: 'TaskTracker', displayName: 'TaskTracker'})
],
+ sites: ['mapred-site'],
configs: configProperties.filterProperty('serviceName', 'MAPREDUCE')
},
@@ -64,6 +66,7 @@ module.exports = [
configCategories: [
App.ServiceConfigCategory.create({ name: 'Hive Metastore', displayName: 'Hive Metastore'})
],
+ sites: ['hive-site'],
configs: configProperties.filterProperty('serviceName', 'HIVE')
},
@@ -74,6 +77,7 @@ module.exports = [
configCategories: [
App.ServiceConfigCategory.create({ name: 'WebHCat', displayName: 'WebHCat'})
],
+ sites: ['webhcat-site'],
configs: configProperties.filterProperty('serviceName', 'WEBHCAT')
},
@@ -85,6 +89,8 @@ module.exports = [
App.ServiceConfigCategory.create({ name: 'HBase Master', displayName: 'HBase Master'}),
App.ServiceConfigCategory.create({ name: 'RegionServer', displayName: 'RegionServer'})
],
+ sites: ['hbase-site'],
+
configs: configProperties.filterProperty('serviceName', 'HBASE')
},
/*
@@ -106,6 +112,7 @@ module.exports = [
configCategories: [
App.ServiceConfigCategory.create({ name: 'Oozie Server'})
],
+ sites: ['oozie-site'],
configs: configProperties.filterProperty('serviceName', 'OOZIE')
}
Modified: incubator/ambari/trunk/ambari-web/app/messages.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/messages.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/messages.js (original)
+++ incubator/ambari/trunk/ambari-web/app/messages.js Thu Mar 21 16:53:46 2013
@@ -526,7 +526,7 @@ Em.I18n.translations = {
'admin.addSecurity.apply.stage3': '2. Saving Configurations',
'admin.addSecurity.apply.stage4': '3. Starting Services',
'admin.addSecurity.apply.stage5': '5. Smoke Test',
- 'admin.security.status.error' : 'Error in retrieving cluster security status from server',
+ 'admin.security.status.error' : 'Error in retrieving cluster security status from Ambari server',
'admin.users.ldapAuthentionUsed':'LDAP Authentication is being used to authenticate users',
'admin.users.delete.yourself.message':'You can\'t delete yourself',
'admin.users.delete.yourself.header':'Deleting warning',
Modified: incubator/ambari/trunk/ambari-web/app/routes/main.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/routes/main.js?rev=1459397&r1=1459396&r2=1459397&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/routes/main.js (original)
+++ incubator/ambari/trunk/ambari-web/app/routes/main.js Thu Mar 21 16:53:46 2013
@@ -311,7 +311,7 @@ module.exports = Em.Route.extend({
this.hide();
},
bodyClass: Ember.View.extend({
- template: Ember.Handlebars.compile(['<p>{{t admin.security.status.error}}</p>'])
+ template: Ember.Handlebars.compile('<p>{{t admin.security.status.error}}</p>')
})
});
});