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/05/03 15:31:26 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 dabd25d  AMBARI-23690 The UI should ignore Kerberos identity references when setting the user-supplied Kerberos descriptor
dabd25d is described below

commit dabd25d68f576c3f7d7d8a668a390a7f3f330deb
Author: Andrii Tkach <at...@apache.org>
AuthorDate: Wed May 2 15:41:00 2018 +0300

    AMBARI-23690 The UI should ignore Kerberos identity references when setting the user-supplied Kerberos descriptor
---
 .../main/admin/kerberos/step5_controller.js        |  39 +-------
 .../main/admin/kerberos/step7_controller.js        |  37 +-------
 .../main/admin/kerberos/wizard_controller.js       |  23 -----
 .../app/controllers/wizard/step8_controller.js     |   2 +-
 ambari-web/app/mixins/wizard/addSecurityConfigs.js |  56 +++++++++++
 ambari-web/app/routes/add_kerberos_routes.js       |   2 +-
 .../kerberos/kerberos_wizard_controler_test.js     |  51 ----------
 .../main/admin/kerberos/step5_controller_test.js   |  38 --------
 .../main/admin/kerberos/step7_controller_test.js   |  38 --------
 ambari-web/test/controllers/wizard/step8_test.js   |   2 +
 .../test/mixins/wizard/addSeccurityConfigs_test.js | 105 +++++++++++++++++++++
 11 files changed, 170 insertions(+), 223 deletions(-)

diff --git a/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
index ac36c6c..7d83c44 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
@@ -15,10 +15,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+var App = require('app');
 var stringUtils = require('utils/string_utils');
 var fileUtils = require('utils/file_utils');
 
