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 2015/11/13 15:12:09 UTC
ambari git commit: AMBARI-13883 Upgrade: when out of sync,
should default to Install Packages button. (atkach)
Repository: ambari
Updated Branches:
refs/heads/branch-2.1 55808ea11 -> ae3ce8b98
AMBARI-13883 Upgrade: when out of sync, should default to Install Packages button. (atkach)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ae3ce8b9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ae3ce8b9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ae3ce8b9
Branch: refs/heads/branch-2.1
Commit: ae3ce8b9898875fcaa1d5a08b75f9b002c1a4edb
Parents: 55808ea
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Fri Nov 13 15:56:49 2015 +0200
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Fri Nov 13 16:12:01 2015 +0200
----------------------------------------------------------------------
.../stack_upgrade/upgrade_version_box_view.js | 84 +++++++++++++-------
.../upgrade_version_box_view_test.js | 16 ++--
2 files changed, 65 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ae3ce8b9/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 fea01f4..1be4290 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
@@ -102,12 +102,47 @@ App.UpgradeVersionBoxView = Em.View.extend({
content: null,
/**
+ * map of properties which correspond to particular state of Upgrade version
+ * @type {object}
+ */
+ statePropertiesMap: {
+ 'CURRENT': {
+ isLabel: true,
+ text: Em.I18n.t('common.current'),
+ class: 'label label-success'
+ },
+ 'INIT': {
+ isButton: true,
+ text: Em.I18n.t('admin.stackVersions.version.installNow'),
+ action: 'installRepoVersionConfirmation'
+ },
+ 'INSTALLING': {
+ iconClass: 'icon-cog',
+ isLink: true,
+ text: Em.I18n.t('hosts.host.stackVersions.status.installing'),
+ action: 'showProgressPopup'
+ },
+ 'INSTALLED': {
+ iconClass: 'icon-ok',
+ isLink: true,
+ text: Em.I18n.t('common.installed'),
+ action: null
+ },
+ 'SUSPENDED': {
+ isButton: true,
+ text: Em.I18n.t('admin.stackUpgrade.dialog.resume'),
+ action: 'resumeUpgrade'
+ }
+ },
+
+ /**
* object that describes how content should be displayed
* @type {Em.Object}
* TODO remove <code>isUpgrading</code> condition when transition of version states in API fixed
*/
stateElement: function () {
var currentVersion = this.get('controller.currentVersion');
+ var statePropertiesMap = this.get('statePropertiesMap');
var status = this.get('content.status');
var element = Em.Object.create({
status: status,
@@ -121,42 +156,39 @@ App.UpgradeVersionBoxView = Em.View.extend({
var isAborted = App.get('upgradeState') === 'ABORTED';
var isSuspended = App.router.get('mainAdminStackAndUpgradeController.isSuspended');
- if (status === 'CURRENT') {
- element.set('isLabel', true);
- element.set('text', Em.I18n.t('common.current'));
- element.set('class', 'label label-success');
+ if (['INSTALLING', 'CURRENT'].contains(status)) {
+ element.setProperties(statePropertiesMap[status]);
}
else if (status === 'INIT') {
- element.set('isButton', true);
- element.set('text', Em.I18n.t('admin.stackVersions.version.installNow'));
- element.set('action', 'installRepoVersionConfirmation');
+ element.setProperties(statePropertiesMap[status]);
element.set('isDisabled', !App.isAccessible('ADMIN') || this.get('controller.requestInProgress') || isInstalling);
}
- else if (status === 'INSTALLING') {
- element.set('iconClass', 'icon-cog');
- element.set('isLink', true);
- element.set('text', Em.I18n.t('hosts.host.stackVersions.status.installing'));
- element.set('action', 'showProgressPopup');
- }
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.isAccessible('ADMIN') || this.get('controller.requestInProgress') || isInstalling;
element.set('isButtonGroup', true);
- element.set('text', Em.I18n.t('admin.stackVersions.version.performUpgrade'));
- element.set('action', 'confirmUpgrade');
- element.get('buttons').pushObject({
- text: Em.I18n.t('admin.stackVersions.version.reinstall'),
- action: 'installRepoVersionConfirmation',
- isDisabled: isDisabled
- });
+ if (status === 'OUT_OF_SYNC') {
+ element.set('text', Em.I18n.t('admin.stackVersions.version.reinstall'));
+ element.set('action', 'installRepoVersionConfirmation');
+ element.get('buttons').pushObject({
+ text: Em.I18n.t('admin.stackVersions.version.performUpgrade'),
+ action: 'confirmUpgrade',
+ isDisabled: isDisabled
+ });
+ } else {
+ element.set('text', Em.I18n.t('admin.stackVersions.version.performUpgrade'));
+ element.set('action', 'confirmUpgrade');
+ element.get('buttons').pushObject({
+ text: Em.I18n.t('admin.stackVersions.version.reinstall'),
+ action: 'installRepoVersionConfirmation',
+ isDisabled: isDisabled
+ });
+ }
element.set('isDisabled', isDisabled);
}
else {
- element.set('iconClass', 'icon-ok');
- element.set('isLink', true);
- element.set('text', Em.I18n.t('common.installed'));
- element.set('action', null);
+ element.setProperties(statePropertiesMap['INSTALLED']);
}
}
else if ((['UPGRADING', 'UPGRADE_FAILED', 'UPGRADED'].contains(status) || this.get('isUpgrading')) && !isAborted) {
@@ -183,9 +215,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
}
else if (isAborted) {
if (isSuspended) {
- element.set('isButton', true);
- element.set('text', Em.I18n.t('admin.stackUpgrade.dialog.resume'));
- element.set('action', 'resumeUpgrade');
+ element.setProperties(statePropertiesMap['SUSPENDED']);
element.set('isDisabled', this.get('controller.requestInProgress'));
} else {
element.set('isButton', true);
http://git-wip-us.apache.org/repos/asf/ambari/blob/ae3ce8b9/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 a638687..9bf8a71 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
@@ -477,12 +477,12 @@ describe('App.UpgradeVersionBoxView', function () {
status: 'OUT_OF_SYNC',
isButtonGroup: true,
buttons: [{
- text: Em.I18n.t('admin.stackVersions.version.reinstall'),
- action: 'installRepoVersionConfirmation',
+ text: Em.I18n.t('admin.stackVersions.version.performUpgrade'),
+ action: 'confirmUpgrade',
isDisabled: false
}],
- text: Em.I18n.t('admin.stackVersions.version.performUpgrade'),
- action: 'confirmUpgrade',
+ text: Em.I18n.t('admin.stackVersions.version.reinstall'),
+ action: 'installRepoVersionConfirmation',
isDisabled: false
},
title: 'OUT_OF_SYNC state, admin access, no requests in progress, no installation'
@@ -510,12 +510,12 @@ describe('App.UpgradeVersionBoxView', function () {
status: 'OUT_OF_SYNC',
isButtonGroup: true,
buttons: [{
- text: Em.I18n.t('admin.stackVersions.version.reinstall'),
- action: 'installRepoVersionConfirmation',
+ text: Em.I18n.t('admin.stackVersions.version.performUpgrade'),
+ action: 'confirmUpgrade',
isDisabled: true
}],
- text: Em.I18n.t('admin.stackVersions.version.performUpgrade'),
- action: 'confirmUpgrade',
+ text: Em.I18n.t('admin.stackVersions.version.reinstall'),
+ action: 'installRepoVersionConfirmation',
isDisabled: true
},
title: 'OUT_OF_SYNC state, admin access, request in progress, no installation'