Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 30EBD200ACA for ; Thu, 9 Jun 2016 11:54:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 2F815160A58; Thu, 9 Jun 2016 09:54:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 57939160A2B for ; Thu, 9 Jun 2016 11:54:08 +0200 (CEST) Received: (qmail 50999 invoked by uid 500); 9 Jun 2016 09:54:07 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 50990 invoked by uid 99); 9 Jun 2016 09:54:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jun 2016 09:54:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 457A2E02DA; Thu, 9 Jun 2016 09:54:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: atkach@apache.org To: commits@ambari.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: ambari git commit: AMBARI-17125 Wizards operation gets into inconsistent state when logged into from a different browser Date: Thu, 9 Jun 2016 09:54:07 +0000 (UTC) archived-at: Thu, 09 Jun 2016 09:54:09 -0000 Repository: ambari Updated Branches: refs/heads/trunk 47c9b2160 -> 1671d615a AMBARI-17125 Wizards operation gets into inconsistent state when logged into from a different browser Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1671d615 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1671d615 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1671d615 Branch: refs/heads/trunk Commit: 1671d615a7b4a88314bbcbaed860029fc20ffdb2 Parents: 47c9b21 Author: Andrii Tkach Authored: Wed Jun 8 19:21:08 2016 +0300 Committer: Andrii Tkach Committed: Thu Jun 9 12:52:16 2016 +0300 ---------------------------------------------------------------------- .../global/background_operations_controller.js | 2 +- .../controllers/global/cluster_controller.js | 5 +++ .../main/admin/stack_and_upgrade_controller.js | 43 ++++++++++---------- .../global/cluster_controller_test.js | 27 ++++++++++++ .../admin/stack_and_upgrade_controller_test.js | 16 ++++++++ 5 files changed, 71 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/1671d615/ambari-web/app/controllers/global/background_operations_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/global/background_operations_controller.js b/ambari-web/app/controllers/global/background_operations_controller.js index a26dbfd..518f5ba 100644 --- a/ambari-web/app/controllers/global/background_operations_controller.js +++ b/ambari-web/app/controllers/global/background_operations_controller.js @@ -211,7 +211,7 @@ App.BackgroundOperationsController = Em.Controller.extend({ data.items.forEach(function (request) { if (this.isUpgradeRequest(request)) { - if (!App.get('upgradeIsRunning') && !App.get('testMode') && Em.get(request, 'Requests.request_status') !== 'COMPLETED') { + if (!App.get('upgradeIsRunning') && !App.get('testMode')) { restoreUpgradeState = true; } return; http://git-wip-us.apache.org/repos/asf/ambari/blob/1671d615/ambari-web/app/controllers/global/cluster_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/global/cluster_controller.js b/ambari-web/app/controllers/global/cluster_controller.js index 1741704..d8a3664 100644 --- a/ambari-web/app/controllers/global/cluster_controller.js +++ b/ambari-web/app/controllers/global/cluster_controller.js @@ -302,6 +302,11 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, { var lastUpgradeData = data.items.sortProperty('Upgrade.request_id').pop(); var dbUpgradeState = App.db.get('MainAdminStackAndUpgrade', 'upgradeState'); + //completed upgrade shouldn't be restored + if (lastUpgradeData && lastUpgradeData.Upgrade.request_status === "COMPLETED") { + return; + } + if (!Em.isNone(dbUpgradeState)) { App.set('upgradeState', dbUpgradeState); } http://git-wip-us.apache.org/repos/asf/ambari/blob/1671d615/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 20cfe40..01a9978 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 @@ -390,6 +390,9 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage, isRetryPending: false }); } + if (data.Upgrade.request_status === 'COMPLETED') { + this.finish(); + } }, /** @@ -1541,28 +1544,26 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage, * and clean auxiliary data */ finish: function () { - if (App.get('upgradeState') === 'COMPLETED') { - var upgradeVersion = this.get('upgradeVersion') && this.get('upgradeVersion').match(/[a-zA-Z]+\-\d+\.\d+/); - this.setDBProperties({ - upgradeId: undefined, - upgradeState: 'INIT', - upgradeVersion: undefined, - currentVersion: undefined, - upgradeTypeDisplayName: undefined, - upgradeType: undefined, - failuresTolerance: undefined, - isDowngrade: undefined, - downgradeAllowed: undefined - }); - App.clusterStatus.setClusterStatus({ - localdb: App.db.data - }); - if (upgradeVersion && upgradeVersion[0]) { - App.set('currentStackVersion', upgradeVersion[0]); - } - App.set('upgradeState', 'INIT'); + var upgradeVersion = this.get('upgradeVersion') && this.get('upgradeVersion').match(/[a-zA-Z]+\-\d+\.\d+/); + this.setDBProperties({ + upgradeId: undefined, + upgradeState: 'INIT', + upgradeVersion: undefined, + currentVersion: undefined, + upgradeTypeDisplayName: undefined, + upgradeType: undefined, + failuresTolerance: undefined, + isDowngrade: undefined, + downgradeAllowed: undefined + }); + App.clusterStatus.setClusterStatus({ + localdb: App.db.data + }); + if (upgradeVersion && upgradeVersion[0]) { + App.set('currentStackVersion', upgradeVersion[0]); } - }.observes('App.upgradeState'), + App.set('upgradeState', 'INIT'); + }, /** * Check App.upgradeState for HOLDING http://git-wip-us.apache.org/repos/asf/ambari/blob/1671d615/ambari-web/test/controllers/global/cluster_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/global/cluster_controller_test.js b/ambari-web/test/controllers/global/cluster_controller_test.js index 2bf4ab4..0fb8b22 100644 --- a/ambari-web/test/controllers/global/cluster_controller_test.js +++ b/ambari-web/test/controllers/global/cluster_controller_test.js @@ -489,6 +489,33 @@ describe('App.clusterController', function () { }); + describe("has completed upgrade request", function() { + + beforeEach(function () { + data.upgradeData = {items: [ + { + Upgrade: { + request_id: 1, + request_status: 'COMPLETED' + } + } + ]}; + controller.restoreUpgradeState(); + }); + + it('getAllUpgrades is called once', function () { + expect(controller.getAllUpgrades.calledOnce).to.be.true; + }); + + it('restoreLastUpgrade should not be called', function () { + expect(upgradeController.restoreLastUpgrade.called).to.be.false; + }); + + it('loadStackVersionsToModel should not be called', function () { + expect(upgradeController.loadStackVersionsToModel.called).to.be.false; + }); + }); + describe("does not have upgrade request", function() { beforeEach(function () { http://git-wip-us.apache.org/repos/asf/ambari/blob/1671d615/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 e547d73..3817ace 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 @@ -219,11 +219,15 @@ describe('App.MainAdminStackAndUpgradeController', function() { beforeEach(function () { sinon.stub(controller, 'updateUpgradeData', Em.K); sinon.stub(controller, 'setDBProperty', Em.K); + sinon.stub(controller, 'finish'); }); afterEach(function () { controller.updateUpgradeData.restore(); controller.setDBProperty.restore(); + controller.finish.restore(); + App.set('upgradeState', 'INIT'); }); + it("correct data", function() { var data = { "Upgrade": { @@ -242,12 +246,24 @@ describe('App.MainAdminStackAndUpgradeController', function() { expect(controller.updateUpgradeData.calledOnce).to.be.true; expect(controller.setDBProperty.calledWith('upgradeState', 'UPGRADED')).to.be.true; }); + it("data is null", function() { var data = null; controller.loadUpgradeDataSuccessCallback(data); expect(controller.updateUpgradeData.called).to.be.false; expect(controller.setDBProperty.called).to.be.false; }); + + it("finish should be called", function() { + var data = { + "Upgrade": { + "request_status": "COMPLETED" + } + }; + controller.loadUpgradeDataSuccessCallback(data); + expect(controller.finish.calledOnce).to.be.true; + }); + retryCases.forEach(function (item) { it(item.title, function () { var data = {