You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2015/02/27 15:50:00 UTC

ambari git commit: AMBARI-9831 Stack Versions page: disable controls while call in progress. (ababiichuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 394674c18 -> bc8fbbe4b


AMBARI-9831 Stack Versions page: disable controls while call in progress. (ababiichuk)


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

Branch: refs/heads/trunk
Commit: bc8fbbe4b642d3c579098787c99c08ffa4e56f36
Parents: 394674c
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Fri Feb 27 16:28:56 2015 +0200
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Fri Feb 27 16:28:56 2015 +0200

----------------------------------------------------------------------
 .../main/admin/stack_and_upgrade_controller.js  | 27 ++++++++++--
 .../stack_upgrade/stack_upgrade_wizard.hbs      | 10 ++---
 .../stack_upgrade/upgrade_version_box_view.js   |  5 ++-
 .../admin/stack_upgrade/upgrade_wizard_view.js  |  2 +-
 .../admin/stack_and_upgrade_controller_test.js  | 43 +++++++-------------
 .../stack_upgrade/upgrade_wizard_view_test.js   |  9 +++-
 6 files changed, 55 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 d406c90..ca13cec 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
@@ -65,6 +65,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   targetVersions: [],
 
   /**
+   * @type {boolean} true if some request that should disable actions is in progress
+   */
+  requestInProgress: false,
+  /**
    * properties that stored to localStorage to resume wizard progress
    */
   wizardStorageProperties: ['upgradeId', 'upgradeVersion', 'currentVersion', 'isDowngrade'],
@@ -135,6 +139,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
     this.loadUpgradeData(true).done(function() {
       self.loadStackVersionsToModel(true).done(function () {
         self.loadRepoVersionsToModel().done(function() {
+          self.set('requestInProgress', false);
           var currentVersion = App.StackVersion.find().findProperty('state', 'CURRENT');
           if (currentVersion) {
             self.set('currentVersion', {
@@ -283,6 +288,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param {object} event
    */
   downgrade: function (currentVersion, event) {
+    this.set('requestInProgress', true);
     this.abortUpgrade();
     App.ajax.send({
       name: 'admin.downgrade.start',
@@ -292,7 +298,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
         label: currentVersion.repository_name,
         isDowngrade: true
       },
-      success: 'upgradeSuccessCallback'
+      success: 'upgradeSuccessCallback',
+      callback: function() {
+        this.sender.set('requestInProgress', false);
+      }
     });
   },
 
@@ -314,11 +323,15 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param {object} version
    */
   upgrade: function (version) {
+    this.set('requestInProgress', true);
     App.ajax.send({
       name: 'admin.upgrade.start',
       sender: this,
       data: version,
-      success: 'upgradeSuccessCallback'
+      success: 'upgradeSuccessCallback',
+      callback: function() {
+        this.sender.set('requestInProgress', false);
+      }
     });
     this.setDBProperty('currentVersion', this.get('currentVersion'));
   },
@@ -424,6 +437,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @method installRepoVersion
    */
   installRepoVersion: function (repo) {
+    this.set('requestInProgress', true);
     var data = {
       ClusterStackVersions: {
         stack: repo.get('stackVersionType'),
@@ -436,7 +450,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       name: 'admin.stack_version.install.repo_version',
       sender: this,
       data: data,
-      success: 'installRepoVersionSuccess'
+      success: 'installRepoVersionSuccess',
+      callback: function() {
+        this.sender.set('requestInProgress', false);
+      }
     });
   },
 
@@ -662,6 +679,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param status
    */
   setUpgradeItemStatus: function(item, status) {
+    this.set('requestInProgress', true);
     return App.ajax.send({
       name: 'admin.upgrade.upgradeItem.setState',
       sender: this,
@@ -670,6 +688,9 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
         itemId: item.get('stage_id'),
         groupId: item.get('group_id'),
         status: status
+      },
+      callback: function() {
+        this.sender.set('requestInProgress', false);
       }
     }).done(function () {
       item.set('status', status);

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 5a6151e..f8d6de8 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
@@ -65,12 +65,12 @@
             {{#if view.isHoldingState}}
               <div class="button-row">
                 {{#if view.isDowngradeAvailable}}
-                  <button class="btn btn-danger" {{action confirmDowngrade view.failedItem target="controller"}}>{{t common.downgrade}}</button>
+                  <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.failedItem target="controller"}}>{{t common.downgrade}}</button>
                 {{/if}}
                 {{#if view.failedItem.skippable}}
-                  <button class="btn btn-warning" {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button>
+                  <button class="btn btn-warning" {{bindAttr disabled="controller.requestInProgress"}} {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button>
                 {{/if}}
-                <button class="btn" {{action retry view.failedItem target="view"}}>{{t common.retry}}</button>
+                <button class="btn" {{bindAttr disabled="controller.requestInProgress"}} {{action retry view.failedItem target="view"}}>{{t common.retry}}</button>
               </div>
             {{/if}}
           </div>
@@ -91,7 +91,7 @@
               </label>
               <div class="button-row">
                 {{#if view.isDowngradeAvailable}}
-                  <button class="btn btn-danger" {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
+                  <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
                 {{/if}}
                 <button class="btn" {{action closeWizard target="view.parentView"}}>{{t admin.stackUpgrade.finalize.later}}</button>
                 <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>
@@ -110,7 +110,7 @@
               </label>
               <div class="button-row">
                 {{#if view.isDowngradeAvailable}}
-                  <button class="btn btn-danger" {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
+                  <button class="btn btn-danger" {{bindAttr disabled="controller.requestInProgress"}} {{action confirmDowngrade view.manualItem target="controller"}}>{{t common.downgrade}}</button>
                 {{/if}}
                 <button class="btn" {{action closeWizard target="view.parentView"}}>{{t admin.stackUpgrade.pauseUpgrade}}</button>
                 <button class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}} {{action complete view.manualItem target="view"}}>

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 5326248..4fb89f2 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
@@ -117,7 +117,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
       element.set('isButton', true);
       element.set('text', Em.I18n.t('admin.stackVersions.version.installNow'));
       element.set('action', 'installRepoVersionConfirmation');
-      element.set('isDisabled', !App.isAccessible('ADMIN'));
+      element.set('isDisabled', !App.isAccessible('ADMIN') || this.get('controller.requestInProgress'));
     } else if (status === 'INSTALLING') {
       element.set('iconClass', 'icon-cog');
       element.set('isLink', true);
@@ -128,6 +128,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
         element.set('isButton', true);
         element.set('text', Em.I18n.t('admin.stackVersions.version.performUpgrade'));
         element.set('action', 'confirmUpgrade');
+        element.set('isDisabled', !App.isAccessible('ADMIN') || this.get('controller.requestInProgress'));
       } else {
         element.set('iconClass', 'icon-ok');
         element.set('isLink', true);
@@ -154,7 +155,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
       }
     }
     return element;
-  }.property('content.status', 'controller.isDowngrade', 'isUpgrading'),
+  }.property('content.status', 'controller.isDowngrade', 'isUpgrading', 'controller.requestInProgress'),
 
   didInsertElement: function () {
     App.tooltip($('.link-tooltip'), {title: Em.I18n.t('admin.stackVersions.version.linkTooltip')});

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 5506f4c..aff43b6 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
@@ -151,7 +151,7 @@ App.upgradeWizardView = Em.View.extend({
    * @type {boolean}
    */
   isManualProceedDisabled: function () {
-    return !this.get('isManualDone');
+    return !this.get('isManualDone') || this.get('controller.requestInProgress');
   }.property('isManualDone'),
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 cb7b2c8..daa6a22 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
@@ -299,15 +299,11 @@ describe('App.MainAdminStackAndUpgradeController', function() {
         value: '2.2',
         label: 'HDP-2.2'
       });
-      expect(App.ajax.send.getCall(0).args[0]).to.eql({
-        name: 'admin.upgrade.start',
-        sender: controller,
-        data: {
-          value: '2.2',
-          label: 'HDP-2.2'
-        },
-        success: 'upgradeSuccessCallback'
-      });
+      expect(App.ajax.send.getCall(0).args[0].data).to.eql({"value": '2.2', "label": 'HDP-2.2'});
+      expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.upgrade.start');
+      expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
+      expect(App.ajax.send.getCall(0).args[0].success).to.eql('upgradeSuccessCallback');
+      expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
       expect(controller.setDBProperty.calledWith('currentVersion', {
         repository_version: '2.2'
       })).to.be.true;
@@ -562,16 +558,11 @@ describe('App.MainAdminStackAndUpgradeController', function() {
         repository_name: 'HDP-2.2'
       }), {context: 'context'});
       expect(controller.abortUpgrade.calledOnce).to.be.true;
-      expect(App.ajax.send.getCall(0).args[0]).to.eql({
-        name: 'admin.downgrade.start',
-        sender: controller,
-        data: {
-          value: '2.2',
-          label: 'HDP-2.2',
-          isDowngrade: true
-        },
-        success: 'upgradeSuccessCallback'
-      });
+      expect(App.ajax.send.getCall(0).args[0].data).to.eql({"value": '2.2', "label": 'HDP-2.2', isDowngrade: true});
+      expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.downgrade.start');
+      expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
+      expect(App.ajax.send.getCall(0).args[0].success).to.eql('upgradeSuccessCallback');
+      expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
     });
   });
 
@@ -651,16 +642,10 @@ describe('App.MainAdminStackAndUpgradeController', function() {
         group_id: 1
       });
       controller.setUpgradeItemStatus(item, 'PENDING');
-      expect(App.ajax.send.getCall(0).args[0]).to.eql({
-        name: 'admin.upgrade.upgradeItem.setState',
-        sender: controller,
-        data: {
-          upgradeId: 1,
-          itemId: 1,
-          groupId: 1,
-          status: 'PENDING'
-        }
-      });
+      expect(App.ajax.send.getCall(0).args[0].data).to.eql({upgradeId: 1, itemId: 1, groupId: 1, status: 'PENDING'});
+      expect(App.ajax.send.getCall(0).args[0].name).to.eql('admin.upgrade.upgradeItem.setState');
+      expect(App.ajax.send.getCall(0).args[0].sender).to.eql(controller);
+      expect(App.ajax.send.getCall(0).args[0].callback).to.be.called;
       expect(item.get('status')).to.equal('PENDING');
     });
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/bc8fbbe4/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 46ce13d..b28b18f 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
@@ -216,11 +216,18 @@ describe('App.upgradeWizardView', function () {
   });
 
   describe("#isManualProceedDisabled", function () {
-    it("", function () {
+    it("requestInProgress is false", function () {
       view.set('isManualDone', true);
+      view.set('controller.requestInProgress', false);
       view.propertyDidChange('isManualProceedDisabled');
       expect(view.get('isManualProceedDisabled')).to.be.false;
     });
+    it("requestInProgress is true", function () {
+      view.set('controller.requestInProgress', true);
+      view.propertyDidChange('isManualProceedDisabled');
+      expect(view.get('isManualProceedDisabled')).to.be.true;
+    });
+
   });
 
   describe("#failedItem", function () {