You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2017/10/06 13:35:46 UTC

ambari git commit: AMBARI-22157. Web Client Should Never List Any Upgrade Actions On Only Stack In System (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 7172655ff -> fab2aa3c6


AMBARI-22157. Web Client Should Never List Any Upgrade Actions On Only Stack In System (alexantonenko)


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

Branch: refs/heads/trunk
Commit: fab2aa3c62e3dbe5cce795ca50c4b61baee1d19e
Parents: 7172655
Author: Alex Antonenko <aa...@hortonworks.com>
Authored: Fri Oct 6 16:35:29 2017 +0300
Committer: Alex Antonenko <aa...@hortonworks.com>
Committed: Fri Oct 6 16:35:29 2017 +0300

----------------------------------------------------------------------
 .../stack_upgrade/upgrade_version_box_view.js   | 13 ++++--
 .../upgrade_version_box_view_test.js            | 44 ++++++++++++++++++--
 2 files changed, 49 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fab2aa3c/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 28f4f32..355ad88 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
@@ -199,7 +199,8 @@ App.UpgradeVersionBoxView = Em.View.extend({
     'isUpgrading',
     'controller.requestInProgress',
     'controller.requestInProgressRepoId',
-    'parentView.repoVersions.@each.status'
+    'parentView.repoVersions.@each.status',
+    'isCurrentStackPresent'
   ),
 
   /**
@@ -208,6 +209,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
    */
   isDisabledOnInit: function() {
     return  this.get('controller.requestInProgress') ||
+            !this.get('isCurrentStackPresent') ||
             !this.get('content.isCompatible') ||
             (App.get('upgradeIsRunning') && !App.get('upgradeSuspended')) ||
             this.get('parentView.repoVersions').someProperty('status', 'INSTALLING');
@@ -312,8 +314,6 @@ App.UpgradeVersionBoxView = Em.View.extend({
             });
           }
 
-
-
       }
       element.set('isDisabled', isDisabled);
     }
@@ -357,7 +357,8 @@ App.UpgradeVersionBoxView = Em.View.extend({
    * @returns {boolean}
    */
   isDisabledOnInstalled: function() {
-    return !App.isAuthorized('CLUSTER.UPGRADE_DOWNGRADE_STACK') ||
+    return !this.get('isCurrentStackPresent') ||
+      !App.isAuthorized('CLUSTER.UPGRADE_DOWNGRADE_STACK') ||
       this.get('controller.requestInProgress') ||
       this.get('parentView.repoVersions').someProperty('status', 'INSTALLING') ||
       (this.get('controller.isDowngrade') &&
@@ -392,6 +393,10 @@ App.UpgradeVersionBoxView = Em.View.extend({
     $('.out-of-sync-badge').tooltip('destroy');
   },
 
+  isCurrentStackPresent: Ember.computed('parentView.repoVersions.@each.stackVersion.state', function () {
+    return this.get('parentView.repoVersions').someProperty('stackVersion.state', 'CURRENT');
+  }),
+
   /**
    * run custom action of controller
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/fab2aa3c/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 506fb81..9bee7af 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
@@ -29,6 +29,7 @@ describe('App.UpgradeVersionBoxView', function () {
     sinon.stub(App.db, 'getFilterConditions', function () {return [];});
     view = App.UpgradeVersionBoxView.create({
       initFilters: Em.K,
+      isCurrentStackPresent: true,
       controller: Em.Object.create({
         upgrade: Em.K,
         getRepoVersionInstallId: Em.K,
@@ -1103,6 +1104,7 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: true,
         status: 'INSTALLED',
         isCompatible: true,
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1111,6 +1113,7 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: false,
         status: 'INSTALLED',
         isCompatible: true,
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1119,6 +1122,7 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: false,
         status: 'INSTALLING',
         isCompatible: true,
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1127,6 +1131,7 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: true,
         status: 'INSTALLED',
         isCompatible: false,
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1135,6 +1140,7 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: true,
         status: 'INSTALLED',
         isCompatible: true,
+        isCurrentStackPresent: true,
         expected: false
       },
       {
@@ -1143,7 +1149,17 @@ describe('App.UpgradeVersionBoxView', function () {
         upgradeSuspended: false,
         status: 'INSTALLED',
         isCompatible: true,
+        isCurrentStackPresent: true,
         expected: false
+      },
+      {
+        requestInProgress: false,
+        upgradeIsRunning: false,
+        upgradeSuspended: false,
+        status: 'INSTALLED',
+        isCompatible: true,
+        isCurrentStackPresent: false,
+        expected: true
       }
     ];
 
@@ -1156,16 +1172,18 @@ describe('App.UpgradeVersionBoxView', function () {
     });
 
     testCases.forEach(function(test) {
-      it("requestInProgress: " + test.requestInProgress +
+      it(" requestInProgress: " + test.requestInProgress +
          " upgradeIsRunning: " + test.upgradeIsRunning +
          " upgradeSuspended: " + test.upgradeSuspended +
-         " status" + test.status +
-         " isCompatible" + test.isCompatible, function() {
+         " status: " + test.status +
+         " isCompatible: " + test.isCompatible +
+         " isCurrentStackPresent: " + test.isCurrentStackPresent, function() {
         this.mock.withArgs('upgradeSuspended').returns(test.upgradeSuspended);
         this.mock.withArgs('upgradeIsRunning').returns(test.upgradeIsRunning);
         view.set('parentView.repoVersions', [Em.Object.create({
           status: test.status
         })]);
+        view.set('isCurrentStackPresent', test.isCurrentStackPresent)
         view.set('controller.requestInProgress', test.requestInProgress);
         view.set('content.isCompatible', test.isCompatible);
         expect(view.isDisabledOnInit()).to.be.equal(test.expected);
@@ -1191,6 +1209,7 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: false,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.3',
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1200,6 +1219,7 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: false,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.3',
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1209,6 +1229,7 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: false,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.3',
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1218,6 +1239,7 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: true,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.2',
+        isCurrentStackPresent: true,
         expected: true
       },
       {
@@ -1227,6 +1249,7 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: true,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.3',
+        isCurrentStackPresent: true,
         expected: false
       },
       {
@@ -1236,7 +1259,18 @@ describe('App.UpgradeVersionBoxView', function () {
         isDowngrade: false,
         repositoryName: 'HDP-2.2',
         upgradeVersion: 'HDP-2.2',
+        isCurrentStackPresent: true,
         expected: false
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: false,
+        status: 'INSTALLED',
+        isDowngrade: false,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.2',
+        isCurrentStackPresent: false,
+        expected: true
       }
     ];
 
@@ -1246,13 +1280,15 @@ describe('App.UpgradeVersionBoxView', function () {
           "status: " + test.status +
           "isDowngrade: " + test.isDowngrade +
           "repositoryName: " + test.repositoryName +
-          "upgradeVersion: " + test.upgradeVersion, function() {
+          "upgradeVersion: " + test.upgradeVersion +
+          "isCurrentStackPresent: " + test.isCurrentStackPresent, function() {
         this.authorizedMock.returns(test.isAuthorized);
         view.set('controller.requestInProgress', test.requestInProgress);
         view.set('parentView.repoVersions', [Em.Object.create({status: test.status})]);
         view.set('controller.isDowngrade', test.isDowngrade);
         view.set('controller.currentVersion.repository_name', test.repositoryName);
         view.set('controller.upgradeVersion', test.upgradeVersion);
+        view.set('isCurrentStackPresent', test.isCurrentStackPresent);
         expect(view.isDisabledOnInstalled()).to.be.equal(test.expected);
       });
     });