You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2017/04/11 18:29:26 UTC

[38/50] [abbrv] ambari git commit: AMBARI-20724 Merge calls to server which fetch ambari properties. (atkach)

AMBARI-20724 Merge calls to server which fetch ambari properties. (atkach)


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

Branch: refs/heads/ambari-rest-api-explorer
Commit: 735cbda86216204e6a8db2da7b7bae46c847931d
Parents: bab55aa
Author: Andrii Tkach <at...@apache.org>
Authored: Mon Apr 10 17:52:43 2017 +0300
Committer: Andrii Tkach <at...@apache.org>
Committed: Mon Apr 10 17:52:43 2017 +0300

----------------------------------------------------------------------
 .../controllers/global/cluster_controller.js    | 31 ++-------
 ambari-web/app/controllers/main.js              | 28 +-------
 ambari-web/app/routes/main.js                   | 32 ++++-----
 .../global/cluster_controller_test.js           | 73 ++++++--------------
 ambari-web/test/controllers/main_test.js        | 66 ------------------
 5 files changed, 45 insertions(+), 185 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/735cbda8/ambari-web/app/controllers/global/cluster_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/cluster_controller.js b/ambari-web/app/controllers/global/cluster_controller.js
index b24219e..29c979e 100644
--- a/ambari-web/app/controllers/global/cluster_controller.js
+++ b/ambari-web/app/controllers/global/cluster_controller.js
@@ -142,30 +142,7 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
     }
   },
 
