Repository: ambari
Updated Branches:
  refs/heads/trunk 442b7961c -> 38999bb17


AMBARI-6515 Change authentication call to asynchronous. (atkach)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/38999bb1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/38999bb1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/38999bb1

Branch: refs/heads/trunk
Commit: 38999bb177a2445ed3dd6578550e6d9e1665909c
Parents: 442b796
Author: atkach <atk...@hortonworks.com>
Authored: Wed Jul 16 21:06:06 2014 +0300
Committer: atkach <atk...@hortonworks.com>
Committed: Wed Jul 16 21:06:06 2014 +0300

----------------------------------------------------------------------
 ambari-web/app/router.js           |  25 ++++---
 ambari-web/app/routes/installer.js | 122 ++++++++++++++++----------------
 ambari-web/app/routes/main.js      |  38 +++++-----
 3 files changed, 98 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/38999bb1/ambari-web/app/router.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/router.js b/ambari-web/app/router.js
index ef33669..1a01787 100644
--- a/ambari-web/app/router.js
+++ b/ambari-web/app/router.js
@@ -92,6 +92,8 @@ App.Router = Em.Router.extend({
   }.property('loggedIn'),
 
   getAuthenticated: function () {
+    var dfd = $.Deferred();
+    var self = this;
     var auth = App.db.getAuthenticated();
     var authResp = (auth && auth === true);
     if (authResp) {
@@ -100,11 +102,14 @@ App.Router = Em.Router.extend({
         sender: this,
         success: 'onAuthenticationSuccess',
         error: 'onAuthenticationError'
-      });
+      }).complete(function () {
+          dfd.resolve(self.get('loggedIn'));
+        });
     } else {
       this.set('loggedIn', false);
+      dfd.resolve(false);
     }
