AMBARI-9058 Rolling Upgrade UI allows "Ignore and Process" when upgrade item is not skippable. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/39aeeb0e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/39aeeb0e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/39aeeb0e Branch: refs/heads/trunk Commit: 39aeeb0eee77cf6ec01cc681cf26fdc9ddea4522 Parents: 01b8640 Author: aBabiichuk <[email protected]> Authored: Fri Jan 9 15:01:03 2015 +0200 Committer: aBabiichuk <[email protected]> Committed: Fri Jan 9 15:41:00 2015 +0200 ---------------------------------------------------------------------- .../app/assets/data/stack_versions/upgrade.json | 4 ++-- ambari-web/app/messages.js | 1 + .../admin/stack_upgrade/stack_upgrade_wizard.hbs | 6 +++++- .../main/admin/stack_upgrade/upgrade_wizard_view.js | 16 ++++++++++++++++ .../admin/stack_upgrade/upgrade_wizard_view_test.js | 13 +++++++++++++ 5 files changed, 37 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/39aeeb0e/ambari-web/app/assets/data/stack_versions/upgrade.json ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/data/stack_versions/upgrade.json b/ambari-web/app/assets/data/stack_versions/upgrade.json index d4dfc95..a8cecc3 100644 --- a/ambari-web/app/assets/data/stack_versions/upgrade.json +++ b/ambari-web/app/assets/data/stack_versions/upgrade.json @@ -15,7 +15,7 @@ "queued_task_count" : 0, "request_context" : "Upgrading to 2.2.1.0-2191", "request_id" : 26, - "request_status" : "FAILED", + "request_status" : "IN_PROGRESS", "resource_filters" : [ ], "start_time" : 1420802576700, "task_count" : 21, @@ -355,7 +355,7 @@ "skippable" : false, "stage_id" : 10, "start_time" : 1420803704259, - "status" : "IN_PROGRESS" + "status" : "HOLDING_FAILED" }, "tasks" : [ { http://git-wip-us.apache.org/repos/asf/ambari/blob/39aeeb0e/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index 3fb544e..947110e 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -1335,6 +1335,7 @@ Em.I18n.translations = { 'admin.stackUpgrade.dialog.operationFailed': "This operation failed.", 'admin.stackUpgrade.dialog.stop': "Stop Upgrade", 'admin.stackUpgrade.dialog.continue': "Ignore and Proceed", + 'admin.stackUpgrade.dialog.cancel': "Cancel Upgrade", 'admin.stackUpgrade.dialog.inProgress': "Now Running:", 'admin.stackUpgrade.dialog.keepRunning': "Keep running Upgrade in background", 'admin.stackUpgrade.dialog.failed': "Failed on:", http://git-wip-us.apache.org/repos/asf/ambari/blob/39aeeb0e/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 d90eeb9..bca7dc8 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 @@ -64,7 +64,11 @@ </div> {{#if view.isHoldingState}} <div class="button-row"> - <button class="btn btn-warning" {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button> + {{#if view.isSkipable}} + <button class="btn btn-warning" {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button> + {{else}} + <button class="btn btn-danger" {{action cancel view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.cancel}}</button> + {{/if}} <button class="btn" {{action retry view.failedItem target="view"}}>{{t common.retry}}</button> </div> {{/if}} http://git-wip-us.apache.org/repos/asf/ambari/blob/39aeeb0e/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 e20c465..d4e819c 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 @@ -125,6 +125,14 @@ App.upgradeWizardView = Em.View.extend({ }.property('failedItem.status'), /** + * indicate whether failed item can be skipped or retried in order to continue Upgrade + * @type {boolean} + */ + isSkipable: function () { + return this.get('failedItem.skippable'); + }.property('failedItem.skippable'), + + /** * @type {boolean} */ isManualDone: false, @@ -257,5 +265,13 @@ App.upgradeWizardView = Em.View.extend({ */ complete: function (event) { this.setUpgradeItemStatus(event.context, 'COMPLETED'); + }, + + /** + * set current upgrade item state to FAILED in order to cancel upgrade + * @param {object} event + */ + cancel: function (event) { + this.setUpgradeItemStatus(event.context, 'FAILED'); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/39aeeb0e/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 fd43233..cba70bd 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 @@ -161,6 +161,19 @@ describe('App.upgradeWizardView', function () { }); }); + describe("#cancel()", function () { + before(function () { + sinon.stub(view, 'setUpgradeItemStatus', Em.K); + }); + after(function () { + view.setUpgradeItemStatus.restore(); + }); + it("cabcel request", function () { + view.cancel({context: Em.Object.create({'status': 'HOLDING_FAILED'})}); + expect(view.setUpgradeItemStatus.calledWith(Em.Object.create({'status': 'HOLDING_FAILED'}), 'FAILED')).to.be.true; + }); + }); + describe("#setUpgradeItemStatus()", function () { before(function () { sinon.stub(App.ajax, 'send', function () {
