You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/12/28 20:31:25 UTC

ambari git commit: AMBARI-14509. Handle the case when UI call to 'Install Packages' action times out (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.2 d37f8c7e5 -> c187a8299


AMBARI-14509. Handle the case when UI call to 'Install Packages' action times out (alexantonenko)


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

Branch: refs/heads/branch-2.2
Commit: c187a8299f35786b84489fbf3281674ba934186a
Parents: d37f8c7
Author: Alex Antonenko <hi...@gmail.com>
Authored: Mon Dec 28 21:30:41 2015 +0200
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Mon Dec 28 21:30:41 2015 +0200

----------------------------------------------------------------------
 .../main/admin/stack_and_upgrade_controller.js      | 16 +++++++++++++++-
 ambari-web/app/messages.js                          |  2 ++
 .../admin/stack_upgrade/upgrade_version_box.hbs     |  3 +++
 .../admin/stack_upgrade/upgrade_version_box_view.js |  8 +++++++-
 4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c187a829/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 f77397b..483d90e 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
@@ -140,6 +140,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    */
   requestInProgress: false,
   /**
+   * @type {number} repo id, request for which is currently in progress
+   */
+  requestInProgressRepoId: null,
+  /**
    * @type {boolean} true while no updated upgrade info is loaded after retry
    */
   isRetryPending: false,
@@ -603,7 +607,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @param {object} data
    */
   upgradeErrorCallback: function (data) {
-    var header = Em.I18n.t('admin.stackVersions.upgrade.start.fail.title');
+    var header = Em.I18n.t('admin.stackVersions.upgrade.installPackage.fail.title');
     var body = "";
     if(data && data.responseText){
       try {
@@ -611,6 +615,9 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
         body = json.message;
       } catch (err) {}
     }
+    if(data && data.statusText == "timeout") {
+      body = Em.I18n.t('admin.stackVersions.upgrade.installPackage.fail.timeout');
+    }
     App.showAlertPopup(header, body);
   },
 
@@ -1147,6 +1154,8 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    */
   installRepoVersion: function (repo) {
     this.set('requestInProgress', true);
+    this.set('requestInProgressRepoId', repo.get('id'));
+
     var data = {
       ClusterStackVersions: {
         stack: repo.get('stackVersionType'),
@@ -1162,6 +1171,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       success: 'installRepoVersionSuccess',
       callback: function() {
         this.sender.set('requestInProgress', false);
+        this.sender.set('requestInProgressRepoId', null);
       }
     });
   },
@@ -1300,6 +1310,10 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    * @method installStackVersionSuccess
    */
   installRepoVersionSuccess: function (data, opt, params) {
+    if(data && data.statusText == "timeout") {
+      App.showAlertPopup(Em.I18n.t('admin.stackVersions.upgrade.installPackage.fail.title'), Em.I18n.t('admin.stackVersions.upgrade.installPackage.fail.timeout'));
+      return false;
+    }
     var version = App.RepositoryVersion.find(params.id);
     App.db.set('repoVersionInstall', 'id', [data.Requests.id]);
     App.clusterStatus.setClusterStatus({

http://git-wip-us.apache.org/repos/asf/ambari/blob/c187a829/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 1ad0f6a..7b409c6 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1461,6 +1461,8 @@ Em.I18n.translations = {
   'admin.stackVersions.filter.upgrading': "Upgrade/Downgrade In Process ({0})",
   'admin.stackVersions.filter.upgraded': "Ready to Finalize ({0})",
   'admin.stackVersions.upgrade.start.fail.title':'Upgrade could not be started',
+  'admin.stackVersions.upgrade.installPackage.fail.title':'Packages could not be installed',
+  'admin.stackVersions.upgrade.installPackage.fail.timeout':'Request timed out.',
 
   'admin.stackVersions.editRepositories.info': 'Provide Base URLs for the Operating Systems you are configuring. Uncheck all other Operating Systems.',
   'admin.stackVersions.editRepositories.validation.warning': 'Some of the repositories failed validation. Make changes to the base url or skip validation if you are sure that urls are correct',

http://git-wip-us.apache.org/repos/asf/ambari/blob/c187a829/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
index 96d4544..1bc81c5 100644
--- a/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
+++ b/ambari-web/app/templates/main/admin/stack_upgrade/upgrade_version_box.hbs
@@ -71,6 +71,9 @@
       }}
     {{/if}}
   {{/if}}
+  {{#if view.stateElement.isSpinner}}
+    <div {{bindAttr class="view.stateElement.class"}}></div>
+  {{/if}}
 </div>
 
 <div class="hosts-section">

http://git-wip-us.apache.org/repos/asf/ambari/blob/c187a829/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 22a578a..2a0b170 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
@@ -116,6 +116,10 @@ App.UpgradeVersionBoxView = Em.View.extend({
       text: Em.I18n.t('admin.stackVersions.version.installNow'),
       action: 'installRepoVersionConfirmation'
     },
+    'LOADING': {
+      isSpinner: true,
+      class: 'spinner'
+    },
     'INSTALLING': {
       iconClass: 'icon-cog',
       isLink: true,
@@ -143,6 +147,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
   stateElement: function () {
     var currentVersion = this.get('controller.currentVersion');
     var statePropertiesMap = this.get('statePropertiesMap');
+    var requestInProgressRepoId = this.get('controller.requestInProgressRepoId');
     var status = this.get('content.status');
     var element = Em.Object.create({
       status: status,
@@ -159,7 +164,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
       element.setProperties(statePropertiesMap[status]);
     }
     else if (status === 'INIT') {
-      element.setProperties(statePropertiesMap[status]);
+      requestInProgressRepoId && requestInProgressRepoId == this.get('content.id') ? element.setProperties(statePropertiesMap['LOADING']) : element.setProperties(statePropertiesMap[status]);
       element.set('isDisabled', !App.isAccessible('ADMIN') || this.get('controller.requestInProgress') || isInstalling);
     }
     else if ((status === 'INSTALLED' && !this.get('isUpgrading')) ||
@@ -223,6 +228,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
     'controller.isDowngrade',
     'isUpgrading',
     'controller.requestInProgress',
+    'controller.requestInProgressRepoId',
     'parentView.repoVersions.@each.status'
   ),