-App.KerberosWizardStep5Controller = App.KerberosProgressPageController.extend({
+App.KerberosWizardStep5Controller = App.KerberosProgressPageController.extend(App.AddSecurityConfigs, {
   name: 'kerberosWizardStep5Controller',
 
   /**
@@ -92,43 +93,7 @@ App.KerberosWizardStep5Controller = App.KerberosProgressPageController.extend({
     return array;
   },
 
-  /**
-   * Send request to post kerberos descriptor
-   * @param kerberosDescriptor
-   * @returns {$.ajax|*}
-   */
-  postKerberosDescriptor: function (kerberosDescriptor) {
-    return App.ajax.send({
-      name: 'admin.kerberos.cluster.artifact.create',
-      sender: this,
-      data: {
-        artifactName: 'kerberos_descriptor',
-        data: {
-          artifact_data: kerberosDescriptor
-        }
-      }
-    });
-  },
 
-  /**
-   * Send request to update kerberos descriptor
-   * @param kerberosDescriptor
-   * @returns {$.ajax|*}
-   */
-  putKerberosDescriptor: function (kerberosDescriptor) {
-    return App.ajax.send({
-      name: 'admin.kerberos.cluster.artifact.update',
-      sender: this,
-      data: {
-        artifactName: 'kerberos_descriptor',
-        data: {
-          artifact_data: kerberosDescriptor
-        }
-      },
-      success: 'unkerberizeCluster',
-      error: 'unkerberizeCluster'
-    });
-  },
 
   /**
    * Send request to unkerberisze cluster
diff --git a/ambari-web/app/controllers/main/admin/kerberos/step7_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step7_controller.js
index 50e5ec3..21d7653 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/step7_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/step7_controller.js
@@ -16,7 +16,9 @@
  * limitations under the License.
  */
 
-App.KerberosWizardStep7Controller = App.KerberosProgressPageController.extend({
+var App = require('app');
+
+App.KerberosWizardStep7Controller = App.KerberosProgressPageController.extend(App.AddSecurityConfigs, {
   name: 'kerberosWizardStep7Controller',
   clusterDeployState: 'KERBEROS_DEPLOY',
   isSingleRequestPage: true,
@@ -77,39 +79,6 @@ App.KerberosWizardStep7Controller = App.KerberosProgressPageController.extend({
     App.router.transitionTo('step7');
   },
 
-  postKerberosDescriptor: function (kerberosDescriptor) {
-    return App.ajax.send({
-      name: 'admin.kerberos.cluster.artifact.create',
-      sender: this,
-      data: {
-        artifactName: 'kerberos_descriptor',
-        data: {
-          artifact_data: kerberosDescriptor
-        }
-      }
-    });
-  },
-
-  /**
-   * Send request to update kerberos descriptor
-   * @param kerberosDescriptor
-   * @returns {$.ajax|*}
-   */
-  putKerberosDescriptor: function (kerberosDescriptor) {
-    return App.ajax.send({
-      name: 'admin.kerberos.cluster.artifact.update',
-      sender: this,
-      data: {
-        artifactName: 'kerberos_descriptor',
-        data: {
-          artifact_data: kerberosDescriptor
-        }
-      },
-      success: 'unkerberizeCluster',
-      error: 'unkerberizeCluster'
-    });
-  },
-
   retry: function () {
     this.set('showRetry', false);
     this.removeObserver('tasks.@each.status', this, 'onTaskStatusChange');
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 c5a8cc1..cb5beea 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js
@@ -395,28 +395,5 @@ 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/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index 261914d..afba6bd 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -888,7 +888,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
       data: {
         artifactName: 'kerberos_descriptor',
         data: {
-          artifact_data: kerberosDescriptor
+          artifact_data: this.removeIdentityReferences(kerberosDescriptor)
         }
       }
     };
diff --git a/ambari-web/app/mixins/wizard/addSecurityConfigs.js b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
index e6a6adb..54cdb82 100644
--- a/ambari-web/app/mixins/wizard/addSecurityConfigs.js
+++ b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
@@ -853,6 +853,62 @@ App.AddSecurityConfigs = Em.Mixin.create({
         properties: properties
       };
     });
+  },
+
+  postKerberosDescriptor: function (kerberosDescriptor) {
+    return App.ajax.send({
+      name: 'admin.kerberos.cluster.artifact.create',
+      sender: this,
+      data: {
+        artifactName: 'kerberos_descriptor',
+        data: {
+          artifact_data: this.removeIdentityReferences(kerberosDescriptor)
+        }
+      }
+    });
+  },
+
+  /**
+   * Send request to update kerberos descriptor
+   * @param kerberosDescriptor
+   * @returns {$.ajax|*}
+   */
+  putKerberosDescriptor: function (kerberosDescriptor) {
+    return App.ajax.send({
+      name: 'admin.kerberos.cluster.artifact.update',
+      sender: this,
+      data: {
+        artifactName: 'kerberos_descriptor',
+        data: {
+          artifact_data: this.removeIdentityReferences(kerberosDescriptor)
+        }
+      },
+      success: 'unkerberizeCluster',
+      error: 'unkerberizeCluster'
+    });
+  },
+
+  /**
+   * 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 a216c97..02f09a1 100644
--- a/ambari-web/app/routes/add_kerberos_routes.js
+++ b/ambari-web/app/routes/add_kerberos_routes.js
@@ -239,7 +239,7 @@ module.exports = App.WizardRoute.extend({
     nextTransition: function (router) {
       var wizardCtrl = router.get('kerberosWizardController');
       var step5Controller = router.get('kerberosWizardStep5Controller');
-      var kerberosDescriptor = wizardCtrl.removeIdentityReferences(wizardCtrl.get('kerberosDescriptorConfigs'));
+      var kerberosDescriptor = wizardCtrl.get('kerberosDescriptorConfigs');
       wizardCtrl.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
       step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
         if (result === 'error' && data.status === 409) {
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 a31520f..482626e 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
@@ -528,55 +528,4 @@ describe('App.KerberosWizardController', function() {
       expect(mock.onResolve.calledOnce).to.be.true;
     });
   });
-
-  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'
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      });
-    });
-  });
 });
diff --git a/ambari-web/test/controllers/main/admin/kerberos/step5_controller_test.js b/ambari-web/test/controllers/main/admin/kerberos/step5_controller_test.js
index 8718802..4744f1b 100644
--- a/ambari-web/test/controllers/main/admin/kerberos/step5_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos/step5_controller_test.js
@@ -98,44 +98,6 @@ describe('App.KerberosWizardStep5Controller', function() {
     });
   });
 
-  describe("#postKerberosDescriptor()", function () {
-
-    it("App.ajax.send should be called", function() {
-      c.postKerberosDescriptor('kerberosDescriptor');
-      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.create');
-      expect(args[0]).to.be.eql({
-        name: 'admin.kerberos.cluster.artifact.create',
-        sender: c,
-        data: {
-          artifactName: 'kerberos_descriptor',
-          data: {
-            artifact_data: 'kerberosDescriptor'
-          }
-        }
-      });
-    });
-  });
-
-  describe("#putKerberosDescriptor()", function () {
-
-    it("App.ajax.send should be called", function() {
-      c.putKerberosDescriptor('kerberosDescriptor');
-      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.update');
-      expect(args[0]).to.be.eql({
-        name: 'admin.kerberos.cluster.artifact.update',
-        sender: c,
-        data: {
-          artifactName: 'kerberos_descriptor',
-          data: {
-            artifact_data: 'kerberosDescriptor'
-          }
-        },
-        success: 'unkerberizeCluster',
-        error: 'unkerberizeCluster'
-      });
-    });
-  });
-
   describe("#unkerberizeCluster()", function () {
 
     it("App.ajax.send should be called", function() {
diff --git a/ambari-web/test/controllers/main/admin/kerberos/step7_controller_test.js b/ambari-web/test/controllers/main/admin/kerberos/step7_controller_test.js
index de4dcb1..1506c4a 100644
--- a/ambari-web/test/controllers/main/admin/kerberos/step7_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos/step7_controller_test.js
@@ -112,44 +112,6 @@ describe('App.KerberosWizardStep7Controller', function () {
     });
   });
 
-  describe("#postKerberosDescriptor()", function () {
-
-    it("App.ajax.send should be called", function () {
-      controller.postKerberosDescriptor(true);
-      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.create');
-      expect(args[0]).to.be.eql({
-        name: 'admin.kerberos.cluster.artifact.create',
-        sender: controller,
-        data: {
-          artifactName: 'kerberos_descriptor',
-          data: {
-            artifact_data: true
-          }
-        }
-      });
-    });
-  });
-
-  describe("#putKerberosDescriptor()", function () {
-
-    it("App.ajax.send should be called", function () {
-      controller.putKerberosDescriptor(true);
-      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.update');
-      expect(args[0]).to.be.eql({
-        name: 'admin.kerberos.cluster.artifact.update',
-        sender: controller,
-        data: {
-          artifactName: 'kerberos_descriptor',
-          data: {
-            artifact_data: true
-          }
-        },
-        success: 'unkerberizeCluster',
-        error: 'unkerberizeCluster'
-      });
-    });
-  });
-
   describe("#retry()", function () {
 
     beforeEach(function() {
diff --git a/ambari-web/test/controllers/wizard/step8_test.js b/ambari-web/test/controllers/wizard/step8_test.js
index 683ab6b..790b807 100644
--- a/ambari-web/test/controllers/wizard/step8_test.js
+++ b/ambari-web/test/controllers/wizard/step8_test.js
@@ -2320,11 +2320,13 @@ describe('App.WizardStep8Controller', function () {
           return App.db.get(this.get('dbNamespace'), key);
         }
       }));
+      sinon.stub(installerStep8Controller, 'removeIdentityReferences').returns(1234);
     });
 
     afterEach(function () {
       installerStep8Controller.addRequestToAjaxQueue.restore();
       installerStep8Controller.get.restore();
+      installerStep8Controller.removeIdentityReferences.restore();
     });
 
     it('should send request instantly', function () {
diff --git a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
index 0ed261a..9cbdf08 100644
--- a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
+++ b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
@@ -19,6 +19,7 @@
 var App = require('app');
 var stackDescriptorData = require('test/mock_data_setup/stack_descriptors');
 var stackDescriptor = stackDescriptorData.KerberosDescriptor.kerberos_descriptor;
+var testHelpers = require('test/helpers');
 
 require('mixins/wizard/addSecurityConfigs');
 
@@ -325,4 +326,108 @@ describe('App.AddSecurityConfigs', 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'
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      });
+    });
+  });
+
+  describe("#postKerberosDescriptor()", function () {
+    beforeEach(function() {
+      sinon.stub(controller, 'removeIdentityReferences').returns('kerberosDescriptor');
+    });
+
+    afterEach(function() {
+      controller.removeIdentityReferences.restore();
+    });
+
+    it("App.ajax.send should be called", function() {
+      controller.postKerberosDescriptor('kerberosDescriptor');
+      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.create');
+      expect(args[0]).to.be.eql({
+        name: 'admin.kerberos.cluster.artifact.create',
+        sender: controller,
+        data: {
+          artifactName: 'kerberos_descriptor',
+          data: {
+            artifact_data: 'kerberosDescriptor'
+          }
+        }
+      });
+    });
+  });
+
+  describe("#putKerberosDescriptor()", function () {
+
+    beforeEach(function() {
+      sinon.stub(controller, 'removeIdentityReferences').returns('kerberosDescriptor');
+    });
+
+    afterEach(function() {
+      controller.removeIdentityReferences.restore();
+    });
+
+    it("App.ajax.send should be called", function() {
+      controller.putKerberosDescriptor('kerberosDescriptor');
+      var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.update');
+      expect(args[0]).to.be.eql({
+        name: 'admin.kerberos.cluster.artifact.update',
+        sender: controller,
+        data: {
+          artifactName: 'kerberos_descriptor',
+          data: {
+            artifact_data: 'kerberosDescriptor'
+          }
+        },
+        success: 'unkerberizeCluster',
+        error: 'unkerberizeCluster'
+      });
+    });
+  });
+
 });

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