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',