You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sr...@apache.org on 2013/06/28 06:58:43 UTC
svn commit: r1497645 - in
/incubator/ambari/branches/branch-1.2.5/ambari-web/app:
controllers/main/admin/security.js
controllers/main/admin/security/add/step2.js messages.js
templates/main/admin/security/add/step2.hbs
Author: srimanth
Date: Fri Jun 28 04:58:43 2013
New Revision: 1497645
URL: http://svn.apache.org/r1497645
Log:
AMBARI-2519. Add download CSV action for security wizard. (srimanth)
Modified:
incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security.js
incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security/add/step2.js
incubator/ambari/branches/branch-1.2.5/ambari-web/app/messages.js
incubator/ambari/branches/branch-1.2.5/ambari-web/app/templates/main/admin/security/add/step2.hbs
Modified: incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security.js?rev=1497645&r1=1497644&r2=1497645&view=diff
==============================================================================
--- incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security.js (original)
+++ incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security.js Fri Jun 28 04:58:43 2013
@@ -141,6 +141,11 @@ App.MainAdminSecurityController = Em.Con
name: 'proxyuser_group',
value: configs['proxyuser_group'] ? configs['proxyuser_group'] : 'users'
});
+ serviceUsers.pushObject({
+ id: 'puppet var',
+ name: 'smokeuser',
+ value: configs['smokeuser'] ? configs['smokeuser'] : 'ambari-qa'
+ });
},
showSecurityErrorPopup: function () {
Modified: incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security/add/step2.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security/add/step2.js?rev=1497645&r1=1497644&r2=1497645&view=diff
==============================================================================
--- incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security/add/step2.js (original)
+++ incubator/ambari/branches/branch-1.2.5/ambari-web/app/controllers/main/admin/security/add/step2.js Fri Jun 28 04:58:43 2013
@@ -258,6 +258,108 @@ App.MainAdminSecurityAddStep2Controller
// this.showHostPrincipalKeytabList();
App.router.send('next');
}
- }
+ },
+
+ doDownloadCsv: function(){
+ var blob = new Blob([this.buildCvsContent()], {type: "text/csv;charset=utf-8"});
+ saveAs(blob, "host-principal-keytab-list.csv");
+ },
+
+ buildCvsContent: function() {
+ var configs = this.get('stepConfigs');
+ var hosts = App.Host.find();
+ var result = [];
+ var componentsToDisplay = ['NAMENODE', 'SECONDARY_NAMENODE', 'DATANODE', 'JOBTRACKER', 'ZOOKEEPER_SERVER', 'HIVE_SERVER', 'TASKTRACKER',
+ 'OOZIE_SERVER', 'NAGIOS_SERVER', 'HBASE_MASTER', 'HBASE_REGIONSERVER'];
+ var securityUsers = App.router.get('mainAdminSecurityController').get('serviceUsers');
+ if (!securityUsers || securityUsers.length < 1) { // Page could be refreshed in middle
+ if (App.testMode) {
+ securityUsers.pushObject({id: 'puppet var', name: 'hdfs_user', value: 'hdfs'});
+ securityUsers.pushObject({id: 'puppet var', name: 'mapred_user', value: 'mapred'});
+ securityUsers.pushObject({id: 'puppet var', name: 'hbase_user', value: 'hbase'});
+ securityUsers.pushObject({id: 'puppet var', name: 'hive_user', value: 'hive'});
+ securityUsers.pushObject({id: 'puppet var', name: 'smokeuser', value: 'ambari-qa'});
+ } else {
+ App.router.get('mainAdminSecurityController').setSecurityStatus();
+ securityUsers = App.router.get('mainAdminSecurityController').get('serviceUsers');
+ }
+ }
+ var generalConfigs = configs.findProperty('serviceName', 'GENERAL').configs;
+ var realm = generalConfigs.findProperty('name', 'kerberos_domain').get('value');
+ var smokeUser = securityUsers.findProperty('name', 'smokeuser').value + '@' + realm;
+ var hdfsUser = securityUsers.findProperty('name', 'hdfs_user').value + '@' + realm;
+ var hbaseUser = securityUsers.findProperty('name', 'hbase_user').value + '@' + realm;
+ var smokeUserKeytabPath = generalConfigs.findProperty('name', 'smokeuser_keytab').get('value');
+ var hdfsUserKeytabPath = generalConfigs.findProperty('name', 'keytab_path').get('value') + "/hdfs.headless.keytab";
+ var hbaseUserKeytabPath = generalConfigs.findProperty('name', 'keytab_path').get('value') + "/hbase.headless.keytab";
+ var httpPrincipal = generalConfigs.findProperty('name', 'hadoop_http_principal_name');
+ var httpKeytabPath = generalConfigs.findProperty('name', 'hadoop_http_keytab').get('value');
+ var addedPrincipalsHost = {}; //Keys = host_principal, Value = 'true'
+
+ hosts.forEach(function(host){
+ result.push({
+ host: host.get('hostName'),
+ component: Em.I18n.t('admin.addSecurity.user.smokeUser'),
+ principal: smokeUser,
+ keytab: smokeUserKeytabPath
+ });
+ result.push({
+ host: host.get('hostName'),
+ component: Em.I18n.t('admin.addSecurity.user.hdfsUser'),
+ principal: hdfsUser,
+ keytab: hdfsUserKeytabPath
+ });
+ result.push({
+ host: host.get('hostName'),
+ component: Em.I18n.t('admin.addSecurity.user.hbaseUser'),
+ principal: hbaseUser,
+ keytab: hbaseUserKeytabPath
+ });
+ if(host.get('hostComponents').someProperty('componentName', 'NAMENODE') ||
+ host.get('hostComponents').someProperty('componentName', 'SECONDARY_NAMENODE') ||
+ host.get('hostComponents').someProperty('componentName', 'WEBHCAT_SERVER') ||
+ host.get('hostComponents').someProperty('componentName', 'OOZIE_SERVER')){
+ result.push({
+ host: host.get('hostName'),
+ component: Em.I18n.t('admin.addSecurity.user.httpUser'),
+ principal: httpPrincipal.get('value').replace('_HOST', host.get('hostName')) + httpPrincipal.get('unit'),
+ keytab: httpKeytabPath
+ });
+ }
+ host.get('hostComponents').forEach(function(hostComponent){
+ if(componentsToDisplay.contains(hostComponent.get('componentName'))){
+ var serviceConfigs = configs.findProperty('serviceName', hostComponent.get('service.serviceName')).get('configs');
+ var principal, keytab;
+ serviceConfigs.forEach(function(config){
+ if (config.get('component') && config.get('component') === hostComponent.get('componentName')) {
+ if (config.get('name').endsWith('_principal_name')) {
+ principal = config.get('value').replace('_HOST', host.get('hostName')) + config.get('unit');
+ } else if (config.get('name').endsWith('_keytab') || config.get('name').endsWith('_keytab_path')) {
+ keytab = config.get('value');
+ }
+ } else if (config.get('components') && config.get('components').contains(hostComponent.get('componentName'))) {
+ if (config.get('name').endsWith('_principal_name')) {
+ principal = config.get('value').replace('_HOST', host.get('hostName')) + config.get('unit');
+ } else if (config.get('name').endsWith('_keytab') || config.get('name').endsWith('_keytab_path')) {
+ keytab = config.get('value');
+ }
+ }
+ });
+
+ var key = host.get('hostName') + "--" + principal;
+ if (!addedPrincipalsHost[key]) {
+ result.push({
+ host: host.get('hostName'),
+ component: hostComponent.get('displayName'),
+ principal: principal,
+ keytab: keytab
+ });
+ addedPrincipalsHost[key] = true;
+ }
+ }
+ });
+ });
+ return stringUtils.arrayToCSV(result);
+ }
});
\ No newline at end of file
Modified: incubator/ambari/branches/branch-1.2.5/ambari-web/app/messages.js
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/branch-1.2.5/ambari-web/app/messages.js?rev=1497645&r1=1497644&r2=1497645&view=diff
==============================================================================
--- incubator/ambari/branches/branch-1.2.5/ambari-web/app/messages.js (original)
+++ incubator/ambari/branches/branch-1.2.5/ambari-web/app/messages.js Fri Jun 28 04:58:43 2013
@@ -621,6 +621,10 @@ Em.I18n.translations = {
'admin.addSecurity.apply.stage3': '2. Save Configurations',
'admin.addSecurity.apply.stage4': '3. Start Services',
'admin.addSecurity.apply.stage5': '5. Smoke Test',
+ 'admin.addSecurity.user.smokeUser': 'Ambari Smoke Test User',
+ 'admin.addSecurity.user.hdfsUser': 'Ambari HDFS Test User',
+ 'admin.addSecurity.user.hbaseUser': 'Ambari HBase Test User',
+ 'admin.addSecurity.user.httpUser': 'SPNEGO User',
'admin.addSecurity.enable.onClose': 'You are in the process of enabling security on your cluster. ' +
'Are you sure you want to quit? If you quit, ' +
'you may have to re-run the security wizard from the beginning to enable security.',
Modified: incubator/ambari/branches/branch-1.2.5/ambari-web/app/templates/main/admin/security/add/step2.hbs
URL: http://svn.apache.org/viewvc/incubator/ambari/branches/branch-1.2.5/ambari-web/app/templates/main/admin/security/add/step2.hbs?rev=1497645&r1=1497644&r2=1497645&view=diff
==============================================================================
--- incubator/ambari/branches/branch-1.2.5/ambari-web/app/templates/main/admin/security/add/step2.hbs (original)
+++ incubator/ambari/branches/branch-1.2.5/ambari-web/app/templates/main/admin/security/add/step2.hbs Fri Jun 28 04:58:43 2013
@@ -29,5 +29,6 @@
<a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}}
{{action submit target="controller"}}>{{t common.apply}} →</a>
+ <a style="margin-right:5px;" class="btn btn-info pull-right" {{action doDownloadCsv target="controller"}}>{{t admin.security.step2.popup.downloadCSV}}</a>
</div>
</div>
\ No newline at end of file