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/06/23 09:21:16 UTC

[1/2] ambari git commit: AMBARI-17393 RU: Versions filter shows item that in state "upgrade in process" as "Upgrade ready". (atkach)

Repository: ambari
Updated Branches:
  refs/heads/trunk 128f4e465 -> 5885faff7


AMBARI-17393 RU: Versions filter shows item that in state "upgrade in process" as "Upgrade ready". (atkach)


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

Branch: refs/heads/trunk
Commit: 4531403f5d40e304cc1d50025dc7e8049aa96bea
Parents: 128f4e4
Author: Andrii Tkach <at...@apache.org>
Authored: Thu Jun 23 10:33:34 2016 +0300
Committer: Andrii Tkach <at...@apache.org>
Committed: Thu Jun 23 10:33:34 2016 +0300

----------------------------------------------------------------------
 .../stack_upgrade/upgrade_version_box_view.js   |  26 ++++-
 .../main/admin/stack_upgrade/versions_view.js   |  10 +-
 .../upgrade_version_box_view_test.js            | 112 ++++++++++++++++++-
 .../admin/stack_upgrade/version_view_test.js    |  25 +++--
 4 files changed, 152 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/4531403f/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 1eb9a77..1e549cd 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
@@ -161,7 +161,6 @@ App.UpgradeVersionBoxView = Em.View.extend({
       buttons: [],
       isDisabled: false
     });
