Repository: ambari
Updated Branches:
  refs/heads/branch-2.4 7e93fc334 -> 3e1d7cb6e


AMBARI-16704 UI - RU/EU, when initiating a downgrade, should ensure that 
request to ABORT upgrade returns 200.(ababiichuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d6987b36
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d6987b36
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d6987b36

Branch: refs/heads/branch-2.4
Commit: d6987b36bb88596a38b166d7a21fbc916136eaa2
Parents: 7e93fc3
Author: ababiichuk <ababiic...@hortonworks.com>
Authored: Tue May 17 16:48:06 2016 +0300
Committer: ababiichuk <ababiic...@hortonworks.com>
Committed: Tue May 17 18:03:45 2016 +0300

----------------------------------------------------------------------
 .../main/admin/stack_and_upgrade_controller.js  | 42 ++++++++++++--------
 .../admin/stack_and_upgrade_controller_test.js  | 35 ++++++++++++----
 2 files changed, 53 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d6987b36/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 cdc2aa7..53fdc03 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
@@ -560,22 +560,10 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
    * @param {object} event
    */
   downgrade: function (currentVersion, event) {
+    var self = this;
     this.set('requestInProgress', true);
-    this.abortUpgrade();
-    App.ajax.send({
-      name: 'admin.downgrade.start',
-      sender: this,
-      data: {
-        from: App.RepositoryVersion.find().findProperty('displayName', 
this.get('upgradeVersion')).get('repositoryVersion'),
-        value: currentVersion.repository_version,
-        label: currentVersion.repository_name,
-        isDowngrade: true,
-        upgradeType: this.get('upgradeType')
-      },
-      success: 'upgradeSuccessCallback',
-      callback: function() {
-        this.sender.set('requestInProgress', false);
-      }
+    this.abortUpgrade().done(function() {
+      self.startDowngrade(currentVersion);
     });
   },
 
@@ -594,7 +582,29 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
       error: errorCallback
     });
   },
-  
+
+  /**
+   * just request ro start downgrade,
+   * should be performed only if <code>abortUpgrade<code> was completed
+   */
+  startDowngrade: function(currentVersion) {
+   App.ajax.send({
+      name: 'admin.downgrade.start',
+      sender: this,
+      data: {
+        from: App.RepositoryVersion.find().findProperty('displayName', 
this.get('upgradeVersion')).get('repositoryVersion'),
+        value: currentVersion.repository_version,
+        label: currentVersion.repository_name,
+        isDowngrade: true,
+        upgradeType: this.get('upgradeType')
+      },
+      success: 'upgradeSuccessCallback',
+      callback: function() {
+        this.sender.set('requestInProgress', false);
+      }
+    });
+  },
+
   /**
    * suspend upgrade (in order to restart it later)
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/d6987b36/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 2481bdd..193ed44 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
@@ -998,9 +998,32 @@ describe('App.MainAdminStackAndUpgradeController', 
function() {
     });
   });
 
-  describe("#downgrade()", function() {
+  describe("#downgrade", function() {
+    beforeEach(function () {
+      sinon.stub(controller, 'abortUpgrade').returns({
+        done: function(callback) {callback()}
+      });
+      sinon.stub(controller, 'startDowngrade');
+      controller.downgrade('versionInfo');
+    });
+
+    afterEach(function () {
+      controller.abortUpgrade.restore();
+      controller.startDowngrade.restore();
+    });
+
+    it('should run abortUpgrade', function() {
+      expect(controller.abortUpgrade.calledOnce).to.be.true;
+    });
+
+    it('should run startDowngrade on done', function() {
+      expect(controller.startDowngrade.calledWith('versionInfo')).to.be.true;
+    });
+
+  });
+
+  describe("#startDowngrade()", function() {
     beforeEach(function () {
-      sinon.stub(controller, 'abortUpgrade');
       sinon.stub(App.RepositoryVersion, 'find').returns([
         Em.Object.create({
           displayName: 'HDP-2.3',
@@ -1009,21 +1032,17 @@ describe('App.MainAdminStackAndUpgradeController', 
function() {
       ]);
       controller.set('upgradeVersion', 'HDP-2.3');
       controller.set('upgradeType', 'NON_ROLLING');
-      controller.downgrade(Em.Object.create({
+      controller.startDowngrade(Em.Object.create({
         repository_version: '2.2',
         repository_name: 'HDP-2.2'
-      }), {context: 'context'});
+      }));
       this.callArgs = testHelpers.findAjaxRequest('name', 
'admin.downgrade.start')[0];
     });
 
     afterEach(function () {
-      controller.abortUpgrade.restore();
       App.RepositoryVersion.find.restore();
     });
 
-    it('abortUpgrade is called once', function() {
-      expect(controller.abortUpgrade.calledOnce).to.be.true;
-    });
     it('request-data is valid', function () {
       expect(this.callArgs.data).to.eql({
         from: '2.3',

Reply via email to