Browse Source

AMBARI-8726. Kerberos Wizard: API to kerberize cluster returns successful but without any request ID to poll for progress. (jaimin)

Jaimin Jetly 10 years ago
parent
commit
15cea53e25

+ 17 - 7
ambari-web/app/controllers/main/admin/kerberos/step5_controller.js

@@ -20,20 +20,30 @@ App.KerberosWizardStep5Controller = App.KerberosProgressPageController.extend({
   name: 'kerberosWizardStep5Controller',
   clusterDeployState: 'KERBEROS_DEPLOY',
   isSingleRequestPage: true,
-  request: function() {
-    var self = this;
-    return {
+  request: {},
+
+  setRequest: function (data, kerberosDescriptor) {
+    this.set('request', {
       name: 'KERBERIZE_CLUSTER',
       ajaxName: 'admin.kerberize.cluster',
       ajaxData: {
         data: {
-          kerberos_descriptor: self.get('content.kerberosDescriptorConfigs')
+          Clusters: {
+            desired_config: data
+          },
+          kerberos_descriptor: kerberosDescriptor
         }
       }
-    }
-  }.property('content.kerberosDescriptorConfigs'),
+    });
+  },
 
   contextForPollingRequest: Em.I18n.t('requestInfo.kerberizeCluster'),
 
-  commands: []
+  commands: [],
+
+  retry: function () {
+    this.set('showRetry', false);
+    this.get('tasks').setEach('status','PENDING');
+    App.router.send('retry');
+  }
 });

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

@@ -66,6 +66,35 @@ App.KerberosWizardController = App.WizardController.extend({
     return jQuery.extend({}, this.get('clusterStatusTemplate'), {name: App.router.getClusterName()});
   },
 
+  /**
+   *  Gets the
+   * @returns {*} jquery promise
+   */
+  getClusterEnvData: function () {
+    var dfd = $.Deferred();
+    var self = this;
+    var siteName = 'cluster-env';
+    var tags = [{siteName: siteName}];
+    App.router.get('configurationController').getConfigsByTags(tags).done(function (data) {
+      var properties = self.updateClusterEnvData(data[0].properties);
+      var clusterConfig = {"type": siteName, "tag": 'version' + (new Date).getTime(), "properties": properties};
+      var clusterConfigData = {
+        Clusters: {
+          desired_config: clusterConfig
+        }
+      };
+      dfd.resolve(clusterConfigData);
+    });
+    return dfd;
+  },
+
+  updateClusterEnvData: function (configs) {
+    var kerberosDescriptor = this.get('content.kerberosDescriptorConfigs');
+    configs['security_enabled'] = true;
+    configs['kerberos_domain'] = kerberosDescriptor.properties.realm;
+    return configs;
+  },
+
   /**
    * save status of the cluster.
    * @param clusterStatus object with status,requestId fields.

+ 17 - 3
ambari-web/app/routes/add_kerberos_routes.js

@@ -196,9 +196,24 @@ module.exports = App.WizardRoute.extend({
     connectOutlets: function (router) {
       console.log('in kerberosWizardController.step5:connectOutlets');
       var controller = router.get('kerberosWizardController');
+      var stepController = router.get('kerberosWizardStep5Controller');
       controller.dataLoading().done(function () {
-        controller.loadAllPriorSteps();
-        controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
+        controller.getClusterEnvData().done(function(data){
+          controller.loadAllPriorSteps();
+          var kerberosDescriptor = controller.get('content.kerberosDescriptorConfigs');
+          stepController.setRequest(data, kerberosDescriptor);
+          controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
+        });
+      });
+    },
+    retry: function() {
+      var router = App.router;
+      var controller = router.get('kerberosWizardController');
+      controller.getClusterEnvData().done(function(data) {
+        var stepController = router.get('kerberosWizardStep5Controller');
+        var kerberosDescriptor = controller.get('content.kerberosDescriptorConfigs');
+        stepController.setRequest(data, kerberosDescriptor);
+        stepController.loadStep();
       });
     },
     unroutePath: function () {
@@ -242,5 +257,4 @@ module.exports = App.WizardRoute.extend({
 
     }
   })
-
 });