Jelajahi Sumber

AMBARI-9722. Ability to adjust hadoop.security.auth_to_local property on Configure Identities page (onechiporenko)

Oleg Nechiporenko 10 tahun lalu
induk
melakukan
1103f0cec3

+ 3 - 0
ambari-web/app/controllers/main/admin/kerberos.js

@@ -270,6 +270,9 @@ App.MainAdminKerberosController = App.KerberosWizardStep4Controller.extend({
             property.set('index', siteProperty.index);
           }
         }
+        if (siteProperty.displayType) {
+          property.set('displayType', siteProperty.displayType);
+        }
       }
     });
     configProperties.setEach('isEditable', false);

+ 3 - 0
ambari-web/app/controllers/main/admin/kerberos/step4_controller.js

@@ -180,6 +180,9 @@ App.KerberosWizardStep4Controller = App.WizardStep7Controller.extend(App.AddSecu
             property.set('index', siteProperty.index);
           }
         }
+        if (siteProperty.displayType) {
+          property.set('displayType', siteProperty.displayType);
+        }
       }
     });
 

+ 17 - 3
ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js

@@ -50,7 +50,7 @@ describe('App.KerberosWizardStep4Controller', function() {
   });
 
   describe('#prepareConfigProperties', function() {
-    
+
     before(function() {
       var controller = App.KerberosWizardStep4Controller.create({
         wizardController: {
@@ -64,11 +64,18 @@ describe('App.KerberosWizardStep4Controller', function() {
       sinon.stub(App.Service, 'find').returns(Em.A([
         { serviceName: 'HDFS' }
       ]));
+      sinon.stub(App.config, 'get').withArgs('preDefinedSiteProperties').returns([
+        {
+          name: 'hadoop.security.auth_to_local',
+          displayType: 'multiLine'
+        }
+      ]);
       this.result = controller.prepareConfigProperties(properties);
     });
 
     after(function() {
       App.Service.find.restore();
+      App.config.get.restore();
     });
 
     var properties = Em.A([
@@ -77,7 +84,8 @@ describe('App.KerberosWizardStep4Controller', function() {
       Em.Object.create({ name: 'hdfs_keytab', value: '', serviceName: 'HDFS', identityType: 'user', observesValueFrom: 'spnego_keytab' }),
       Em.Object.create({ name: 'falcon_keytab', value: 'falcon_keytab_value', serviceName: 'FALCON' }),
       Em.Object.create({ name: 'mapreduce_keytab', value: 'mapreduce_keytab_value', serviceName: 'MAPREDUCE2' }),
-      Em.Object.create({ name: 'hdfs_principal', value: 'hdfs_principal_value', identityType: 'user', serviceName: 'HDFS' })
+      Em.Object.create({ name: 'hdfs_principal', value: 'hdfs_principal_value', identityType: 'user', serviceName: 'HDFS' }),
+      Em.Object.create({ name: 'hadoop.security.auth_to_local', serviceName: 'HDFS' })
     ]);
     
     var propertyValidationCases = [
@@ -98,10 +106,16 @@ describe('App.KerberosWizardStep4Controller', function() {
       {
         property: 'hdfs_keytab',
         e: [
-          {key: 'category', value: 'Ambari Principals'},
+          { key: 'category', value: 'Ambari Principals' },
           { key: 'value', value: 'spnego_keytab_value' },
           { key: 'observesValueFrom', value: 'spnego_keytab' }
         ]
+      },
+      {
+        property: 'hadoop.security.auth_to_local',
+        e: [
+          { key: 'displayType', value: 'multiLine' }
+        ]
       }
     ];
     

+ 16 - 0
ambari-web/test/controllers/main/admin/kerberos_test.js

@@ -54,6 +54,22 @@ describe('App.MainAdminKerberosController', function() {
         expect(prop.get('isEditable')).to.be.false;
       });
     });
+
+    it('should take displayType from predefinedSiteProperties', function () {
+      sinon.stub(App.config, 'get').withArgs('preDefinedSiteProperties').returns([
+        {
+          name: 'hadoop.security.auth_to_local',
+          displayType: 'multiLine'
+        }
+      ]);
+      expect(controller.prepareConfigProperties([
+        Em.Object.create({
+          name: 'hadoop.security.auth_to_local',
+          serviceName: 'HDFS'
+        })
+      ])[0].get('displayType')).to.equal('multiLine');
+      App.config.get.restore();
+    });
   });
 
   describe("#runSecurityCheckSuccess()", function () {