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/04/16 19:50:26 UTC
ambari git commit: AMBARI-10537. Service Actions menu: after page
refresh,
slaves rolling restart and download configs items appear with delay
(alexantonenko)
Repository: ambari
Updated Branches:
refs/heads/trunk d835f4485 -> 34e60b07f
AMBARI-10537. Service Actions menu: after page refresh, slaves rolling restart and download configs items appear with delay (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/34e60b07
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/34e60b07
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/34e60b07
Branch: refs/heads/trunk
Commit: 34e60b07ff340f786b4e73a36959e6974d5bed8b
Parents: d835f44
Author: Alex Antonenko <hi...@gmail.com>
Authored: Thu Apr 16 20:50:19 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Thu Apr 16 20:50:19 2015 +0300
----------------------------------------------------------------------
.../app/controllers/global/update_controller.js | 1 +
ambari-web/app/controllers/main/service/item.js | 2 +
ambari-web/app/routes/main.js | 1 +
.../app/views/main/service/info/summary.js | 4 --
ambari-web/app/views/main/service/item.js | 4 +-
ambari-web/test/views/main/service/item_test.js | 50 ++++++++++++++++++++
6 files changed, 57 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/app/controllers/global/update_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/update_controller.js b/ambari-web/app/controllers/global/update_controller.js
index 6b58ebd..f81a079 100644
--- a/ambari-web/app/controllers/global/update_controller.js
+++ b/ambari-web/app/controllers/global/update_controller.js
@@ -407,6 +407,7 @@ App.UpdateController = Em.Controller.extend({
};
App.HttpClient.get(servicesUrl, App.serviceMetricsMapper, {
complete: function () {
+ App.set('router.mainServiceItemController.isServicesInfoLoaded', App.get('router.clusterController.isLoaded'));
callback();
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/app/controllers/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 4518efb..3497be2 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -45,6 +45,8 @@ App.MainServiceItemController = Em.Controller.extend({
}
},
+ isServicesInfoLoaded: false,
+
initHosts: function() {
if (App.get('components.masters').length !== 0) {
var self = this;
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 4913733..3734653 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -614,6 +614,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
route: '/summary',
connectOutlets: function (router, context) {
var item = router.get('mainServiceItemController.content');
+ router.get('updateController').updateServiceMetric(Em.K);
//if service is not existed then route to default service
if (item.get('isLoaded')) {
router.get('mainServiceItemController').connectOutlet('mainServiceInfoSummary', item);
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/app/views/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/summary.js b/ambari-web/app/views/main/service/info/summary.js
index 84638f5..af3e359 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -526,10 +526,6 @@ App.MainServiceInfoSummaryView = Em.View.extend(App.UserPref, {
return gangliaUrl;
}.property('App.router.clusterController.gangliaUrl', 'service.serviceName'),
- willInsertElement: function () {
- App.router.get('updateController').updateServiceMetric(Em.K);
- },
-
didInsertElement: function () {
var svcName = this.get('service.serviceName');
var isMetricsSupported = svcName != 'STORM' || App.get('isStormMetricsSupported');
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/app/views/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/item.js b/ambari-web/app/views/main/service/item.js
index 485695d..1abac49 100644
--- a/ambari-web/app/views/main/service/item.js
+++ b/ambari-web/app/views/main/service/item.js
@@ -96,7 +96,7 @@ App.MainServiceItemView = Em.View.extend({
isMaintenanceSet: false,
observeMaintenance: function() {
- if (!this.get('isMaintenanceSet')) {
+ if (!this.get('isMaintenanceSet') && this.get('controller.isServicesInfoLoaded')) {
this.observeMaintenanceOnce();
}
Em.run.once(this, 'clearIsMaintenanceSet');
@@ -257,12 +257,14 @@ App.MainServiceItemView = Em.View.extend({
this.addObserver('controller.isStopDisabled', this, 'observeMaintenance');
this.addObserver('controller.isClientsOnlyService', this, 'observeMaintenance');
this.addObserver('controller.content.isRestartRequired', this, 'observeMaintenance');
+ this.addObserver('controller.isServicesInfoLoaded', this, 'observeMaintenance');
},
willDestroyElement: function() {
this.removeObserver('controller.isStopDisabled', this, 'observeMaintenance');
this.removeObserver('controller.isClientsOnlyService', this, 'observeMaintenance');
this.removeObserver('controller.content.isRestartRequired', this, 'observeMaintenance');
+ this.removeObserver('controller.isServicesInfoLoaded', this, 'observeMaintenance');
},
service:function () {
var svc = this.get('controller.content');
http://git-wip-us.apache.org/repos/asf/ambari/blob/34e60b07/ambari-web/test/views/main/service/item_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/service/item_test.js b/ambari-web/test/views/main/service/item_test.js
index 4805004..9e9e5df 100644
--- a/ambari-web/test/views/main/service/item_test.js
+++ b/ambari-web/test/views/main/service/item_test.js
@@ -66,6 +66,56 @@ describe('App.MainServiceItemView', function () {
describe('#observeMaintenance', function () {
+ var cases = [
+ {
+ isMaintenanceSet: true,
+ isServicesInfoLoaded: true,
+ observeMaintenanceOnceCallCount: 0,
+ title: 'actions array set, services info loaded'
+ },
+ {
+ isMaintenanceSet: true,
+ isServicesInfoLoaded: false,
+ observeMaintenanceOnceCallCount: 0,
+ title: 'actions array set, services info not loaded'
+ },
+ {
+ isMaintenanceSet: false,
+ isServicesInfoLoaded: true,
+ observeMaintenanceOnceCallCount: 1,
+ title: 'actions array not set, services info loaded'
+ },
+ {
+ isMaintenanceSet: false,
+ isServicesInfoLoaded: false,
+ observeMaintenanceOnceCallCount: 0,
+ title: 'actions array not set, services info not loaded'
+ }
+ ];
+
+ beforeEach(function () {
+ sinon.stub(view, 'observeMaintenanceOnce', Em.K);
+ });
+
+ afterEach(function () {
+ view.observeMaintenanceOnce.restore();
+ });
+
+ cases.forEach(function (item) {
+ it(item.title, function () {
+ view.setProperties({
+ 'isMaintenanceSet': item.isMaintenanceSet,
+ 'controller.isServicesInfoLoaded': item.isServicesInfoLoaded
+ });
+ view.observeMaintenance();
+ expect(view.observeMaintenanceOnce.callCount).to.equal(item.observeMaintenanceOnceCallCount);
+ });
+ });
+
+ });
+
+ describe('#observeMaintenanceOnce', function () {
+
var mastersExcludedCommands = {
NAMENODE: ["DECOMMISSION", "REBALANCEHDFS"],
RESOURCEMANAGER: ["DECOMMISSION", "REFRESHQUEUES"],