-  /**
-   * load current server clock in milli-seconds
-   */
-  loadClientServerClockDistance: function () {
-    var dfd = $.Deferred();
-    this.getServerClock().done(function () {
-      dfd.resolve();
-    });
-    return dfd.promise();
-  },
-
-  getServerClock: function () {
-    return App.ajax.send({
-      name: 'ambari.service',
-      sender: this,
-      data: {
-        fields: '?fields=RootServiceComponents/server_clock'
-      },
-      success: 'getServerClockSuccessCallback',
-      error: 'getServerClockErrorCallback'
-    });
-  },
-
-  getServerClockSuccessCallback: function (data) {
+  setServerClock: function (data) {
     var clientClock = new Date().getTime();
     var serverClock = (data.RootServiceComponents.server_clock).toString();
     serverClock = serverClock.length < 13 ? serverClock + '000' : serverClock;
@@ -185,7 +162,6 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
   loadClusterData: function () {
     this.loadAuthorizations();
     this.getAllHostNames();
-    this.loadAmbariProperties();
 
     if (!App.get('clusterName')) {
       return;
@@ -441,10 +417,13 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
   },
 
   loadAmbariPropertiesSuccess: function (data) {
+    var mainController = App.router.get('mainController');
     this.set('ambariProperties', data.RootServiceComponents.properties);
     // Absence of 'jdk.name' and 'jce.name' properties says that ambari configured with custom jdk.
     this.set('isCustomJDK', App.isEmptyObject(App.permit(data.RootServiceComponents.properties, ['jdk.name', 'jce.name'])));
-    App.router.get('mainController').monitorInactivity();
+    this.setServerClock(data);
+    mainController.setAmbariServerVersion.call(mainController, data);
+    mainController.monitorInactivity();
   },
 
   loadAmbariPropertiesError: Em.K,

http://git-wip-us.apache.org/repos/asf/ambari/blob/735cbda8/ambari-web/app/controllers/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main.js b/ambari-web/app/controllers/main.js
index 798115f..499df74 100644
--- a/ambari-web/app/controllers/main.js
+++ b/ambari-web/app/controllers/main.js
@@ -123,42 +123,18 @@ App.MainController = Em.Controller.extend({
     );
   }.observes("App.router.location.lastSetURL", "App.clusterStatus.isInstalled"),
 
-  /**
-   * check server version and web client version
-   */
-  checkServerClientVersion: function () {
-    var dfd = $.Deferred();
-    var self = this;
-    self.getServerVersion().done(function () {
-      dfd.resolve();
-    });
-    return dfd.promise();
-  },
-  getServerVersion: function(){
-    return App.ajax.send({
-      name: 'ambari.service',
-      sender: this,
-      data: {
-        fields: '?fields=RootServiceComponents/component_version,RootServiceComponents/properties/server.os_family&minimal_response=true'
-      },
-      success: 'getServerVersionSuccessCallback',
-      error: 'getServerVersionErrorCallback'
-    });
-  },
-  getServerVersionSuccessCallback: function (data) {
+  setAmbariServerVersion: function (data) {
     var clientVersion = App.get('version');
     var serverVersion = (data.RootServiceComponents.component_version).toString();
     this.set('ambariServerVersion', serverVersion);
     if (clientVersion) {
       this.set('versionConflictAlertBody', Em.I18n.t('app.versionMismatchAlert.body').format(serverVersion, clientVersion));
-      this.set('isServerClientVersionMismatch', clientVersion != serverVersion);
+      this.set('isServerClientVersionMismatch', clientVersion !== serverVersion);
     } else {
       this.set('isServerClientVersionMismatch', false);
     }
     App.set('isManagedMySQLForHiveEnabled', App.config.isManagedMySQLForHiveAllowed(data.RootServiceComponents.properties['server.os_family']));
   },
-  getServerVersionErrorCallback: function () {
-  },
 
   monitorInactivity: function() {
     var timeout = Number(App.router.get('clusterController.ambariProperties')['user.inactivity.timeout.default']);

http://git-wip-us.apache.org/repos/asf/ambari/blob/735cbda8/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 88776b3..0a2375e 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -30,31 +30,31 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
     App.db.updateStorage();
     var self = this;
     var location = router.location.location.hash;
+    var clusterController = App.router.get('clusterController');
+
     router.getAuthenticated().done(function (loggedIn) {
       if (loggedIn) {
         var applicationController = App.router.get('applicationController');
         App.router.get('experimentalController').loadSupports().complete(function () {
           applicationController.startKeepAlivePoller();
-          App.router.get('mainController').checkServerClientVersion().done(function () {
+          clusterController.loadAmbariProperties().complete(function () {
             App.router.get('mainViewsController').loadAmbariViews();
-            App.router.get('clusterController').loadClusterName(false).done(function () {
+            clusterController.loadClusterName(false).done(function () {
               if (App.get('testMode')) {
                 router.get('mainController').initialize();
               } else {
                 if (router.get('clusterInstallCompleted')) {
-                  App.router.get('clusterController').loadClientServerClockDistance().done(function () {
-                    if (!App.get('isOnlyViewUser')) {
-                      App.router.get('clusterController').checkDetailedRepoVersion().done(function () {
-                        router.get('mainController').initialize();
-                      });
-                    } else {
-                      // Don't transit to Views when user already on View page
-                      if (App.router.currentState.name !== 'viewDetails') {
-                        App.router.transitionTo('main.views.index');
-                      }
-                      App.router.get('clusterController').set('isLoaded', true); // hide loading bar
+                  if (!App.get('isOnlyViewUser')) {
+                    clusterController.checkDetailedRepoVersion().done(function () {
+                      router.get('mainController').initialize();
+                    });
+                  } else {
+                    // Don't transit to Views when user already on View page
+                    if (App.router.currentState.name !== 'viewDetails') {
+                      App.router.transitionTo('main.views.index');
                     }
-                  });
+                    clusterController.set('isLoaded', true); // hide loading bar
+                  }
                 }
                 else {
                   Em.run.next(function () {
@@ -65,13 +65,13 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
                         if (App.isAuthorized('AMBARI.ADD_DELETE_CLUSTERS')) {
                           self.redirectToInstaller(router, currentClusterStatus, false);
                         } else {
-                          App.router.get('clusterController').set('isLoaded', true);
+                          clusterController.set('isLoaded', true);
                           Em.run.next(function () {
                             App.router.transitionTo('main.views.index');
                           });
                         }
                       } else {
-                        App.router.get('clusterController').set('isLoaded', true);
+                        clusterController.set('isLoaded', true);
                       }
                     });
                   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/735cbda8/ambari-web/test/controllers/global/cluster_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/global/cluster_controller_test.js b/ambari-web/test/controllers/global/cluster_controller_test.js
index e7b71f9..170ed78 100644
--- a/ambari-web/test/controllers/global/cluster_controller_test.js
+++ b/ambari-web/test/controllers/global/cluster_controller_test.js
@@ -134,7 +134,7 @@ describe('App.clusterController', function () {
     });
   });
 
-  describe('#getServerClockSuccessCallback()', function () {
+  describe('#setServerClock()', function () {
     var testCases = [
       {
         title: 'if server clock is 1 then currentServerTime should be 1000',
@@ -178,7 +178,7 @@ describe('App.clusterController', function () {
 
     testCases.forEach(function (test) {
       it(test.title, function () {
-        controller.getServerClockSuccessCallback(test.data);
+        controller.setServerClock(test.data);
         expect(App.get('currentServerTime')).to.equal(test.result);
         App.set('clockDistance', clockDistance);
         App.set('currentServerTime', currentServerTime);
@@ -572,41 +572,6 @@ describe('App.clusterController', function () {
     });
   });
 
-  describe('#loadClientServerClockDistance()', function() {
-
-    beforeEach(function() {
-      sinon.stub(controller, 'getServerClock').returns({
-        done: Em.clb
-      });
-    });
-
-    afterEach(function() {
-      controller.getServerClock.restore();
-    });
-
-    it('getServerClock should be called', function() {
-      expect(controller.loadClientServerClockDistance()).to.be.an.object;
-      expect(controller.getServerClock).to.be.calledOnce;
-    });
-  });
-
-  describe('#getServerClock()', function() {
-
-    it('App.ajax.send should be called', function() {
-      controller.getServerClock();
-      var args = testHelpers.findAjaxRequest('name', 'ambari.service');
-      expect(args[0]).to.eql({
-        name: 'ambari.service',
-        sender: controller,
-        data: {
-          fields: '?fields=RootServiceComponents/server_clock'
-        },
-        success: 'getServerClockSuccessCallback',
-        error: 'getServerClockErrorCallback'
-      });
-    });
-  });
-
   describe('#isRunningState()', function() {
     var testCases = [
       {
@@ -738,20 +703,25 @@ describe('App.clusterController', function () {
   });
 
   describe('#loadAmbariPropertiesSuccess()', function() {
+    var data = {
+      RootServiceComponents: {
+        properties: {
+          p1: '1'
+        }
+      }
+    };
 
     beforeEach(function() {
       sinon.stub(App.router.get('mainController'), 'monitorInactivity');
-      controller.loadAmbariPropertiesSuccess({
-        RootServiceComponents: {
-          properties: {
-            p1: '1'
-          }
-        }
-      });
+      sinon.stub(App.router.get('mainController'), 'setAmbariServerVersion');
+      sinon.stub(controller, 'setServerClock');
+      controller.loadAmbariPropertiesSuccess(data);
     });
 
     afterEach(function() {
       App.router.get('mainController').monitorInactivity.restore();
+      App.router.get('mainController').setAmbariServerVersion.restore();
+      controller.setServerClock.restore();
     });
 
     it('should set ambariProperties', function() {
@@ -765,6 +735,14 @@ describe('App.clusterController', function () {
     it('monitorInactivity should be called', function() {
       expect(App.router.get('mainController').monitorInactivity).to.be.calledOnce;
     });
+
+    it('setAmbariServerVersion should be called', function() {
+      expect(App.router.get('mainController').setAmbariServerVersion.calledWith(data)).to.be.true;
+    });
+
+    it('setServerClock should be called', function() {
+      expect(controller.setServerClock.calledWith(data)).to.be.true;
+    });
   });
 
   describe('#updateClusterData()', function() {
@@ -849,7 +827,6 @@ describe('App.clusterController', function () {
     beforeEach(function() {
       sinon.stub(controller, 'loadAuthorizations');
       sinon.stub(controller, 'getAllHostNames');
-      sinon.stub(controller, 'loadAmbariProperties');
       sinon.stub(controller, 'loadClusterInfo');
       sinon.stub(controller, 'restoreUpgradeState');
       sinon.stub(controller, 'loadClusterDataToModel');
@@ -871,7 +848,6 @@ describe('App.clusterController', function () {
       App.router.get('mainController').startPolling.restore();
       controller.loadAuthorizations.restore();
       controller.getAllHostNames.restore();
-      controller.loadAmbariProperties.restore();
       controller.loadClusterInfo.restore();
       controller.restoreUpgradeState.restore();
       controller.loadClusterDataToModel.restore();
@@ -887,11 +863,6 @@ describe('App.clusterController', function () {
       expect(controller.getAllHostNames.calledOnce).to.be.true;
     });
 
-    it('loadAmbariProperties should be called', function() {
-      controller.loadClusterData();
-      expect(controller.loadAmbariProperties.calledOnce).to.be.true;
-    });
-
     it('getAllUserSettings should be called', function() {
       controller.loadClusterData();
       expect(App.router.get('userSettingsController').getAllUserSettings.calledOnce).to.be.true;

http://git-wip-us.apache.org/repos/asf/ambari/blob/735cbda8/ambari-web/test/controllers/main_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main_test.js b/ambari-web/test/controllers/main_test.js
index c026604..9673092 100644
--- a/ambari-web/test/controllers/main_test.js
+++ b/ambari-web/test/controllers/main_test.js
@@ -22,40 +22,6 @@ var testHelpers = require('test/helpers');
 describe('App.MainController', function () {
   var mainController = App.MainController.create();
 
-  describe('#getServerVersionSuccessCallback', function () {
-
-    var controller = App.MainController.create(),
-      cases = [
-        {
-          osFamily: 'redhat5',
-          expected: false
-        },
-        {
-          osFamily: 'redhat6',
-          expected: true
-        },
-        {
-          osFamily: 'suse11',
-          expected: false
-        }
-      ],
-      title = 'App.isManagedMySQLForHiveEnabled should be {0} for {1}';
-
-    cases.forEach(function (item) {
-      it(title.format(item.expected, item.osFamily), function () {
-        controller.getServerVersionSuccessCallback({
-          'RootServiceComponents': {
-            'component_version': '',
-            'properties': {
-              'server.os_family': item.osFamily
-            }
-          }
-        });
-        expect(App.get('isManagedMySQLForHiveEnabled')).to.equal(item.expected);
-      });
-    });
-  });
-
   App.TestAliases.testAsComputedAlias(mainController, 'isClusterDataLoaded', 'App.router.clusterController.isLoaded', 'boolean');
 
   App.TestAliases.testAsComputedAlias(mainController, 'clusterDataLoadedPercent', 'App.router.clusterController.clusterDataLoadedPercent', 'string');
@@ -110,38 +76,6 @@ describe('App.MainController', function () {
     });
   });
 
-  describe('#checkServerClientVersion', function() {
-    beforeEach(function () {
-      sinon.stub(mainController, 'getServerVersion').returns({
-        done: function(func) {
-          if (func) {
-            func();
-          }
-        }
-      });
-    });
-    afterEach(function () {
-      mainController.getServerVersion.restore();
-    });
-    it ('Should resolve promise', function() {
-      var deffer = mainController.checkServerClientVersion();
-      deffer.then(function(val){
-        expect(val).to.be.undefined;
-      });
-    });
-  });
-
-  describe('#getServerVersion', function() {
-
-    it ('Should send data', function() {
-      mainController.getServerVersion();
-      var args = testHelpers.findAjaxRequest('name', 'ambari.service');
-      expect(args[0]).to.exists;
-      expect(args[0].sender).to.be.eql(mainController);
-      expect(args[0].data.fields).to.be.equal('?fields=RootServiceComponents/component_version,RootServiceComponents/properties/server.os_family&minimal_response=true');
-    });
-  });
-
   describe('#updateTitle', function() {
     beforeEach(function () {
       sinon.stub(App.router, 'get').withArgs('clusterController.clusterName').returns('c1')