Browse Source

AMBARI-8926 After restarting ambari-server, I was redirected to /main/admin/versions/null page. (ababiichuk)

aBabiichuk 10 years ago
parent
commit
08d73372ef

+ 1 - 1
ambari-web/app/mappers/repository_version_mapper.js

@@ -75,7 +75,7 @@ App.repoVersionMapper = App.QuickDataMapper.create({
 
     if (json && json.items) {
       json.items.forEach(function (item) {
-        if (loadAll || (item.RepositoryVersions && !App.StackVersion.find().someProperty('repositoryVersion.id', item.RepositoryVersions.id.toString()))) {
+        if (loadAll || (item.RepositoryVersions && !App.StackVersion.find().someProperty('repositoryVersion.id', item.RepositoryVersions.id))) {
           var repo = item;
           var osArray = [];
           //TODO leave onr property name after api will be fixed

+ 0 - 1
ambari-web/app/models/stack_version/repository_version.js

@@ -19,7 +19,6 @@
 var App = require('app');
 
 App.RepositoryVersion = DS.Model.extend({
-  id: DS.attr('string'),
   displayName : DS.attr('string'),
   repositoryVersion : DS.attr('string'),
   upgradePack : DS.attr('string'),

+ 0 - 1
ambari-web/app/models/stack_version/version.js

@@ -19,7 +19,6 @@
 var App = require('app');
 
 App.StackVersion = DS.Model.extend({
-  id: DS.attr('string'),
   clusterName: DS.attr('string'),
   stack: DS.attr('string'),
   version: DS.attr('string'),

+ 11 - 10
ambari-web/app/routes/main.js

@@ -509,28 +509,29 @@ module.exports = Em.Route.extend({
 
     adminStackVersions: Em.Route.extend({
       route: '/versions',
+      enter: function (router) {
+        if (App.get('supports.stackUpgrade')) {
+          router.set('mainAdminController.category', "stackVersions");
+        } else {
+          router.transitionTo('admin.stackAndUpgrade');
+        }
+      },
       index: Em.Route.extend({
         route: '/',
         connectOutlets: function (router) {
-          if (App.get('supports.stackUpgrade')) {
-            router.set('mainAdminController.category', "stackVersions");
-            router.get('mainAdminController').connectOutlet('mainStackVersions');
-          }
+          router.get('mainAdminController').connectOutlet('mainStackVersions');
         }
       }),
       version: Em.Route.extend({
         route: '/:repository_version_id',
-        connectOutlets: function (router, stackVersion) {
-          router.get('mainAdminController').connectOutlet('mainStackVersionsDetails', stackVersion);
+        connectOutlets: function (router, repoVersion) {
+          router.get('mainAdminController').connectOutlet('mainStackVersionsDetails', repoVersion);
         }
       }),
       update: Em.Route.extend({
         route: '/updates',
         connectOutlets: function (router) {
-          if (App.get('supports.stackUpgrade')) {
-            router.set('mainAdminController.category', "stackVersions");
-            router.get('mainAdminController').connectOutlet('repoVersions');
-          }
+          router.get('mainAdminController').connectOutlet('repoVersions');
         }
       })
     }),

+ 3 - 0
ambari-web/app/views/main/admin/stack_versions/stack_version_details_view.js

@@ -121,6 +121,9 @@ App.MainStackVersionsDetailsView = Em.View.extend({
 
   didInsertElement: function() {
     App.get('router.mainStackVersionsController').set('isPolling', true);
+    if (!App.RepositoryVersion.find().findProperty('id', this.get('content.id'))) {
+      App.get('router.mainStackVersionsController').load();
+    }
     App.get('router.mainStackVersionsController').doPolling();
     this.get('controller').doPolling();
   },

+ 17 - 0
ambari-web/test/views/main/admin/stack_version/stack_version_details_test.js

@@ -85,17 +85,34 @@ describe('App.MainStackVersionsDetailsView', function () {
   describe('#didInsertElement', function () {
     beforeEach(function() {
       sinon.stub(App.get('router.mainStackVersionsController'), 'set', Em.K);
+      sinon.stub(App.get('router.mainStackVersionsController'), 'load', Em.K);
       sinon.stub(App.get('router.mainStackVersionsController'), 'doPolling', Em.K);
       sinon.stub(view.get('controller'), 'doPolling', Em.K);
+      sinon.stub(App.RepositoryVersion, 'find', function() {
+        return [{id: 1}]
+      });
     });
     afterEach(function() {
       App.get('router.mainStackVersionsController').set.restore();
+      App.get('router.mainStackVersionsController').load.restore();
       App.get('router.mainStackVersionsController').doPolling.restore();
       view.get('controller').doPolling.restore();
+      App.RepositoryVersion.find.restore();
     });
+    it("runs polling and load when view is in dom" , function() {
+      view.set('content.id', 2);
+      view.didInsertElement();
+      expect(App.get('router.mainStackVersionsController').set.calledWith('isPolling', true)).to.be.true;
+      expect(App.get('router.mainStackVersionsController').load.calledOnce).to.be.true;
+      expect(App.get('router.mainStackVersionsController').doPolling.calledOnce).to.be.true;
+      expect(view.get('controller').doPolling.calledOnce).to.be.true;
+    });
+
     it("runs polling when view is in dom" , function() {
+      view.set('content.id', 1);
       view.didInsertElement();
       expect(App.get('router.mainStackVersionsController').set.calledWith('isPolling', true)).to.be.true;
+      expect(App.get('router.mainStackVersionsController').load.calledOnce).to.be.false;
       expect(App.get('router.mainStackVersionsController').doPolling.calledOnce).to.be.true;
       expect(view.get('controller').doPolling.calledOnce).to.be.true;
     });