Repository: ambari Updated Branches: refs/heads/trunk 0a0e29d0e -> 0f10e841a
AMBARI-13219 Not all hosts displayed on hosts page. (atkach) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0f10e841 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0f10e841 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0f10e841 Branch: refs/heads/trunk Commit: 0f10e841a24940bbba4281a0a09e936b43df00ee Parents: 0a0e29d Author: Andrii Tkach <[email protected]> Authored: Thu Sep 24 13:15:49 2015 +0300 Committer: Andrii Tkach <[email protected]> Committed: Thu Sep 24 13:15:49 2015 +0300 ---------------------------------------------------------------------- ambari-web/app/controllers/main/host.js | 1 - ambari-web/app/mappers/hosts_mapper.js | 10 +++--- .../details/host_components/decommissionable.js | 1 + ambari-web/app/views/main/host/details.js | 5 +-- .../decommissionable_test.js | 34 ++++++++++++++++++++ 5 files changed, 44 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0f10e841/ambari-web/app/controllers/main/host.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/host.js b/ambari-web/app/controllers/main/host.js index 4a0a418..7ffd89e 100644 --- a/ambari-web/app/controllers/main/host.js +++ b/ambari-web/app/controllers/main/host.js @@ -24,7 +24,6 @@ var hostsManagement = require('utils/hosts'); App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, { name: 'mainHostController', - dataSource: App.Host.find(), clearFilters: null, filteredCount: 0, http://git-wip-us.apache.org/repos/asf/ambari/blob/0f10e841/ambari-web/app/mappers/hosts_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/hosts_mapper.js b/ambari-web/app/mappers/hosts_mapper.js index 733160e..ed9ef26 100644 --- a/ambari-web/app/mappers/hosts_mapper.js +++ b/ambari-web/app/mappers/hosts_mapper.js @@ -182,15 +182,17 @@ App.hostsMapper = App.QuickDataMapper.create({ for (var k = 0; k < advancedHostComponents.length; k++) { - var id = advancedHostComponents[k]; - if (componentsIdMap[id]) componentsIdMap[id].display_name_advanced = App.HostComponent.find(id).get('displayNameAdvanced'); - }; + var key = advancedHostComponents[k]; + if (componentsIdMap[key]) componentsIdMap[key].display_name_advanced = App.HostComponent.find(key).get('displayNameAdvanced'); + } + App.store.commit(); if (stackUpgradeSupport) { App.store.loadMany(App.HostStackVersion, stackVersions); } App.store.loadMany(App.HostComponent, components); - if (App.router.get('currentState.parentState.name') != 'hostDetails') { + //"itemTotal" present only for Hosts page request + if (!Em.isNone(json.itemTotal)) { App.Host.find().clear(); } App.store.loadMany(App.Host, hostsWithFullInfo); http://git-wip-us.apache.org/repos/asf/ambari/blob/0f10e841/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js index 8dae252..b99cea7 100644 --- a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js +++ b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js @@ -143,6 +143,7 @@ App.Decommissionable = Em.Mixin.create({ * Get desired_admin_state status from server */ getDesiredAdminState: function () { + if (Em.isNone(this.get('content'))) return null; return App.ajax.send({ name: 'host.host_component.slave_desired_admin_state', sender: this, http://git-wip-us.apache.org/repos/asf/ambari/blob/0f10e841/ambari-web/app/views/main/host/details.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/host/details.js b/ambari-web/app/views/main/host/details.js index 3113135..ea60181 100644 --- a/ambari-web/app/views/main/host/details.js +++ b/ambari-web/app/views/main/host/details.js @@ -58,12 +58,13 @@ App.MainHostDetailsView = Em.View.extend({ }.property('controller.content','isActive', 'controller.content.isNotHeartBeating'), didInsertElement: function() { var self = this; + var host = self.get('content'); - this.set('isLoaded', App.Host.find(this.get('content.id')).get('isLoaded')); + this.set('isLoaded', App.Host.find(host.get('id')).get('isLoaded')); App.router.get('updateController').updateHost(function () { self.set('isLoaded', true); App.tooltip($("[rel='HealthTooltip']")); - if (!self.get('content.isLoaded')) { + if (!host.get('isLoaded')) { //if host is not existed then route to list of hosts App.router.transitionTo('main.hosts.index'); } http://git-wip-us.apache.org/repos/asf/ambari/blob/0f10e841/ambari-web/test/views/main/host/details/host_component_views/decommissionable_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/main/host/details/host_component_views/decommissionable_test.js b/ambari-web/test/views/main/host/details/host_component_views/decommissionable_test.js index 659cfbd..7c02870 100644 --- a/ambari-web/test/views/main/host/details/host_component_views/decommissionable_test.js +++ b/ambari-web/test/views/main/host/details/host_component_views/decommissionable_test.js @@ -220,4 +220,38 @@ describe('App.Decommissionable', function() { }); + describe("#getDesiredAdminState()", function() { + beforeEach(function () { + sinon.stub(App.ajax, 'send', Em.K); + }); + afterEach(function () { + App.ajax.send.restore(); + }); + it("content is null", function() { + hostComponentView = Em.View.create(App.Decommissionable, { + content: null + }); + hostComponentView.getDesiredAdminState(); + expect(App.ajax.send.called).to.be.false; + }); + it("content is correct", function() { + hostComponentView = Em.View.create(App.Decommissionable, { + content: Em.Object.create({ + hostName: 'host1', + componentName: 'C1' + }) + }); + hostComponentView.getDesiredAdminState(); + expect(App.ajax.send.calledWith({ + name: 'host.host_component.slave_desired_admin_state', + sender: hostComponentView, + data: { + hostName: 'host1', + componentName: 'C1' + }, + success: 'getDesiredAdminStateSuccessCallback', + error: 'getDesiredAdminStateErrorCallback' + })).to.be.true; + }); + }); });
