浏览代码

AMBARI-9353 Downgrade should not use the word 'upgrade' on the pop-up. (atkach)

Andrii Tkach 10 年之前
父节点
当前提交
c8d39fbcdb

+ 12 - 2
ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js

@@ -44,6 +44,12 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
    */
    */
   upgradeVersion: null,
   upgradeVersion: null,
 
 
+  /**
+   * @type {boolean}
+   * @default false
+   */
+  isDowngrade: false,
+
   /**
   /**
    * version that currently applied to server
    * version that currently applied to server
    * should be plain object, because stored to localStorage
    * should be plain object, because stored to localStorage
@@ -60,7 +66,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   /**
   /**
    * properties that stored to localStorage to resume wizard progress
    * properties that stored to localStorage to resume wizard progress
    */
    */
-  wizardStorageProperties: ['upgradeId', 'upgradeVersion', 'currentVersion'],
+  wizardStorageProperties: ['upgradeId', 'upgradeVersion', 'currentVersion', 'isDowngrade'],
 
 
   /**
   /**
    * path to the mock json
    * path to the mock json
@@ -284,7 +290,8 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       sender: this,
       sender: this,
       data: {
       data: {
         value: currentVersion.repository_version,
         value: currentVersion.repository_version,
-        label: currentVersion.repository_name
+        label: currentVersion.repository_name,
+        isDowngrade: true
       },
       },
       success: 'upgradeSuccessCallback'
       success: 'upgradeSuccessCallback'
     });
     });
@@ -312,9 +319,11 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
     this.set('upgradeData', null);
     this.set('upgradeData', null);
     this.set('upgradeId', data.resources[0].Upgrade.request_id);
     this.set('upgradeId', data.resources[0].Upgrade.request_id);
     this.set('upgradeVersion', params.label);
     this.set('upgradeVersion', params.label);
+    this.set('isDowngrade', !!params.isDowngrade);
     this.setDBProperty('upgradeVersion', params.label);
     this.setDBProperty('upgradeVersion', params.label);
     this.setDBProperty('upgradeId', data.resources[0].Upgrade.request_id);
     this.setDBProperty('upgradeId', data.resources[0].Upgrade.request_id);
     this.setDBProperty('upgradeState', 'PENDING');
     this.setDBProperty('upgradeState', 'PENDING');
+    this.setDBProperty('isDowngrade', !!params.isDowngrade);
     App.set('upgradeState', 'PENDING');
     App.set('upgradeState', 'PENDING');
     App.clusterStatus.setClusterStatus({
     App.clusterStatus.setClusterStatus({
       wizardControllerName: this.get('name'),
       wizardControllerName: this.get('name'),
@@ -550,6 +559,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
       this.setDBProperty('upgradeState', 'INIT');
       this.setDBProperty('upgradeState', 'INIT');
       this.setDBProperty('upgradeVersion', undefined);
       this.setDBProperty('upgradeVersion', undefined);
       this.setDBProperty('currentVersion', undefined);
       this.setDBProperty('currentVersion', undefined);
+      this.setDBProperty('isDowngrade', undefined);
       App.clusterStatus.setClusterStatus({
       App.clusterStatus.setClusterStatus({
         localdb: App.db.data
         localdb: App.db.data
       });
       });

+ 6 - 11
ambari-web/app/messages.js

@@ -44,8 +44,6 @@ Em.I18n.translations = {
   'app.aboutAmbari.getInvolved': 'Get involved!',
   'app.aboutAmbari.getInvolved': 'Get involved!',
   'app.aboutAmbari.version': 'Version',
   'app.aboutAmbari.version': 'Version',
   'app.aboutAmbari.licensed': 'Licensed under the Apache License, Version 2.0',
   'app.aboutAmbari.licensed': 'Licensed under the Apache License, Version 2.0',
-  'app.upgrade.inProgress': 'Upgrade: In Process',
-  'app.upgrade.holding': 'Upgrade: Action Required',
 
 
   'apply':'apply',
   'apply':'apply',
   'and':'and',
   'and':'and',
@@ -1332,6 +1330,8 @@ Em.I18n.translations = {
   'admin.stackVersions.version.performUpgrade': "Perform Upgrade",
   'admin.stackVersions.version.performUpgrade': "Perform Upgrade",
   'admin.stackVersions.version.upgrade.pause': "Upgrade: Action Required",
   'admin.stackVersions.version.upgrade.pause': "Upgrade: Action Required",
   'admin.stackVersions.version.upgrade.running': "Upgrade: In Process",
   'admin.stackVersions.version.upgrade.running': "Upgrade: In Process",
+  'admin.stackVersions.version.downgrade.pause': "Downgrade: Action Required",
+  'admin.stackVersions.version.downgrade.running': "Downgrade: In Process",
 
 
   'admin.stackVersions.hosts.popup.header.current': "Current",
   'admin.stackVersions.hosts.popup.header.current': "Current",
   'admin.stackVersions.hosts.popup.header.installed': "Installed",
   'admin.stackVersions.hosts.popup.header.installed': "Installed",
@@ -1352,19 +1352,14 @@ Em.I18n.translations = {
   'admin.stackUpgrade.downgrade.title': "Downgrade to {0}",
   'admin.stackUpgrade.downgrade.title': "Downgrade to {0}",
   'admin.stackUpgrade.downgrade.body': "Are you sure you wish to abort the upgrade process and downgrade to {0}",
   'admin.stackUpgrade.downgrade.body': "Are you sure you wish to abort the upgrade process and downgrade to {0}",
   'admin.stackUpgrade.title': "Stack and Versions",
   'admin.stackUpgrade.title': "Stack and Versions",
-  'admin.stackUpgrade.hostsOnline': "{0}/{1} hosts online",
-  'admin.stackUpgrade.state.available': "Upgrade Available",
-  'admin.stackUpgrade.state.notAvailable': "No Upgrade Available",
-  'admin.stackUpgrade.state.resume': "Resume Upgrade",
   'admin.stackUpgrade.state.inProgress': "Upgrade in Progress",
   'admin.stackUpgrade.state.inProgress': "Upgrade in Progress",
   'admin.stackUpgrade.state.paused': "Upgrade Paused",
   'admin.stackUpgrade.state.paused': "Upgrade Paused",
-  'admin.stackUpgrade.state.stopped': "Upgrade Stopped",
   'admin.stackUpgrade.state.completed': "Upgrade Finished",
   'admin.stackUpgrade.state.completed': "Upgrade Finished",
-  'admin.stackUpgrade.state.failed': "Upgrade Failed",
-  'admin.stackUpgrade.state.upgrading': "Upgrading...",
-  'admin.stackUpgrade.hosts': "hosts",
-  'admin.stackUpgrade.host': "host",
+  'admin.stackUpgrade.state.inProgress.downgrade': "Downgrade in Progress",
+  'admin.stackUpgrade.state.paused.downgrade': "Downgrade Paused",
+  'admin.stackUpgrade.state.completed.downgrade': "Downgrade Finished",
   'admin.stackUpgrade.dialog.header': "Upgrade to {0}",
   'admin.stackUpgrade.dialog.header': "Upgrade to {0}",
+  'admin.stackUpgrade.dialog.downgrade.header': "Downgrade to {0}",
   'admin.stackUpgrade.dialog.operationFailed': "This operation failed.",
   'admin.stackUpgrade.dialog.operationFailed': "This operation failed.",
   'admin.stackUpgrade.dialog.stop': "Stop Upgrade",
   'admin.stackUpgrade.dialog.stop': "Stop Upgrade",
   'admin.stackUpgrade.dialog.continue': "Ignore and Proceed",
   'admin.stackUpgrade.dialog.continue': "Ignore and Proceed",

+ 7 - 2
ambari-web/app/routes/stack_upgrade_routes.js

@@ -35,8 +35,13 @@ module.exports = App.WizardRoute.extend({
       return App.ModalPopup.show({
       return App.ModalPopup.show({
         classNames: ['full-width-modal'],
         classNames: ['full-width-modal'],
         header: function () {
         header: function () {
-          return Em.I18n.t('admin.stackUpgrade.dialog.header').format(App.router.get('mainAdminStackAndUpgradeController').get('upgradeVersion'));
-        }.property('App.router.mainAdminStackAndUpgradeController.upgradeVersion'),
+          var controller = App.router.get('mainAdminStackAndUpgradeController');
+          if (controller.get('isDowngrade')) {
+            return Em.I18n.t('admin.stackUpgrade.dialog.downgrade.header').format(controller.get('upgradeVersion'));
+          } else {
+            return Em.I18n.t('admin.stackUpgrade.dialog.header').format(controller.get('upgradeVersion'));
+          }
+        }.property('App.router.mainAdminStackAndUpgradeController.upgradeVersion', 'App.router.mainAdminStackAndUpgradeController.isDowngrade'),
         bodyClass: App.upgradeWizardView,
         bodyClass: App.upgradeWizardView,
         primary: Em.I18n.t('common.dismiss'),
         primary: Em.I18n.t('common.dismiss'),
         secondary: null,
         secondary: null,

+ 14 - 4
ambari-web/app/templates/application.hbs

@@ -45,12 +45,22 @@
                 {{/if}}
                 {{/if}}
               {{/with}}
               {{/with}}
               {{#if App.upgradeInProgress}}
               {{#if App.upgradeInProgress}}
-                <span class="label upgrade-in-progress" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                  <i class="icon-cog"></i> {{t app.upgrade.inProgress}}</span>
+                {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
+                  <span class="label upgrade-in-progress" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+                     <i class="icon-cog"></i>&nbsp;{{t admin.stackVersions.version.downgrade.running}}</span>
+                {{else}}
+                  <span class="label upgrade-in-progress" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+                     <i class="icon-cog"></i>&nbsp;{{t admin.stackVersions.version.upgrade.running}}</span>
+                {{/if}}
               {{/if}}
               {{/if}}
               {{#if App.upgradeHolding}}
               {{#if App.upgradeHolding}}
-                <span class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
-                  <i class="icon-pause"></i> {{t app.upgrade.holding}}</span>
+                {{#if App.router.mainAdminStackAndUpgradeController.isDowngrade}}
+                  <span class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+                  <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.downgrade.pause}}</span>
+                {{else}}
+                  <span class="label upgrade-holding" {{action "openUpgradeDialog" target="App.router.mainAdminStackAndUpgradeController"}}>
+                  <i class="icon-pause"></i>&nbsp;{{t admin.stackVersions.version.upgrade.pause}}</span>
+                {{/if}}
               {{/if}}
               {{/if}}
             </a>
             </a>
           {{else}}
           {{else}}

+ 2 - 2
ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs

@@ -18,9 +18,9 @@
 
 
 <div id="stack-upgrade-dialog">
 <div id="stack-upgrade-dialog">
   <div {{bindAttr class="view.isLoaded::hidden :row-fluid"}}>
   <div {{bindAttr class="view.isLoaded::hidden :row-fluid"}}>
-    <div class="span2 task-list-main-warp">{{statusIcon controller.upgradeData.Upgrade.request_status}}
+    <div class="span3 task-list-main-warp">{{statusIcon controller.upgradeData.Upgrade.request_status}}
       &nbsp;{{view.upgradeStatusLabel}}</div>
       &nbsp;{{view.upgradeStatusLabel}}</div>
-    <div class="span9">
+    <div class="span8">
       {{view App.ProgressBarView
       {{view App.ProgressBarView
         progressBinding="view.overallProgress"
         progressBinding="view.overallProgress"
         statusBinding="controller.upgradeData.Upgrade.request_status"
         statusBinding="controller.upgradeData.Upgrade.request_status"

+ 11 - 3
ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js

@@ -126,14 +126,22 @@ App.UpgradeVersionBoxView = Em.View.extend({
       element.set('action', 'openUpgradeDialog');
       element.set('action', 'openUpgradeDialog');
       if (['HOLDING', 'HOLDING_FAILED', 'HOLDING_TIMEDOUT'].contains(App.get('upgradeState'))) {
       if (['HOLDING', 'HOLDING_FAILED', 'HOLDING_TIMEDOUT'].contains(App.get('upgradeState'))) {
         element.set('iconClass', 'icon-pause');
         element.set('iconClass', 'icon-pause');
-        element.set('text', Em.I18n.t('admin.stackVersions.version.upgrade.pause'));
+        if (this.get('controller.isDowngrade')) {
+          element.set('text', Em.I18n.t('admin.stackVersions.version.downgrade.pause'));
+        } else {
+          element.set('text', Em.I18n.t('admin.stackVersions.version.upgrade.pause'));
+        }
       } else {
       } else {
         element.set('iconClass', 'icon-cog');
         element.set('iconClass', 'icon-cog');
-        element.set('text', Em.I18n.t('admin.stackVersions.version.upgrade.running'));
+        if (this.get('controller.isDowngrade')) {
+          element.set('text', Em.I18n.t('admin.stackVersions.version.downgrade.running'));
+        } else {
+          element.set('text', Em.I18n.t('admin.stackVersions.version.upgrade.running'));
+        }
       }
       }
     }
     }
     return element;
     return element;
-  }.property('content.status'),
+  }.property('content.status', 'controller.isDowngrade'),
 
 
   didInsertElement: function () {
   didInsertElement: function () {
     App.tooltip($('.link-tooltip'), {title: Em.I18n.t('admin.stackVersions.version.linkTooltip')});
     App.tooltip($('.link-tooltip'), {title: Em.I18n.t('admin.stackVersions.version.linkTooltip')});

+ 16 - 8
ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js

@@ -62,8 +62,8 @@ App.upgradeWizardView = Em.View.extend({
    * @type {boolean}
    * @type {boolean}
    */
    */
   isDowngradeAvailable: function () {
   isDowngradeAvailable: function () {
-    return stringUtils.compareVersions(this.get('controller.upgradeVersion'), this.get('controller.currentVersion.repository_version')) === 1;
-  }.property('controller.currentVersion', 'controller.upgradeVersion'),
+    return !this.get('controller.isDowngrade');
+  }.property('controller.isDowngrade'),
 
 
   /**
   /**
    * progress value is rounded to floor
    * progress value is rounded to floor
@@ -164,24 +164,32 @@ App.upgradeWizardView = Em.View.extend({
    * @type {string}
    * @type {string}
    */
    */
   upgradeStatusLabel: function() {
   upgradeStatusLabel: function() {
+    var labelKey = null;
     switch (this.get('controller.upgradeData.Upgrade.request_status')) {
     switch (this.get('controller.upgradeData.Upgrade.request_status')) {
       case 'QUEUED':
       case 'QUEUED':
       case 'PENDING':
       case 'PENDING':
       case 'IN_PROGRESS':
       case 'IN_PROGRESS':
-        return Em.I18n.t('admin.stackUpgrade.state.inProgress');
+        labelKey = 'admin.stackUpgrade.state.inProgress';
+        break;
       case 'COMPLETED':
       case 'COMPLETED':
-        return Em.I18n.t('admin.stackUpgrade.state.completed');
+        labelKey = 'admin.stackUpgrade.state.completed';
+        break;
       case 'ABORTED':
       case 'ABORTED':
       case 'TIMEDOUT':
       case 'TIMEDOUT':
       case 'FAILED':
       case 'FAILED':
       case 'HOLDING_FAILED':
       case 'HOLDING_FAILED':
       case 'HOLDING_TIMEDOUT':
       case 'HOLDING_TIMEDOUT':
       case 'HOLDING':
       case 'HOLDING':
-        return Em.I18n.t('admin.stackUpgrade.state.paused');
-      default:
-        return ""
+        labelKey = 'admin.stackUpgrade.state.paused';
+        break;
     }
     }
-  }.property('controller.upgradeData.Upgrade.request_status'),
+    if (labelKey) {
+      labelKey += (this.get('controller.isDowngrade')) ? '.downgrade' : "";
+      return Em.I18n.t(labelKey);
+    } else {
+      return "";
+    }
+  }.property('controller.upgradeData.Upgrade.request_status', 'controller.isDowngrade'),
 
 
   /**
   /**
    * toggle details box
    * toggle details box

+ 5 - 2
ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js

@@ -254,12 +254,14 @@ describe('App.MainAdminStackAndUpgradeController', function() {
           }
           }
         ]
         ]
       };
       };
-      controller.upgradeSuccessCallback(data, {}, {label: 'HDP-2.2.1'});
+      controller.upgradeSuccessCallback(data, {}, {label: 'HDP-2.2.1', isDowngrade: true});
       expect(controller.setDBProperty.calledWith('upgradeId', 1)).to.be.true;
       expect(controller.setDBProperty.calledWith('upgradeId', 1)).to.be.true;
       expect(controller.setDBProperty.calledWith('upgradeVersion', 'HDP-2.2.1')).to.be.true;
       expect(controller.setDBProperty.calledWith('upgradeVersion', 'HDP-2.2.1')).to.be.true;
+      expect(controller.setDBProperty.calledWith('isDowngrade', true)).to.be.true;
       expect(controller.load.calledOnce).to.be.true;
       expect(controller.load.calledOnce).to.be.true;
       expect(controller.get('upgradeVersion')).to.equal('HDP-2.2.1');
       expect(controller.get('upgradeVersion')).to.equal('HDP-2.2.1');
       expect(controller.get('upgradeData')).to.be.null;
       expect(controller.get('upgradeData')).to.be.null;
+      expect(controller.get('isDowngrade')).to.be.true;
       expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
       expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
       expect(controller.openUpgradeDialog.calledOnce).to.be.true;
       expect(controller.openUpgradeDialog.calledOnce).to.be.true;
     });
     });
@@ -457,7 +459,8 @@ describe('App.MainAdminStackAndUpgradeController', function() {
         sender: controller,
         sender: controller,
         data: {
         data: {
           value: '2.2',
           value: '2.2',
-          label: 'HDP-2.2'
+          label: 'HDP-2.2',
+          isDowngrade: true
         },
         },
         success: 'upgradeSuccessCallback'
         success: 'upgradeSuccessCallback'
       });
       });

+ 2 - 10
ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js

@@ -246,20 +246,12 @@ describe('App.upgradeWizardView', function () {
 
 
   describe("#isDowngradeAvailable", function() {
   describe("#isDowngradeAvailable", function() {
     it("downgrade available", function() {
     it("downgrade available", function() {
-      view.set('controller.upgradeVersion', '2.2.1');
-      view.set('controller.currentVersion', {repository_version: '2.2'});
+      view.set('controller.isDowngrade', false);
       view.propertyDidChange('isDowngradeAvailable');
       view.propertyDidChange('isDowngradeAvailable');
       expect(view.get('isDowngradeAvailable')).to.be.true;
       expect(view.get('isDowngradeAvailable')).to.be.true;
     });
     });
     it("downgrade unavailable", function() {
     it("downgrade unavailable", function() {
-      view.set('controller.upgradeVersion', '2.2');
-      view.set('controller.currentVersion', {repository_version: '2.2'});
-      view.propertyDidChange('isDowngradeAvailable');
-      expect(view.get('isDowngradeAvailable')).to.be.false;
-    });
-    it("downgrade unavailable", function() {
-      view.set('controller.upgradeVersion', '2.2');
-      view.set('controller.currentVersion', {repository_version: '2.2.1'});
+      view.set('controller.isDowngrade', true);
       view.propertyDidChange('isDowngradeAvailable');
       view.propertyDidChange('isDowngradeAvailable');
       expect(view.get('isDowngradeAvailable')).to.be.false;
       expect(view.get('isDowngradeAvailable')).to.be.false;
     });
     });