-    var isInstalling = this.get('parentView.repoVersions').someProperty('status', 'INSTALLING');
     var isSuspended = App.get('upgradeSuspended');
 
     if (['INSTALLING', 'CURRENT'].contains(status)) {
@@ -169,12 +168,12 @@ App.UpgradeVersionBoxView = Em.View.extend({
     }
     else if (status === 'INIT') {
       requestInProgressRepoId && requestInProgressRepoId == this.get('content.id') ? element.setProperties(statePropertiesMap['LOADING']) : element.setProperties(statePropertiesMap[status]);
-      element.set('isDisabled', this.isDisabledOnInit() || isInstalling);
+      element.set('isDisabled', this.isDisabledOnInit());
     }
     else if ((status === 'INSTALLED' && !this.get('isUpgrading')) ||
              (['INSTALL_FAILED', 'OUT_OF_SYNC'].contains(status))) {
       if (stringUtils.compareVersions(this.get('content.repositoryVersion'), Em.get(currentVersion, 'repository_version')) === 1) {
-        var isDisabled = !App.isAuthorized('CLUSTER.UPGRADE_DOWNGRADE_STACK') || this.get('controller.requestInProgress') || isInstalling;
+        var isDisabled = this.isDisabledOnInstalled();
         element.set('isButtonGroup', true);
         if (status === 'OUT_OF_SYNC') {
           element.set('text', this.get('isVersionColumnView') ? Em.I18n.t('common.reinstall') : Em.I18n.t('admin.stackVersions.version.reinstall'));
@@ -199,7 +198,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
         element.setProperties(statePropertiesMap['INSTALLED']);
       }
     }
-    else if ((['UPGRADING', 'UPGRADE_FAILED', 'UPGRADED'].contains(status) || this.get('isUpgrading')) && !isSuspended) {
+    else if ((this.get('isUpgrading')) && !isSuspended) {
       element.set('isLink', true);
       element.set('action', 'openUpgradeDialog');
       if (['HOLDING', 'HOLDING_FAILED', 'HOLDING_TIMEDOUT', 'ABORTED'].contains(App.get('upgradeState'))) {
@@ -238,11 +237,26 @@ App.UpgradeVersionBoxView = Em.View.extend({
   ),
 
   /**
-   * check if actions of stack version disabled
+   * check if actions of INIT stack version disabled
    * @returns {boolean}
    */
   isDisabledOnInit: function() {
-    return this.get('controller.requestInProgress') || (App.get('upgradeIsRunning') && !App.get('upgradeSuspended'));
+    return  this.get('controller.requestInProgress') ||
+            (App.get('upgradeIsRunning') && !App.get('upgradeSuspended')) ||
+            this.get('parentView.repoVersions').someProperty('status', 'INSTALLING');
+  },
+
+  /**
+   * check if actions of INSTALLED stack version disabled
+   * @returns {boolean}
+   */
+  isDisabledOnInstalled: function() {
+    return !App.isAuthorized('CLUSTER.UPGRADE_DOWNGRADE_STACK') ||
+      this.get('controller.requestInProgress') ||
+      this.get('parentView.repoVersions').someProperty('status', 'INSTALLING') ||
+      (this.get('controller.isDowngrade') &&
+        (this.get('controller.currentVersion.repository_name') === this.get('controller.upgradeVersion'))
+      );
   },
 
   didInsertElement: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/4531403f/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 31ef677..59baf07 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,9 +149,13 @@ App.MainAdminStackVersionsView = Em.View.extend({
     if (filter && filter.get('value')) {
       versions = versions.filter(function (version) {
         var status = version.get('status');
-        if (status === 'INSTALLED' && ['UPGRADE_READY', 'INSTALLED'].contains(filter.get('value'))) {
-          if (filter.get('value') === 'UPGRADE_READY') {
-            return stringUtils.compareVersions(version.get('repositoryVersion'), Em.get(currentVersion, 'repository_version')) === 1;
+        var isUpgrading = App.router.get('mainAdminStackAndUpgradeController.upgradeVersion') === version.get('displayName');
+        if (status === 'INSTALLED' && ['UPGRADE_READY', 'INSTALLED', 'UPGRADING'].contains(filter.get('value'))) {
+          if (filter.get('value') === 'UPGRADING') {
+            return isUpgrading;
+          } else if (filter.get('value') === 'UPGRADE_READY') {
+            return !isUpgrading &&
+              stringUtils.compareVersions(version.get('repositoryVersion'), Em.get(currentVersion, 'repository_version')) === 1;
           } else if (filter.get('value') === 'INSTALLED') {
             return stringUtils.compareVersions(version.get('repositoryVersion'), Em.get(currentVersion, 'repository_version')) < 1;
           }

http://git-wip-us.apache.org/repos/asf/ambari/blob/4531403f/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 2955f33..d4114ed 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
@@ -30,7 +30,8 @@ describe('App.UpgradeVersionBoxView', function () {
     view = App.UpgradeVersionBoxView.create({
       initFilters: Em.K,
       controller: Em.Object.create({
-        upgrade: Em.K
+        upgrade: Em.K,
+        currentVersion: Em.Object.create()
       }),
       content: Em.Object.create(),
       parentView: Em.Object.create({
@@ -428,6 +429,7 @@ describe('App.UpgradeVersionBoxView', function () {
         },
         setup: function () {
           this.isAccessibleMock.withArgs('CLUSTER.UPGRADE_DOWNGRADE_STACK').returns(false);
+          this.initMock.returns(true);
         },
         expected: {
           status: 'INSTALL_FAILED',
@@ -464,6 +466,7 @@ describe('App.UpgradeVersionBoxView', function () {
         },
         setup: function () {
           this.isAccessibleMock.withArgs('CLUSTER.UPGRADE_DOWNGRADE_STACK').returns(false);
+          this.initMock.returns(true);
         },
         expected: {
           status: 'INSTALL_FAILED',
@@ -497,6 +500,8 @@ describe('App.UpgradeVersionBoxView', function () {
         },
         setup: function () {
           this.isAccessibleMock.withArgs('CLUSTER.UPGRADE_DOWNGRADE_STACK').returns(true);
+          this.initMock.returns(true);
+          this.isDisabledMock.returns(false);
         },
         expected: {
           status: 'OUT_OF_SYNC',
@@ -585,6 +590,7 @@ describe('App.UpgradeVersionBoxView', function () {
         },
         setup: function () {
           this.isAccessibleMock.withArgs('CLUSTER.UPGRADE_DOWNGRADE_STACK').returns(true);
+          this.initMock.returns(true);
         },
         expected: {
           status: 'INSTALLED',
@@ -881,11 +887,13 @@ describe('App.UpgradeVersionBoxView', function () {
       this.getMock = sinon.stub(App, 'get');
       this.isAccessibleMock = sinon.stub(App, 'isAuthorized');
       this.initMock = sinon.stub(view, 'isDisabledOnInit');
+      this.isDisabledMock = sinon.stub(view, 'isDisabledOnInstalled').returns(true);
     });
     afterEach(function () {
       this.getMock.restore();
       this.isAccessibleMock.restore();
       this.initMock.restore();
+      this.isDisabledMock.restore();
     });
 
     cases.forEach(function (item) {
@@ -950,24 +958,35 @@ describe('App.UpgradeVersionBoxView', function () {
         requestInProgress: true,
         upgradeIsRunning: true,
         upgradeSuspended: true,
+        status: 'INSTALLED',
         expected: true
       },
       {
         requestInProgress: false,
         upgradeIsRunning: true,
         upgradeSuspended: false,
+        status: 'INSTALLED',
+        expected: true
+      },
+      {
+        requestInProgress: false,
+        upgradeIsRunning: false,
+        upgradeSuspended: false,
+        status: 'INSTALLING',
         expected: true
       },
       {
         requestInProgress: false,
         upgradeIsRunning: true,
         upgradeSuspended: true,
+        status: 'INSTALLED',
         expected: false
       },
       {
         requestInProgress: false,
         upgradeIsRunning: false,
         upgradeSuspended: false,
+        status: 'INSTALLED',
         expected: false
       }
     ];
@@ -983,12 +1002,101 @@ describe('App.UpgradeVersionBoxView', function () {
     testCases.forEach(function(test) {
       it("requestInProgress: " + test.requestInProgress +
          "upgradeIsRunning: " + test.upgradeIsRunning +
-         "upgradeSuspended: " + test.upgradeSuspended , function() {
+         "upgradeSuspended: " + test.upgradeSuspended +
+         "status" + test.status, 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('controller.requestInProgress', test.requestInProgress);
         expect(view.isDisabledOnInit()).to.be.equal(test.expected);
       });
     });
   });
+
+  describe("#isDisabledOnInstalled()", function () {
+
+    beforeEach(function() {
+      this.authorizedMock = sinon.stub(App, 'isAuthorized');
+    });
+
+    afterEach(function() {
+      this.authorizedMock.restore();
+    });
+
+    var testCases = [
+      {
+        isAuthorized: false,
+        requestInProgress: false,
+        status: 'INSTALLED',
+        isDowngrade: false,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.3',
+        expected: true
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: true,
+        status: 'INSTALLED',
+        isDowngrade: false,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.3',
+        expected: true
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: false,
+        status: 'INSTALLING',
+        isDowngrade: false,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.3',
+        expected: true
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: false,
+        status: 'INSTALLED',
+        isDowngrade: true,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.2',
+        expected: true
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: false,
+        status: 'INSTALLED',
+        isDowngrade: true,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.3',
+        expected: false
+      },
+      {
+        isAuthorized: true,
+        requestInProgress: false,
+        status: 'INSTALLED',
+        isDowngrade: false,
+        repositoryName: 'HDP-2.2',
+        upgradeVersion: 'HDP-2.2',
+        expected: false
+      }
+    ];
+
+    testCases.forEach(function(test) {
+      it( "isAuthorized: " + test.isAuthorized +
+          "requestInProgress: " + test.requestInProgress +
+          "status: " + test.status +
+          "isDowngrade: " + test.isDowngrade +
+          "repositoryName: " + test.repositoryName +
+          "upgradeVersion: " + test.upgradeVersion, 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);
+        expect(view.isDisabledOnInstalled()).to.be.equal(test.expected);
+      });
+    });
+  });
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/4531403f/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 4fb7ba6..b7df818 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
@@ -60,15 +60,16 @@ describe('App.mainAdminStackVersionsView', function () {
           repositoryVersion: "2.2.2.1"
         }),
         Em.Object.create({
-          status: "INSTALL_FAILED",
-          repositoryVersion: "2.2.1.1"
+          status: "INSTALLED",
+          repositoryVersion: "2.2.3.1",
+          displayName: 'HDP-2.2'
         }),
         Em.Object.create({
-          status: "OUT_OF_SYNC",
+          status: "INSTALL_FAILED",
           repositoryVersion: "2.2.1.1"
         }),
         Em.Object.create({
-          status: "UPGRADING",
+          status: "OUT_OF_SYNC",
           repositoryVersion: "2.2.1.1"
         }),
         Em.Object.create({
@@ -99,15 +100,16 @@ describe('App.mainAdminStackVersionsView', function () {
               repositoryVersion: "2.2.2.1"
             }),
             Em.Object.create({
-              status: "INSTALL_FAILED",
-              repositoryVersion: "2.2.1.1"
+              status: "INSTALLED",
+              repositoryVersion: "2.2.3.1",
+              displayName: 'HDP-2.2'
             }),
             Em.Object.create({
-              status: "OUT_OF_SYNC",
+              status: "INSTALL_FAILED",
               repositoryVersion: "2.2.1.1"
             }),
             Em.Object.create({
-              status: "UPGRADING",
+              status: "OUT_OF_SYNC",
               repositoryVersion: "2.2.1.1"
             }),
             Em.Object.create({
@@ -179,8 +181,9 @@ describe('App.mainAdminStackVersionsView', function () {
           }),
           filteredVersions: [
             Em.Object.create({
-              status: "UPGRADING",
-              repositoryVersion: "2.2.1.1"
+              status: "INSTALLED",
+              repositoryVersion: "2.2.3.1",
+              displayName: 'HDP-2.2'
             })
           ]
         },
@@ -219,10 +222,12 @@ 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')
     });
 
     afterEach(function () {
       App.get.restore();
+      App.router.get.restore();
     });
 
     testCases.forEach(function(t) {


[2/2] ambari git commit: AMBARI-17394 A text value edition of a slider config doesn't trigger recalculation of dependent properties. (atkach)

Posted by at...@apache.org.
AMBARI-17394 A text value edition of a slider config doesn't trigger recalculation of dependent properties. (atkach)


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

Branch: refs/heads/trunk
Commit: 5885faff778503756e8971f933f5739593782d37
Parents: 4531403
Author: Andrii Tkach <at...@apache.org>
Authored: Thu Jun 23 11:40:15 2016 +0300
Committer: Andrii Tkach <at...@apache.org>
Committed: Thu Jun 23 11:40:15 2016 +0300

----------------------------------------------------------------------
 ambari-web/app/templates/common/configs/widgets/controls.hbs       | 2 +-
 .../app/views/common/configs/widgets/plain_config_text_field.js    | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/5885faff/ambari-web/app/templates/common/configs/widgets/controls.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/widgets/controls.hbs b/ambari-web/app/templates/common/configs/widgets/controls.hbs
index 9c6197b..f51f7e8 100644
--- a/ambari-web/app/templates/common/configs/widgets/controls.hbs
+++ b/ambari-web/app/templates/common/configs/widgets/controls.hbs
@@ -22,7 +22,7 @@
 {{#if view.supportSwitchToTextBox}}
   {{#unless view.isPropertyUndefined}}
     <div {{bindAttr class="view.config.showAsTextBox::hide :left :widget-config-raw"}}>
-      {{view App.PlainConfigTextField sectionBinding="view.section" subSectionBinding="view.subSection" configBinding="view.config" disabledBinding="view.canNotEdit"}}
+      {{view App.PlainConfigTextField sectionBinding="view.section" subSectionBinding="view.subSection" configBinding="view.config" serviceConfigBinding="view.config" disabledBinding="view.canNotEdit"}}
     </div>
   {{/unless}}
 {{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/5885faff/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js b/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
index 1403acc..cdfd347 100644
--- a/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
+++ b/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
@@ -24,6 +24,7 @@
 var App = require('app');
 require('views/common/controls_view');
 
+//TODO should use only "serviceConfig" binding instead of "config"
 App.PlainConfigTextField = Ember.View.extend(App.SupportsDependentConfigs, App.WidgetPopoverSupport, App.ValueObserver, {
   templateName: require('templates/common/configs/widgets/plain_config_text_field'),
   valueBinding: 'config.value',