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 2016/12/13 11:18:13 UTC

ambari git commit: AMBARI-19174 Version in process of downgrade isn't displayed by selecting any filter. (atkach)

Repository: ambari
Updated Branches:
  refs/heads/trunk 9ff6b22e9 -> d7ccc4c99


AMBARI-19174 Version in process of downgrade isn't displayed by selecting any filter. (atkach)


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

Branch: refs/heads/trunk
Commit: d7ccc4c990291750cda968a8b65ee25a64f1220a
Parents: 9ff6b22
Author: Andrii Tkach <at...@apache.org>
Authored: Mon Dec 12 19:04:12 2016 +0200
Committer: Andrii Tkach <at...@apache.org>
Committed: Tue Dec 13 13:17:57 2016 +0200

----------------------------------------------------------------------
 .../main/admin/stack_and_upgrade_controller.js  | 13 +++++
 .../stack_upgrade/upgrade_version_box_view.js   |  6 ++-
 .../main/admin/stack_upgrade/versions_view.js   | 12 ++++-
 .../admin/stack_and_upgrade_controller_test.js  | 36 ++++---------
 .../upgrade_version_box_view_test.js            | 11 ++++
 .../admin/stack_upgrade/version_view_test.js    | 53 +++++++++++++++++++-
 6 files changed, 100 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
index 6d97205..59f2a90 100644
--- a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
@@ -40,6 +40,13 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   upgradeId: null,
 
   /**
+   * Start version of upgrade
+   * @type {string}
+   * @default null
+   */
+  fromVersion: null,
+
+  /**
    * @type {string}
    * @default null
    */
