You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/06/16 11:45:30 UTC
ambari git commit: AMBARI-11943. RU: UI must retry ABORTED upgrades
(onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 345f99588 -> b508d0396
AMBARI-11943. RU: UI must retry ABORTED upgrades (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b508d039
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b508d039
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b508d039
Branch: refs/heads/trunk
Commit: b508d0396dd572850c5018a4fcea6865261ac5be
Parents: 345f995
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Tue Jun 16 12:39:22 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Tue Jun 16 12:39:22 2015 +0300
----------------------------------------------------------------------
ambari-web/app/app.js | 16 ++++++
.../main/admin/stack_and_upgrade_controller.js | 50 +++++++++++++++++
ambari-web/app/messages.js | 11 +++-
ambari-web/app/styles/application.less | 17 ++++++
ambari-web/app/styles/common.less | 19 +++++++
ambari-web/app/templates/application.hbs | 13 ++++-
.../stack_upgrade/stack_upgrade_wizard.hbs | 25 +++++++++
ambari-web/app/utils/ajax/ajax.js | 14 +++++
.../stack_upgrade/upgrade_version_box_view.js | 8 ++-
.../admin/stack_upgrade/upgrade_wizard_view.js | 4 +-
ambari-web/test/app_test.js | 56 ++++++++++++++++++++
.../admin/stack_and_upgrade_controller_test.js | 48 +++++++++++++++++
.../upgrade_version_box_view_test.js | 40 ++++++++++++++
.../stack_upgrade/upgrade_wizard_view_test.js | 13 ++++-
14 files changed, 328 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/app.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js
index 23db3a5..0683818 100644
--- a/ambari-web/app/app.js
+++ b/ambari-web/app/app.js
@@ -66,6 +66,14 @@ module.exports = Em.Application.create({
}.property('upgradeState'),
/**
+ * flag is true when upgrade process is aborted
+ * @returns {boolean}
+ */
+ upgradeAborted: function() {
+ return this.get('upgradeState') === "ABORTED";
+ }.property('upgradeState'),
+
+ /**
* RU is running
* @type {boolean}
*/
@@ -74,6 +82,14 @@ module.exports = Em.Application.create({
}.property('upgradeInProgress', 'upgradeHolding'),
/**
+ * flag is true when upgrade process is running or aborted
+ * @returns {boolean}
+ */
+ upgradeIsNotFinished: function () {
+ return this.get('upgradeIsRunning') || this.get('upgradeAborted');
+ }.property('upgradeIsRunning', 'upgradeAborted'),
+
+ /**
* compute user access rights by permission type
* types:
* - ADMIN
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/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 7768f1c..309ab5e 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
@@ -69,6 +69,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
*/
requestInProgress: false,
/**
+ * @type {boolean} true while no updated upgrade info is loaded after retry
+ */
+ isRetryPending: false,
+ /**
* properties that stored to localStorage to resume wizard progress
*/
wizardStorageProperties: ['upgradeId', 'upgradeVersion', 'currentVersion', 'isDowngrade'],
@@ -207,6 +211,12 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
if (data.upgrade_groups) {
this.updateUpgradeData(data);
}
+ if (this.get('isRetryPending') && data.Upgrade.request_status != 'ABORTED') {
+ this.setProperties({
+ requestInProgress: false,
+ isRetryPending: false
+ });
+ }
},
/**
@@ -375,6 +385,20 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
});
},
+ retryUpgrade: function () {
+ this.setProperties({
+ requestInProgress: true,
+ isRetryPending: true
+ });
+ return App.ajax.send({
+ name: 'admin.upgrade.retry',
+ sender: this,
+ data: {
+ upgradeId: this.get('upgradeId')
+ }
+ });
+ },
+
/**
* make call to start upgrade process and show popup with current progress
* @param {object} version
@@ -507,6 +531,32 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
this.set('requestInProgress', false);
},
+ confirmRetryUpgrade: function (version) {
+ var self = this;
+ return App.showConfirmationPopup(
+ function () {
+ self.retryUpgrade();
+ },
+ Em.I18n.t('admin.stackUpgrade.upgrade.retry.confirm.body').format(version.get('displayName')),
+ null,
+ Em.I18n.t('admin.stackUpgrade.dialog.header').format(version.get('displayName'))
+ );
+ },
+
+ confirmRetryDowngrade: function () {
+ var self = this,
+ currentVersion = this.get('currentVersion');
+ return App.showConfirmationPopup(
+ function() {
+ self.retryUpgrade();
+ },
+ Em.I18n.t('admin.stackUpgrade.downgrade.retry.body').format(currentVersion.repository_name),
+ null,
+ Em.I18n.t('admin.stackUpgrade.dialog.downgrade.header').format(currentVersion.repository_name),
+ Em.I18n.t('admin.stackUpgrade.downgrade.proceed')
+ );
+ },
+
/**
* confirmation popup before install repository version
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 40e76d5..0f5a8a9 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -158,6 +158,7 @@ Em.I18n.translations = {
'common.confirm': 'Confirm',
'common.upgrade': 'Upgrade',
'common.reUpgrade': 'Retry Upgrade',
+ 'common.reDowngrade': 'Retry Downgrade',
'common.security':'Security',
'common.kerberos':'Kerberos',
'common.cluster':'Cluster',
@@ -343,7 +344,7 @@ Em.I18n.translations = {
'popup.clusterCheck.Upgrade.fail.title': 'Requirements',
'popup.clusterCheck.Upgrade.fail.alert': 'You <strong>must</strong> meet these requirements before you can proceed.',
'popup.clusterCheck.Upgrade.warning.title': 'Warnings',
- 'popup.clusterCheck.Upgrade.warning.alert': 'Correcting the warnings are not required but are <strong>recommended</strong>.',
+ 'popup.clusterCheck.Upgrade.warning.alert': 'Correcting the warnings is not required but is <strong>recommended</strong>.',
'popup.clusterCheck.Upgrade.configsMerge.title': 'Configuration Changes',
'popup.clusterCheck.Upgrade.configsMerge.alert': 'During upgrade, the following configuration changes will be applied.',
'popup.clusterCheck.Upgrade.configsMerge.configType': 'Config Type',
@@ -1426,8 +1427,10 @@ Em.I18n.translations = {
'admin.stackVersions.version.performUpgrade': "Perform Upgrade",
'admin.stackVersions.version.upgrade.pause': "Upgrade: Action Required",
'admin.stackVersions.version.upgrade.running': "Upgrade: In Process",
+ 'admin.stackVersions.version.upgrade.aborted': "Upgrade: Aborted",
'admin.stackVersions.version.downgrade.pause': "Downgrade: Action Required",
'admin.stackVersions.version.downgrade.running': "Downgrade: In Process",
+ 'admin.stackVersions.version.downgrade.aborted': "Downgrade: Aborted",
'admin.stackVersions.hosts.popup.header.current': "Current",
'admin.stackVersions.hosts.popup.header.installed': "Installed",
@@ -1454,13 +1457,17 @@ Em.I18n.translations = {
'admin.stackUpgrade.pauseDowngrade': "Pause Downgrade",
'admin.stackUpgrade.downgrade.proceed': "Proceed with Downgrade",
'admin.stackUpgrade.downgrade.body': "Are you sure you wish to abort the upgrade process and downgrade to <b>{0}</b>?",
+ 'admin.stackUpgrade.downgrade.retry.body': "Are you sure you wish to retry downgrade to <b>{0}</b>?",
'admin.stackUpgrade.upgrade.confirm.body': "You are about to perform an upgrade to {0}.",
+ 'admin.stackUpgrade.upgrade.retry.confirm.body': "You are about to retry an upgrade to {0}.",
'admin.stackUpgrade.title': "Stack and Versions",
'admin.stackUpgrade.state.inProgress': "Upgrade in Progress",
'admin.stackUpgrade.state.paused': "Upgrade Paused",
+ 'admin.stackUpgrade.state.aborted': "Upgrade Aborted",
'admin.stackUpgrade.state.completed': "Upgrade Finished",
'admin.stackUpgrade.state.inProgress.downgrade': "Downgrade in Progress",
'admin.stackUpgrade.state.paused.downgrade': "Downgrade Paused",
+ 'admin.stackUpgrade.state.aborted.downgrade': "Downgrade Aborted",
'admin.stackUpgrade.state.completed.downgrade': "Downgrade Finished",
'admin.stackUpgrade.dialog.header': "Rolling Upgrade to {0}",
'admin.stackUpgrade.dialog.downgrade.header': "Downgrade to {0}",
@@ -1475,6 +1482,8 @@ Em.I18n.translations = {
'admin.stackUpgrade.dialog.manualDone': "I have performed the manual steps above.",
'admin.stackUpgrade.dialog.closeProgress': "Upgrade is in progress. \n If you dismiss this window, Upgrade will keep running in background.",
'admin.stackUpgrade.dialog.closePause': "Upgrade is paused. \n If you dismiss this window, you can resume Upgrade later.",
+ 'admin.stackUpgrade.dialog.aborted': "Upgrade is aborted. \n You can either downgrade or retry upgrade.",
+ 'admin.stackUpgrade.dialog.downgrade.aborted': "Downgrade is aborted. \n You can retry downgrade.",
'admin.stackUpgrade.dialog.details.open': "show details",
'admin.stackUpgrade.dialog.details.hide': "hide details",
'admin.stackUpgrade.dialog.notActive': "Waiting to execute the next task...",
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 25e719c..5866fb0 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -181,6 +181,23 @@ footer {
animation-iteration-count: infinite;
}
+ .upgrade-aborted {
+ text-shadow: none;
+ background-color: @health-status-red;
+ -webkit-animation-name: redPulse;
+ -webkit-animation-duration: 1s;
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-name: redPulse;
+ -moz-animation-duration: 1s;
+ -moz-animation-iteration-count: infinite;
+ animation-name: redPulse;
+ animation-duration: 1s;
+ animation-iteration-count: infinite;
+ .icon-remove {
+ color: #fff;
+ }
+ }
+
}
@media (max-width: 1200px) {
ul.top-nav-menu.nav {
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/styles/common.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/common.less b/ambari-web/app/styles/common.less
index 64bfde3..0edec5f 100644
--- a/ambari-web/app/styles/common.less
+++ b/ambari-web/app/styles/common.less
@@ -115,6 +115,25 @@
100% { color: #118fff; }
}
+@-webkit-keyframes redPulse {
+ from { background-color: #ff3333; }
+ 50% { background-color: #ff0000; }
+ to { background-color: #ff3333; }
+}
+
+@-moz-keyframes redPulse {
+ from { background-color: #ff3333; }
+ 50% { background-color: #ff0000; }
+ to { background-color: #ff3333; }
+}
+
+@keyframes redPulse
+{
+ 0% { background-color: #ff3333; }
+ 50% { background-color: #ff0000; }
+ 100% { background-color: #ff3333; }
+}
+
.gradient(@color: #FAFAFA, @start: #FFFFFF, @stop: #F2F2F2) {
background: @color;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, @start), color-stop(1, @stop));
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/templates/application.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/application.hbs b/ambari-web/app/templates/application.hbs
index 10897e9..e6de54e 100644
--- a/ambari-web/app/templates/application.hbs
+++ b/ambari-web/app/templates/application.hbs
@@ -95,7 +95,7 @@
</div>
<div class="container main-container">
<div id="content">
- {{#if App.upgradeIsRunning}}
+ {{#if App.upgradeIsNotFinished}}
<div class="ru-badge span12">
<div class="navbar navbar-static-top clearfix">
<div class="span4 offset4">
@@ -123,6 +123,17 @@
<i class="icon-pause"></i> {{t admin.stackVersions.version.upgrade.pause}}</span>
{{/if}}
{{/if}}
+ {{#if App.upgradeAborted}}
+ {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
+ <span
+ class="label upgrade-aborted" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+ <i class="icon-remove"></i> {{t admin.stackVersions.version.downgrade.aborted}}</span>
+ {{else}}
+ <span
+ class="label upgrade-aborted" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+ <i class="icon-remove"></i> {{t admin.stackVersions.version.upgrade.aborted}}</span>
+ {{/if}}
+ {{/if}}
</a>
{{/if}}
</div>
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs b/ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs
index c6f38b5..7874175 100644
--- a/ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs
+++ b/ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs
@@ -153,6 +153,31 @@
</div>
</div>
{{/if}}
+ {{#if App.upgradeAborted}}
+ {{#unless requestInProgress}}
+ <div class="box details-box">
+ <label class="message">
+ {{#if view.isDowngradeAvailable}}
+ {{t admin.stackUpgrade.dialog.aborted}}
+ {{else}}
+ {{t admin.stackUpgrade.dialog.downgrade.aborted}}
+ {{/if}}
+ </label>
+ <div class="button-row">
+ {{#if view.isDowngradeAvailable}}
+ <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
+ {{/if}}
+ <button class="btn btn-success" {{action retryUpgrade target="controller"}}>
+ {{#if view.isDowngradeAvailable}}
+ {{t common.reUpgrade}}
+ {{else}}
+ {{t common.reDowngrade}}
+ {{/if}}
+ </button>
+ </div>
+ </div>
+ {{/unless}}
+ {{/if}}
</div>
{{#each group in view.upgradeGroups}}
{{#if group.isVisible}}
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 2542e57..2ec11c9 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1553,6 +1553,20 @@ var urls = {
}
}
},
+ 'admin.upgrade.retry': {
+ 'real': '/clusters/{clusterName}/upgrades/{upgradeId}',
+ 'mock': '',
+ 'type': 'PUT',
+ 'format': function (data) {
+ return {
+ data: JSON.stringify({
+ "Upgrade": {
+ "request_status": "PENDING"
+ }
+ })
+ }
+ }
+ },
'admin.upgrade.upgradeItem.setState': {
'real': '/clusters/{clusterName}/upgrades/{upgradeId}/upgrade_groups/{groupId}/upgrade_items/{itemId}',
'mock': '',
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/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 28d1428..9e6d5ad 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
@@ -110,6 +110,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
isDisabled: false
});
var isInstalling = this.get('parentView.repoVersions').someProperty('status', 'INSTALLING');
+ var isAborted = App.get('upgradeState') === 'ABORTED';
if (status === 'CURRENT') {
element.set('isLabel', true);
@@ -143,7 +144,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
element.set('text', Em.I18n.t('common.installed'));
element.set('action', null);
}
- } else if (['UPGRADING', 'UPGRADE_FAILED', 'UPGRADED'].contains(status) || this.get('isUpgrading')) {
+ } else if ((['UPGRADING', 'UPGRADE_FAILED', 'UPGRADED'].contains(status) || this.get('isUpgrading')) && !isAborted) {
element.set('isLink', true);
element.set('action', 'openUpgradeDialog');
if (['HOLDING', 'HOLDING_FAILED', 'HOLDING_TIMEDOUT'].contains(App.get('upgradeState'))) {
@@ -161,6 +162,11 @@ App.UpgradeVersionBoxView = Em.View.extend({
element.set('text', Em.I18n.t('admin.stackVersions.version.upgrade.running'));
}
}
+ } else if (isAborted) {
+ element.set('isButton', true);
+ element.set('text', this.get('controller.isDowngrade') ? Em.I18n.t('common.reDowngrade') : Em.I18n.t('common.reUpgrade'));
+ element.set('action', this.get('controller.isDowngrade') ? 'confirmRetryDowngrade' : 'confirmRetryUpgrade');
+ element.set('isDisabled', this.get('controller.requestInProgress'));
}
return element;
}.property('content.status', 'controller.isDowngrade', 'isUpgrading', 'controller.requestInProgress', 'parentView.repoVersions.@each.status'),
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
index 590201e..d7098a6 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
@@ -122,7 +122,7 @@ App.upgradeWizardView = Em.View.extend({
*/
noActiveItem: function () {
return (Em.isNone(this.get('failedItem')) && Em.isNone(this.get('runningItem')) && Em.isNone(this.get('manualItem'))) &&
- !['INIT', 'COMPLETED'].contains(App.get('upgradeState'));
+ !['INIT', 'COMPLETED', 'ABORTED'].contains(App.get('upgradeState'));
}.property('failedItem', 'runningItem', 'manualItem', 'App.upgradeState'),
/**
@@ -193,6 +193,8 @@ App.upgradeWizardView = Em.View.extend({
labelKey = 'admin.stackUpgrade.state.completed';
break;
case 'ABORTED':
+ labelKey = 'admin.stackUpgrade.state.aborted';
+ break;
case 'TIMEDOUT':
case 'FAILED':
case 'HOLDING_FAILED':
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/test/app_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/app_test.js b/ambari-web/test/app_test.js
index 9a2a0f6..416f3af 100644
--- a/ambari-web/test/app_test.js
+++ b/ambari-web/test/app_test.js
@@ -556,4 +556,60 @@ describe('App', function () {
});
+ describe('#upgradeAborted', function () {
+
+ var cases = [
+ {
+ upgradeState: 'INIT',
+ upgradeAborted: false
+ },
+ {
+ upgradeState: 'ABORTED',
+ upgradeAborted: true
+ }
+ ];
+
+ cases.forEach(function (item) {
+ it(item.upgradeState, function () {
+ App.set('upgradeState', item.upgradeState);
+ expect(App.get('upgradeAborted')).to.equal(item.upgradeAborted);
+ });
+ });
+
+ });
+
+ describe('#upgradeIsNotFinished', function () {
+
+ var cases = [
+ {
+ upgradeState: 'INIT',
+ upgradeIsNotFinished: false
+ },
+ {
+ upgradeState: 'IN_PROGRESS',
+ upgradeIsNotFinished: true
+ },
+ {
+ upgradeState: 'HOLDING',
+ upgradeIsNotFinished: true
+ },
+ {
+ upgradeState: 'HOLDING_TIMEDOUT',
+ upgradeIsNotFinished: true
+ },
+ {
+ upgradeState: 'ABORTED',
+ upgradeIsNotFinished: true
+ }
+ ];
+
+ cases.forEach(function (item) {
+ it(item.upgradeState, function () {
+ App.set('upgradeState', item.upgradeState);
+ expect(App.get('upgradeIsNotFinished')).to.equal(item.upgradeIsNotFinished);
+ });
+ });
+
+ });
+
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/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 f456708..a37e115 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
@@ -151,6 +151,36 @@ describe('App.MainAdminStackAndUpgradeController', function() {
});
describe("#loadUpgradeDataSuccessCallback()", function() {
+ var retryCases = [
+ {
+ isRetryPendingInitial: true,
+ status: 'ABORTED',
+ isRetryPending: true,
+ requestInProgress: true,
+ title: 'retry request not yet applied'
+ },
+ {
+ isRetryPendingInitial: true,
+ status: 'UPGRADING',
+ isRetryPending: false,
+ requestInProgress: false,
+ title: 'retry request applied'
+ },
+ {
+ isRetryPendingInitial: false,
+ status: 'ABORTED',
+ isRetryPending: false,
+ requestInProgress: true,
+ title: 'no retry request sent'
+ },
+ {
+ isRetryPendingInitial: false,
+ status: 'UPGRADING',
+ isRetryPending: false,
+ requestInProgress: true,
+ title: 'upgrade wasn\'t aborted'
+ }
+ ];
beforeEach(function () {
sinon.stub(controller, 'updateUpgradeData', Em.K);
sinon.stub(controller, 'setDBProperty', Em.K);
@@ -183,6 +213,24 @@ describe('App.MainAdminStackAndUpgradeController', function() {
expect(controller.updateUpgradeData.called).to.be.false;
expect(controller.setDBProperty.called).to.be.false;
});
+ retryCases.forEach(function (item) {
+ it(item.title, function () {
+ var data = {
+ "Upgrade": {
+ "request_status": item.status
+ }
+ };
+ controller.setProperties({
+ isRetryPending: item.isRetryPendingInitial,
+ requestInProgress: true
+ });
+ controller.loadUpgradeDataSuccessCallback(data);
+ expect(controller.getProperties(['isRetryPending', 'requestInProgress'])).to.eql({
+ isRetryPending: item.isRetryPending,
+ requestInProgress: item.requestInProgress
+ });
+ });
+ });
});
describe("#getUpgradeItem()", function() {
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/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 e45bfd3..080bf39 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
@@ -699,6 +699,46 @@ describe('App.UpgradeVersionBoxView', function () {
text: Em.I18n.t('admin.stackVersions.version.downgrade.pause')
},
title: 'downgrading, holding finished on timeout'
+ },
+ {
+ inputData: {
+ 'content.status': 'UPGRADING',
+ 'isUpgrading': true,
+ 'controller.isDowngrade': false,
+ 'controller.requestInProgress': false,
+ 'parentView.repoVersions': []
+ },
+ setup: function () {
+ this.getMock.withArgs('upgradeState').returns('ABORTED');
+ },
+ expected: {
+ status: 'UPGRADING',
+ isButton: true,
+ action: 'confirmRetryUpgrade',
+ text: Em.I18n.t('common.reUpgrade'),
+ isDisabled: false
+ },
+ title: 'upgrade aborted'
+ },
+ {
+ inputData: {
+ 'content.status': 'UPGRADE_FAILED',
+ 'isUpgrading': true,
+ 'controller.isDowngrade': true,
+ 'controller.requestInProgress': true,
+ 'parentView.repoVersions': []
+ },
+ setup: function () {
+ this.getMock.withArgs('upgradeState').returns('ABORTED');
+ },
+ expected: {
+ status: 'UPGRADE_FAILED',
+ isButton: true,
+ action: 'confirmRetryDowngrade',
+ text: Em.I18n.t('common.reDowngrade'),
+ isDisabled: true
+ },
+ title: 'downgrade aborted, request in progress'
}
];
http://git-wip-us.apache.org/repos/asf/ambari/blob/b508d039/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
index 9dfaddd..37027b1 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
@@ -292,6 +292,15 @@ describe('App.upgradeWizardView', function () {
failedItem: null,
runningItem: null,
manualItem: null,
+ upgradeState: 'ABORTED'
+ },
+ result: false
+ },
+ {
+ data: {
+ failedItem: null,
+ runningItem: null,
+ manualItem: null,
upgradeState: 'IN_PROGRESS'
},
result: true
@@ -472,7 +481,7 @@ describe('App.upgradeWizardView', function () {
status: 'ABORTED',
isDowngrade: false
},
- result: Em.I18n.t('admin.stackUpgrade.state.paused')
+ result: Em.I18n.t('admin.stackUpgrade.state.aborted')
},
{
data: {
@@ -549,7 +558,7 @@ describe('App.upgradeWizardView', function () {
status: 'ABORTED',
isDowngrade: true
},
- result: Em.I18n.t('admin.stackUpgrade.state.paused.downgrade')
+ result: Em.I18n.t('admin.stackUpgrade.state.aborted.downgrade')
},
{
data: {