Browse Source

AMBARI-13799 Label in Express Upgrade Window shows "Downgrade" while doing upgrade after downgrade. (atkach)

Andrii Tkach 9 years ago
parent
commit
e10d40208a

+ 5 - 1
ambari-web/app/controllers/global/background_operations_controller.js

@@ -207,11 +207,12 @@ App.BackgroundOperationsController = Em.Controller.extend({
     var currentRequestIds = [];
     var countIssued = this.get('operationsCount');
     var countGot = data.itemTotal;
+    var restoreUpgradeState = false;
 
     data.items.forEach(function (request) {
       if (this.isUpgradeRequest(request)) {
         if (!App.get('upgradeIsRunning') && !App.get('testMode')) {
-          App.router.get('clusterController').restoreUpgradeState();
+          restoreUpgradeState = true;
         }
         return;
       }
@@ -252,6 +253,9 @@ App.BackgroundOperationsController = Em.Controller.extend({
       }
       runningServices += ~~isRunning;
     }, this);
+    if (restoreUpgradeState) {
+      App.router.get('clusterController').restoreUpgradeState();
+    }
     this.removeOldRequests(currentRequestIds);
     this.set("allOperationsCount", runningServices);
     this.set('isShowMoreAvailable', countGot >= countIssued);

+ 2 - 0
ambari-web/app/controllers/global/cluster_controller.js

@@ -295,6 +295,7 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
       var upgradeController = App.router.get('mainAdminStackAndUpgradeController');
       var lastUpgradeData = data.items.sortProperty('Upgrade.request_id').pop();
       var dbUpgradeState = App.db.get('MainAdminStackAndUpgrade', 'upgradeState');
+      var fromVersion = App.RepositoryVersion.find().findProperty('repositoryVersion', lastUpgradeData.Upgrade.from_version);
 
       if (!Em.isNone(dbUpgradeState)) {
         App.set('upgradeState', dbUpgradeState);
@@ -307,6 +308,7 @@ App.ClusterController = Em.Controller.extend(App.ReloadPopupMixin, {
           upgradeState: lastUpgradeData.Upgrade.request_status,
           upgradeType: lastUpgradeData.Upgrade.upgrade_type,
           downgradeAllowed: lastUpgradeData.Upgrade.downgrade_allowed,
+          upgradeTypeDisplayName: fromVersion && fromVersion.get('displayName'),
           failuresTolerance: Em.Object.create({
             skipComponentFailures: lastUpgradeData.Upgrade.skip_failures,
             skipSCFailures: lastUpgradeData.Upgrade.skip_service_check_failures

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

@@ -235,7 +235,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
   initDBProperties: function () {
     var props = this.getDBProperties(this.get('wizardStorageProperties'));
     Em.keys(props).forEach(function (k) {
-      if (props[k]) {
+      if (!Em.isNone(props[k])) {
         this.set(k, props[k]);
       }
     }, this);

+ 1 - 1
ambari-web/app/utils/ajax/ajax.js

@@ -1291,7 +1291,7 @@ var urls = {
     'mock': '/data/clusters/info.json'
   },
   'cluster.load_last_upgrade': {
-    'real': '/clusters/{clusterName}/upgrades?fields=Upgrade/request_status,Upgrade/request_id,Upgrade/to_version,Upgrade/direction,Upgrade/upgrade_type,Upgrade/downgrade_allowed,Upgrade/skip_failures,Upgrade/skip_service_check_failures',
+    'real': '/clusters/{clusterName}/upgrades?fields=Upgrade/request_status,Upgrade/request_id,Upgrade/to_version,Upgrade/from_version,Upgrade/direction,Upgrade/upgrade_type,Upgrade/downgrade_allowed,Upgrade/skip_failures,Upgrade/skip_service_check_failures',
     'mock': '/data/stack_versions/upgrades.json'
   },
   'cluster.update_upgrade_version': {

+ 27 - 11
ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js

@@ -444,21 +444,37 @@ describe('App.MainAdminStackAndUpgradeController', function() {
 
   describe("#initDBProperties()", function() {
     before(function () {
-      sinon.stub(controller, 'getDBProperties', function (prop) {
-        var ret = {};
-        prop.forEach(function (k) {
-          ret[k] = k;
-        });
-        return ret;
-      });
+      this.mock = sinon.stub(controller, 'getDBProperties');
     });
     after(function () {
-      controller.getDBProperties.restore();
+      this.mock.restore();
+    });
+    it("set string properties", function () {
+      this.mock.returns({prop: 'string'});
+      controller.initDBProperties();
+      expect(controller.get('prop')).to.equal('string');
+    });
+    it("set number properties", function () {
+      this.mock.returns({prop: 0});
+      controller.initDBProperties();
+      expect(controller.get('prop')).to.equal(0);
+    });
+    it("set boolean properties", function () {
+      this.mock.returns({prop: false});
+      controller.initDBProperties();
+      expect(controller.get('prop')).to.be.false;
+    });
+    it("set undefined properties", function () {
+      this.mock.returns({prop: undefined});
+      controller.set('prop', 'value');
+      controller.initDBProperties();
+      expect(controller.get('prop')).to.equal('value');
     });
-    it("set properties", function () {
-      controller.set('wizardStorageProperties', ['prop1']);
+    it("set null properties", function () {
+      this.mock.returns({prop: null});
+      controller.set('prop', 'value');
       controller.initDBProperties();
-      expect(controller.get('prop1')).to.equal('prop1');
+      expect(controller.get('prop')).to.equal('value');
     });
   });