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 2018/04/27 11:03:07 UTC

[ambari] branch trunk updated: AMBARI-23690 The UI should ignore Kerberos identity references when setting the user-supplied Kerberos descriptor

This is an automated email from the ASF dual-hosted git repository.

atkach pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new a890b8c  AMBARI-23690 The UI should ignore Kerberos identity references when setting the user-supplied Kerberos descriptor
a890b8c is described below

commit a890b8ce28c736410225349c25ec8f613929b6dc
Author: Andrii Tkach <at...@apache.org>
AuthorDate: Thu Apr 26 15:17:52 2018 +0300

    AMBARI-23690 The UI should ignore Kerberos identity references when setting the user-supplied Kerberos descriptor
---
 .../main/admin/kerberos/wizard_controller.js       | 23 ++++++++++
 ambari-web/app/routes/add_kerberos_routes.js       |  6 +--
 .../kerberos/kerberos_wizard_controler_test.js     | 53 ++++++++++++++++++++--
 3 files changed, 76 insertions(+), 6 deletions(-)

diff --git a/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js b/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js
index cb5beea..c5a8cc1 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js
@@ -395,5 +395,28 @@ App.KerberosWizardController = App.WizardController.extend(App.InstallComponent,
     });
 
     return dfd.promise();
+  },
+
+  /**
+   * The UI should ignore Kerberos identity references
+   * when setting the user-supplied Kerberos descriptor
+   * @param {object} kerberosDescriptor
+   * @returns {object}
+   */
+  removeIdentityReferences: function(kerberosDescriptor) {
+    const notReference = (identity) => Em.isNone(identity.reference);
+    kerberosDescriptor.services.forEach((service) => {
+      if (service.identities) {
+        service.identities = service.identities.filter(notReference);
+      }
+      if (service.components) {
+        service.components.forEach((component) => {
+          if (component.identities) {
+            component.identities = component.identities.filter(notReference);
+          }
+        });
+      }
+    });
+    return kerberosDescriptor;
   }
 });
diff --git a/ambari-web/app/routes/add_kerberos_routes.js b/ambari-web/app/routes/add_kerberos_routes.js
index a13b5ae..a216c97 100644
--- a/ambari-web/app/routes/add_kerberos_routes.js
+++ b/ambari-web/app/routes/add_kerberos_routes.js
@@ -237,10 +237,10 @@ module.exports = App.WizardRoute.extend({
       }
     },
     nextTransition: function (router) {
-      var kerberosWizardController = router.get('kerberosWizardController');
+      var wizardCtrl = router.get('kerberosWizardController');
       var step5Controller = router.get('kerberosWizardStep5Controller');
-      var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
-      kerberosWizardController.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
+      var kerberosDescriptor = wizardCtrl.removeIdentityReferences(wizardCtrl.get('kerberosDescriptorConfigs'));
+      wizardCtrl.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
       step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
         if (result === 'error' && data.status === 409) {
           step5Controller.putKerberosDescriptor(kerberosDescriptor);
diff --git a/ambari-web/test/controllers/main/admin/kerberos/kerberos_wizard_controler_test.js b/ambari-web/test/controllers/main/admin/kerberos/kerberos_wizard_controler_test.js
index c158a89..a31520f 100644
--- a/ambari-web/test/controllers/main/admin/kerberos/kerberos_wizard_controler_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos/kerberos_wizard_controler_test.js
@@ -529,7 +529,54 @@ describe('App.KerberosWizardController', function() {
     });
   });
 
-
+  describe('#removeIdentityReferences', function() {
+    it('should return filtered descriptor', function() {
+      var descriptor = {
+        services: [
+          {
+            identities: [
+              {
+                reference: 'bar'
+              },
+              {
+                name: 'foo'
+              }
+            ],
+            components: [
+              {
+                identities: [
+                  {
+                    reference: 'bar'
+                  },
+                  {
+                    name: 'foo'
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      };
+      expect(controller.removeIdentityReferences(descriptor)).to.be.eql({
+        services: [
+          {
+            identities: [
+              {
+                name: 'foo'
+              }
+            ],
+            components: [
+              {
+                identities: [
+                  {
+                    name: 'foo'
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      });
+    });
+  });
 });
-
-

-- 
To stop receiving notification emails like this one, please contact
atkach@apache.org.