@@ -233,6 +240,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * properties that stored to localStorage to resume wizard progress
    */
   wizardStorageProperties: [
+    'fromVersion',
     'upgradeId',
     'upgradeVersion',
     'currentVersion',
@@ -860,6 +868,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   upgradeSuccessCallback: function (data, opt, params) {
     this.set('upgradeData', null);
     this.set('upgradeId', data.resources[0].Upgrade.request_id);
+    this.set('fromVersion', data.resources[0].Upgrade.from_version);
     this.set('upgradeVersion', params.label);
     this.set('isDowngrade', !!params.isDowngrade);
     var upgradeMethod = this.get('upgradeMethods').findProperty('type', params.type),
@@ -883,6 +892,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
     this.setDBProperties({
       upgradeVersion: params.label,
       upgradeId: data.resources[0].Upgrade.request_id,
+      fromVersion: data.resources[0].Upgrade.from_version,
       upgradeState: 'PENDING',
       isDowngrade: !!params.isDowngrade,
       upgradeType: upgradeType,
@@ -1672,6 +1682,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   finish: function () {
     var upgradeVersion = this.get('upgradeVersion') && this.get('upgradeVersion').match(/[a-zA-Z]+\-\d+\.\d+/);
     this.setDBProperties({
+      fromVersion: undefined,
       upgradeId: undefined,
       upgradeState: 'INIT',
       upgradeVersion: undefined,
@@ -1683,6 +1694,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       isDowngrade: undefined,
       downgradeAllowed: undefined
     });
+    this.initDBProperties();
     App.clusterStatus.setClusterStatus({
       localdb: App.db.data
     });
@@ -1913,6 +1925,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
     var upgradeType = this.get('upgradeMethods').findProperty('type', lastUpgradeData.Upgrade.upgrade_type);
 
     this.setDBProperties({
+      fromVersion: lastUpgradeData.Upgrade.from_version,
       upgradeId: lastUpgradeData.Upgrade.request_id,
       isDowngrade: lastUpgradeData.Upgrade.direction === 'DOWNGRADE',
       upgradeState: lastUpgradeData.Upgrade.request_status,

http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
index 3508feb..a714149 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
@@ -51,11 +51,13 @@ App.UpgradeVersionBoxView = Em.View.extend({
   }.property('App.router.backgroundOperationsController.serviceTimestamp'),
 
   /**
-   * version is upgrading
+   * version is upgrading or downgrading
    * @type {boolean}
    */
   isUpgrading: function () {
-    return (this.get('controller.upgradeVersion') === this.get('content.displayName') && App.get('upgradeState') !== 'INIT');
+    return (this.get('controller.upgradeVersion') === this.get('content.displayName') ||
+            this.get('controller.fromVersion') === this.get('content.repositoryVersion'))
+            && App.get('upgradeState') !== 'INIT';
   }.property('App.upgradeState', 'content.displayName', 'controller.upgradeVersion'),
 
   isRepoUrlsEditDisabled: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js b/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
index 8fccbd9..c317465 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
@@ -149,7 +149,7 @@ App.MainAdminStackVersionsView = Em.View.extend({
     if (filter && filter.get('value')) {
       versions = versions.filter(function (version) {
         var status = version.get('status');
-        var isUpgrading = App.router.get('mainAdminStackAndUpgradeController.upgradeVersion') === version.get('displayName');
+        var isUpgrading = this.isVersionUpgrading(version);
         if (status === 'INSTALLED' && ['UPGRADE_READY', 'INSTALLED', 'UPGRADING'].contains(filter.get('value'))) {
           if (filter.get('value') === 'UPGRADING') {
             return isUpgrading;
@@ -176,6 +176,16 @@ App.MainAdminStackVersionsView = Em.View.extend({
   },
 
   /**
+   * is version in upgrading or downgrading state
+   * @param version
+   */
+  isVersionUpgrading: function(version) {
+    var upgradeController = App.router.get('mainAdminStackAndUpgradeController');
+    return upgradeController.get('upgradeVersion') === version.get('displayName') ||
+           upgradeController.get('fromVersion') === version.get('repositoryVersion');
+  },
+
+  /**
    * route to versions in Admin View
    * @return {App.ModalPopup}
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
index e83ae2c..de2bf3b 100644
--- a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
@@ -900,32 +900,6 @@ describe('App.MainAdminStackAndUpgradeController', function() {
     });
   });
 
-  describe.skip("#finish()", function() {
-    before(function () {
-      sinon.stub(App.clusterStatus, 'setClusterStatus', Em.K);
-      sinon.stub(controller, 'setDBProperty', Em.K);
-    });
-    after(function () {
-      App.clusterStatus.setClusterStatus.restore();
-      controller.setDBProperty.restore();
-    });
-    it("upgradeState is not COMPLETED", function() {
-      App.set('upgradeState', 'UPGRADING');
-      controller.finish();
-      expect(App.clusterStatus.setClusterStatus.called).to.be.false;
-    });
-    it("upgradeState is COMPLETED", function() {
-      App.set('upgradeState', 'COMPLETED');
-      controller.finish();
-      expect(controller.setDBProperty.calledWith('upgradeId', undefined)).to.be.true;
-      expect(controller.setDBProperty.calledWith('upgradeVersion', undefined)).to.be.true;
-      expect(controller.setDBProperty.calledWith('upgradeState', 'INIT')).to.be.true;
-      expect(controller.setDBProperty.calledWith('currentVersion', undefined)).to.be.true;
-      expect(App.get('upgradeState')).to.equal('INIT');
-      expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
-    });
-  });
-
   describe("#confirmDowngrade()", function() {
 
     before(function () {
@@ -1762,6 +1736,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
 
     var data = {
       Upgrade: {
+        from_version: '1.1',
         request_id: 1,
         direction: 'UPGRADE',
         request_status: 'PENDING',
@@ -1801,6 +1776,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
     });
     it('proper data is saved to the localDB', function () {
       expect(controller.setDBProperties.getCall(0).args[0]).to.eql({
+        fromVersion: '1.1',
         upgradeId: 1,
         isDowngrade: false,
         upgradeState: 'PENDING',
@@ -3059,18 +3035,21 @@ describe('App.MainAdminStackAndUpgradeController', function() {
     beforeEach(function() {
       sinon.stub(controller, 'setDBProperties', Em.K);
       sinon.stub(App.clusterStatus, 'setClusterStatus');
+      sinon.stub(controller, 'initDBProperties');
       App.set('upgradeState', 'COMPLETED');
       controller.set('upgradeVersion', '');
     });
 
     afterEach(function() {
       controller.setDBProperties.restore();
+      controller.initDBProperties.restore();
       App.clusterStatus.setClusterStatus.restore();
     });
 
     it("setDBProperties should be called", function() {
       controller.finish();
       expect(controller.setDBProperties.calledWith({
+        fromVersion: undefined,
         upgradeId: undefined,
         upgradeState: 'INIT',
         upgradeVersion: undefined,
@@ -3084,6 +3063,11 @@ describe('App.MainAdminStackAndUpgradeController', function() {
       })).to.be.true;
     });
 
+    it("initDBProperties should be called", function() {
+      controller.finish();
+      expect(controller.initDBProperties).to.be.calledOnce;
+    });
+
     it("App.clusterStatus.setClusterStatus should be called", function() {
       controller.finish();
       expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;

http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
index 8087c67..58067a2 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
@@ -46,6 +46,9 @@ describe('App.UpgradeVersionBoxView', function () {
   });
 
   describe("#isUpgrading", function () {
+    beforeEach(function() {
+      view.set('controller.fromVersion', 'HDP-1');
+    });
     afterEach(function () {
       App.set('upgradeState', 'INIT');
     });
@@ -63,6 +66,14 @@ describe('App.UpgradeVersionBoxView', function () {
       view.propertyDidChange('isUpgrading');
       expect(view.get('isUpgrading')).to.be.true;
     });
+    it("fromVersion correct", function () {
+      App.set('upgradeState', 'IN_PROGRESS');
+      view.set('controller.upgradeVersion', 'HDP-2.2.2');
+      view.set('content.displayName', 'HDP-2.2.1');
+      view.set('content.repositoryVersion', 'HDP-1');
+      view.propertyDidChange('isUpgrading');
+      expect(view.get('isUpgrading')).to.be.true;
+    });
     it("upgradeState INIT", function () {
       App.set('upgradeState', 'INIT');
       view.set('controller.upgradeVersion', 'HDP-2.2.2');

http://git-wip-us.apache.org/repos/asf/ambari/blob/d7ccc4c9/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
index b9e8e6d..651c361 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
@@ -222,12 +222,14 @@ describe('App.mainAdminStackVersionsView', function () {
       sinon.stub(App, 'get', function (key) {
         return key === 'supports.displayOlderVersions' ? displayOlderVersions : Em.get(App, key);
       });
-      sinon.stub(App.router, 'get').returns('HDP-2.2')
+      sinon.stub(view, 'isVersionUpgrading', function(v) {
+        return v.get('displayName') === 'HDP-2.2';
+      });
     });
 
     afterEach(function () {
       App.get.restore();
-      App.router.get.restore();
+      view.isVersionUpgrading.restore();
     });
 
     testCases.forEach(function(t) {
@@ -330,6 +332,53 @@ describe('App.mainAdminStackVersionsView', function () {
     });
   });
 
+  describe('#isVersionUpgrading()', function() {
+
+    beforeEach(function() {
+      this.mock = sinon.stub(App.router, 'get');
+    });
+
+    afterEach(function() {
+      this.mock.restore();
+    });
+
+    it('should return false, when version not being upgraded', function() {
+      var version = Em.Object.create({
+        displayName: 'HDP',
+        repositoryVersion: 'HDP'
+      });
+      this.mock.returns(Em.Object.create({
+        upgradeVersion: 'HDP-2',
+        fromVersion: 'HDP-1'
+      }));
+      expect(view.isVersionUpgrading(version)).to.be.false;
+    });
+
+    it('should return true, when version being upgraded', function() {
+      var version = Em.Object.create({
+        displayName: 'HDP-2',
+        repositoryVersion: 'HDP'
+      });
+      this.mock.returns(Em.Object.create({
+        upgradeVersion: 'HDP-2',
+        fromVersion: 'HDP-1'
+      }));
+      expect(view.isVersionUpgrading(version)).to.be.true;
+    });
+
+    it('should return true, when version being downgraded', function() {
+      var version = Em.Object.create({
+        displayName: 'HDP',
+        repositoryVersion: 'HDP-1'
+      });
+      this.mock.returns(Em.Object.create({
+        upgradeVersion: 'HDP-2',
+        fromVersion: 'HDP-1'
+      }));
+      expect(view.isVersionUpgrading(version)).to.be.true;
+    });
+  });
+
   describe("#goToVersions()", function() {
     var data = {
       components: [{