-    return this.get('loggedIn');
+    return dfd.promise();
   },
 
   onAuthenticationSuccess: function (data) {
@@ -354,14 +359,16 @@ App.Router = Em.Router.extend({
        *  If the user is already logged in, redirect to where the user was 
previously
        */
       enter: function (router, context) {
-        if (router.getAuthenticated()) {
-          Ember.run.next(function () {
-            console.log(router.getLoginName() + ' already authenticated.  
Redirecting...');
-            router.getSection(function (route) {
-              router.transitionTo(route, context);
+        router.getAuthenticated().done(function (loggedIn) {
+          if (loggedIn) {
+            Ember.run.next(function () {
+              console.log(router.getLoginName() + ' already authenticated.  
Redirecting...');
+              router.getSection(function (route) {
+                router.transitionTo(route, context);
+              });
             });
-          });
-        }
+          }
+        });
       },
 
       connectOutlets: function (router, context) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/38999bb1/ambari-web/app/routes/installer.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/installer.js 
b/ambari-web/app/routes/installer.js
index d4fda3c..ff02fe3 100644
--- a/ambari-web/app/routes/installer.js
+++ b/ambari-web/app/routes/installer.js
@@ -27,69 +27,71 @@ module.exports = Em.Route.extend({
 
     App.clusterStatus.set('wizardControllerName', 
App.router.get('installerController.name'));
 
-    if (router.getAuthenticated()) {
-      // check server/web client versions match
-      
App.router.get('installerController').checkServerClientVersion().done(function 
() {
-
-        var name = 'Cluster Install Wizard';
-        $('title').text('Ambari - ' + name);
-
-        if (App.get('isAdmin')) {
-          router.get('mainController').stopPolling();
-          console.log('In installer with successful authenticated');
-          console.log('current step=' + 
router.get('installerController.currentStep'));
-          Ember.run.next(function () {
-            var installerController = router.get('installerController');
-
-            App.clusterStatus.updateFromServer().complete(function () {
-              var currentClusterStatus = App.clusterStatus.get('value');
-
-              if (currentClusterStatus) {
-                switch (currentClusterStatus.clusterState) {
-                  case 'CLUSTER_NOT_CREATED_1' :
-                    router.transitionTo('step' + 
installerController.get('currentStep'));
-                    break;
-                  case 'CLUSTER_DEPLOY_PREP_2' :
-                    installerController.setCurrentStep('8');
-                    App.db.data = currentClusterStatus.localdb;
-                    router.transitionTo('step' + 
installerController.get('currentStep'));
-                    break;
-                  case 'CLUSTER_INSTALLING_3' :
-                  case 'SERVICE_STARTING_3' :
-                    if (!installerController.get('isStep9')) {
-                      installerController.setCurrentStep('9');
-                    }
-                    router.transitionTo('step' + 
installerController.get('currentStep'));
-                    break;
-                  case 'CLUSTER_INSTALLED_4' :
-                    if (!installerController.get('isStep10')) {
-                      installerController.setCurrentStep('10');
-                    }
-                    App.db.data = currentClusterStatus.localdb;
-                    router.transitionTo('step' + 
installerController.get('currentStep'));
-                    break;
-                  case 'DEFAULT' :
-                  default:
-                    router.transitionTo('main.dashboard.index');
-                    break;
+    router.getAuthenticated().done(function (loggedIn) {
+      if (loggedIn) {
+        // check server/web client versions match
+        
App.router.get('installerController').checkServerClientVersion().done(function 
() {
+
+          var name = 'Cluster Install Wizard';
+          $('title').text('Ambari - ' + name);
+
+          if (App.get('isAdmin')) {
+            router.get('mainController').stopPolling();
+            console.log('In installer with successful authenticated');
+            console.log('current step=' + 
router.get('installerController.currentStep'));
+            Ember.run.next(function () {
+              var installerController = router.get('installerController');
+
+              App.clusterStatus.updateFromServer().complete(function () {
+                var currentClusterStatus = App.clusterStatus.get('value');
+
+                if (currentClusterStatus) {
+                  switch (currentClusterStatus.clusterState) {
+                    case 'CLUSTER_NOT_CREATED_1' :
+                      router.transitionTo('step' + 
installerController.get('currentStep'));
+                      break;
+                    case 'CLUSTER_DEPLOY_PREP_2' :
+                      installerController.setCurrentStep('8');
+                      App.db.data = currentClusterStatus.localdb;
+                      router.transitionTo('step' + 
installerController.get('currentStep'));
+                      break;
+                    case 'CLUSTER_INSTALLING_3' :
+                    case 'SERVICE_STARTING_3' :
+                      if (!installerController.get('isStep9')) {
+                        installerController.setCurrentStep('9');
+                      }
+                      router.transitionTo('step' + 
installerController.get('currentStep'));
+                      break;
+                    case 'CLUSTER_INSTALLED_4' :
+                      if (!installerController.get('isStep10')) {
+                        installerController.setCurrentStep('10');
+                      }
+                      App.db.data = currentClusterStatus.localdb;
+                      router.transitionTo('step' + 
installerController.get('currentStep'));
+                      break;
+                    case 'DEFAULT' :
+                    default:
+                      router.transitionTo('main.dashboard.index');
+                      break;
+                  }
                 }
-              }
+              });
             });
-          });
-        } else {
-          Em.run.next(function () {
-            App.router.transitionTo('main.services');
-          });
-        }
+          } else {
+            Em.run.next(function () {
+              App.router.transitionTo('main.services');
+            });
+          }
 
-      });
-    } else {
-      console.log('In installer but its not authenticated');
-      console.log('value of authenticated is: ' + router.getAuthenticated());
-      Ember.run.next(function () {
-        router.transitionTo('login');
-      });
-    }
+        });
+      } else {
+        console.log('In installer but its not authenticated');
+        console.log('value of authenticated is: ' + router.getAuthenticated());
+        Ember.run.next(function () {
+          router.transitionTo('login');
+        });
+      }
+    });
   },
 
   routePath: function (router, event) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/38999bb1/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 763d82a..12f4981 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -24,26 +24,28 @@ module.exports = Em.Route.extend({
   enter: function (router) {
     App.db.updateStorage();
     console.log('in /main:enter');
-    if (router.getAuthenticated()) {
-      
App.router.get('mainAdminAccessController').loadShowJobsForUsers().done(function
 () {
-        
App.router.get('clusterController').loadClusterName(false).done(function () {
-          if (App.get('testMode')) {
-            router.get('mainController').initialize();
-          } else {
-            
App.router.get('mainController').checkServerClientVersion().done(function () {
-              
App.router.get('clusterController').loadClientServerClockDistance().done(function
 () {
-                router.get('mainController').initialize();
+    router.getAuthenticated().done(function (loggedIn) {
+      if (loggedIn) {
+        
App.router.get('mainAdminAccessController').loadShowJobsForUsers().done(function
 () {
+          
App.router.get('clusterController').loadClusterName(false).done(function () {
+            if (App.get('testMode')) {
+              router.get('mainController').initialize();
+            } else {
+              
App.router.get('mainController').checkServerClientVersion().done(function () {
+                
App.router.get('clusterController').loadClientServerClockDistance().done(function
 () {
+                  router.get('mainController').initialize();
+                });
               });
-            });
-          }
+            }
+          });
         });
-      });
-      // TODO: redirect to last known state
-    } else {
-      Em.run.next(function () {
-        router.transitionTo('login');
-      });
-    }
+        // TODO: redirect to last known state
+      } else {
+        Em.run.next(function () {
+          router.transitionTo('login');
+        });
+      }
+    });
   },
   /*
    routePath: function(router,event) {

Reply via email to